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

Comparing deliantra/server/common/compat.C (file contents):
Revision 1.5 by root, Fri Mar 26 00:59:20 2010 UTC vs.
Revision 1.9 by root, Thu Apr 15 22:11:47 2010 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,2008,2009 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992 Frank Tore Johansen 6 * Copyright (©) 1992 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify it under 8 * Deliantra is free software: you can redistribute it and/or modify it under
9 * the terms of the Affero GNU General Public License as published by the 9 * the terms of the Affero GNU General Public License as published by the
57 return 0; 57 return 0;
58} 58}
59 59
60///////////////////////////////////////////////////////////////////////////// 60/////////////////////////////////////////////////////////////////////////////
61 61
62static const char *const fatalmsgs[80] = {
63 "Failed to allocate memory",
64 "Failed repeatedly to load maps",
65 "Hashtable for archetypes is too small",
66 "Too many errors"
67};
68
69/* 62/*
70 * fatal() is meant to be called whenever a fatal signal is intercepted. 63 * fatal() is meant to be called whenever a fatal signal is intercepted.
71 * It will call the emergency_save and the clean_tmp_files functions. 64 * It will call the emergency_save and the clean_tmp_files functions.
72 */ 65 */
66//TODO: only one caller left
73void 67void
74fatal (int err) 68fatal (const char *msg)
75{ 69{
76 LOG (llevError, "Fatal: %s\n", fatalmsgs [err]); 70 LOG (llevError, "FATAL: %s\n", msg);
77 cleanup (fatalmsgs[err], 1); 71 cleanup (msg, 1);
78} 72}
79 73
80///////////////////////////////////////////////////////////////////////////// 74/////////////////////////////////////////////////////////////////////////////
81 75
82/* 76/*
314 path = path_combine (src, dst); 308 path = path_combine (src, dst);
315 path_normalize (path); 309 path_normalize (path);
316 return (path); 310 return (path);
317} 311}
318 312
319/**
320 * open_and_uncompress() first searches for the original filename. If it exist,
321 * then it opens it and returns the file-pointer.
322 */
323FILE *
324open_and_uncompress (const char *name, int flag, int *compressed)
325{
326 *compressed = 0;
327 return fopen (name, "r");
328}
329
330/*
331 * See open_and_uncompress().
332 */
333
334void
335close_and_delete (FILE * fp, int compressed)
336{
337 fclose (fp);
338}
339
340/*
341 * Strip out the media tags from a String.
342 * Warning the input string will contain the result string
343 */
344void
345strip_media_tag (char *message)
346{
347 int in_tag = 0;
348 char *dest;
349 char *src;
350
351 src = dest = message;
352 while (*src != '\0')
353 {
354 if (*src == '[')
355 {
356 in_tag = 1;
357 }
358 else if (in_tag && (*src == ']'))
359 in_tag = 0;
360 else if (!in_tag)
361 {
362 *dest = *src;
363 dest++;
364 }
365 src++;
366 }
367 *dest = '\0';
368}
369
370#define EOL_SIZE (sizeof("\n")-1) 313#define EOL_SIZE (sizeof("\n")-1)
371void 314void
372strip_endline (char *buf) 315strip_endline (char *buf)
373{ 316{
374 if (strlen (buf) < sizeof ("\n")) 317 if (*buf && buf [strlen (buf) - 1] == '\n')
375 {
376 return;
377 }
378 if (!strcmp (buf + strlen (buf) - EOL_SIZE, "\n"))
379 buf[strlen (buf) - EOL_SIZE] = '\0'; 318 buf [strlen (buf) - 1] = '\0';
380} 319}
381 320
382/** 321/**
383 * Replace in string src all occurrences of key by replacement. The resulting 322 * Replace in string src all occurrences of key by replacement. The resulting
384 * string is put into result; at most resultsize characters (including the 323 * string is put into result; at most resultsize characters (including the

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines