- Add mc-ext-obscpio.patch making mc handle SUSE *.obscpio

archives (bsc#1233006).

OBS-URL: https://build.opensuse.org/package/show/Base:System/mc?expand=0&rev=164
This commit is contained in:
Adam Majer 2024-12-05 17:21:00 +00:00 committed by Git OBS Bridge
commit f1b234770f
33 changed files with 3835 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,26 @@
Description: Fix wrong path to the wrapper script
Bug-Debian: http://bugs.debian.org/540238
Author: Denis Briand <denis@narcan.fr>
Author: Jindřich Makovička
---
contrib/Makefile.am | 2 +-
contrib/mc.csh.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -5,7 +5,7 @@ SCRIPTS_IN = mc.csh.in mc.sh.in mc-wrapp
SCRIPTS_OUT = mc.csh mc.sh mc-wrapper.csh mc-wrapper.sh
pkglibexec_SCRIPTS = $(SCRIPTS_OUT)
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkglibexecdir = $(datadir)/@PACKAGE@
cfgdir = $(sysconfdir)/@PACKAGE@
cfg_DATA = \
--- a/contrib/mc.csh.in
+++ b/contrib/mc.csh.in
@@ -1 +1 @@
-alias mc 'source @pkglibexecdir@/mc-wrapper.csh'
+alias mc 'source @datadir@/mc/mc-wrapper.csh'

View File

@ -0,0 +1,15 @@
---
src/subshell/common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/src/subshell/common.c
+++ b/src/subshell/common.c
@@ -715,7 +715,7 @@ parse_subshell_prompt_string (const char
/* Extract the prompt from the shell output */
for (i = 0; i < bytes; i++)
- if (buffer[i] == '\n' || buffer[i] == '\r')
+ if (buffer[i] == '\n')
g_string_set_size (subshell_prompt_temp_buffer, 0);
else if (buffer[i] != '\0')
g_string_append_c (subshell_prompt_temp_buffer, buffer[i]);

97
4575-fix-wrapper.patch Normal file
View File

@ -0,0 +1,97 @@
From e2d96fa802abebf888dcc2cc938cfd06abca8eb0 Mon Sep 17 00:00:00 2001
From: "Yury V. Zaytsev" <yury@shurup.com>
Date: Sun, 1 Sep 2024 12:01:37 +0200
Subject: [PATCH] Ticket #4575: adjust mc-wrapper to fit changes in #4535.
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
---
contrib/mc-wrapper.csh.in | 13 ++++++-------
contrib/mc-wrapper.sh.in | 13 +++++++++----
2 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/contrib/mc-wrapper.csh.in b/contrib/mc-wrapper.csh.in
index 1eca8e7b71..1b00491bc4 100644
--- a/contrib/mc-wrapper.csh.in
+++ b/contrib/mc-wrapper.csh.in
@@ -1,9 +1,9 @@
-set MC_USER=`whoami`
-
-if ($?TMPDIR) then
- setenv MC_PWD_FILE $TMPDIR/mc-$MC_USER/mc.pwd.$$
+if ($?MC_TMPDIR) then
+ setenv MC_PWD_FILE "`mktemp '$MC_TMPDIR/mc.pwd.XXXXXX'`"
+else if ($?TMPDIR) then
+ setenv MC_PWD_FILE "`mktemp '$TMPDIR/mc.pwd.XXXXXX'`"
else
- setenv MC_PWD_FILE /tmp/mc-$MC_USER/mc.pwd.$$
+ setenv MC_PWD_FILE "`mktemp '/tmp/mc.pwd.XXXXXX'`"
endif
@bindir@/mc -P "$MC_PWD_FILE" $*
@@ -11,11 +11,10 @@ endif
if (-r "$MC_PWD_FILE") then
setenv MC_PWD "`cat '$MC_PWD_FILE'`"
if ("$MC_PWD" != "$cwd" && -d "$MC_PWD") then
- cd "$MC_PWD"
+ cd "$MC_PWD" || true
endif
unsetenv MC_PWD
endif
rm -f "$MC_PWD_FILE"
unsetenv MC_PWD_FILE
-unsetenv MC_USER
diff --git a/contrib/mc-wrapper.sh.in b/contrib/mc-wrapper.sh.in
index 3905be4800..3d929b3485 100644
--- a/contrib/mc-wrapper.sh.in
+++ b/contrib/mc-wrapper.sh.in
@@ -1,15 +1,20 @@
-MC_USER=`whoami`
-MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$"
+if test -n "$MC_TMPDIR"; then
+ MC_PWD_FILE="`mktemp "${MC_TMPDIR}/mc.pwd.XXXXXX"`"
+elif test -n "$TMPDIR"; then
+ MC_PWD_FILE="`mktemp "${TMPDIR}/mc.pwd.XXXXXX"`"
+else
+ MC_PWD_FILE="`mktemp "/tmp/mc.pwd.XXXXXX"`"
+fi
+
@bindir@/mc -P "$MC_PWD_FILE" "$@"
if test -r "$MC_PWD_FILE"; then
MC_PWD="`cat "$MC_PWD_FILE"`"
if test -n "$MC_PWD" && test "$MC_PWD" != "$PWD" && test -d "$MC_PWD"; then
- cd "$MC_PWD"
+ cd "$MC_PWD" || true
fi
unset MC_PWD
fi
rm -f "$MC_PWD_FILE"
unset MC_PWD_FILE
-unset MC_USER
From d081bc68aa6ad3ded515ea490118b0a38a1ec204 Mon Sep 17 00:00:00 2001
From: "Yury V. Zaytsev" <yury@shurup.com>
Date: Mon, 2 Sep 2024 16:51:17 +0200
Subject: [PATCH] main: remove `O_EXCL` for wd-file since creation is now
managed by wrapper
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
---
src/main.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/main.c b/src/main.c
index 803cec146e..02a49ba20e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -509,8 +509,7 @@ main (int argc, char *argv[])
{
int last_wd_fd;
- last_wd_fd = open (mc_args__last_wd_file, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL,
- S_IRUSR | S_IWUSR);
+ last_wd_fd = open (mc_args__last_wd_file, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
if (last_wd_fd != -1)
{
ssize_t ret1;

499
cmake.syntax Normal file
View File

@ -0,0 +1,499 @@
# CMake syntax
# Author: Henrik Pauli <henrik.pauli@uhusystems.com>
# Author: Emil Biserov <biserov@gmail.com>
caseinsensitive
context default
keyword \( brightcyan
keyword \) brightcyan
### Commands ##################################################################
keyword whole add_custom_command yellow
keyword whole add_custom_target yellow
keyword whole add_definitions yellow
keyword whole add_dependencies yellow
keyword whole add_executable yellow
keyword whole add_library yellow
keyword whole add_subdirectory yellow
keyword whole add_test yellow
keyword whole aux_source_directory yellow
keyword whole break magenta
keyword whole build_command yellow
keyword whole cmake_minimum_required yellow
keyword whole cmake_policy yellow
keyword whole configure_file yellow
keyword whole create_test_sourcelist yellow
keyword whole define_property yellow
keyword whole else magenta
keyword whole elseif magenta
keyword whole enable_language yellow
keyword whole enable_testing yellow
keyword whole endforeach magenta
keyword whole endfunction magenta
keyword whole endif magenta
keyword whole endmacro magenta
keyword whole endwhile magenta
keyword whole execute_process yellow
keyword whole export yellow
keyword whole file yellow
keyword whole find_file yellow
keyword whole find_library yellow
keyword whole find_package yellow
keyword whole find_path yellow
keyword whole find_program yellow
keyword whole fltk_wrap_ui yellow
keyword whole foreach magenta
keyword whole function magenta
keyword whole get_cmake_property yellow
keyword whole get_directory_property yellow
keyword whole get_filename_component yellow
keyword whole get_property yellow
keyword whole get_source_file_property yellow
keyword whole get_target_property yellow
keyword whole get_test_property yellow
keyword whole if magenta
keyword whole include yellow
keyword whole include_directories yellow
keyword whole include_external_msproject yellow
keyword whole include_regular_expression yellow
keyword whole install yellow
keyword whole link_directories yellow
keyword whole list yellow
keyword whole load_cache yellow
keyword whole load_command yellow
keyword whole macro magenta
keyword whole mark_as_advanced yellow
keyword whole math yellow
keyword whole message yellow
keyword whole option yellow
keyword whole project yellow
keyword whole qt_wrap_cpp yellow
keyword whole qt_wrap_ui yellow
keyword whole remove_definitions yellow
keyword whole return yellow
keyword whole separate_arguments yellow
keyword whole set yellow
keyword whole set_directory_properties yellow
keyword whole set_property yellow
keyword whole set_source_files_properties yellow
keyword whole set_target_properties yellow
keyword whole set_tests_properties yellow
keyword whole site_name yellow
keyword whole source_group yellow
keyword whole string yellow
keyword whole target_link_libraries yellow
keyword whole try_compile yellow
keyword whole try_run yellow
keyword whole unset yellow
keyword whole variable_watch yellow
keyword whole while magenta
###############################################################################
keyword ${\[^}\]+} brightgreen
# keyword whole cpack_+ yellow
# keyword whole get_+ yellow
# keyword whole set_+ yellow
# keyword whole target_+ yellow
# keyword whole find_+ yellow
# keyword whole file_+ yellow
# keyword whole configure_+ yellow
# keyword whole install yellow
# keyword whole qt4_+ yellow
keyword whole ON brightcyan
keyword whole OFF brightcyan
keyword whole TRUE brightcyan
keyword whole FALSE brightcyan
###############################################################################
###context exclusive add_custom_command\( \)
keyword whole OUTPUT white
keyword whole COMMAND white
keyword whole MAIN_DEPENDENCY white
keyword whole DEPENDS white
keyword whole IMPLICIT_DEPENDS white
keyword whole WORKING_DIRECTORY white
keyword whole COMMENT white
keyword whole VERBATIM white
keyword whole APPEND white
###context exclusive add_custom_target\( \)
keyword whole ALL white
keyword whole COMMAND white
keyword whole DEPENDS white
keyword whole WORKING_DIRECTORY white
keyword whole COMMENT white
keyword whole VERBATIM white
keyword whole SOURCES white
###context exclusive add_executable\( \)
keyword whole WIN32 white
keyword whole MACOSX_BUNDLE white
keyword whole EXCLUDE_FROM_ALL white
keyword whole IMPORTED white
keyword whole GLOBAL white
###context exclusive add_library\( \)
keyword whole STATIC white
keyword whole SHARED white
keyword whole MODULE white
keyword whole EXCLUDE_FROM_ALL white
keyword whole UNKNOWN white
keyword whole IMPORTED white
keyword whole GLOBAL white
keyword whole OBJECT white
###context exclusive add_subdirectory\( \)
keyword whole EXCLUDE_FROM_ALL white
### context exclusive add_test\( \)
keyword whole NAME white
keyword whole CONFIGURATIONS white
keyword whole WORKING_DIRECTORY white
keyword whole COMMAND white
# build_command
# cmake_minimum_required
# cmake_policy
### context exclusive configure_file\( \)
keyword whole COPYONLY white
keyword whole ESCAPE_QUOTES white
keyword whole @ONLY white
keyword whole NEWLINE_STYLE white
keyword whole UNIX white
keyword whole DOS white
keyword whole WIN32 white
keyword whole LF white
keyword whole CRLF white
# create_test_sourcelist
### context exclusive define_property\( \)
keyword whole GLOBAL white
keyword whole DIRECTORY white
keyword whole TARGET white
keyword whole SOURCE white
keyword whole TEST white
keyword whole VARIABLE white
keyword whole CACHED_VARIABLE white
keyword whole PROPERTY white
keyword whole INHERITED white
keyword whole BRIEF_DOCS white
keyword whole FULL_DOCS white
### context exclusive enable_language\( \)
keyword whole OPTIONAL white
### context exclusive execute_process\( \)
keyword whole COMMAND white
keyword whole WORKING_DIRECTORY white
keyword whole TIMEOUT white
keyword whole RESULT_VARIABLE white
keyword whole OUTPUT_VARIABLE white
keyword whole ERROR_VARIABLE white
keyword whole INPUT_FILE white
keyword whole OUTPUT_FILE white
keyword whole ERROR_FILE white
keyword whole OUTPUT_QUIET white
keyword whole ERROR_QUIET white
keyword whole OUTPUT_STRIP_TRAILING_WHITESPACE white
keyword whole ERROR_STRIP_TRAILING_WHITESPACE white
### context exclusive export\( \)
keyword whole TARGETS white
keyword whole NAMESPACE white
keyword whole APPEND white
keyword whole FILE white
### context exclusive file\( \)
keyword whole WRITE white
keyword whole APPEND white
keyword whole READ white
keyword whole LIMIT white
keyword whole OFFSET white
keyword whole HEX white
keyword whole MD5 white
keyword whole SHA1 white
keyword whole SHA224 white
keyword whole SHA256 white
keyword whole SHA384 white
keyword whole SHA512 white
keyword whole STRINGS white
keyword whole LIMIT_COUNT white
keyword whole LIMIT_INPUT white
keyword whole LIMIT_OUTPUT white
keyword whole LENGTH_MINIMUM white
keyword whole LENGTH_MAXIMUM white
keyword whole NEWLINE_CONSUME white
keyword whole REGEX white
keyword whole NO_HEX_CONVERSION white
keyword whole GLOB white
keyword whole GLOB_RECURSE white
keyword whole RELATIVE white
keyword whole FOLLOW_SYMLINKS white
keyword whole RENAME white
keyword whole REMOVE white
keyword whole REMOVE_RECURSE white
keyword whole MAKE_DIRECTORY white
keyword whole RELATIVE_PATH white
keyword whole TO_CMAKE_PATH white
keyword whole TO_NATIVE_PATH white
keyword whole DOWNLOAD white
keyword whole INACTIVITY_TIMEOUT white
keyword whole TIMEOUT white
keyword whole STATUS white
keyword whole LOG white
keyword whole SHOW_PROGRESS white
keyword whole EXPECTED_MD5 white
keyword whole UPLOAD white
keyword whole COPY white
keyword whole INSTALL white
keyword whole DESTINATION white
keyword whole FILE_PERMISSIONS white
keyword whole DIRECTORY_PERMISSIONS white
keyword whole NO_SOURCE_PERMISSIONS white
keyword whole USE_SOURCE_PERMISSIONS white
keyword whole FILES_MATCHING white
keyword whole PATTERN white
keyword whole REGEX white
keyword whole EXCLUDE white
keyword whole PERMISSIONS white
# find_file
# find_library
# find_package
# find_path
# find_program
# fltk_wrap_ui
# get_cmake_property
# get_directory_property
### context exclusive get_filename_component\( \)
keyword whole PATH white
keyword whole ABSOLUTE white
keyword whole NAME white
keyword whole EXT white
keyword whole NAME_WE white
keyword whole REALPATH white
keyword whole CACHE white
keyword whole PROGRAM white
keyword whole PROGRAM_ARGS white
# get_property
# get_source_file_property
# get_target_property
# get_test_property
### context exclusive if\( \)
keyword whole NOT brightcyan
keyword whole AND brightcyan
keyword whole OR brightcyan
keyword whole COMMAND brightcyan
keyword whole POLICY brightcyan
keyword whole TARGET brightcyan
keyword whole EXISTS brightcyan
keyword whole IS_NEWER_THAN brightcyan
keyword whole IS_DIRECTORY brightcyan
keyword whole IS_SYMLINK brightcyan
keyword whole IS_ABSOLUTE brightcyan
keyword whole MATCHES brightcyan
keyword whole LESS brightcyan
keyword whole GREATER brightcyan
keyword whole EQUAL brightcyan
keyword whole STRLESS brightcyan
keyword whole STRGREATER brightcyan
keyword whole STREQUAL brightcyan
keyword whole VERSION_LESS brightcyan
keyword whole VERSION_EQUAL brightcyan
keyword whole VERSION_GREATER brightcyan
keyword whole DEFINED brightcyan
### context exclusive include\( \)
keyword whole OPTIONAL white
keyword whole RESULT_VARIABLE white
keyword whole NO_POLICY_SCOPE white
# include_directories
# include_external_msproject
# include_regular_expression
###context exclusive install\( \)
keyword whole TARGETS white
keyword whole EXPORT white
keyword whole ARCHIVE white
keyword whole LIBRARY white
keyword whole RUNTIME white
keyword whole FRAMEWORK white
keyword whole BUNDLE white
keyword whole PRIVATE_HEADER white
keyword whole PUBLIC_HEADER white
keyword whole RESOURCE white
keyword whole DESTINATION white
keyword whole PERMISSIONS white
keyword whole CONFIGURATIONS white
keyword whole COMPONENT white
keyword whole OPTIONAL white
keyword whole NAMELINK_ONLY white
keyword whole NAMELINK_SKIP white
keyword whole FILES white
keyword whole DESTINATION white
keyword whole PERMISSIONS white
keyword whole CONFIGURATIONS white
keyword whole COMPONENT white
keyword whole RENAME white
keyword whole OPTIONAL white
keyword whole OWNER_READ brightcyan
keyword whole OWNER_WRITE brightcyan
keyword whole OWNER_EXECUTE brightcyan
keyword whole GROUP_READ brightcyan
keyword whole GROUP_WRITE brightcyan
keyword whole GROUP_EXECUTE brightcyan
keyword whole WORLD_READ brightcyan
keyword whole WORLD_WRITE brightcyan
keyword whole WORLD_EXECUTE brightcyan
keyword whole SETUID brightcyan
keyword whole SETGID brightcyan
### FIXME: !!! install unfinished !!!
# link_directories
###context exclusive list\( \)
keyword whole LENGTH white
keyword whole GET white
keyword whole APPEND white
keyword whole FIND white
keyword whole INSERT white
keyword whole REMOVE_ITEM white
keyword whole REMOVE_AT white
keyword whole REMOVE_DUPLICATES white
keyword whole REVERSE white
keyword whole SORT white
# load_cache
# load_command
### context exclusive mark_as_advanced\( \)
keyword whole CLEAR white
keyword whole FORCE white
### context exclusive math\( \)
keyword whole EXPR white
### context exclusive message\( \)
keyword whole STATUS white
keyword whole WARNING white
keyword whole AUTHOR_WARNING white
keyword whole FATAL_ERROR white
keyword whole SEND_ERROR white
# qt_wrap_cpp
# qt_wrap_ui
# remove_definitions
# separate_arguments
### context exclusive set\( \)
keyword whole CACHE white
keyword whole FORCE white
keyword whole PARENT_SCOPE white
# types
keyword whole FILEPATH cyan
keyword whole PATH cyan
keyword whole STRING cyan
keyword whole BOOL cyan
keyword whole INTERNAL cyan
# set_directory_properties
# set_property
# set_source_files_properties
# set_target_properties
# set_tests_properties
# site_name
# source_group
### context exclusive string\( \)
keyword whole REGEX white
keyword whole MATCH white
keyword whole MATCHALL white
keyword whole REPLACE white
keyword whole MD5 white
keyword whole SHA1 white
keyword whole SHA224 white
keyword whole SHA256 white
keyword whole SHA384 white
keyword whole SHA512 white
keyword whole COMPARE white
keyword whole EQUAL white
keyword whole NOTEQUAL white
keyword whole LESS white
keyword whole GREATER white
keyword whole ASCII white
keyword whole CONFIGURE white
keyword whole \@ONLY white
keyword whole ESCAPE_QUOTES white
keyword whole TOUPPER white
keyword whole TOLOWER white
keyword whole LENGTH white
keyword whole SUBSTRING white
keyword whole STRIP white
keyword whole RANDOM white
keyword whole LENGTH white
keyword whole ALPHABET white
keyword whole RANDOM_SEED white
keyword whole FIND white
keyword whole REVERSE white
### context exclusive target_link_libraries\( \)
### context exclusive try_compile\( \)
keyword whole CMAKE_FLAGS white
keyword whole OUTPUT_VARIABLE white
keyword whole COMPILE_DEFINITIONS white
keyword whole OUTPUT_VARIABLE white
keyword whole COPY_FILE white
### context exclusive try_run\( \)
keyword whole CMAKE_FLAGS white
keyword whole COMPILE_DEFINITIONS white
keyword whole COMPILE_OUTPUT_VARIABLE white
keyword whole RUN_OUTPUT_VARIABLE white
keyword whole OUTPUT_VARIABLE white
keyword whole ARGS white
### context exclusive unset\( \)
keyword whole CACHE white
context # \n brown
context " " green
keyword ${\[^}\]+} brightgreen
spellcheck

2
mc-4.8.31.sha256 Normal file
View File

@ -0,0 +1,2 @@
f42f4114ed42f6cf9995f1d896fa6c797ccb36dac57760dda8dd9f78ac462841 mc-4.8.31.tar.bz2
24191cf8667675b8e31fc4a9d18a0a65bdc0598c2c5c4ea092494cd13ab4ab1a mc-4.8.31.tar.xz

3
mc-4.8.31.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:24191cf8667675b8e31fc4a9d18a0a65bdc0598c2c5c4ea092494cd13ab4ab1a
size 2385632

2
mc-4.8.32.sha256 Normal file
View File

@ -0,0 +1,2 @@
51a039ebd15d5e442312a7053a4ca28276b7f241050b7714d5bae5362ecd3319 mc-4.8.32.tar.bz2
4ddc83d1ede9af2363b3eab987f54b87cf6619324110ce2d3a0e70944d1359fe mc-4.8.32.tar.xz

3
mc-4.8.32.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4ddc83d1ede9af2363b3eab987f54b87cf6619324110ce2d3a0e70944d1359fe
size 2385648

15
mc-esc-seq.patch Normal file
View File

@ -0,0 +1,15 @@
---
lib/util.c | 2 ++
1 file changed, 2 insertions(+)
--- a/lib/util.c
+++ b/lib/util.c
@@ -762,6 +762,8 @@ strip_ctrl_codes (char *s)
while (*(++r) != '\0' && strchr ("0123456789;:?", *r) != NULL)
;
}
+ else if (*r == '(')
+ r++;
else if (*r == ']')
{
/*

63
mc-ext-audio.patch Normal file
View File

@ -0,0 +1,63 @@
---
misc/mc.ext.ini.in | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
--- a/misc/mc.ext.ini.in
+++ b/misc/mc.ext.ini.in
@@ -591,23 +591,26 @@ Open=@EXTHELPERSDIR@/image.sh open avif
[sound]
Regex=\\.(wav|snd|voc|au|smp|aiff|snd|m4a|ape|aac|wv|spx|flac)$
RegexIgnoreCase=true
-Open=@EXTHELPERSDIR@/sound.sh open common
+Include=audio
View=%view{ascii} @EXTHELPERSDIR@/sound.sh view common
[mod]
Regex=\\.(mod|s3m|xm|it|mtm|669|stm|ult|far)$
RegexIgnoreCase=true
Open=@EXTHELPERSDIR@/sound.sh open mod
+View=%view{ascii} @EXTHELPERSDIR@/sound.sh view mod
[wav22]
Shell=.waw22
ShellIgnoreCase=true
Open=@EXTHELPERSDIR@/sound.sh open wav22
+View=%view{ascii} @EXTHELPERSDIR@/sound.sh view mod
[mp3]
Shell=.mp3
ShellIgnoreCase=true
Open=@EXTHELPERSDIR@/sound.sh open mp3
+Include=audio
View=%view{ascii} @EXTHELPERSDIR@/sound.sh view mp3
[ogg]
@@ -626,6 +629,7 @@ View=%view{ascii} @EXTHELPERSDIR@/sound.
Regex=\\.(midi?|rmid?)$
RegexIgnoreCase=true
Open=@EXTHELPERSDIR@/sound.sh open midi
+View=%view{ascii} @EXTHELPERSDIR@/sound.sh view midi
[wma]
Shell=.wma
@@ -633,6 +637,10 @@ ShellIgnoreCase=true
Open=@EXTHELPERSDIR@/sound.sh open wma
View=%view{ascii} @EXTHELPERSDIR@/sound.sh view wma
+[mka]
+Shell=.mka
+Include=audio
+
# Play list
[playlist]
Regex=\\.(m3u|pls)$
@@ -1159,6 +1167,9 @@ View=%view{ascii} @EXTHELPERSDIR@/image.
Open=@EXTHELPERSDIR@/video.sh open ALL_FORMATS
View=%view{ascii} @EXTHELPERSDIR@/video.sh view ALL_FORMATS
+[Include/audio]
+Open=@EXTHELPERSDIR@/sound.sh open common
+View=%view{ascii} @EXTHELPERSDIR@/sound.sh view common
######### Default #########

43
mc-ext-obscpio.patch Normal file
View File

@ -0,0 +1,43 @@
---
misc/ext.d/archive.sh | 3 +++
misc/filehighlight.ini | 2 +-
misc/mc.ext.ini.in | 5 +++++
3 files changed, 9 insertions(+), 1 deletion(-)
--- a/misc/ext.d/archive.sh
+++ b/misc/ext.d/archive.sh
@@ -136,6 +136,9 @@ do_view_action() {
cpio)
cpio -itv < "${MC_EXT_FILENAME}" 2>/dev/null
;;
+ obscpio)
+ cpio -itv < "${MC_EXT_FILENAME}" 2>/dev/null
+ ;;
7z)
7za l "${MC_EXT_FILENAME}" 2>/dev/null ||
7z l "${MC_EXT_FILENAME}"
--- a/misc/filehighlight.ini
+++ b/misc/filehighlight.ini
@@ -25,7 +25,7 @@
regexp=(^#.*|.*~$)
[archive]
- extensions=7z;Z;ace;apk;arc;arj;ark;bz2;cab;cpio;deb;gz;lha;lz;lz4;lzh;lzma;lzo;rar;rpm;tar;tbz;tbz2;tgz;tlz;txz;tzo;tzst;vsix;xz;zip;zoo;zst
+ extensions=7z;Z;ace;apk;arc;arj;ark;bz2;cab;cpio;obscpio;deb;gz;lha;lz;lz4;lzh;lzma;lzo;rar;rpm;tar;tbz;tbz2;tgz;tlz;txz;tzo;tzst;vsix;xz;zip;zoo;zst
[doc]
extensions=chm;css;ctl;diz;doc;docm;docx;dtd;fodg;fodp;fods;fodt;htm;html;json;letter;lsm;mail;man;markdown;md;me;mkd;msg;nroff;odg;odp;ods;odt;pdf;po;ppt;pptm;pptx;ps;rtf;sgml;shtml;tex;text;txt;xls;xlsm;xlsx;xml;xsd;xslt
--- a/misc/mc.ext.ini.in
+++ b/misc/mc.ext.ini.in
@@ -349,6 +349,11 @@ Shell=.cpio
ShellIgnoreCase=true
Include=cpio
+[obscpio]
+Shell=.obscpio
+Open=%cd %p/ucpio://
+View=%view{ascii} @EXTHELPERSDIR@/archive.sh view obscpio
+
[initrd]
Regex=^(initramfs.*\\.img|initrd(-.+)?\\.img(-.+)?)$
Include=cpio

24
mc-extd-doc.patch Normal file
View File

@ -0,0 +1,24 @@
---
misc/ext.d/doc.sh.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/misc/ext.d/doc.sh.in
+++ b/misc/ext.d/doc.sh.in
@@ -52,7 +52,7 @@ do_view_action() {
fi
;;
msdoc)
- if which wvHtml >/dev/null 2>&1; then
+ if which wvHtml >/dev/null 2>&1 && which elinks >/dev/null 2>&1; then
tmp=`mktemp -d ${TMPDIR:-/tmp}/%p.XXXXXX`
wvHtml "${MC_EXT_FILENAME}" --targetdir="$tmp" page.html
elinks -dump "$tmp/page.html"
@@ -68,7 +68,7 @@ do_view_action() {
fi
;;
msxls)
- if which xlhtml >/dev/null 2>&1; then
+ if which xlhtml >/dev/null 2>&1 && which elinks >/dev/null 2>&1; then
tmp=`mktemp -d ${TMPDIR:-/tmp}/%p.XXXXXX`
xlhtml -a "${MC_EXT_FILENAME}" > "$tmp/page.html"
elinks -dump "$tmp/page.html"

21
mc-extd-misc.patch Normal file
View File

@ -0,0 +1,21 @@
---
misc/ext.d/misc.sh.in | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- a/misc/ext.d/misc.sh.in
+++ b/misc/ext.d/misc.sh.in
@@ -52,7 +52,13 @@ do_view_action() {
lyxcat "${MC_EXT_FILENAME}"
;;
torrent)
- ctorrent -x "${MC_EXT_FILENAME}" 2>/dev/null
+ if type -p ctorrent >/dev/null 2>&1 ; then
+ ctorrent -x "${MC_EXT_FILENAME}" 2>/dev/null
+ elif type -p transmission-show >/dev/null 2>&1 ; then
+ transmission-show "${MC_EXT_FILENAME}"
+ else
+ file "${MC_EXT_FILENAME}"
+ fi
;;
javaclass)
jad -p "${MC_EXT_FILENAME}" 2>/dev/null || \

67
mc-extd-sound.patch Normal file
View File

@ -0,0 +1,67 @@
---
misc/ext.d/sound.sh | 34 ++++++++++++++++++++++++++--------
1 file changed, 26 insertions(+), 8 deletions(-)
--- a/misc/ext.d/sound.sh
+++ b/misc/ext.d/sound.sh
@@ -6,22 +6,40 @@
action=$1
filetype=$2
-[ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open"
+[ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="_xdg_open"
+
+_xdg_open()
+{
+ if [ -n "$DISPLAY" ] && type -p gmplayer ; then
+ gmplayer "${MC_EXT_FILENAME}"
+ elif type -p mplayer ; then
+ mplayer "${MC_EXT_FILENAME}"
+ else
+ xdg-open "${MC_EXT_FILENAME}"
+ fi
+}
do_view_action() {
filetype=$1
+ if type -p mediainfo >/dev/null 2>&1 ; then
+ mediainfo "${MC_EXT_FILENAME}"
+ return $?
+ fi
+
case "${filetype}" in
common)
mediainfo "${MC_EXT_FILENAME}"
;;
-
mp3)
- mpg123 -vtn1 "${MC_EXT_FILENAME}" 2>&1 | \
- sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p'
+ if type -p mpg123 ; then
+ mpg123 -vtn1 "${MC_EXT_FILENAME}" 2>&1 | \
+ sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p'
+ return 0
+ fi
;;
ogg)
- ogginfo "${MC_EXT_FILENAME}"
+ type -p ogginfo && ogginfo "${MC_EXT_FILENAME}" && return 0
;;
opus)
opusinfo "${MC_EXT_FILENAME}"
@@ -29,11 +47,11 @@ do_view_action() {
wma)
mplayer -quiet -slave -frames 0 -vo null -ao null -identify "${MC_EXT_FILENAME}" 2>/dev/null | \
tail +13 || file "${MC_EXT_FILENAME}"
- ;;
- *)
- cat "${MC_EXT_FILENAME}"
+ return $?
;;
esac
+
+ mplayer -identify -vo null -ao null -frames 0 "${MC_EXT_FILENAME}" 2>&1 | sed -n '/^ID_/p'
}
do_open_action() {

36
mc-extd-video.patch Normal file
View File

@ -0,0 +1,36 @@
---
misc/ext.d/video.sh | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
--- a/misc/ext.d/video.sh
+++ b/misc/ext.d/video.sh
@@ -6,14 +6,27 @@
action=$1
filetype=$2
-[ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open"
+[ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="_xdg_open"
+
+_xdg_open()
+{
+ if [ -n "$DISPLAY" ] && type -p gmplayer ; then
+ gmplayer "${MC_EXT_FILENAME}"
+ elif type -p mplayer ; then
+ mplayer "${MC_EXT_FILENAME}"
+ else
+ xdg-open "${MC_EXT_FILENAME}"
+ fi
+}
do_view_action() {
filetype=$1
case "${filetype}" in
*)
- if which mplayer >/dev/null 2>&1; then
+ if type -p mediainfo >/dev/null 2>&1 ; then
+ mediainfo "${MC_EXT_FILENAME}"
+ elif which mplayer >/dev/null 2>&1; then
mplayer -identify -vo null -ao null -frames 0 "${MC_EXT_FILENAME}" 2>&1 | \
sed -n 's/^ID_//p'
elif which mpv_identify.sh >/dev/null 2>&1; then

111
mc-extd-xdg.patch Normal file
View File

@ -0,0 +1,111 @@
---
misc/ext.d/archive.sh | 2 +-
misc/ext.d/doc.sh.in | 2 +-
misc/ext.d/image.sh | 2 +-
misc/ext.d/misc.sh.in | 2 +-
misc/ext.d/package.sh | 2 +-
misc/ext.d/sound.sh | 2 +-
misc/ext.d/text.sh.in | 2 +-
misc/ext.d/video.sh | 2 +-
misc/ext.d/web.sh.in | 2 +-
9 files changed, 9 insertions(+), 9 deletions(-)
--- a/misc/ext.d/archive.sh
+++ b/misc/ext.d/archive.sh
@@ -210,7 +210,7 @@ view)
do_view_action "${filetype}"
;;
open)
- ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
+ test -n "$DISPLAY" && ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
do_open_action "${filetype}" "${pager}"
;;
*)
--- a/misc/ext.d/doc.sh.in
+++ b/misc/ext.d/doc.sh.in
@@ -210,7 +210,7 @@ view)
do_view_action "${filetype}"
;;
open)
- ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
+ test -n "$DISPLAY" && ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
do_open_action "${filetype}"
;;
*)
--- a/misc/ext.d/image.sh
+++ b/misc/ext.d/image.sh
@@ -64,7 +64,7 @@ view)
do_view_action "${filetype}"
;;
open)
- ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
+ test -n "$DISPLAY" && ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
do_open_action "${filetype}"
;;
*)
--- a/misc/ext.d/misc.sh.in
+++ b/misc/ext.d/misc.sh.in
@@ -102,7 +102,7 @@ view)
do_view_action "${filetype}"
;;
open)
- ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
+ test -n "$DISPLAY" && ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
do_open_action "${filetype}"
;;
*)
--- a/misc/ext.d/package.sh
+++ b/misc/ext.d/package.sh
@@ -51,7 +51,7 @@ view)
do_view_action "${filetype}"
;;
open)
- ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
+ test -n "$DISPLAY" && ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
do_open_action "${filetype}"
;;
*)
--- a/misc/ext.d/sound.sh
+++ b/misc/ext.d/sound.sh
@@ -116,7 +116,7 @@ view)
do_view_action "${filetype}"
;;
open)
- ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
+ test -n "$DISPLAY" && ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
do_open_action "${filetype}"
;;
*)
--- a/misc/ext.d/text.sh.in
+++ b/misc/ext.d/text.sh.in
@@ -147,7 +147,7 @@ view)
do_view_action "${filetype}"
;;
open)
- ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
+ test -n "$DISPLAY" && ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
do_open_action "${filetype}" "${pager}"
;;
*)
--- a/misc/ext.d/video.sh
+++ b/misc/ext.d/video.sh
@@ -66,7 +66,7 @@ view)
do_view_action "${filetype}"
;;
open)
- ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
+ test -n "$DISPLAY" && ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
do_open_action "${filetype}"
;;
*)
--- a/misc/ext.d/web.sh.in
+++ b/misc/ext.d/web.sh.in
@@ -47,7 +47,7 @@ view)
do_view_action "${filetype}"
;;
open)
- ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
+ test -n "$DISPLAY" && ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
do_open_action "${filetype}"
;;
*)

View File

@ -0,0 +1,43 @@
---
src/vfs/extfs/helpers/deb.in | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
--- a/src/vfs/extfs/helpers/deb.in
+++ b/src/vfs/extfs/helpers/deb.in
@@ -179,6 +179,15 @@ sub mcdebfs_run
}
}
+sub _which
+{
+ my $app = shift;
+ foreach my $dir (split/:/, $ENV{'PATH'}) {
+ return "$dir/$app" if -x "$dir/$app";
+ }
+ return undef;
+}
+
$pressinstall=<<EOInstall;
WARNING
@@ -195,6 +204,20 @@ EOInstall
umask 077;
+
+# check for required dpkg utilities
+my $dpkg_deb = _which('dpkg-deb');
+my $dpkg = _which('dpkg');
+
+# use uar extfs-heper if not exists
+if (not defined $dpkg_deb or not defined $dpkg)
+{
+ if ($0 =~ /^(.*)\/deb$/) {
+ my $uar = "$1/uar" ;
+ exec $uar, @ARGV;
+ }
+}
+
if($ARGV[0] eq "list") { shift; &mcdebfs_list(@ARGV); exit 0; }
elsif($ARGV[0] eq "copyout") { shift; &mcdebfs_copyout(@ARGV); exit 0; }
elsif($ARGV[0] eq "run") { shift; &mcdebfs_run(@ARGV); exit 0; }

View File

@ -0,0 +1,16 @@
Index: src/vfs/extfs/helpers/iso9660.in
===================================================================
--- src/vfs/extfs/helpers/iso9660.in.orig
+++ src/vfs/extfs/helpers/iso9660.in
@@ -46,9 +46,9 @@ xorriso_list() {
echo "$lsl" | grep "^[-d]" | \
while read attr ln usr gr sz dt1 dt2 dt3 nm ; do
len=$((${#nm} - 1))
- name=$(printf -- "$nm" | cut -c2-$len) # remove quotes
+ name=$(printf -- '%s' "$nm" | cut -c2-$len) # remove quotes
- if test $(printf -- "$attr" | cut -c1-1) != "d"; then
+ if test $(printf -- '%s' "$attr" | cut -c1-1) != "d"; then
printf -- "%s %s %s %s %s %s %s %s %s/%s\n" "$attr" "$ln" "$usr" "$gr" "$sz" "$dt1" "$dt2" "$dt3" "$dir" "$name"
else
xorriso_list "$1" "$dir/$name"

18
mc-f-keys.patch Normal file
View File

@ -0,0 +1,18 @@
---
lib/tty/key.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/lib/tty/key.c
+++ b/lib/tty/key.c
@@ -304,6 +304,11 @@ static key_define_t xterm_key_defines[]
{KEY_F (9), ESC_STR "[20~", MCKEY_NOACTION},
{KEY_F (10), ESC_STR "[21~", MCKEY_NOACTION},
+ { KEY_M_SHIFT | KEY_F(1), ESC_STR "[1;2P", MCKEY_NOACTION },
+ { KEY_M_SHIFT | KEY_F(2), ESC_STR "[1;2Q", MCKEY_NOACTION },
+ { KEY_M_SHIFT | KEY_F(3), ESC_STR "[1;2R", MCKEY_NOACTION },
+ { KEY_M_SHIFT | KEY_F(4), ESC_STR "[1;2S", MCKEY_NOACTION },
+
/* old xterm Shift-arrows */
{KEY_M_SHIFT | KEY_UP, ESC_STR "O2A", MCKEY_NOACTION},
{KEY_M_SHIFT | KEY_DOWN, ESC_STR "O2B", MCKEY_NOACTION},

View File

@ -0,0 +1,32 @@
---
m4.include/mc-with-screen-ncurses.m4 | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
--- a/m4.include/mc-with-screen-ncurses.m4
+++ b/m4.include/mc-with-screen-ncurses.m4
@@ -9,7 +9,14 @@ AC_DEFUN([mc_CHECK_NCURSES_BY_PATH], [
fi
if test x"$ac_ncurses_lib_path" != x; then
- ac_ncurses_lib_path="-L"$ac_ncurses_lib_path
+ case $ac_ncurses_lib_path in
+ /usr/lib*)
+ ac_ncurses_lib_path=""
+ ;;
+ *)
+ ac_ncurses_lib_path="-L"$ac_ncurses_lib_path
+ ;;
+ esac
fi
saved_CPPFLAGS="$CPPFLAGS"
@@ -32,9 +39,6 @@ AC_DEFUN([mc_CHECK_NCURSES_BY_PATH], [
if test x"$ac_ncurses_inc_path" = x; then
ac_ncurses_inc_path="-I/usr/include"
fi
- if test x"$ac_ncurses_lib_path" = x; then
- ac_ncurses_lib_path="-L/usr/lib"
- fi
found_ncurses=yes
AC_DEFINE(HAVE_NCURSES_NCURSES_H, 1,
[Define to 1 if you have the <ncurses/ncurses.h> header file.])

View File

@ -0,0 +1,59 @@
http://www.midnight-commander.org/ticket/287
---
lib/tty/key.c | 17 +++++++++++++++--
lib/tty/tty-slang.h | 1 +
2 files changed, 16 insertions(+), 2 deletions(-)
--- a/lib/tty/key.c
+++ b/lib/tty/key.c
@@ -1060,10 +1060,13 @@ correct_key_code (int code)
mod = KEY_M_SHIFT;
}
- /* F0 is the same as F10 for out purposes */
+ /* F0 is the same as F10 for our purposes */
if (c == KEY_F (0))
c = KEY_F (10);
+ if (c == KEY_F_IMMUTABLE (0))
+ c = KEY_F_IMMUTABLE (10);
+
/*
* We are not interested if Ctrl was pressed when entering control
* characters, so assume that it was. When checking for such keys,
@@ -1136,6 +1139,16 @@ correct_key_code (int code)
if (c >= KEY_F (1) && c <= KEY_F (20))
mod &= ~KEY_M_SHIFT;
+ /*
+ * Numerals may require modifilers with some keymaps or on obscure
+ * keyboards (e. g. F4 = Esc Shift+4). We have to ignore all
+ * modifiers while interpreting Esc + Numeral.
+ */
+ if (c >= KEY_F_IMMUTABLE (1) && c <= KEY_F_IMMUTABLE (10)) {
+ c += KEY_F (0) - KEY_F_IMMUTABLE (0);
+ mod &= ~KEY_M_MASK;
+ }
+
if (!mc_global.tty.alternate_plus_minus)
switch (c)
{
@@ -1889,7 +1902,7 @@ get_key_code (int no_delay)
{
/* Convert escape-digits to F-keys */
if (g_ascii_isdigit (c))
- c = KEY_F (c - '0');
+ c = KEY_F_IMMUTABLE (c - '0');
else if (c == ' ')
c = ESC_CHAR;
else
--- a/lib/tty/tty-slang.h
+++ b/lib/tty/tty-slang.h
@@ -7,6 +7,7 @@
/*** typedefs(not structures) and defined constants **********************************************/
#define KEY_F(x) (1000 + x)
+#define KEY_F_IMMUTABLE(x) (970+x)
#define ACS_VLINE SLSMG_VLINE_CHAR
#define ACS_HLINE SLSMG_HLINE_CHAR

14
mc-pie.patch Normal file
View File

@ -0,0 +1,14 @@
---
src/consaver/Makefile.am | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/src/consaver/Makefile.am
+++ b/src/consaver/Makefile.am
@@ -4,4 +4,6 @@ pkglibexec_PROGRAMS = cons.saver
cons_saver_SOURCES = cons.saver.c
-AM_CPPFLAGS = -I$(top_srcdir)
+AM_CPPFLAGS = -fpie -I$(top_srcdir)
+
+cons_saver_LDFLAGS= -pie

View File

@ -0,0 +1,50 @@
---
src/filemanager/file.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
--- a/src/filemanager/file.c
+++ b/src/filemanager/file.c
@@ -2802,6 +2802,8 @@ copy_file_file (file_op_total_context_t
continue;
if (temp_status == FILE_ABORT)
return_status = temp_status;
+ if (temp_status == FILE_SKIP)
+ return_status = temp_status;
if (temp_status == FILE_SKIPALL)
ctx->skip_all = TRUE;
break;
@@ -2812,6 +2814,8 @@ copy_file_file (file_op_total_context_t
temp_status = file_error (TRUE, _("Cannot close target file \"%s\"\n%s"), dst_path);
if (temp_status == FILE_RETRY)
continue;
+ if (temp_status == FILE_SKIP)
+ return_status = temp_status;
if (temp_status == FILE_SKIPALL)
ctx->skip_all = TRUE;
return_status = temp_status;
@@ -2843,10 +2847,10 @@ copy_file_file (file_op_total_context_t
if (temp_status == FILE_SKIPALL)
{
ctx->skip_all = TRUE;
- return_status = FILE_CONT;
+ return_status = FILE_SKIPALL;
}
if (temp_status == FILE_SKIP)
- return_status = FILE_CONT;
+ return_status = FILE_SKIP;
break;
}
@@ -2859,10 +2863,10 @@ copy_file_file (file_op_total_context_t
if (temp_status == FILE_SKIPALL)
{
ctx->skip_all = TRUE;
- return_status = FILE_CONT;
+ return_status = FILE_SKIPALL;
}
if (temp_status == FILE_SKIP)
- return_status = FILE_CONT;
+ return_status = FILE_SKIP;
break;
}

34
mc-wrapper.patch Normal file
View File

@ -0,0 +1,34 @@
---
contrib/Makefile.am | 4 ++--
contrib/mc.sh.in | 9 ++++++++-
2 files changed, 10 insertions(+), 3 deletions(-)
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -19,10 +19,10 @@ EXTRA_DIST = \
$(noinst_DATA)
mc.csh: $(top_builddir)/config.status $(srcdir)/mc.csh.in
- $(SED) "s%@""pkglibexecdir@%$(pkglibexecdir)%" $(srcdir)/mc.csh.in > mc.csh
+ $(SED) "s%@""datadir@%$(datadir)%" $(srcdir)/mc.csh.in > mc.csh
mc.sh: $(top_builddir)/config.status $(srcdir)/mc.sh.in
- $(SED) "s%@""pkglibexecdir@%$(pkglibexecdir)%" $(srcdir)/mc.sh.in > mc.sh
+ $(SED) "s%@""datadir@%$(datadir)%" $(srcdir)/mc.sh.in > mc.sh
mc-wrapper.csh: $(top_builddir)/config.status $(srcdir)/mc-wrapper.csh.in
$(SED) "s%@""bindir@%$(bindir)%" $(srcdir)/mc-wrapper.csh.in > mc-wrapper.csh
--- a/contrib/mc.sh.in
+++ b/contrib/mc.sh.in
@@ -1,3 +1,10 @@
# Don't define aliases in plain Bourne shell
[ -n "${BASH_VERSION}${KSH_VERSION}${ZSH_VERSION}" ] || return 0
-alias mc='. @pkglibexecdir@/mc-wrapper.sh'
+mc()
+{
+. @datadir@/mc/mc-wrapper.sh
+}
+if [ -n "$BASH_VERSION" ]
+then
+ export -f mc
+fi

2160
mc.changes Normal file

File diff suppressed because it is too large Load Diff

8
mc.desktop Normal file
View File

@ -0,0 +1,8 @@
[Desktop Entry]
Type=Application
Name=Midnight Commander
GenericName=File Manager
Exec=mc
Terminal=true
Icon=mc

25
mc.fish Normal file
View File

@ -0,0 +1,25 @@
function mc --description='Midnight Commander'
set -q TMPDIR || set -gx TMPDIR /tmp
set -gx _fish_MC_PWD_FILE $TMPDIR/mc-(id -un)/mc.pwd.$fish_pid
command mc -P "$_fish_MC_PWD_FILE" $argv
if test -r $_fish_MC_PWD_FILE
set -gx _fish_MC_PWD (cat $_fish_MC_PWD_FILE)
if test -n $_fish_MC_PWD && test $_fish_MC_PWD != $PWD && test -d $_fish_MC_PWD
cd $_fish_MC_PWD
end
set -e _fish_MC_PWD
end
set -e _fish_MC_PWD_FILE
set -e _fish_MC_USER
function _remove_tmp --on-job-exit caller --inherit-variable _fish_MC_PWD_FILE
command rm $_fish_MC_PWD_FILE
set -f dirn (dirname $_fish_MC_PWD_FILE)
if test -d "$dirn"
rm -f $dirn
end
functions -e _remove_tmp
end
end

BIN
mc.png (Stored with Git LFS) Normal file

Binary file not shown.

237
mc.spec Normal file
View File

@ -0,0 +1,237 @@
#
# spec file for package mc
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: mc
Version: 4.8.32
Release: 0
Summary: Midnight Commander
License: GPL-3.0-or-later
Group: Productivity/File utilities
URL: https://midnight-commander.org/
Source0: http://ftp.midnight-commander.org/mc-%{version}.tar.xz
Source1: x11_browser
Source2: %{name}.desktop
Source3: %{name}.png
Source4: cmake.syntax
Source6: http://ftp.midnight-commander.org/%{name}-%{version}.sha256
Source7: mc.fish
Patch0: mc-fix_lib_search_path.patch
Patch12: mc-wrapper.patch
# PATCH-FIX-UPSTREAM 4575-fix-wrapper.patch https://midnight-commander.org/ticket/4575 -- fix mc-wrapper (already merged for next release)
# + https://github.com/MidnightCommander/mc/commit/d081bc68aa6ad3ded515ea490118b0a38a1ec204
Patch13: 4575-fix-wrapper.patch
Patch16: mc-esc-seq.patch
Patch20: mc-f-keys.patch
Patch21: mc-extfs-helpers-deb.patch
# add patch. bnc#856501
# http://www.midnight-commander.org/ticket/3128
Patch22: mc-vfs-fish-deleted_source_file.patch
#Debian fixes
Patch32: 20_wrong_path_to_wrappers.patch
# PATCH-FIX-UPSTREAM mc-multi-press-f-keys.patch mc287 sbrabec@suse.cz - Fixed Esc + Numeral F-key emulation.
Patch41: mc-multi-press-f-keys.patch
# PATCH-FIX-UPSTREAM 4258-fish-subshell-prompt.patch https://midnight-commander.org/ticket/4258 mcepl@suse.com
# don't send \r while printing prompt
Patch42: 4258-fish-subshell-prompt.patch
# Patches from Fedora
#Patch adding -fpie and -pie to compilation and linking of setuid binaries
Patch52: mc-pie.patch
Patch61: mc-extd-misc.patch
Patch62: mc-extd-video.patch
Patch63: mc-extd-doc.patch
Patch64: mc-extd-sound.patch
Patch69: mc-extd-xdg.patch
Patch71: mc-ext-audio.patch
# PATCH-FEATURE-OPENSUSE mc-ext-obscpio.patch bsc#1233006 mcepl@suse.com
# mc can now handle SUSE *.obscpio archives
Patch72: mc-ext-obscpio.patch
Patch100: xls2csv_update.patch
BuildRequires: audiofile-devel
BuildRequires: e2fsprogs-devel
BuildRequires: gettext >= 0.18.1
BuildRequires: glib2-devel >= 2.32.0
BuildRequires: gpm-devel
BuildRequires: libssh2-devel
BuildRequires: libtool
BuildRequires: readline-devel
BuildRequires: slang-devel
BuildRequires: update-desktop-files
BuildRequires: xdg-utils
BuildRequires: xz
BuildRequires: pkgconfig(x11)
Requires(pre): permissions
Recommends: %{name}-lang = %{version}
Enhances: fish
Recommends: mkisofs
Recommends: xorriso
%description
GNU Midnight Commander (also referred to as MC) is a user shell much
like the (in)famous Norton Commander with text-mode full-screen
interface. It can be run on the OS console, in xterm and other
terminal emulators.
GNU Midnight Commander allows you to manage files while making most of
your screen and giving you a clear representation of the filesystem, yet
it's simple enough to be run over a telnet or ssh session.
MC needs several other programs for its various extfs extensions, e.g.
isoinfo (from mkisofs) or xorriso for the iso:// extension.
%lang_package
%prep
echo "`grep %{name}-%{version}.tar.xz %{SOURCE6} | head -n1 | cut -c1-64` %{SOURCE0}" | sha256sum -c
%autosetup -p1
%build
%{?!make_build:%define make_build make -O %_smp_mflags V=1 VERBOSE=1}
autoreconf -fvi
%define warn_flags -W -Wall -Wstrict-prototypes -Wpointer-arith -Wformat-security -Wno-unused-parameter
export CFLAGS="%{optflags} %{warn_flags}"
export X11_WWW="%{_datadir}/mc/x11_browser"
export PYTHON=%{_bindir}/python3
%configure \
--localstatedir=%{_localstatedir}/lib \
--enable-charset \
--disable-vfs-fish
%make_build
%install
%make_install
# clean up this setuid problem for now
chmod 755 %{buildroot}/%{_libexecdir}/mc/cons.saver
install -m 0644 %{SOURCE4} %{buildroot}%{_datadir}/mc/syntax/
#install the shell functions for bourne shell and csh
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
ln -fs -t %{buildroot}%{_sysconfdir}/profile.d %{_datadir}/mc/mc.{,c}sh
#support script for calling available GUI webbrosers
install -m 755 %{SOURCE1} %{buildroot}%{_datadir}/mc/
install -D -m 644 %{SOURCE3} %{buildroot}%{_datadir}/pixmaps/%{name}.png
install -D -m 644 %{SOURCE3} %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
# Fish wrapper script
install -D -m 644 %{SOURCE7} \
%{buildroot}%{_datadir}/fish/vendor_functions.d/mc.fish
for f in ext.d/misc.sh ext.d/sound.sh ext.d/video.sh \
extfs.d/gitfs+ extfs.d/uace extfs.d/uarc ;
do
sed -i -e '1s@bin/sh@bin/bash@' "%{buildroot}%{_libexecdir}/mc/${f}"
done
%suse_update_desktop_file -i %{name} System FileManager
# Remove not supported language
rm -rf %{buildroot}%{_datadir}/locale/be@tarask
%find_lang %{name}
%if %{suse_version} >= 1600
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/mc/extfs.d/*
%endif
%post
%if 0%{?suse_version} >= 1140
%set_permissions %{_libexecdir}/mc/cons.saver
%else
%run_permissions
%endif
%verifyscript
%verify_permissions -e %{_libexecdir}/mc/cons.saver
%files
%doc ABOUT-NLS NEWS README
%license COPYING
%config %{_sysconfdir}/profile.d/*
%{_bindir}/mc*
%dir %{_sysconfdir}/mc/
%config %{_sysconfdir}/mc/filehighlight.ini
%config %{_sysconfdir}/mc/sfs.ini
%config %{_sysconfdir}/mc/mc.menu
%config %{_sysconfdir}/mc/mc.ext.ini
%config %{_sysconfdir}/mc/mcedit.menu
%config %{_sysconfdir}/mc/mc.keymap
%config %{_sysconfdir}/mc/mc.default.keymap
%config %{_sysconfdir}/mc/mc.emacs.keymap
%config %{_sysconfdir}/mc/edit.indent.rc
%dir %{_libexecdir}/mc
%{_libexecdir}/mc/ext.d
%{_libexecdir}/mc/extfs.d
%{_libexecdir}/mc/shell
%verify(not mode) %{_libexecdir}/mc/cons.saver
%exclude %{_mandir}/*/man1/*
%{_mandir}/man1/*
%{_datadir}/mc
%{_datadir}/mc/syntax/Syntax
%{_datadir}/mc/mc.charsets
%{_datadir}/mc/mc.lib
%exclude %{_datadir}/mc/hints/mc.hint.*
%{_datadir}/mc/hints/mc.hint
%exclude %{_datadir}/mc/help/mc.hlp.*
%{_datadir}/mc/help/mc.hlp
%exclude %{_datadir}/locale/*/LC_MESSAGES/mc.mo
%dir %{_datadir}/fish
%dir %{_datadir}/fish/vendor_functions.d
%{_datadir}/fish/vendor_functions.d/mc.fish
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/32x32
%dir %{_datadir}/icons/hicolor/32x32/apps
%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
%files lang -f %{name}.lang
%if 0%{?suse_version} < 1140 || 0%{?sles_version} && 0%{?sles_version} <= 11
%lang(sv) %dir %{_datadir}/locale/sv_SE
%lang(sv) %dir %{_datadir}/locale/sv_SE/LC_MESSAGES
%lang(szl) %dir %{_datadir}/locale/szl
%lang(szl) %dir %{_datadir}/locale/szl/LC_MESSAGES
%endif
%lang(hu) %dir %{_mandir}/hu/
%lang(hu) %dir %{_mandir}/hu/man1/
%lang(hu) %{_mandir}/hu/man1/mc.1.gz
%lang(pl) %dir %{_mandir}/pl/
%lang(pl) %dir %{_mandir}/pl/man1/
%lang(pl) %{_mandir}/pl/man1/mc.1.gz
%lang(sr) %dir %{_mandir}/sr/
%lang(sr) %dir %{_mandir}/sr/man1/
%lang(sr) %{_mandir}/sr/man1/mc.1.gz
%lang(cs) %doc %{_datadir}/mc/*/mc.*.cs
%lang(es) %doc %{_datadir}/mc/*/mc.*.es
%lang(hu) %doc %{_datadir}/mc/*/mc.*.hu
%lang(it) %doc %{_datadir}/mc/*/mc.*.it
%lang(nl) %doc %{_datadir}/mc/*/mc.*.nl
%lang(pl) %doc %{_datadir}/mc/*/mc.*.pl
%lang(ru) %doc %{_datadir}/mc/*/mc.*.ru
%lang(sr) %doc %{_datadir}/mc/*/mc.*.sr
%lang(uk) %doc %{_datadir}/mc/*/mc.*.uk
%changelog

66
x11_browser Normal file
View File

@ -0,0 +1,66 @@
#!/bin/bash
#
# Call appropriate brower
#
# Copyright (c) 2001 Philipp Thomas <pth@suse.de>
#
# Borrowed heavily from url_handler.sh by Werner Fink <werner@suse.de>
#
url="$1"
method="${1%%:*}"
if test -n "$DISPLAY" -a -x /usr/bin/xdg-open ; then
exec /usr/bin/xdg-open "$url"
fi
if test "$url" = "$method" ; then
case "${url}" in
*/*.htm|*/*.html) method=http ;;
*/*.htmls) method=https ;;
/*) if test -r "${url}" ; then
method=file
fi ;;
*) if test -r "$PWD/${url}" ; then
method=file
url="$PWD/${url}"
fi ;;
esac
case "$method" in
file) url="${method}:$url" ;;
*) url="${method}://$url" ;;
esac
fi
shift
case "$method" in
file|http|https)
http=
type -p lynx >& /dev/null && http=lynx
type -p links >& /dev/null && http=links
type -p w3m >& /dev/null && http=w3m
test -n "$DISPLAY" && type -p netscape >& /dev/null && http=netscape
test -n "$DISPLAY" && type -p Netscape >& /dev/null && http=Netscape
test -n "$DISPLAY" && type -p opera >& /dev/null && http=opera
test -n "$DISPLAY" && type -p mozilla >& /dev/null && http=mozilla
test -n "$DISPLAY" && type -p firefox >& /dev/null && http=firefox
test -n "$DISPLAY" && type -p chromium >& /dev/null && http=chromium
case "$http" in
chromium) $http "$url" >/dev/null 2>&1 & ;;
[nN]etscape|opera|mozilla|firefox) ($http -remote "openURL($url)" || $http "$url") >/dev/null 2>&1 & ;;
lynx|w3m|links) exec $http "$url" ;;
*)
echo "No HTTP browser found."
read -p "Press return to continue: "
exit 0 # No error return
;;
esac
;;
*)
echo "URL type \"$method\" not known"
read -p "Press return to continue: "
exit 0 # No error return
;;
esac

19
xls2csv_update.patch Normal file
View File

@ -0,0 +1,19 @@
Author: Adam Majer
Upstream: http://midnight-commander.org/ticket/3912
Bugzilla: 1087708
---
misc/ext.d/doc.sh.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/misc/ext.d/doc.sh.in
+++ b/misc/ext.d/doc.sh.in
@@ -74,7 +74,7 @@ do_view_action() {
elinks -dump "$tmp/page.html"
rm -rf "$tmp"
elif which xls2csv >/dev/null 2>&1; then
- xls2csv "${MC_EXT_FILENAME}"
+ xls2csv -c - -x "${MC_EXT_FILENAME}"
else
strings "${MC_EXT_FILENAME}"
fi