Commit c49d24973fd98debb0d2c8c16c80f03447b7397d
1 parent
d1aa6aa6
Exists in
master
and in
2 other branches
Changing the default path of the session files to 'document' folder.
Showing
3 changed files
with
21 additions
and
11 deletions
Show diff stats
src/include/v3270/keyfile.h
@@ -43,6 +43,7 @@ | @@ -43,6 +43,7 @@ | ||
43 | typedef struct _V3270KeyFile V3270KeyFile; | 43 | typedef struct _V3270KeyFile V3270KeyFile; |
44 | 44 | ||
45 | gchar * v3270_keyfile_get_default_filename(void); | 45 | gchar * v3270_keyfile_get_default_filename(void); |
46 | + gchar * v3270_key_file_get_default_path(GtkWidget *terminal, gboolean create); | ||
46 | 47 | ||
47 | V3270KeyFile * v3270_key_file_open(GtkWidget *terminal, const gchar *name, GError **error); | 48 | V3270KeyFile * v3270_key_file_open(GtkWidget *terminal, const gchar *name, GError **error); |
48 | void v3270_key_file_close(GtkWidget *terminal); | 49 | void v3270_key_file_close(GtkWidget *terminal); |
src/objects/os/linux/savedesktopicon.c
@@ -197,7 +197,10 @@ X-Desktop-File-Install-Version=0.23 | @@ -197,7 +197,10 @@ X-Desktop-File-Install-Version=0.23 | ||
197 | return dialog; | 197 | return dialog; |
198 | } | 198 | } |
199 | 199 | ||
200 | - static gchar * get_filename(GtkWidget *terminal) { | 200 | + static gchar * get_filename(GtkWidget *terminal, const gchar *session_name) { |
201 | + | ||
202 | + if(!(session_name && *session_name)) | ||
203 | + session_name = G_STRINGIFY(PRODUCT_NAME); | ||
201 | 204 | ||
202 | g_autofree gchar * defname = v3270_keyfile_get_default_filename(); | 205 | g_autofree gchar * defname = v3270_keyfile_get_default_filename(); |
203 | const gchar * current = v3270_key_file_get_filename(terminal); | 206 | const gchar * current = v3270_key_file_get_filename(terminal); |
@@ -208,8 +211,7 @@ X-Desktop-File-Install-Version=0.23 | @@ -208,8 +211,7 @@ X-Desktop-File-Install-Version=0.23 | ||
208 | } | 211 | } |
209 | 212 | ||
210 | // It's the default one, create a new one on the user_config dir | 213 | // It's the default one, create a new one on the user_config dir |
211 | - g_autofree gchar * config_path = g_build_filename(g_get_user_config_dir(),G_STRINGIFY(PRODUCT_NAME),NULL); | ||
212 | - g_mkdir_with_parents(config_path,0644); | 214 | + g_autofree gchar * config_path = v3270_key_file_get_default_path(terminal,TRUE); |
213 | 215 | ||
214 | // Use the hostname | 216 | // Use the hostname |
215 | const char * hostname = lib3270_host_get_name(v3270_get_session(terminal)); | 217 | const char * hostname = lib3270_host_get_name(v3270_get_session(terminal)); |
@@ -218,12 +220,12 @@ X-Desktop-File-Install-Version=0.23 | @@ -218,12 +220,12 @@ X-Desktop-File-Install-Version=0.23 | ||
218 | } | 220 | } |
219 | 221 | ||
220 | // Build the filename | 222 | // Build the filename |
221 | - gchar *filename = g_strconcat(config_path,G_DIR_SEPARATOR_S,hostname,".3270",NULL); | 223 | + gchar *filename = g_strconcat(config_path,G_DIR_SEPARATOR_S,hostname,".",session_name,".3270",NULL); |
222 | 224 | ||
223 | unsigned int index = 0; | 225 | unsigned int index = 0; |
224 | while(g_file_test(filename,G_FILE_TEST_EXISTS)) { | 226 | while(g_file_test(filename,G_FILE_TEST_EXISTS)) { |
225 | g_free(filename); | 227 | g_free(filename); |
226 | - filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s.%u.3270",config_path,hostname,++index); | 228 | + filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s.%s.%u.3270",config_path,hostname,session_name,++index); |
227 | } | 229 | } |
228 | 230 | ||
229 | v3270_key_file_save_to_file(terminal,filename); | 231 | v3270_key_file_save_to_file(terminal,filename); |
@@ -274,7 +276,7 @@ X-Desktop-File-Install-Version=0.23 | @@ -274,7 +276,7 @@ X-Desktop-File-Install-Version=0.23 | ||
274 | } | 276 | } |
275 | 277 | ||
276 | // Get session filename | 278 | // Get session filename |
277 | - g_autofree gchar * filename = get_filename(terminal); | 279 | + g_autofree gchar * filename = get_filename(terminal,NULL); |
278 | 280 | ||
279 | // Get program file name | 281 | // Get program file name |
280 | // https://stackoverflow.com/questions/4517425/how-to-get-program-path | 282 | // https://stackoverflow.com/questions/4517425/how-to-get-program-path |
src/objects/window/keyfile.c
@@ -222,12 +222,12 @@ void v3270_key_file_close(GtkWidget *terminal) { | @@ -222,12 +222,12 @@ void v3270_key_file_close(GtkWidget *terminal) { | ||
222 | } | 222 | } |
223 | 223 | ||
224 | /// @brief Search standard paths. | 224 | /// @brief Search standard paths. |
225 | - static gchar * v3270_get_configuration_folder(GtkWidget *terminal) { | 225 | + gchar * v3270_key_file_get_default_path(GtkWidget *terminal, gboolean create) { |
226 | 226 | ||
227 | size_t folder; | 227 | size_t folder; |
228 | const gchar *folders[] = { | 228 | const gchar *folders[] = { |
229 | - g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS), | ||
230 | g_get_user_data_dir(), | 229 | g_get_user_data_dir(), |
230 | + g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS), | ||
231 | g_get_user_special_dir(G_USER_DIRECTORY_DESKTOP) | 231 | g_get_user_special_dir(G_USER_DIRECTORY_DESKTOP) |
232 | }; | 232 | }; |
233 | 233 | ||
@@ -270,9 +270,16 @@ void v3270_key_file_close(GtkWidget *terminal) { | @@ -270,9 +270,16 @@ void v3270_key_file_close(GtkWidget *terminal) { | ||
270 | return g_path_get_dirname(filename); | 270 | return g_path_get_dirname(filename); |
271 | } | 271 | } |
272 | 272 | ||
273 | - debug("%s: Using standard documents folder",__FUNCTION__); | ||
274 | - return g_strdup(g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS)); | 273 | + if(!create) { |
274 | + return g_strdup(g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS)); | ||
275 | + } | ||
275 | 276 | ||
277 | + // Create folder. | ||
278 | + { | ||
279 | + gchar * default_dir = g_build_filename(g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS),G_STRINGIFY(PRODUCT_NAME),NULL); | ||
280 | + g_mkdir_with_parents(default_dir,0775); | ||
281 | + return default_dir; | ||
282 | + } | ||
276 | } | 283 | } |
277 | 284 | ||
278 | gchar * v3270_keyfile_get_default_filename(void) { | 285 | gchar * v3270_keyfile_get_default_filename(void) { |
@@ -294,7 +301,7 @@ void v3270_key_file_close(GtkWidget *terminal) { | @@ -294,7 +301,7 @@ void v3270_key_file_close(GtkWidget *terminal) { | ||
294 | } | 301 | } |
295 | 302 | ||
296 | debug("\n\n\n%s",__FUNCTION__); | 303 | debug("\n\n\n%s",__FUNCTION__); |
297 | - g_autofree gchar * folder = v3270_get_configuration_folder(terminal); | 304 | + g_autofree gchar * folder = v3270_key_file_get_default_path(terminal,FALSE); |
298 | 305 | ||
299 | const char * hostname = lib3270_host_get_name(v3270_get_session(terminal)); | 306 | const char * hostname = lib3270_host_get_name(v3270_get_session(terminal)); |
300 | debug("Hostname=\"%s\"",hostname); | 307 | debug("Hostname=\"%s\"",hostname); |