7zip: ask password if the command returns with status 255 see https://github.com/GNOME/file-roller/commit/844f6fbbef2a616f4bf1eb877710f55bced71d62 diff --git a/src/fr-command-7z.c b/src/fr-command-7z.c index 87e247b3..a3b6b2f2 100644 --- a/src/fr-command-7z.c +++ b/src/fr-command-7z.c @@ -556,6 +556,9 @@ fr_command_7z_handle_error (FrCommand *command, /* ignore warnings */ fr_error_clear_gerror (error); } + if (error->status == 255) { + fr_error_take_gerror (error, g_error_new_literal (FR_ERROR, FR_ERROR_ASK_PASSWORD, "")); + } else { GList *scan; diff --git a/src/fr-process.c b/src/fr-process.c index d81768cc..6523247a 100644 --- a/src/fr-process.c +++ b/src/fr-process.c @@ -838,7 +838,7 @@ check_child (gpointer data) { GList *scan; - g_print ("** ERROR **\n"); + g_print ("** ERROR [1] **\n"); g_print ("%s\n", exec_data->error->gerror->message); for (scan = process->err.raw; scan; scan = scan->next) g_print ("%s\n", (char *)scan->data); @@ -849,10 +849,11 @@ check_child (gpointer data) } else if (exec_data->error == NULL) { if (WIFEXITED (status)) { - if (WEXITSTATUS (status) == 255) { + /*if (WEXITSTATUS (status) == 255) { exec_data->error = fr_error_new (FR_ERROR_COMMAND_NOT_FOUND, 0, NULL); } - else if (WEXITSTATUS (status) != 0) { + else*/ + if (WEXITSTATUS (status) != 0) { exec_data->error = fr_error_new (FR_ERROR_COMMAND_ERROR, WEXITSTATUS (status), NULL); } } @@ -903,7 +904,7 @@ check_child (gpointer data) { GList *scan; - g_print ("** ERROR **\n"); + g_print ("** ERROR [2] : (status: %d) (type: %d) **\n", exec_data->error->status, exec_data->error->type); for (scan = process->err.raw; scan; scan = scan->next) g_print ("%s\n", (char *)scan->data); } diff --git a/src/fr-window.c b/src/fr-window.c index 65d7bbe2..3dd7ae90 100644 --- a/src/fr-window.c +++ b/src/fr-window.c @@ -2882,6 +2882,7 @@ _handle_archive_operation_error (FrWindow *window, details = _("Command not found."); break; case FR_ERROR_EXITED_ABNORMALLY: + case FR_ERROR_COMMAND_ERROR: details = _("Command exited abnormally."); break; case FR_ERROR_SPAWN: