diff options
Diffstat (limited to 'source/ap/mc')
-rw-r--r-- | source/ap/mc/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff | 87 | ||||
-rw-r--r-- | source/ap/mc/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff | 66 | ||||
-rwxr-xr-x | source/ap/mc/mc.SlackBuild | 11 | ||||
-rw-r--r-- | source/ap/mc/mc.image.sh.geeqie.diff | 18 | ||||
-rw-r--r-- | source/ap/mc/mc.save.file.diff | 37 |
5 files changed, 169 insertions, 50 deletions
diff --git a/source/ap/mc/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff b/source/ap/mc/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff new file mode 100644 index 000000000..080d6276f --- /dev/null +++ b/source/ap/mc/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff @@ -0,0 +1,87 @@ +Index: doc/man/mc.1.in
+===================================================================
+--- doc/man/mc.1.in (revision 6da546bcf3a09b7710bc3b69d38e736e3273c34b)
++++ doc/man/mc.1.in (revision 446748619b5cb77ea63360a81bb16cd2dd2caff7)
+@@ -173,9 +173,10 @@
+ .PP
+ If both paths are specified, the first path name is the directory to show
+-in the left panel; the second path name is the directory to be shown in
+-the right panel.
++in the active panel; the second path name is the directory to be shown in
++the other panel.
+ .PP
+ If one path is specified, the path name is the directory to show
+-in the active panel; current directory is shown in the passive panel.
++in the active panel; value of "other_dir" from panels.ini is the directory
++to be shown in the passive panel.
+ .PP
+ If no paths are specified, current directory is shown in the active panel;
+Index: doc/man/ru/mc.1.in
+===================================================================
+--- doc/man/ru/mc.1.in (revision 6da546bcf3a09b7710bc3b69d38e736e3273c34b)
++++ doc/man/ru/mc.1.in (revision 446748619b5cb77ea63360a81bb16cd2dd2caff7)
+@@ -150,11 +150,12 @@
+ .PP
+ Если в командной строке указаны два каталога, первый будет отображаться
+-в левой панели, второй \- в правой.
++в активной панели, второй \- в другой панели.
+ .PP
+ Если указан только один каталог, он будет отображён в активной панели,
+-во второй панели будет отображён текущий каталог.
++во второй панели будет отображён каталог, указанный в параметре "other_dir"
++в файле panels.ini.
+ .PP
+ Если каталоги не указаны, в активной панели будет отображён текущий каталог,
+-а во второй панели \- каталог, указанный в параметре "other_dir" в файла panels.ini.
++а во второй панели \- каталог, указанный в параметре "other_dir" в файле panels.ini.
+ .\"NODE "Overview"
+ .SH "Главное окно программы"
+Index: src/filemanager/midnight.c
+===================================================================
+--- src/filemanager/midnight.c (revision b451e8d13ddf89f1b1a00b1c2f240e4deaf8abe7)
++++ src/filemanager/midnight.c (revision 446748619b5cb77ea63360a81bb16cd2dd2caff7)
+@@ -585,13 +585,13 @@
+ * 'mc' (no arguments): mc_run_param0 == NULL, mc_run_param1 == NULL
+ * active panel uses current directory
+- * passive panel uses "other_dir" from ini
++ * passive panel uses "other_dir" from panels.ini
+ *
+ * 'mc dir1 dir2' (two arguments): mc_run_param0 != NULL, mc_run_param1 != NULL
+- * left panel uses mc_run_param0
+- * right panel uses mc_run_param1
++ * active panel uses mc_run_param0
++ * passive panel uses mc_run_param1
+ *
+ * 'mc dir1' (single argument): mc_run_param0 != NULL, mc_run_param1 == NULL
+- * active panel uses current directory
+- * passive panel uses mc_run_param0
++ * active panel uses mc_run_param0
++ * passive panel uses "other_dir" from panels.ini
+ */
+
+@@ -620,6 +620,6 @@
+ {
+ /* one argument */
+- current_dir = NULL; /* assume current dir */
+- other_dir = (char *) mc_run_param0;
++ current_dir = (char *) mc_run_param0;
++ other_dir = saved_other_dir; /* from ini */
+ }
+ }
+@@ -641,12 +641,12 @@
+ {
+ /* two arguments */
+- current_dir = mc_run_param1;
+- other_dir = (char *) mc_run_param0;
++ current_dir = (char *) mc_run_param0;
++ other_dir = mc_run_param1;
+ }
+ else /* mc_run_param0 != NULL && mc_run_param1 == NULL */
+ {
+ /* one argument */
+- current_dir = NULL; /* assume current dir */ ;
+- other_dir = (char *) mc_run_param0;
++ current_dir = (char *) mc_run_param0;
++ other_dir = saved_other_dir; /* from ini */
+ }
+ }
diff --git a/source/ap/mc/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff b/source/ap/mc/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff new file mode 100644 index 000000000..bfb33b5c1 --- /dev/null +++ b/source/ap/mc/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff @@ -0,0 +1,66 @@ +Index: src/filemanager/file.c
+===================================================================
+--- src/filemanager/file.c (revision 0fe4734fd6efb169a4057b84a44c223108b957cb)
++++ src/filemanager/file.c (revision 54a5139eec69438f8771ffddcff96a2e72a197ff)
+@@ -1273,6 +1273,6 @@
+ /** Initialize variables for progress bars */
+ static FileProgressStatus
+-panel_operate_init_totals (FileOperation operation, const WPanel * panel, const char *source,
+- FileOpContext * ctx, filegui_dialog_type_t dialog_type)
++panel_operate_init_totals (const WPanel * panel, const char *source, FileOpContext * ctx,
++ filegui_dialog_type_t dialog_type)
+ {
+ FileProgressStatus status;
+@@ -1283,5 +1283,5 @@
+ #endif
+
+- if (operation != OP_MOVE && verbose && file_op_compute_totals)
++ if (verbose && file_op_compute_totals)
+ {
+ ComputeDirSizeUI *ui;
+@@ -2379,11 +2379,4 @@
+ if (ctx->erase_at_end)
+ {
+- /* remove files after move */
+- if (erase_list != NULL)
+- {
+- file_op_context_destroy_ui (ctx);
+- file_op_context_create_ui (ctx, FALSE, FILEGUI_DIALOG_DELETE_ITEM);
+- }
+-
+ while (erase_list != NULL && return_status != FILE_ABORT)
+ {
+@@ -2793,12 +2786,10 @@
+ if (operation == OP_DELETE)
+ dialog_type = FILEGUI_DIALOG_DELETE_ITEM;
++ else if (single_entry && S_ISDIR (selection (panel)->st.st_mode))
++ dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
++ else if (single_entry || force_single)
++ dialog_type = FILEGUI_DIALOG_ONE_ITEM;
+ else
+- {
+- dialog_type = ((operation != OP_COPY) || single_entry || force_single)
+- ? FILEGUI_DIALOG_ONE_ITEM : FILEGUI_DIALOG_MULTI_ITEM;
+-
+- if (single_entry && (operation == OP_COPY) && S_ISDIR (selection (panel)->st.st_mode))
+- dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
+- }
++ dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
+ }
+
+@@ -2845,6 +2836,6 @@
+ source_with_vpath = vfs_path_append_new (panel->cwd_vpath, source, (char *) NULL);
+ #endif /* WITH_FULL_PATHS */
+- if (panel_operate_init_totals
+- (operation, panel, vfs_path_as_str (source_with_vpath), ctx, dialog_type) == FILE_CONT)
++ if (panel_operate_init_totals (panel, vfs_path_as_str (source_with_vpath), ctx, dialog_type)
++ == FILE_CONT)
+ {
+ if (operation == OP_DELETE)
+@@ -2937,5 +2928,5 @@
+ }
+
+- if (panel_operate_init_totals (operation, panel, NULL, ctx, dialog_type) == FILE_CONT)
++ if (panel_operate_init_totals (panel, NULL, ctx, dialog_type) == FILE_CONT)
+ {
+ /* Loop for every file, perform the actual copy operation */
diff --git a/source/ap/mc/mc.SlackBuild b/source/ap/mc/mc.SlackBuild index 21d997db6..bb78ba596 100755 --- a/source/ap/mc/mc.SlackBuild +++ b/source/ap/mc/mc.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -64,12 +64,15 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; -# Fix tmp path for saving files: -zcat $CWD/mc.save.file.diff.gz | patch -p1 --verbose || exit 1 - # Use geeqie instead of gqview as an external image viewer: zcat $CWD/mc.image.sh.geeqie.diff.gz | patch -p1 --verbose || exit 1 +# Upstream bugfix for crash moving directories: +zcat $CWD/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff.gz | patch -p0 --verbose || exit 1 + +# Upstream fix for cmdline directory handling: +zcat $CWD/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff.gz | patch -p0 --verbose || exit 1 + if [ ! -x ./configure ]; then ./autogen.sh fi diff --git a/source/ap/mc/mc.image.sh.geeqie.diff b/source/ap/mc/mc.image.sh.geeqie.diff index 413807e92..8a7fe1c56 100644 --- a/source/ap/mc/mc.image.sh.geeqie.diff +++ b/source/ap/mc/mc.image.sh.geeqie.diff @@ -1,11 +1,11 @@ ---- ./misc/ext.d/image.sh.orig 2012-07-18 04:30:23.000000000 -0500 -+++ ./misc/ext.d/image.sh 2012-09-08 14:39:11.998159169 -0500 -@@ -36,7 +36,7 @@ - if [ "$DISPLAY" = "" ]; then - zgv "${MC_EXT_FILENAME}" - else +--- ./misc/ext.d/image.sh.orig 2013-05-29 01:53:42.379848005 -0500 ++++ ./misc/ext.d/image.sh 2013-05-29 01:54:54.639853218 -0500 +@@ -39,7 +39,7 @@ + ;; + *) + if [ -n "$DISPLAY" ]; then - (gqview "${MC_EXT_FILENAME}" &) + (geeqie "${MC_EXT_FILENAME}" &) - fi - ;; - esac + elif see >/dev/null 2>&1; then + (see "${MC_EXT_FILENAME}" &) + else diff --git a/source/ap/mc/mc.save.file.diff b/source/ap/mc/mc.save.file.diff deleted file mode 100644 index f54748c1b..000000000 --- a/source/ap/mc/mc.save.file.diff +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/src/editor/editcmd.c b/src/editor/editcmd.c -index 2261aaa..536ac7e 100644 ---- a/src/editor/editcmd.c -+++ b/src/editor/editcmd.c -@@ -222,7 +222,8 @@ edit_save_file (WEdit * edit, const vfs_path_t * filename_vpath) - if (savedir == NULL) - savedir = g_strdup ("."); - -- saveprefix = mc_build_filename (savedir, "cooledit", NULL); -+ /* Token-related function never return leading slash, so we need add it manually */ -+ saveprefix = mc_build_filename ("/", savedir, "cooledit", NULL); - g_free (savedir); - fd = mc_mkstemps (&savename_vpath, saveprefix, NULL); - g_free (saveprefix); -@@ -365,13 +366,21 @@ edit_save_file (WEdit * edit, const vfs_path_t * filename_vpath) - - if (this_save_mode == EDIT_DO_BACKUP) - { -+ char *tmp_store_filename; -+ vfs_path_element_t *last_vpath_element; - vfs_path_t *tmp_vpath; - gboolean ok; - - #ifdef HAVE_ASSERT_H - assert (option_backup_ext != NULL); - #endif -- tmp_vpath = vfs_path_append_new (real_filename_vpath, option_backup_ext, (char *) NULL); -+ /* add backup extention to the path */ -+ tmp_vpath = vfs_path_clone (real_filename_vpath); -+ last_vpath_element = (vfs_path_element_t *) vfs_path_get_by_index (tmp_vpath, -1); -+ tmp_store_filename = last_vpath_element->path; -+ last_vpath_element->path = g_strdup_printf ("%s%s", tmp_store_filename, option_backup_ext); -+ g_free (tmp_store_filename); -+ - ok = (mc_rename (real_filename_vpath, tmp_vpath) != -1); - vfs_path_free (tmp_vpath); - if (!ok) |