...
 
Commits (9)
version 3.20.4
--------------
Bugs fixed:
* file-roller does not respect sort order for folders (Jan Achterhold) (#630543)
New or updated application translations:
* Vietnamese (Trần Ngọc Quân)
version 3.20.3
--------------
Bugs fixed:
* file-roller can delete the content of local folders upon extraction,
if archive contains symbolic links pointing to absolute paths (#698554)
New or updated application translations:
* Chinese (Hong Kong) (tomoe_musashi)
* Español; Castellano (Daniel Mustieles)
* Gujarati (વિશાલ ભલાણી)
* עברית (Yosef Or Boczko)
* Indonesian (Andika Triwidada)
* Tot En Òc (Cédric Valmary (totenoc.eu))
* Icelandic (Sveinn í Felli)
New or updated manual translations:
* Indonesian (Andika Triwidada)
version 3.20.2
--------------
......
......@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.68])
AC_INIT([file-roller],[3.20.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=file-roller],[file-roller])
AC_INIT([file-roller],[3.20.4],[http://bugzilla.gnome.org/enter_bug.cgi?product=file-roller],[file-roller])
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz tar-ustar])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
......@@ -46,6 +46,8 @@ AC_ARG_ENABLE(debug,
if test x$ENABLE_DEBUG = xyes; then
AC_DEFINE(DEBUG, 1, [enable compilation of debugging messages])
CFLAGS="$CFLAGS -g -O0 -DDEBUG"
else
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
fi
dnl ===========================================================================
......@@ -267,8 +269,6 @@ AC_ARG_ENABLE(deprecated,
[disable_deprecated=no])
if test "x$disable_deprecated" = "xyes"; then
DISABLE_DEPRECATED="-DGSEAL_ENABLE -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
else
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
fi
AC_SUBST(DISABLE_DEPRECATED)
......
This diff is collapsed.
......@@ -411,9 +411,8 @@ _g_file_remove_directory (GFile *directory,
return TRUE;
enumerator = g_file_enumerate_children (directory,
G_FILE_ATTRIBUTE_STANDARD_NAME ","
G_FILE_ATTRIBUTE_STANDARD_TYPE,
0,
G_FILE_ATTRIBUTE_STANDARD_NAME "," G_FILE_ATTRIBUTE_STANDARD_TYPE,
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
cancellable,
error);
......
......@@ -296,7 +296,7 @@ handle_method_call (GDBusConnection *connection,
g_signal_connect (window, "ready", G_CALLBACK (window_ready_cb), invocation);
fr_window_batch_new (FR_WINDOW (window), _("Extract archive"));
fr_window_batch__extract (FR_WINDOW (window), archive, destination);
fr_window_batch__extract (FR_WINDOW (window), archive, destination, use_progress_dialog);
fr_window_batch_append_action (FR_WINDOW (window), FR_BATCH_ACTION_QUIT, NULL, NULL);
fr_window_batch_start (FR_WINDOW (window));
......@@ -322,7 +322,7 @@ handle_method_call (GDBusConnection *connection,
g_signal_connect (window, "ready", G_CALLBACK (window_ready_cb), invocation);
fr_window_batch_new (FR_WINDOW (window), _("Extract archive"));
fr_window_batch__extract_here (FR_WINDOW (window), archive);
fr_window_batch__extract_here (FR_WINDOW (window), archive, use_progress_dialog);
fr_window_batch_append_action (FR_WINDOW (window), FR_BATCH_ACTION_QUIT, NULL, NULL);
fr_window_batch_start (FR_WINDOW (window));
......@@ -596,13 +596,16 @@ fr_application_command_line (GApplication *application,
fr_window_batch_new (FR_WINDOW (window), _("Extract archive"));
while ((archive = remaining_args[i++]) != NULL) {
GFile *file;
GFile *file;
gboolean last_archive;
file = g_application_command_line_create_file_for_arg (command_line, archive);
last_archive = (remaining_args[i] == NULL);
if (arg_extract_here == 1)
fr_window_batch__extract_here (FR_WINDOW (window), file);
fr_window_batch__extract_here (FR_WINDOW (window), file, arg_notify && last_archive);
else
fr_window_batch__extract (FR_WINDOW (window), file, extraction_destination);
fr_window_batch__extract (FR_WINDOW (window), file, extraction_destination, arg_notify && last_archive);
g_object_unref (file);
}
......
......@@ -321,7 +321,7 @@ _g_error_new_from_archive_error (const char *s)
char *msg;
GError *error;
msg = g_locale_to_utf8 (s, -1, NULL, NULL, NULL);
msg = (s != NULL) ? g_locale_to_utf8 (s, -1, NULL, NULL, NULL) : NULL;
if (msg == NULL)
msg = g_strdup ("Fatal error");
error = g_error_new_literal (FR_ERROR, FR_ERROR_COMMAND_ERROR, msg);
......
......@@ -5123,6 +5123,7 @@ size_column_sort_func (GtkTreeModel *model,
FileData *fdata2;
GtkSortType sort_order;
int result;
goffset size_difference;
gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model), NULL, &sort_order);
......@@ -5131,9 +5132,10 @@ size_column_sort_func (GtkTreeModel *model,
if (file_data_is_dir (fdata1) == file_data_is_dir (fdata2)) {
if (file_data_is_dir (fdata1))
result = fdata1->dir_size - fdata2->dir_size;
size_difference = fdata1->dir_size - fdata2->dir_size;
else
result = fdata1->size - fdata2->size;
size_difference = fdata1->size - fdata2->size;
result = (size_difference > 0) - (size_difference < 0);
}
else {
result = file_data_is_dir (fdata1) ? -1 : 1;
......@@ -6426,7 +6428,7 @@ extract_data_new (FrWindow *window,
ExtractData *edata;
edata = g_new0 (ExtractData, 1);
edata->window = window;
edata->window = _g_object_ref (window);
edata->file_list = _g_string_list_dup (file_list);
edata->destination = _g_object_ref (destination);
edata->skip_older = skip_older;
......@@ -6448,6 +6450,7 @@ extract_data_free (ExtractData *edata)
_g_string_list_free (edata->file_list);
_g_object_unref (edata->destination);
_g_object_unref (edata->window);
g_free (edata->base_dir);
g_free (edata);
......@@ -6591,6 +6594,29 @@ _fr_window_archive_extract_from_edata (FrWindow *window,
static void _fr_window_ask_overwrite_dialog (OverwriteData *odata);
static OverwriteData *
overwrite_data_new (FrWindow *window)
{
OverwriteData *odata;
odata = g_new0 (OverwriteData, 1);
odata->window = _g_object_ref (window);
odata->edata = NULL;
odata->current_file = NULL;
odata->extract_all = FALSE;
return odata;
}
static void
overwrite_data_free (OverwriteData *odata)
{
_g_object_unref (odata->window);
g_free (odata);
}
/* remove the file from the list to extract */
static void
overwrite_data_skip_current (OverwriteData *odata)
......@@ -6638,7 +6664,7 @@ overwrite_dialog_response_cb (GtkDialog *dialog,
if (do_not_extract) {
fr_window_batch_stop (odata->window);
g_free (odata);
overwrite_data_free (odata);
return;
}
......@@ -6769,7 +6795,7 @@ _fr_window_ask_overwrite_dialog (OverwriteData *odata)
fr_window_dnd_extraction_finished (odata->window, TRUE);
}
g_free (odata);
overwrite_data_free (odata);
}
......@@ -6897,8 +6923,7 @@ _fr_window_archive_extract_from_edata_maybe (FrWindow *window,
if (edata->overwrite == FR_OVERWRITE_ASK) {
OverwriteData *odata;
odata = g_new0 (OverwriteData, 1);
odata->window = window;
odata = overwrite_data_new (window);
odata->edata = edata;
odata->extract_all = (edata->file_list == NULL) || (g_list_length (edata->file_list) == window->archive->files->len);
if (edata->file_list == NULL)
......@@ -9785,7 +9810,8 @@ fr_window_batch_get_title (FrWindow *window)
void
fr_window_batch__extract_here (FrWindow *window,
GFile *archive)
GFile *archive,
gboolean ask_to_open_destination)
{
g_return_if_fail (window != NULL);
g_return_if_fail (archive != NULL);
......@@ -9803,7 +9829,7 @@ fr_window_batch__extract_here (FrWindow *window,
FALSE,
FR_OVERWRITE_ASK,
FALSE,
_fr_window_get_ask_to_open_destination (window),
ask_to_open_destination,
TRUE),
(GFreeFunc) extract_data_free);
fr_window_batch_append_action (window,
......@@ -9816,7 +9842,8 @@ fr_window_batch__extract_here (FrWindow *window,
void
fr_window_batch__extract (FrWindow *window,
GFile *archive,
GFile *destination)
GFile *destination,
gboolean ask_to_open_destination)
{
g_return_if_fail (window != NULL);
g_return_if_fail (archive != NULL);
......@@ -9835,7 +9862,7 @@ fr_window_batch__extract (FrWindow *window,
FALSE,
FR_OVERWRITE_ASK,
FALSE,
_fr_window_get_ask_to_open_destination (window),
ask_to_open_destination,
FALSE),
(GFreeFunc) extract_data_free);
else
......
......@@ -306,10 +306,12 @@ void fr_window_batch_resume (FrWindow *window);
gboolean fr_window_is_batch_mode (FrWindow *window);
void fr_window_batch__extract (FrWindow *window,
GFile *archive,
GFile *destination);
GFile *destination,
gboolean ask_to_open_destination);
void fr_window_batch__extract_here (FrWindow *window,
GFile *archive);
void fr_window_batch__add_files (FrWindow *window,
GFile *archive,
gboolean ask_to_open_destination);
void fr_window_batch__add_files (FrWindow *window,
GFile *archive,
GList *file_list);
void fr_window_destroy_with_error_dialog (FrWindow *window);
......