improved terminal/logfile output of automatic tape replay (progress/summary)
[rocksndiamonds.git] / src / libgame / misc.c
index 4ffb51c707adb555962ba68876d13e685f369e74..0c0e82c2bc45e6621f104f9bd0947e3ff3dfa269 100644 (file)
@@ -222,6 +222,18 @@ void Print(char *format, ...)
   va_end(ap);
 }
 
+void PrintNoLog(char *format, ...)
+{
+  FILE *file = program.log_file_default[LOG_OUT_ID];
+  va_list ap;
+
+  va_start(ap, format);
+  vfprintf(file, format, ap);
+  va_end(ap);
+
+  fflush(file);
+}
+
 void PrintLine(char *line_chars, int line_length)
 {
   int i;
@@ -709,11 +721,19 @@ static char *getProgramMainDataPath()
     char *main_data_path_old = main_data_path;
 
     // cut relative path to Mac OS X application binary directory from path
-    main_data_path_old[strlen(main_data_path_old) -
-                      strlen(main_data_binary_subdir)] = '\0';
+    main_data_path[strlen(main_data_path) -
+                  strlen(main_data_binary_subdir)] = '\0';
+
+    // cut trailing path separator from path (but not if path is root directory)
+    if (strSuffix(main_data_path, "/") && !strEqual(main_data_path, "/"))
+      main_data_path[strlen(main_data_path) - 1] = '\0';
+
+    // replace empty path with current directory
+    if (strEqual(main_data_path, ""))
+      main_data_path = ".";
 
     // add relative path to Mac OS X application resources directory to path
-    main_data_path = getPath2(main_data_path_old, main_data_files_subdir);
+    main_data_path = getPath2(main_data_path, main_data_files_subdir);
 
     free(main_data_path_old);
   }