Exemple #1
0
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;
}