Commit 4ec193c8b43404ce9fc1f16e90f81b86a150ad5c
1 parent
3f0a2779
Exists in
master
and in
4 other branches
Fixing command line arguments.
Showing
1 changed file
with
28 additions
and
11 deletions
Show diff stats
src/objects/window/terminal.c
@@ -243,11 +243,12 @@ | @@ -243,11 +243,12 @@ | ||
243 | 243 | ||
244 | static void save_settings(GtkWidget *terminal, struct SessionDescriptor * session) { | 244 | static void save_settings(GtkWidget *terminal, struct SessionDescriptor * session) { |
245 | 245 | ||
246 | - debug("************************************* %s",__FUNCTION__); | 246 | + session->changed = FALSE; |
247 | + | ||
247 | v3270_to_key_file(terminal,session->key_file,"terminal"); | 248 | v3270_to_key_file(terminal,session->key_file,"terminal"); |
248 | v3270_accelerator_map_to_key_file(terminal, session->key_file, "accelerators"); | 249 | v3270_accelerator_map_to_key_file(terminal, session->key_file, "accelerators"); |
249 | 250 | ||
250 | - session->changed = TRUE; | 251 | + g_key_file_save_to_file(session->key_file,session->filename,NULL); |
251 | 252 | ||
252 | } | 253 | } |
253 | 254 | ||
@@ -263,7 +264,8 @@ | @@ -263,7 +264,8 @@ | ||
263 | 264 | ||
264 | if(session->changed) { | 265 | if(session->changed) { |
265 | g_message("Saving file %s",session->filename); | 266 | g_message("Saving file %s",session->filename); |
266 | - g_key_file_save_to_file(session->key_file,session->filename,NULL); | 267 | + g_key_file_save_to_file(session->key_file,session->filename,NULL); |
268 | + session->changed = FALSE; | ||
267 | } else { | 269 | } else { |
268 | g_message("Closing file %s",session->filename); | 270 | g_message("Closing file %s",session->filename); |
269 | } | 271 | } |
@@ -358,15 +360,25 @@ | @@ -358,15 +360,25 @@ | ||
358 | 360 | ||
359 | g_return_val_if_fail(PW3270_IS_APPLICATION_WINDOW(widget),-1); | 361 | g_return_val_if_fail(PW3270_IS_APPLICATION_WINDOW(widget),-1); |
360 | 362 | ||
361 | - pw3270ApplicationWindow * window = PW3270_APPLICATION_WINDOW(widget); | ||
362 | - GtkWidget * terminal = v3270_new(); | 363 | + g_autofree gchar *path = g_file_get_path(file); |
364 | + debug("Path: \"%s\"",path); | ||
365 | + | ||
366 | + if(path) { | ||
367 | + | ||
368 | + // It's a session file | ||
369 | + pw3270_terminal_new(widget, path); | ||
370 | + return 0; | ||
371 | + | ||
372 | + } | ||
363 | 373 | ||
364 | - // Identify argument. | ||
365 | g_autofree gchar * scheme = g_file_get_uri_scheme(file); | 374 | g_autofree gchar * scheme = g_file_get_uri_scheme(file); |
366 | 375 | ||
367 | if(!(g_ascii_strcasecmp(scheme,"tn3270") && g_ascii_strcasecmp(scheme,"tn3270s"))) { | 376 | if(!(g_ascii_strcasecmp(scheme,"tn3270") && g_ascii_strcasecmp(scheme,"tn3270s"))) { |
368 | 377 | ||
369 | - // Is a 3270 URL. | 378 | + // It's a TN3270 URL. |
379 | + | ||
380 | + GtkWidget * terminal = v3270_new(); | ||
381 | + | ||
370 | g_autofree gchar * uri = g_file_get_uri(file); | 382 | g_autofree gchar * uri = g_file_get_uri(file); |
371 | size_t sz = strlen(uri); | 383 | size_t sz = strlen(uri); |
372 | 384 | ||
@@ -374,14 +386,19 @@ | @@ -374,14 +386,19 @@ | ||
374 | uri[sz-1] = 0; | 386 | uri[sz-1] = 0; |
375 | 387 | ||
376 | v3270_set_url(terminal,uri); | 388 | v3270_set_url(terminal,uri); |
389 | + append_terminal_page(PW3270_APPLICATION_WINDOW(widget), terminal); | ||
390 | + return 0; | ||
377 | 391 | ||
378 | - } else { | ||
379 | - | ||
380 | - g_message("Unexpected URI scheme: \"%s\"",scheme); | 392 | + } |
381 | 393 | ||
394 | + // Create a default window. | ||
395 | + { | ||
396 | + GtkWidget * terminal = v3270_new(); | ||
397 | + g_warning("Unexpected session URL, creating a default window"); | ||
398 | + append_terminal_page(PW3270_APPLICATION_WINDOW(widget), terminal); | ||
382 | } | 399 | } |
383 | 400 | ||
384 | - return append_terminal_page(window, terminal); | 401 | + return -1; |
385 | 402 | ||
386 | } | 403 | } |
387 | 404 |