rnd-20070302-1-src
[rocksndiamonds.git] / src / libgame / misc.c
index 0115b5d9fb95f3ca633032656bcb0673138a62f0..41b68190559a73a7eae920ee3e1a472000197120 100644 (file)
@@ -808,7 +808,7 @@ void Error(int mode, char *format, ...)
   if (mode & ERR_WARN && !options.verbose)
     return;
 
-  if (mode == ERR_RETURN_LINE)
+  if (mode == ERR_INFO_LINE)
   {
     if (!last_line_was_separator)
       fprintf_line(program.error_file, format, 79);
@@ -1219,6 +1219,7 @@ void translate_keyname(Key *keysym, char **x11name, char **name, int mode)
     { KSYM_asciitilde, "XK_asciitilde",        "~" },
 
     /* special (non-ASCII) keys */
+    { KSYM_degree,     "XK_degree",            "°" },
     { KSYM_Adiaeresis, "XK_Adiaeresis",        "Ä" },
     { KSYM_Odiaeresis, "XK_Odiaeresis",        "Ö" },
     { KSYM_Udiaeresis, "XK_Udiaeresis",        "Ü" },
@@ -1447,16 +1448,23 @@ Key getKeyFromX11KeyName(char *x11name)
 char getCharFromKey(Key key)
 {
   char *keyname = getKeyNameFromKey(key);
-  char letter = 0;
+  char c = 0;
 
   if (strlen(keyname) == 1)
-    letter = keyname[0];
+    c = keyname[0];
   else if (strEqual(keyname, "space"))
-    letter = ' ';
-  else if (strEqual(keyname, "circumflex"))
-    letter = '^';
+    c = ' ';
 
-  return letter;
+  return c;
+}
+
+char getValidConfigValueChar(char c)
+{
+  if (c == '#' ||      /* used to mark comments */
+      c == '\\')       /* used to mark continued lines */
+    c = 0;
+
+  return c;
 }
 
 
@@ -1958,28 +1966,36 @@ struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list,
          !strEqual(&config_list[i].value[len_config_value - 4], ".wav") &&
          !strEqual(config_list[i].value, UNDEFINED_FILENAME))
       {
-       Error(ERR_RETURN, "Configuration directive '%s' -> '%s':",
+       Error(ERR_INFO, "Configuration directive '%s' -> '%s':",
              config_list[i].token, config_list[i].value);
        Error(ERR_EXIT, "This seems to be no valid definition -- please fix");
       }
 
       file_list[list_pos].token = config_list[i].token;
       file_list[list_pos].default_filename = config_list[i].value;
+
+#if 0
+      printf("::: '%s' => '%s'\n", config_list[i].token, config_list[i].value);
+#endif
     }
   }
 
   num_file_list_entries_found = list_pos + 1;
   if (num_file_list_entries_found != num_file_list_entries)
   {
-    Error(ERR_RETURN_LINE, "-");
-    Error(ERR_RETURN, "inconsistant config list information:");
-    Error(ERR_RETURN, "- should be:   %d (according to 'src/conf_gfx.h')",
+    Error(ERR_INFO_LINE, "-");
+    Error(ERR_INFO, "inconsistant config list information:");
+    Error(ERR_INFO, "- should be:   %d (according to 'src/conf_xxx.h')",
          num_file_list_entries);
-    Error(ERR_RETURN, "- found to be: %d (according to 'src/conf_gfx.c')",
+    Error(ERR_INFO, "- found to be: %d (according to 'src/conf_xxx.c')",
          num_file_list_entries_found);
     Error(ERR_EXIT,   "please fix");
   }
 
+#if 0
+  printf("::: ---------- DONE ----------\n");
+#endif
+
   return file_list;
 }
 
@@ -2415,53 +2431,53 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info,
 
     if (options.debug && dynamic_tokens_found)
     {
-      Error(ERR_RETURN_LINE, "-");
-      Error(ERR_RETURN, "dynamic token(s) found in config file:");
-      Error(ERR_RETURN, "- config file: '%s'", filename);
+      Error(ERR_INFO_LINE, "-");
+      Error(ERR_INFO, "dynamic token(s) found in config file:");
+      Error(ERR_INFO, "- config file: '%s'", filename);
 
       for (list = setup_file_list; list != NULL; list = list->next)
       {
        char *value = getHashEntry(extra_file_hash, list->token);
 
        if (value != NULL && strEqual(value, known_token_value))
-         Error(ERR_RETURN, "- dynamic token: '%s'", list->token);
+         Error(ERR_INFO, "- dynamic token: '%s'", list->token);
       }
 
-      Error(ERR_RETURN_LINE, "-");
+      Error(ERR_INFO_LINE, "-");
     }
 
     if (unknown_tokens_found)
     {
-      Error(ERR_RETURN_LINE, "-");
-      Error(ERR_RETURN, "warning: unknown token(s) found in config file:");
-      Error(ERR_RETURN, "- config file: '%s'", filename);
+      Error(ERR_INFO_LINE, "-");
+      Error(ERR_INFO, "warning: unknown token(s) found in config file:");
+      Error(ERR_INFO, "- config file: '%s'", filename);
 
       for (list = setup_file_list; list != NULL; list = list->next)
       {
        char *value = getHashEntry(extra_file_hash, list->token);
 
        if (value != NULL && !strEqual(value, known_token_value))
-         Error(ERR_RETURN, "- dynamic token: '%s'", list->token);
+         Error(ERR_INFO, "- dynamic token: '%s'", list->token);
       }
 
-      Error(ERR_RETURN_LINE, "-");
+      Error(ERR_INFO_LINE, "-");
     }
 
     if (undefined_values_found)
     {
-      Error(ERR_RETURN_LINE, "-");
-      Error(ERR_RETURN, "warning: undefined values found in config file:");
-      Error(ERR_RETURN, "- config file: '%s'", filename);
+      Error(ERR_INFO_LINE, "-");
+      Error(ERR_INFO, "warning: undefined values found in config file:");
+      Error(ERR_INFO, "- config file: '%s'", filename);
 
       for (list = setup_file_list; list != NULL; list = list->next)
       {
        char *value = getHashEntry(empty_file_hash, list->token);
 
        if (value != NULL)
-         Error(ERR_RETURN, "- undefined value for token: '%s'", list->token);
+         Error(ERR_INFO, "- undefined value for token: '%s'", list->token);
       }
 
-      Error(ERR_RETURN_LINE, "-");
+      Error(ERR_INFO_LINE, "-");
     }
 
     freeSetupFileList(setup_file_list);
@@ -2490,7 +2506,7 @@ void LoadArtworkConfig(struct ArtworkListInfo *artwork_info)
   char *filename_base = UNDEFINED_FILENAME, *filename_local;
   int i, j;
 
-  DrawInitText("Loading artwork config:", 120, FC_GREEN);
+  DrawInitText("Loading artwork config", 120, FC_GREEN);
   DrawInitText(ARTWORKINFO_FILENAME(artwork_info->type), 150, FC_YELLOW);
 
   /* always start with reliable default values */
@@ -2567,9 +2583,9 @@ static void replaceArtworkListEntry(struct ArtworkListInfo *artwork_info,
 {
   char *init_text[] =
   {
-    "Loading graphics:",
-    "Loading sounds:",
-    "Loading music:"
+    "Loading graphics",
+    "Loading sounds",
+    "Loading music"
   };
 
   ListNode *node;
@@ -2787,6 +2803,8 @@ void NotifyUserAboutErrorFile()
 /* the following is only for debugging purpose and normally not used         */
 /* ------------------------------------------------------------------------- */
 
+#if DEBUG
+
 #define DEBUG_NUM_TIMESTAMPS   3
 
 void debug_print_timestamp(int counter_nr, char *message)
@@ -2799,10 +2817,10 @@ void debug_print_timestamp(int counter_nr, char *message)
   counter[counter_nr][0] = Counter();
 
   if (message)
-    printf("%s %.2f seconds\n", message,
+    printf("%s %.3f seconds\n", message,
           (float)(counter[counter_nr][0] - counter[counter_nr][1]) / 1000);
 
-  counter[counter_nr][1] = Counter();
+  counter[counter_nr][1] = counter[counter_nr][0];
 }
 
 void debug_print_parent_only(char *format, ...)
@@ -2821,3 +2839,4 @@ void debug_print_parent_only(char *format, ...)
     printf("\n");
   }
 }
+#endif