Commit 4ec193c8b43404ce9fc1f16e90f81b86a150ad5c

Authored by Perry Werneck
1 parent 3f0a2779

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 243  
244 244 static void save_settings(GtkWidget *terminal, struct SessionDescriptor * session) {
245 245  
246   - debug("************************************* %s",__FUNCTION__);
  246 + session->changed = FALSE;
  247 +
247 248 v3270_to_key_file(terminal,session->key_file,"terminal");
248 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 264  
264 265 if(session->changed) {
265 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 269 } else {
268 270 g_message("Closing file %s",session->filename);
269 271 }
... ... @@ -358,15 +360,25 @@
358 360  
359 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 374 g_autofree gchar * scheme = g_file_get_uri_scheme(file);
366 375  
367 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 382 g_autofree gchar * uri = g_file_get_uri(file);
371 383 size_t sz = strlen(uri);
372 384  
... ... @@ -374,14 +386,19 @@
374 386 uri[sz-1] = 0;
375 387  
376 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  
... ...