ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/init.C
(Generate patch)

Comparing deliantra/server/common/init.C (file contents):
Revision 1.42 by root, Sat Nov 10 22:41:59 2007 UTC vs.
Revision 1.45 by root, Tue May 6 17:05:17 2008 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen 6 * Copyright (©) 1992,2007 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify 8 * Deliantra is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by 9 * it under the terms of the GNU General Public License as published by
186 */ 186 */
187void 187void
188init_globals (void) 188init_globals (void)
189{ 189{
190 if (settings.logfilename[0] == 0) 190 if (settings.logfilename[0] == 0)
191 logfile = stderr; 191 set_logfd (-1);
192 else if ((logfile = fopen (settings.logfilename, "a")) == NULL) 192 else
193 { 193 {
194 int logfd = open (settings.logfilename, O_CREAT|O_WRONLY|O_APPEND, 0666);
195
196 if (logfd >= 0)
197 set_logfd (logfd);
198 else
199 {
200 set_logfd (-1);
194 fprintf (stderr, "Unable to open %s as the logfile - will use stderr instead\n", settings.logfilename); 201 LOG (llevError, "Unable to open %s as the logfile - will use stderr instead", settings.logfilename);
195 logfile = stderr; 202 }
196 } 203 }
197 else
198 setvbuf (logfile, NULL, _IOLBF, 0);
199} 204}
200 205
201void 206void
202init_dynamic (void) 207init_dynamic (void)
203{ 208{
239 level = 0; 244 level = 0;
240 while (fgets (buf, MAX_BUF, fp) != NULL) 245 while (fgets (buf, MAX_BUF, fp) != NULL)
241 { 246 {
242 if (*buf == '#') 247 if (*buf == '#')
243 continue; 248 continue;
249
244 if ((cp = strchr (buf, '\n')) != NULL) 250 if ((cp = strchr (buf, '\n')) != NULL)
245 *cp = '\0'; 251 *cp = '\0';
252
246 cp = buf; 253 cp = buf;
247 while (*cp == ' ') /* Skip blanks */ 254 while (*cp == ' ') /* Skip blanks */
248 cp++; 255 cp++;
249 256
250 if (strncmp (cp, "TYPE:", 5) == 0) 257 if (strncmp (cp, "TYPE:", 5) == 0)
256 attack_mess[mess][level].level = -1; 263 attack_mess[mess][level].level = -1;
257 attack_mess[mess][level].buf1 = NULL; 264 attack_mess[mess][level].buf1 = NULL;
258 attack_mess[mess][level].buf2 = NULL; 265 attack_mess[mess][level].buf2 = NULL;
259 attack_mess[mess][level].buf3 = NULL; 266 attack_mess[mess][level].buf3 = NULL;
260 } 267 }
268
261 level = 0; 269 level = 0;
262 mess = atoi (p); 270 mess = atoi (p);
263 mode = 1; 271 mode = 1;
264 continue; 272 continue;
265 } 273 }
274
266 if (mode == 1) 275 if (mode == 1)
267 { 276 {
268 p = strtok (buf, "="); 277 p = strtok (buf, "=");
269 attack_mess[mess][level].level = atoi (buf); 278 attack_mess[mess][level].level = atoi (buf);
270 p = strtok (NULL, "="); 279 p = strtok (NULL, "=");
300 level++; 309 level++;
301 total++; 310 total++;
302 continue; 311 continue;
303 } 312 }
304 } 313 }
314
305 LOG (llevDebug, "got %d messages in %d categories.\n", total, mess + 1); 315 LOG (llevDebug, "got %d messages in %d categories.\n", total, mess + 1);
306 close_and_delete (fp, comp); 316 close_and_delete (fp, comp);
307} 317}
318

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines