if (size > 20)
size = 20;
- if (size)
+ if (size > 0)
{
sprintf(s, " %09d", number);
return &s[strlen(s) - size];
return s_copy;
}
+char *getStringCopyN(char *s, int n)
+{
+ char *s_copy;
+ int s_len = MAX(0, n);
+
+ if (s == NULL)
+ return NULL;
+
+ s_copy = checked_malloc(s_len + 1);
+ strncpy(s_copy, s, s_len);
+ s_copy[s_len] = '\0';
+
+ return s_copy;
+}
+
char *getStringToLower(char *s)
{
char *s_copy = checked_malloc(strlen(s) + 1);
strncmp(s1, s2, n) == 0);
}
+boolean strEqualPrefix(char *s, char *prefix)
+{
+ return (s == NULL && prefix == NULL ? TRUE :
+ s == NULL && prefix != NULL ? FALSE :
+ s != NULL && prefix == NULL ? FALSE :
+ strncmp(s, prefix, strlen(prefix)) == 0);
+}
+
+boolean strEqualSuffix(char *s, char *suffix)
+{
+ return (s == NULL && suffix == NULL ? TRUE :
+ s == NULL && suffix != NULL ? FALSE :
+ s != NULL && suffix == NULL ? FALSE :
+ strlen(s) < strlen(suffix) ? FALSE :
+ strncmp(&s[strlen(s) - strlen(suffix)], suffix, strlen(suffix)) == 0);
+}
+
/* ------------------------------------------------------------------------- */
/* command line option handling functions */
if (result == -1)
{
- if (strEqual(s_lower, "false"))
+ if (strEqual(s_lower, "false") ||
+ strEqual(s_lower, "no") ||
+ strEqual(s_lower, "off"))
result = 0;
- else if (strEqual(s_lower, "true"))
+ else if (strEqual(s_lower, "true") ||
+ strEqual(s_lower, "yes") ||
+ strEqual(s_lower, "on"))
result = 1;
else
result = atoi(s);
string_has_parameter(value, "melt") ? FADE_MODE_MELT :
FADE_MODE_DEFAULT);
}
+#if 1
+ else if (strEqualPrefix(suffix, ".font")) /* (may also be ".font_xyz") */
+#else
else if (strEqualN(suffix, ".font", 5)) /* (may also be ".font_xyz") */
+#endif
{
result = gfx.get_font_from_token_function(value);
}
return result;
}
-int get_token_parameter_value(char *token, char *value_raw)
-{
- char *suffix;
-
- if (token == NULL || value_raw == NULL)
- return ARG_UNDEFINED_VALUE;
-
- suffix = strrchr(token, '.');
- if (suffix == NULL)
- suffix = token;
-
-#if 0
- if (strncmp(suffix, ".font", 5) == 0)
- {
- int i;
-
- /* !!! OPTIMIZE THIS BY USING HASH !!! */
- for (i = 0; i < NUM_FONTS; i++)
- if (strEqual(value_raw, font_info[i].token_name))
- return i;
-
- /* if font not found, use reliable default value */
- return FONT_INITIAL_1;
- }
-#endif
-
- return get_parameter_value(value_raw, suffix, TYPE_INTEGER);
-}
-
struct ScreenModeInfo *get_screen_mode_from_string(char *screen_mode_string)
{
static struct ScreenModeInfo screen_mode;
base_index = i;
+#if 0
+ if (IS_PARENT_PROCESS())
+ printf("===> MATCH: '%s', '%s'\n", token, base_prefix);
+#endif
+
if (start_pos + len_base_prefix == len_token) /* exact match */
{
exact_match = TRUE;
+#if 0
+ if (IS_PARENT_PROCESS())
+ printf("===> EXACT MATCH: '%s', '%s'\n", token, base_prefix);
+#endif
+
add_dynamic_file_list_entry(dynamic_file_list,
num_dynamic_file_list_entries,
extra_file_hash,
ext1_index = j;
+#if 0
+ if (IS_PARENT_PROCESS())
+ printf("===> MATCH: '%s', '%s'\n", token, ext1_suffix);
+#endif
+
if (start_pos + len_ext1_suffix == len_token) /* exact match */
{
exact_match = TRUE;
+#if 0
+ if (IS_PARENT_PROCESS())
+ printf("===> EXACT MATCH: '%s', '%s'\n", token, ext1_suffix);
+#endif
+
add_dynamic_file_list_entry(dynamic_file_list,
num_dynamic_file_list_entries,
extra_file_hash,
ext2_index = k;
+#if 0
+ if (IS_PARENT_PROCESS())
+ printf("===> MATCH: '%s', '%s'\n", token, ext2_suffix);
+#endif
+
if (start_pos + len_ext2_suffix == len_token) /* exact match */
{
exact_match = TRUE;
+#if 0
+ if (IS_PARENT_PROCESS())
+ printf("===> EXACT MATCH: '%s', '%s'\n", token, ext2_suffix);
+#endif
+
add_dynamic_file_list_entry(dynamic_file_list,
num_dynamic_file_list_entries,
extra_file_hash,
ext3_index = l;
+#if 0
+ if (IS_PARENT_PROCESS())
+ printf("===> MATCH: '%s', '%s'\n", token, ext3_suffix);
+#endif
+
if (start_pos + len_ext3_suffix == len_token) /* exact match */
{
exact_match = TRUE;
+#if 0
+ if (IS_PARENT_PROCESS())
+ printf("===> EXACT MATCH: '%s', '%s'\n", token, ext3_suffix);
+#endif
+
add_dynamic_file_list_entry(dynamic_file_list,
num_dynamic_file_list_entries,
extra_file_hash,