void-packages/srcpkgs/file-roller/patches/fix-7zip-asking-password.patch

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: