mirror of https://github.com/snes9xgit/snes9x.git
GTK+: Use std::string here.
This commit is contained in:
parent
870bda8efb
commit
a48703796a
|
@ -432,9 +432,7 @@ Snes9xCheats::search_database ()
|
|||
if (result < reason)
|
||||
reason = result;
|
||||
|
||||
char *config_dir = get_config_dir ();
|
||||
filename = std::string (config_dir) + "/cheats.bml";
|
||||
free (config_dir);
|
||||
filename = get_config_dir () + "/cheats.bml";
|
||||
if (!(result = S9xImportCheatsFromDatabase (filename.c_str ())))
|
||||
{
|
||||
refresh_tree_view ();
|
||||
|
@ -444,7 +442,6 @@ Snes9xCheats::search_database ()
|
|||
if (result < reason)
|
||||
reason = result;
|
||||
|
||||
|
||||
filename = std::string (DATADIR) + "/cheats.bml";
|
||||
if (!(result = S9xImportCheatsFromDatabase (filename.c_str ())))
|
||||
{
|
||||
|
|
|
@ -30,62 +30,38 @@ static int directory_exists (const char *directory)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
char *get_config_dir ()
|
||||
std::string get_config_dir ()
|
||||
{
|
||||
char *home_dir = NULL,
|
||||
*classic_config_dir = NULL,
|
||||
*xdg_config_dir = NULL,
|
||||
*xdg_snes9x_dir = NULL;
|
||||
// Find config directory
|
||||
char *env_home = getenv ("HOME");
|
||||
char *env_xdg_config_home = getenv ("XDG_CONFIG_HOME");
|
||||
|
||||
/* Find config directory */
|
||||
home_dir = getenv ("HOME");
|
||||
xdg_config_dir = getenv ("XDG_CONFIG_HOME");
|
||||
|
||||
if (!home_dir && !xdg_config_dir)
|
||||
if (!env_home && !env_xdg_config_home)
|
||||
{
|
||||
return strdup (".snes9x");
|
||||
return std::string (".snes9x");
|
||||
}
|
||||
|
||||
if (!xdg_config_dir)
|
||||
std::string config;
|
||||
std::string legacy;
|
||||
|
||||
// If XDG_CONFIG_HOME is set, use that, otherwise guess default
|
||||
if (!env_xdg_config_home)
|
||||
{
|
||||
xdg_snes9x_dir = (char *) malloc (strlen (home_dir) + 16);
|
||||
sprintf (xdg_snes9x_dir, "%s/.config/snes9x", home_dir);
|
||||
(config += env_home) += "/.config/snes9x";
|
||||
(legacy += env_home) += "/.snes9x";
|
||||
}
|
||||
else
|
||||
{
|
||||
xdg_snes9x_dir = (char *) malloc (strlen (xdg_config_dir) + 9);
|
||||
sprintf (xdg_snes9x_dir, "%s/snes9x", xdg_config_dir);
|
||||
}
|
||||
config = std::string (env_xdg_config_home) + "/snes9x";
|
||||
|
||||
classic_config_dir = (char *) malloc (strlen (home_dir) + 9);
|
||||
sprintf (classic_config_dir, "%s/.snes9x", home_dir);
|
||||
if (directory_exists (legacy.c_str ()) && !directory_exists(config.c_str ()))
|
||||
return legacy;
|
||||
|
||||
char *config_dir;
|
||||
|
||||
if (directory_exists (classic_config_dir) && !directory_exists(xdg_snes9x_dir))
|
||||
{
|
||||
free (xdg_snes9x_dir);
|
||||
config_dir = classic_config_dir;
|
||||
}
|
||||
else
|
||||
{
|
||||
free (classic_config_dir);
|
||||
config_dir = xdg_snes9x_dir;
|
||||
}
|
||||
|
||||
return config_dir;
|
||||
return config;
|
||||
}
|
||||
|
||||
char *get_config_file_name ()
|
||||
std::string get_config_file_name ()
|
||||
{
|
||||
char *filename;
|
||||
|
||||
filename = get_config_dir ();
|
||||
|
||||
filename = (char *) realloc (filename, strlen (filename) + 16);
|
||||
strcat (filename, "/snes9x.conf");
|
||||
|
||||
return filename;
|
||||
return get_config_dir () + "/snes9x.conf";
|
||||
}
|
||||
|
||||
void S9xParsePortConfig (ConfigFile &conf, int pass)
|
||||
|
@ -258,7 +234,6 @@ static inline void outbool (ConfigFile &cf, const char *key, bool value, const c
|
|||
|
||||
int Snes9xConfig::save_config_file ()
|
||||
{
|
||||
char *filename;
|
||||
char key[PATH_MAX];
|
||||
char buffer[PATH_MAX];
|
||||
ConfigFile cf;
|
||||
|
@ -443,11 +418,9 @@ int Snes9xConfig::save_config_file ()
|
|||
cf.SetString (key, std::string (buffer));
|
||||
}
|
||||
|
||||
filename = get_config_file_name ();
|
||||
cf.SetNiceAlignment (true);
|
||||
cf.SetShowComments (true);
|
||||
cf.SaveTo (filename);
|
||||
free (filename);
|
||||
cf.SaveTo (get_config_file_name ().c_str ());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -455,44 +428,40 @@ int Snes9xConfig::save_config_file ()
|
|||
int Snes9xConfig::load_config_file ()
|
||||
{
|
||||
struct stat file_info;
|
||||
char *pathname;
|
||||
std::string path;
|
||||
ConfigFile cf;
|
||||
char key[PATH_MAX];
|
||||
char buffer[PATH_MAX];
|
||||
|
||||
load_defaults ();
|
||||
|
||||
pathname = get_config_dir ();
|
||||
path = get_config_dir ();
|
||||
|
||||
if (stat (pathname, &file_info))
|
||||
if (stat (path.c_str (), &file_info))
|
||||
{
|
||||
if (mkdir (pathname, 0755))
|
||||
if (mkdir (path.c_str (), 0755))
|
||||
{
|
||||
fprintf (stderr,
|
||||
_("Couldn't create config directory: %s\n"),
|
||||
pathname);
|
||||
path.c_str ());
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
chmod (pathname, 0755);
|
||||
chmod (path.c_str (), 0755);
|
||||
}
|
||||
|
||||
free (pathname);
|
||||
path = get_config_file_name ();
|
||||
|
||||
pathname = get_config_file_name ();
|
||||
|
||||
if (stat (pathname, &file_info))
|
||||
if (stat (path.c_str (), &file_info))
|
||||
{
|
||||
save_config_file ();
|
||||
}
|
||||
|
||||
if (!cf.LoadFile (pathname))
|
||||
if (!cf.LoadFile (path.c_str ()))
|
||||
return -1;
|
||||
|
||||
free (pathname);
|
||||
|
||||
std::string none;
|
||||
#define inbool(key, var) var = cf.GetBool (key)
|
||||
#define inint(key, var) var = cf.GetInt (key)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/extensions/Xrandr.h>
|
||||
#include <string>
|
||||
|
||||
#include "gtk_control.h"
|
||||
#include "filter/snes_ntsc.h"
|
||||
|
@ -164,7 +165,7 @@ class Snes9xConfig
|
|||
|
||||
};
|
||||
|
||||
char *get_config_dir ();
|
||||
char *get_config_file_name ();
|
||||
std::string get_config_dir ();
|
||||
std::string get_config_file_name ();
|
||||
|
||||
#endif /* __GTK_CONFIG_H */
|
||||
|
|
|
@ -136,14 +136,11 @@ const char *
|
|||
S9xGetDirectory (enum s9x_getdirtype dirtype)
|
||||
{
|
||||
static char path[PATH_MAX + 1];
|
||||
char *config_dir;
|
||||
|
||||
switch (dirtype)
|
||||
{
|
||||
case HOME_DIR:
|
||||
config_dir = get_config_dir ();
|
||||
strcpy (path, config_dir);
|
||||
free (config_dir);
|
||||
sstrncpy (path, get_config_dir ().c_str (), PATH_MAX + 1);
|
||||
break;
|
||||
|
||||
case SNAPSHOT_DIR:
|
||||
|
|
|
@ -57,23 +57,20 @@ static void toggled (GtkToggleButton *togglebutton, gpointer user_data)
|
|||
static void dialog_response (GtkDialog *pdialog, gint response_id, gpointer user_data)
|
||||
{
|
||||
std::vector<GLSLParam> * params = (std::vector<GLSLParam> *) user_data;
|
||||
char *config_dir;
|
||||
char *config_file;
|
||||
|
||||
switch (response_id)
|
||||
{
|
||||
case GTK_RESPONSE_OK:
|
||||
config_dir = get_config_dir();
|
||||
config_file = new char[strlen (config_dir) + 14];
|
||||
sprintf(config_file, "%s/snes9x.glslp", config_dir);
|
||||
delete[] config_dir;
|
||||
S9xDisplayGetDriver ()->save (config_file);
|
||||
realpath (config_file, gui_config->fragment_shader);
|
||||
{
|
||||
std::string config_file = get_config_dir() + "/snes9x.glslp";
|
||||
S9xDisplayGetDriver ()->save (config_file.c_str ());
|
||||
realpath (config_file.c_str (), gui_config->fragment_shader);
|
||||
|
||||
if (dialog)
|
||||
gtk_widget_destroy (GTK_WIDGET (dialog));
|
||||
dialog = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
case GTK_RESPONSE_DELETE_EVENT:
|
||||
|
|
Loading…
Reference in New Issue