rnd-20060727-2-src
authorHolger Schemel <info@artsoft.org>
Thu, 27 Jul 2006 09:38:48 +0000 (11:38 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:52:27 +0000 (10:52 +0200)
src/conftime.h
src/libgame/misc.c
src/libgame/misc.h
src/libgame/system.c
src/libgame/system.h

index 6b2512d6f5c6318ce25c08e4e60e79987d29e187..5cb98cb177422915e46f52d35e5cab58898d16bf 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2006-07-27 00:18]"
+#define COMPILE_DATE_STRING "[2006-07-27 11:23]"
index 26c338ca20279567276b92a87524994f85f54096..9125a4e142740346420966d5957ed6711463a27c 100644 (file)
@@ -50,53 +50,6 @@ static void vfprintf_newline(FILE *stream, char *format, va_list ap)
   fprintf(stream, "%s", newline);
 }
 
   fprintf(stream, "%s", newline);
 }
 
-static void vprintf_error_ext(char *format, va_list ap, boolean print_newline)
-{
-  FILE *error_file = openErrorFile();  /* this returns at least 'stderr' */
-
-  if (print_newline)
-    vfprintf_newline(error_file, format, ap);
-  else
-    vfprintf(error_file, format, ap);
-
-  if (error_file != stderr)            /* do not close stream 'stderr' */
-    fclose(error_file);
-}
-
-static void vprintf_error(char *format, va_list ap)
-{
-  vprintf_error_ext(format, ap, FALSE);
-}
-
-static void vprintf_error_newline(char *format, va_list ap)
-{
-  vprintf_error_ext(format, ap, TRUE);
-}
-
-static void printf_error(char *format, ...)
-{
-  if (format)
-  {
-    va_list ap;
-
-    va_start(ap, format);
-    vprintf_error(format, ap);
-    va_end(ap);
-  }
-}
-
-static void printf_error_newline(char *format, ...)
-{
-  if (format)
-  {
-    va_list ap;
-
-    va_start(ap, format);
-    vprintf_error_newline(format, ap);
-    va_end(ap);
-  }
-}
-
 static void fprintf_newline(FILE *stream, char *format, ...)
 {
   if (format)
 static void fprintf_newline(FILE *stream, char *format, ...)
 {
   if (format)
@@ -109,26 +62,14 @@ static void fprintf_newline(FILE *stream, char *format, ...)
   }
 }
 
   }
 }
 
-static char *get_line_string(char *line_chars, int line_length)
+void fprintf_line(FILE *stream, char *line_chars, int line_length)
 {
 {
-  static char *buffer = NULL;
-  int line_chars_length = strlen(line_chars);
   int i;
 
   int i;
 
-  if (buffer != NULL)
-    checked_free(buffer);
-
-  buffer = checked_malloc(line_chars_length * line_length + 1);
-
   for (i = 0; i < line_length; i++)
   for (i = 0; i < line_length; i++)
-    strcpy(&buffer[i * line_chars_length], line_chars);
-
-  return buffer;
-}
+    fprintf(stream, "%s", line_chars);
 
 
-void fprintf_line(FILE *stream, char *line_chars, int line_length)
-{
-  fprintf_newline(stream, get_line_string(line_chars, line_length));
+  fprintf_newline(stream, "");
 }
 
 void printf_line(char *line_chars, int line_length)
 }
 
 void printf_line(char *line_chars, int line_length)
@@ -136,11 +77,6 @@ void printf_line(char *line_chars, int line_length)
   fprintf_line(stdout, line_chars, line_length);
 }
 
   fprintf_line(stdout, line_chars, line_length);
 }
 
-void printf_line_error(char *line_chars, int line_length)
-{
-  printf_error_newline(get_line_string(line_chars, line_length));
-}
-
 void printf_line_with_prefix(char *prefix, char *line_chars, int line_length)
 {
   fprintf(stdout, "%s", prefix);
 void printf_line_with_prefix(char *prefix, char *line_chars, int line_length)
 {
   fprintf(stdout, "%s", prefix);
@@ -900,7 +836,7 @@ void Error(int mode, char *format, ...)
   if (mode == ERR_RETURN_LINE)
   {
     if (!last_line_was_separator)
   if (mode == ERR_RETURN_LINE)
   {
     if (!last_line_was_separator)
-      printf_line_error(format, 79);
+      fprintf_line(program.error_file, format, 79);
 
     last_line_was_separator = TRUE;
 
 
     last_line_was_separator = TRUE;
 
@@ -920,23 +856,25 @@ void Error(int mode, char *format, ...)
   {
     va_list ap;
 
   {
     va_list ap;
 
-    printf_error("%s%s: ", program.command_basename, process_name);
+    fprintf(program.error_file, "%s%s: ", program.command_basename,
+           process_name);
 
     if (mode & ERR_WARN)
 
     if (mode & ERR_WARN)
-      printf_error("warning: ");
+      fprintf(program.error_file, "warning: ");
 
     va_start(ap, format);
 
     va_start(ap, format);
-    vprintf_error_newline(format, ap);
+    vfprintf_newline(program.error_file, format, ap);
     va_end(ap);
   }
   
   if (mode & ERR_HELP)
     va_end(ap);
   }
   
   if (mode & ERR_HELP)
-    printf_error_newline("%s: Try option '--help' for more information.",
-                        program.command_basename);
+    fprintf_newline(program.error_file,
+                   "%s: Try option '--help' for more information.",
+                   program.command_basename);
 
   if (mode & ERR_EXIT)
 
   if (mode & ERR_EXIT)
-    printf_error_newline("%s%s: aborting",
-                        program.command_basename, process_name);
+    fprintf_newline(program.error_file, "%s%s: aborting",
+                   program.command_basename, process_name);
 
   if (mode & ERR_EXIT)
   {
 
   if (mode & ERR_EXIT)
   {
@@ -2864,22 +2802,22 @@ char *getErrorFilename(char *basename)
   return getPath2(getUserDataDir(), basename);
 }
 
   return getPath2(getUserDataDir(), basename);
 }
 
-void initErrorFile()
+void openErrorFile()
 {
 {
-  unlink(program.error_filename);
-}
-
-FILE *openErrorFile()
-{
-  FILE *error_file = stderr;
+  /* always start with reliable default values */
+  program.error_file = stderr;
 
 #if defined(PLATFORM_WIN32) || defined(PLATFORM_MSDOS)
 
 #if defined(PLATFORM_WIN32) || defined(PLATFORM_MSDOS)
-  if ((error_file = fopen(program.error_filename, MODE_APPEND)) == NULL)
-    fprintf_newline(stderr, "ERROR: cannot open file '%s' for appending!",
+  if ((program.error_file = fopen(program.error_filename, MODE_WRITE)) == NULL)
+    fprintf_newline(stderr, "ERROR: cannot open file '%s' for writing!",
                    program.error_filename);
 #endif
                    program.error_filename);
 #endif
+}
 
 
-  return error_file;
+void closeErrorFile()
+{
+  if (program.error_file != stderr)    /* do not close stream 'stderr' */
+    fclose(program.error_file);
 }
 
 void dumpErrorFile()
 }
 
 void dumpErrorFile()
index cc3ecf0a3349e03333c177504aaae465136e7d7b..9fb4f65b1e9d0bb446ba565cab9fa2c18c68abfe 100644 (file)
@@ -189,8 +189,8 @@ void ReloadCustomArtworkList(struct ArtworkListInfo *);
 void FreeCustomArtworkLists(struct ArtworkListInfo *);
 
 char *getErrorFilename(char *);
 void FreeCustomArtworkLists(struct ArtworkListInfo *);
 
 char *getErrorFilename(char *);
-void initErrorFile();
-FILE *openErrorFile();
+void openErrorFile();
+void closeErrorFile();
 void dumpErrorFile();
 void NotifyUserAboutErrorFile();
 
 void dumpErrorFile();
 void NotifyUserAboutErrorFile();
 
index 5aac42f888b26a257973d6c8b44b790e7db7163b..b3ad0f287a7f3c3b4fdee38f65158fff3ed63836 100644 (file)
@@ -95,6 +95,7 @@ void InitProgramInfo(char *argv0,
   program.version_patch = VERSION_PATCH(program_version);
 
   program.error_filename = getErrorFilename(ERROR_BASENAME);
   program.version_patch = VERSION_PATCH(program_version);
 
   program.error_filename = getErrorFilename(ERROR_BASENAME);
+  program.error_file = stderr;
 }
 
 void InitExitFunction(void (*exit_function)(int))
 }
 
 void InitExitFunction(void (*exit_function)(int))
@@ -118,7 +119,7 @@ void InitPlatformDependentStuff(void)
 #endif
 
 #if defined(PLATFORM_WIN32) || defined(PLATFORM_MSDOS)
 #endif
 
 #if defined(PLATFORM_WIN32) || defined(PLATFORM_MSDOS)
-  initErrorFile();
+  openErrorFile();
 #endif
 
 #if defined(TARGET_SDL)
 #endif
 
 #if defined(TARGET_SDL)
@@ -131,6 +132,10 @@ void InitPlatformDependentStuff(void)
 
 void ClosePlatformDependentStuff(void)
 {
 
 void ClosePlatformDependentStuff(void)
 {
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_MSDOS)
+  closeErrorFile();
+#endif
+
 #if defined(PLATFORM_MSDOS)
   dumpErrorFile();
 #endif
 #if defined(PLATFORM_MSDOS)
   dumpErrorFile();
 #endif
index 8fe22e2ddd7767e4fb0e849844e44666c1c0946a..f96d530f0b8aef6041007f456a59660ca0c90c23 100644 (file)
@@ -529,7 +529,8 @@ struct ProgramInfo
   char *cookie_prefix;
   char *filename_prefix;       /* prefix to cut off from DOS filenames */
 
   char *cookie_prefix;
   char *filename_prefix;       /* prefix to cut off from DOS filenames */
 
-  char *error_filename;                /* used instead of 'stderr' on some systems */
+  char *error_filename;                /* filename where to write error messages to */
+  FILE *error_file;            /* (used instead of 'stderr' on some systems) */
 
   int version_major;
   int version_minor;
 
   int version_major;
   int version_minor;