if (GetUserName(login_name, &buffer_size) == 0)
strcpy(login_name, ANONYMOUS_NAME);
}
-#else
+#elif defined(PLATFORM_UNIX) && !defined(PLATFORM_ANDROID)
if (login_name == NULL)
{
struct passwd *pwd;
else
login_name = getStringCopy(pwd->pw_name);
}
+#else
+ login_name = ANONYMOUS_NAME;
#endif
return login_name;
char *basepath = getStringCopy(filename);
char *last_separator = getLastPathSeparatorPtr(basepath);
- if (last_separator != NULL)
- *last_separator = '\0'; /* separator found: strip basename */
- else
- basepath = "."; /* no separator found: use current path */
+ /* if no separator was found, use current directory */
+ if (last_separator == NULL)
+ {
+ free(basepath);
+
+ return getStringCopy(".");
+ }
+
+ /* separator found: strip basename */
+ *last_separator = '\0';
return basepath;
}
-static char *getProgramMainDataPath()
+static char *getProgramMainDataPath(char *command_filename)
{
- char *main_data_path = getStringCopy(program.command_basepath);
+ char *main_data_path = getBasePath(command_filename);
#if defined(PLATFORM_MACOSX)
- static char *main_data_binary_subdir = NULL;
- static char *main_data_files_subdir = NULL;
-
- if (main_data_binary_subdir == NULL)
- {
- main_data_binary_subdir = checked_malloc(strlen(program.program_title) + 1 +
- strlen("app") + 1 +
- strlen(MAC_APP_BINARY_SUBDIR) + 1);
-
- sprintf(main_data_binary_subdir, "%s.app/%s",
- program.program_title, MAC_APP_BINARY_SUBDIR);
- }
-
- if (main_data_files_subdir == NULL)
- {
- main_data_files_subdir = checked_malloc(strlen(program.program_title) + 1 +
- strlen("app") + 1 +
- strlen(MAC_APP_FILES_SUBDIR) + 1);
-
- sprintf(main_data_files_subdir, "%s.app/%s",
- program.program_title, MAC_APP_FILES_SUBDIR);
- }
-
- if (strSuffix(main_data_path, main_data_binary_subdir))
+ if (strSuffix(main_data_path, MAC_APP_BINARY_SUBDIR))
{
char *main_data_path_old = main_data_path;
// cut relative path to Mac OS X application binary directory from path
main_data_path[strlen(main_data_path) -
- strlen(main_data_binary_subdir)] = '\0';
+ strlen(MAC_APP_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 = ".";
// add relative path to Mac OS X application resources directory to path
- main_data_path = getPath2(main_data_path, main_data_files_subdir);
+ main_data_path = getPath2(main_data_path, MAC_APP_FILES_SUBDIR);
free(main_data_path_old);
}
set the current working directory to the program package directory) */
if (strEqual(ro_base_path, "."))
- ro_base_path = getProgramMainDataPath();
+ ro_base_path = getProgramMainDataPath(argv[0]);
if (strEqual(rw_base_path, "."))
- rw_base_path = getProgramMainDataPath();
+ rw_base_path = getProgramMainDataPath(argv[0]);
/* initialize global program options */
options.server_host = NULL;
options.sounds_directory = getPath2(ro_base_path, SOUNDS_DIRECTORY);
options.music_directory = getPath2(ro_base_path, MUSIC_DIRECTORY);
options.docs_directory = getPath2(ro_base_path, DOCS_DIRECTORY);
+ options.conf_directory = getPath2(ro_base_path, CONF_DIRECTORY);
options.execute_command = NULL;
options.special_flags = NULL;
if (*options_left == NULL) /* no options given -- enable verbose mode */
options.verbose = TRUE;
#endif
+#endif
+
+#if DEBUG
+#if defined(PLATFORM_ANDROID)
+ options.debug = TRUE;
+#endif
#endif
while (*options_left)
options.sounds_directory = getPath2(ro_base_path, SOUNDS_DIRECTORY);
options.music_directory = getPath2(ro_base_path, MUSIC_DIRECTORY);
options.docs_directory = getPath2(ro_base_path, DOCS_DIRECTORY);
+ options.conf_directory = getPath2(ro_base_path, CONF_DIRECTORY);
}
else if (strncmp(option, "-levels", option_len) == 0)
{
ANDROID_LOG_UNKNOWN);
#endif
+ /* display debug messages only when running in debug mode */
+ if (mode & ERR_DEBUG && !options.debug)
+ return;
+
/* display warnings only when running in verbose mode */
if (mode & ERR_WARN && !options.verbose)
return;
{ KSYM_Page_Down, "XK_Page_Down", "page down" },
#if defined(TARGET_SDL2)
+ { KSYM_Select, "XK_Select", "select" },
{ KSYM_Menu, "XK_Menu", "menu" }, /* menu key */
{ KSYM_Back, "XK_Back", "back" }, /* back key */
+ { KSYM_PlayPause, "XK_PlayPause", "play/pause" },
+#if defined(PLATFORM_ANDROID)
+ { KSYM_Rewind, "XK_Rewind", "rewind" },
+ { KSYM_FastForward, "XK_FastForward", "fast forward" },
+#endif
#endif
/* ASCII 0x20 to 0x40 keys (except numbers) */
if (string_has_parameter(value, "inner_corners"))
result |= STYLE_INNER_CORNERS;
+
+ if (string_has_parameter(value, "reverse"))
+ result |= STYLE_REVERSE;
}
else if (strEqual(suffix, ".fade_mode"))
{