void SList_Load (void) { int c, len, argc, count; char line[128], *desc, *addr; FILE *f; if (!(f = fopen (va("%s/servers.lst", com_gamedir), "rt"))) //if (!(f = fopen("servers.lst", "rt"))) return; count = len = 0; while ((c = getc(f))) { if (c == '\n' || c == '\r' || c == EOF) { if (c == '\r' && (c = getc(f)) != '\n' && c != EOF) ungetc (c, f); line[len] = 0; len = 0; Cmd_TokenizeString (line); if ((argc = Cmd_Argc()) >= 1) { addr = Cmd_Argv(0); desc = (argc >= 2) ? Cmd_Args() : "Unknown"; SList_Set (count, addr, desc); if (++count == MAX_SERVER_LIST) break; } if (c == EOF) break; //just in case an EOF follows a '\r' } else { if (len + 1 < sizeof(line)) line[len++] = c; } } fclose (f); }
void SList_Load (void) { char line[128]; char filename[MAX_OSPATH] = {0}; char *desc, *addr; unsigned int len; int c, argc, count; FILE *f; snprintf(&filename[0], sizeof(filename), "%s/servers.txt", com_basedir); if (!(f = fopen(filename, "r"))) return; count = len = 0; while ((c = getc(f))) { if (c == '\n' || c == '\r' || c == EOF) { if (c == '\r' && (c = getc(f)) != '\n' && c != EOF) ungetc(c, f); line[len] = 0; len = 0; Cmd_TokenizeString(line); if ((argc = Cmd_Argc()) >= 1) { addr = Cmd_Argv(0); desc = (argc >= 2) ? Cmd_MakeArgs(1) : "Unknown"; SList_Set (count, addr, desc); if (++count == MAX_SERVER_LIST) break; } if (c == EOF) break; //just in case an EOF follows a '\r' } else { if (len + 1 < sizeof(line)) line[len++] = c; } } fclose (f); slist_initialised = true; }