Skip to content

Commit

Permalink
Remove strtok usages
Browse files Browse the repository at this point in the history
  • Loading branch information
DocSystem committed Jan 25, 2025
1 parent bc558cd commit ca57e15
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions api/calypso/transit/navigo.c
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,28 @@ int get_intercode_subversion(int version) {
return version & 0x07;
}

char* get_token(char* psrc, const char* delimit, void* psave) {
static char sret[512];
register char* ptr = psave;
memset(sret, 0, sizeof(sret));

if(psrc != NULL) strcpy(ptr, psrc);
if(ptr == NULL) return NULL;

int i = 0, nlength = strlen(ptr);
for(i = 0; i < nlength; i++) {
if(ptr[i] == delimit[0]) break;
if(ptr[i] == delimit[1]) {
ptr = NULL;
break;
}
sret[i] = ptr[i];
}
if(ptr != NULL) strcpy(ptr, &ptr[i + 1]);

return sret;
}

char* get_navigo_station(
int station_group_id,
int station_id,
Expand All @@ -227,13 +249,14 @@ char* get_navigo_station(
if(!station_name) {
return "Unknown";
}
char* token = strtok(station_name, "|");
char* token = get_token(station_name, "|", station_name);
for(int i = 0; i < station_sub_id - 1; i++) {
token = strtok(NULL, "|");
token = get_token(station_name, "|", station_name);
if(!token) {
break;
}
}
free(station_name);
if(token) {
return token;
}
Expand Down

0 comments on commit ca57e15

Please sign in to comment.