| 481 purple_xfer_get_local_filename(dialog->selected_xfer), code); |
481 purple_xfer_get_local_filename(dialog->selected_xfer), code); |
| 482 } |
482 } |
| 483 #else |
483 #else |
| 484 const char *filename = purple_xfer_get_local_filename(dialog->selected_xfer); |
484 const char *filename = purple_xfer_get_local_filename(dialog->selected_xfer); |
| 485 char *command = NULL; |
485 char *command = NULL; |
| 486 char *tmp = NULL; |
|
| 487 GError *error = NULL; |
486 GError *error = NULL; |
| 488 |
487 |
| 489 if (purple_running_gnome()) |
488 if (purple_running_gnome()) |
| 490 { |
489 { |
| 491 char *escaped = g_shell_quote(filename); |
490 char *escaped = g_shell_quote(filename); |
| 513 if (purple_program_is_valid(command)) |
512 if (purple_program_is_valid(command)) |
| 514 { |
513 { |
| 515 gint exit_status; |
514 gint exit_status; |
| 516 if (!g_spawn_command_line_sync(command, NULL, NULL, &exit_status, &error)) |
515 if (!g_spawn_command_line_sync(command, NULL, NULL, &exit_status, &error)) |
| 517 { |
516 { |
| 518 tmp = g_strdup_printf(_("Error launching %s: %s"), |
517 gchar *tmp = g_strdup_printf(_("Error launching %s: %s"), |
| 519 purple_xfer_get_local_filename(dialog->selected_xfer), |
518 purple_xfer_get_local_filename(dialog->selected_xfer), |
| 520 error->message); |
519 error->message); |
| 521 purple_notify_error(dialog, NULL, _("Unable to open file."), tmp); |
520 purple_notify_error(dialog, NULL, _("Unable to open file."), tmp); |
| 522 g_free(tmp); |
521 g_free(tmp); |
| 523 g_error_free(error); |
522 g_error_free(error); |
| 524 } |
523 } |
| 525 if (exit_status != 0) |
524 if (exit_status != 0) |
| 526 { |
525 { |
| 527 char *primary = g_strdup_printf(_("Error running %s"), command); |
526 char *primary = g_strdup_printf(_("Error running %s"), command); |
| 528 char *secondary = g_strdup_printf(_("Process returned error code %d"), |
527 char *secondary = g_strdup_printf(_("Process returned error code %d"), |
| 529 exit_status); |
528 exit_status); |
| 530 purple_notify_error(dialog, NULL, primary, secondary); |
529 purple_notify_error(dialog, NULL, primary, secondary); |
| 531 g_free(tmp); |
|
| 532 } |
530 } |
| 533 } |
531 } |
| 534 #endif |
532 #endif |
| 535 } |
533 } |
| 536 |
534 |