From 863c026ce0bf678227871989bbb203ae9c1a0f41 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 3 Oct 2007 21:02:30 +0000 Subject: [PATCH] minor little futzing --- gtk/conf.c | 28 +++++++++++----------------- gtk/conf.h | 16 ++++++++-------- gtk/util.c | 45 +++++++++++++++++++++++++-------------------- 3 files changed, 44 insertions(+), 45 deletions(-) diff --git a/gtk/conf.c b/gtk/conf.c index 292f2f094..1213ecd1d 100644 --- a/gtk/conf.c +++ b/gtk/conf.c @@ -46,16 +46,11 @@ #define CONF_SUBDIR "gtk" #define FILE_LOCK "lock" #define FILE_SOCKET "socket" -#define FILE_PREFS "prefs" -#define FILE_PREFS_TMP "prefs.tmp" #define FILE_STATE "state" #define FILE_STATE_TMP "state.tmp" #define OLD_FILE_LOCK "gtk_lock" /* remove this after next release */ -#define OLD_FILE_PREFS "gtk_prefs" #define OLD_FILE_STATE "gtk_state" -#define PREF_SEP_KEYVAL '\t' #define PREF_SEP_LINE '\n' -#define STATE_SEP '\n' static int lockfile(const char *file, char **errstr); @@ -212,8 +207,7 @@ cf_readfile(const char *file, const char *oldfile, gsize *len, done: g_free (path); - if(NULL != err) - g_error_free(err); + g_clear_error( &err ); if(NULL != io) g_io_channel_unref(io); return ret; @@ -223,7 +217,7 @@ cf_readfile(const char *file, const char *oldfile, gsize *len, *** Prefs Files **/ -#define DEFAULT_GROUP "general" +#define GROUP "general" static char* getPrefsFilename( void ) @@ -251,51 +245,51 @@ getPrefsKeyFile( void ) int pref_int_get( const char * key ) { - return g_key_file_get_integer( getPrefsKeyFile( ), DEFAULT_GROUP, key, NULL ); + return g_key_file_get_integer( getPrefsKeyFile( ), GROUP, key, NULL ); } void pref_int_set( const char * key, int value ) { - g_key_file_set_integer( getPrefsKeyFile( ), DEFAULT_GROUP, key, value ); + g_key_file_set_integer( getPrefsKeyFile( ), GROUP, key, value ); } void pref_int_set_default( const char * key, int value ) { - if( !g_key_file_has_key( getPrefsKeyFile( ), DEFAULT_GROUP, key, NULL ) ) + if( !g_key_file_has_key( getPrefsKeyFile( ), GROUP, key, NULL ) ) pref_int_set( key, value ); } gboolean pref_flag_get ( const char * key ) { - return g_key_file_get_boolean( getPrefsKeyFile( ), DEFAULT_GROUP, key, NULL ); + return g_key_file_get_boolean( getPrefsKeyFile( ), GROUP, key, NULL ); } void pref_flag_set( const char * key, gboolean value ) { - g_key_file_set_boolean( getPrefsKeyFile( ), DEFAULT_GROUP, key, value ); + g_key_file_set_boolean( getPrefsKeyFile( ), GROUP, key, value ); } void pref_flag_set_default( const char * key, gboolean value ) { - if( !g_key_file_has_key( getPrefsKeyFile( ), DEFAULT_GROUP, key, NULL ) ) + if( !g_key_file_has_key( getPrefsKeyFile( ), GROUP, key, NULL ) ) pref_flag_set( key, value ); } char* pref_string_get( const char * key ) { - return g_key_file_get_string( getPrefsKeyFile( ), DEFAULT_GROUP, key, NULL ); + return g_key_file_get_string( getPrefsKeyFile( ), GROUP, key, NULL ); } void pref_string_set( const char * key, const char * value ) { - g_key_file_set_string( getPrefsKeyFile( ), DEFAULT_GROUP, key, value ); + g_key_file_set_string( getPrefsKeyFile( ), GROUP, key, value ); } void pref_string_set_default( const char * key, const char * value ) { - if( !g_key_file_has_key( getPrefsKeyFile( ), DEFAULT_GROUP, key, NULL ) ) + if( !g_key_file_has_key( getPrefsKeyFile( ), GROUP, key, NULL ) ) pref_string_set( key, value ); } diff --git a/gtk/conf.h b/gtk/conf.h index 2f7b79602..6c80b8ec5 100644 --- a/gtk/conf.h +++ b/gtk/conf.h @@ -31,17 +31,17 @@ int pref_int_get ( const char * key ); void pref_int_set ( const char * key, int value ); -void pref_int_set_default ( const char * key, int default_value ); +void pref_int_set_default ( const char * key, int value ); -gboolean pref_flag_get ( const char * key ); -void pref_flag_set ( const char * key, gboolean value ); -void pref_flag_set_default ( const char * key, gboolean default_value ); +gboolean pref_flag_get ( const char * key ); +void pref_flag_set ( const char * key, gboolean value ); +void pref_flag_set_default ( const char * key, gboolean value ); -char* pref_string_get ( const char * key ); -void pref_string_set ( const char * key, const char * value ); -void pref_string_set_default ( const char * key, const char * default_value ); +char* pref_string_get ( const char * key ); +void pref_string_set ( const char * key, const char * value ); +void pref_string_set_default ( const char * key, const char * value ); -void pref_save ( char **errstr ); +void pref_save ( char **errstr ); /** *** diff --git a/gtk/util.c b/gtk/util.c index 9f9e34589..fe147d7b3 100644 --- a/gtk/util.c +++ b/gtk/util.c @@ -135,29 +135,34 @@ ratiostr(guint64 down, guint64 up) { } gboolean -mkdir_p(const char *name, mode_t mode) { - struct stat sb; - char *parent; - gboolean ret; - int oerrno; +mkdir_p(const char *name, mode_t mode) +{ +#if GLIB_CHECK_VERSION(2,8,0) + return !g_mkdir_with_parents( name, mode ); +#else + struct stat sb; + char *parent; + gboolean ret; + int oerrno; - if(0 != stat(name, &sb)) { - if(ENOENT != errno) + if(0 != stat(name, &sb)) { + if(ENOENT != errno) + return FALSE; + parent = g_path_get_dirname(name); + ret = mkdir_p(parent, mode); + oerrno = errno; + g_free(parent); + errno = oerrno; + return (ret ? (0 == mkdir(name, mode)) : FALSE); + } + + if(!S_ISDIR(sb.st_mode)) { + errno = ENOTDIR; return FALSE; - parent = g_path_get_dirname(name); - ret = mkdir_p(parent, mode); - oerrno = errno; - g_free(parent); - errno = oerrno; - return (ret ? (0 == mkdir(name, mode)) : FALSE); - } + } - if(!S_ISDIR(sb.st_mode)) { - errno = ENOTDIR; - return FALSE; - } - - return TRUE; + return TRUE; +#endif } GList *