66 lines
2.2 KiB
Diff
66 lines
2.2 KiB
Diff
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:
|