diff options
author | Yury V. Zaytsev <yury@shurup.com> | 2025-08-05 16:10:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-05 16:10:55 +0200 |
commit | 73e808f49eab8c152b1d71e60439ff3f08168de7 (patch) | |
tree | 07e4f3b95f097642fdec5cf499648547fd5e95f8 | |
parent | 1c5674de99157ed99260c95380cd001e87c06e95 (diff) | |
parent | 5a462352a8f9c2b20fa76143d5d30a4bfd79510e (diff) |
Merge pull request #4730 from krobelus/fish-wrapperHEADorigin/masterorigin/HEADmasterfor-upstream
Ticket #4726: add `mc-wrapper` for fish shell
-rw-r--r-- | contrib/.gitignore | 5 | ||||
-rw-r--r-- | contrib/Makefile.am | 22 | ||||
-rw-r--r-- | contrib/mc-wrapper.csh.in | 4 | ||||
-rw-r--r-- | contrib/mc-wrapper.fish.in | 21 | ||||
-rw-r--r-- | contrib/mc-wrapper.sh.in | 4 | ||||
-rw-r--r-- | contrib/mc.fish.in | 3 | ||||
-rw-r--r-- | doc/man/es/mc.1.in | 6 | ||||
-rw-r--r-- | doc/man/hu/mc.1.in | 6 | ||||
-rw-r--r-- | doc/man/it/mc.1.in | 6 | ||||
-rw-r--r-- | doc/man/mc.1.in | 8 | ||||
-rw-r--r-- | doc/man/ru/mc.1.in | 4 | ||||
-rw-r--r-- | doc/man/sr/mc.1.in | 4 |
12 files changed, 76 insertions, 17 deletions
diff --git a/contrib/.gitignore b/contrib/.gitignore index bf2c44a93..46a1a1490 100644 --- a/contrib/.gitignore +++ b/contrib/.gitignore @@ -1,4 +1,5 @@ -mc-wrapper.csh -mc-wrapper.sh +mc-wrapper.* +!mc-wrapper.*.in mc.csh +mc.fish mc.sh diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 4fad494b5..98c8b0656 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -1,8 +1,20 @@ noinst_DATA = README.xterm -SCRIPTS_IN = mc.csh.in mc.sh.in mc-wrapper.csh.in mc-wrapper.sh.in -SCRIPTS_OUT = mc.csh mc.sh mc-wrapper.csh mc-wrapper.sh +SCRIPTS_IN = \ + mc.csh.in \ + mc.fish.in \ + mc.sh.in \ + mc-wrapper.csh.in \ + mc-wrapper.fish.in \ + mc-wrapper.sh.in +SCRIPTS_OUT = \ + mc.csh \ + mc.fish \ + mc.sh \ + mc-wrapper.csh \ + mc-wrapper.fish \ + mc-wrapper.sh pkglibexec_SCRIPTS = $(SCRIPTS_OUT) @@ -20,12 +32,18 @@ EXTRA_DIST = \ mc.csh: $(top_builddir)/config.status $(srcdir)/mc.csh.in $(SED) "s%@""pkglibexecdir@%$(pkglibexecdir)%" $(srcdir)/mc.csh.in > mc.csh +mc.fish: $(top_builddir)/config.status $(srcdir)/mc.fish.in + $(SED) "s%@""pkglibexecdir@%$(pkglibexecdir)%" $(srcdir)/mc.fish.in > mc.fish + mc.sh: $(top_builddir)/config.status $(srcdir)/mc.sh.in $(SED) "s%@""pkglibexecdir@%$(pkglibexecdir)%" $(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 +mc-wrapper.fish: $(top_builddir)/config.status $(srcdir)/mc-wrapper.fish.in + $(SED) "s%@""bindir@%$(bindir)%" $(srcdir)/mc-wrapper.fish.in > mc-wrapper.fish + mc-wrapper.sh: $(top_builddir)/config.status $(srcdir)/mc-wrapper.sh.in $(SED) "s%@""bindir@%$(bindir)%" $(srcdir)/mc-wrapper.sh.in > mc-wrapper.sh diff --git a/contrib/mc-wrapper.csh.in b/contrib/mc-wrapper.csh.in index 1b00491bc..f43972ebf 100644 --- a/contrib/mc-wrapper.csh.in +++ b/contrib/mc-wrapper.csh.in @@ -6,7 +6,8 @@ else setenv MC_PWD_FILE "`mktemp '/tmp/mc.pwd.XXXXXX'`" endif -@bindir@/mc -P "$MC_PWD_FILE" $* +set MC_STATUS=0 +@bindir@/mc -P "$MC_PWD_FILE" $* || set MC_STATUS=$? if (-r "$MC_PWD_FILE") then setenv MC_PWD "`cat '$MC_PWD_FILE'`" @@ -18,3 +19,4 @@ endif rm -f "$MC_PWD_FILE" unsetenv MC_PWD_FILE +eval "unset MC_STATUS; exit $MC_STATUS" diff --git a/contrib/mc-wrapper.fish.in b/contrib/mc-wrapper.fish.in new file mode 100644 index 000000000..bd75d73cc --- /dev/null +++ b/contrib/mc-wrapper.fish.in @@ -0,0 +1,21 @@ +set --local MC_PWD_FILE +if set -q MC_TMPDIR + set MC_PWD_FILE (mktemp $MC_TMPDIR/mc.pwd.XXXXXX) +else if set -q TMPDIR + set MC_PWD_FILE (mktemp $TMPDIR/mc.pwd.XXXXXX) +else + set MC_PWD_FILE (mktemp /tmp/mc.pwd.XXXXXX) +end + +set --local MC_STATUS 0 +@bindir@/mc -P "$MC_PWD_FILE" $argv || set MC_STATUS $status + +if test -r "$MC_PWD_FILE" + set --local MC_PWD (cat $MC_PWD_FILE) + if test -n $MC_PWD && test $MC_PWD != $PWD && test -d $MC_PWD + cd $MC_PWD || true + end +end + +rm -f $MC_PWD_FILE +exit $MC_STATUS diff --git a/contrib/mc-wrapper.sh.in b/contrib/mc-wrapper.sh.in index 3d929b348..550ad6f60 100644 --- a/contrib/mc-wrapper.sh.in +++ b/contrib/mc-wrapper.sh.in @@ -6,7 +6,8 @@ else MC_PWD_FILE="`mktemp "/tmp/mc.pwd.XXXXXX"`" fi -@bindir@/mc -P "$MC_PWD_FILE" "$@" +MC_STATUS=0 +@bindir@/mc -P "$MC_PWD_FILE" "$@" || MC_STATUS=$? if test -r "$MC_PWD_FILE"; then MC_PWD="`cat "$MC_PWD_FILE"`" @@ -18,3 +19,4 @@ fi rm -f "$MC_PWD_FILE" unset MC_PWD_FILE +eval "unset MC_STATUS; return $MC_STATUS" diff --git a/contrib/mc.fish.in b/contrib/mc.fish.in new file mode 100644 index 000000000..d48ce2a67 --- /dev/null +++ b/contrib/mc.fish.in @@ -0,0 +1,3 @@ +function mc --description 'Visual shell for Unix-like systems - fish wrapper' + source @pkglibexecdir@/mc-wrapper.fish $argv +end diff --git a/doc/man/es/mc.1.in b/doc/man/es/mc.1.in index a4ac7f33a..b06798549 100644 --- a/doc/man/es/mc.1.in +++ b/doc/man/es/mc.1.in @@ -92,9 +92,11 @@ usada directamente, sino desde un guión de shell adecuado, para dejar como directorio activo el directorio que estaba en uso dentro de Midnight Commander. Consúltese en los archivos .B %pkglibexecdir%/mc.sh -(usuarios de bash y zsh) y +(usuarios de bash y zsh), .B %pkglibexecdir%/mc.csh -(usuarios de tcsh) la manera de definir +(usuarios de tcsh) y +.B %pkglibexecdir%/mc.fish +(usuarios de fish) la manera de definir .B mc como un alias para el correspondiente guión de shell. .TP diff --git a/doc/man/hu/mc.1.in b/doc/man/hu/mc.1.in index 6f2636553..07ec0ebc9 100644 --- a/doc/man/hu/mc.1.in +++ b/doc/man/hu/mc.1.in @@ -61,9 +61,11 @@ helyett a Midnight Commander által utoljára meglátogatott könyvtárra való Fjerdingstad\-nek és Sergey\-nek közreműködésükért). Kérlek, ne csinálj szó szerinti másolatot a funkció beállításairól. A fájlok forrása a .I %pkglibexecdir%/mc.sh -(bash és zsh felhasználóknak), illetőleg a +(bash és zsh felhasználóknak), .I %pkglibexecdir%/mc.csh -(tcsh felhasználóknak) fájl. Ilyenkor, amikor a funkció beállításokat +(tcsh felhasználóknak) illetőleg a +.I %pkglibexecdir%/mc.fish +(fish felhasználóknak) fájl. Ilyenkor, amikor a funkció beállításokat változtatod, a profil értékeket nem szükséges megváltoztatnod, csak arról gondoskodj, hogy az MC\-t ne fordítsd eltérő beállításokkal. .PP diff --git a/doc/man/it/mc.1.in b/doc/man/it/mc.1.in index 7b9adb55a..db00bf961 100644 --- a/doc/man/it/mc.1.in +++ b/doc/man/it/mc.1.in @@ -82,9 +82,11 @@ utilizzata da una speciale funzione shell che imposti automaticamente l'ultima directory corrente della shell come l'ultima directory in cui stava il Midnight Commander. Prelevate i file .B %pkglibexecdir%/mc.sh -(utenti bash e zsh) o rispettivamente +(utenti bash e zsh), .B %pkglibexecdir%/mc.csh -(utenti tcsh) per definire +(utenti tcsh) o rispettivamente +.B %pkglibexecdir%/mc.fish +(utenti fish) per definire .B mc come un alias allo script di shell appropriato. .TP diff --git a/doc/man/mc.1.in b/doc/man/mc.1.in index 3ac78ecf5..aa2a327c7 100644 --- a/doc/man/mc.1.in +++ b/doc/man/mc.1.in @@ -78,9 +78,11 @@ not meant to be used directly. Instead, it's used from a special shell script that automatically changes the current directory of the shell to the last directory Midnight Commander was in. Source the file .B %pkglibexecdir%/mc.sh -(bash and zsh users) or -.B %libexecdir%/mc.csh -(tcsh users) respectively to define +(bash and zsh users), +.B %pkglibexecdir%/mc.csh +(tcsh users), or +.B %pkglibexecdir%/mc.fish +(fish users) respectively to define .B mc as an alias to the appropriate shell script. .TP diff --git a/doc/man/ru/mc.1.in b/doc/man/ru/mc.1.in index 30316b75c..b844cff7d 100644 --- a/doc/man/ru/mc.1.in +++ b/doc/man/ru/mc.1.in @@ -90,8 +90,10 @@ Commander. .IP Для того чтобы эта функция была определена, используйте файл .B %pkglibexecdir%/mc.sh -для оболочек bash и zsh, а для оболочки tcsh соответственно файл +для оболочек bash и zsh, или для оболочки tcsh файл .B %pkglibexecdir%/mc.csh +а для оболочки fish соответственно файл +.B %pkglibexecdir%/mc.fish .TP .I \-s, \-\-slow Включает медленный режим терминала, в котором программа выводит меньше diff --git a/doc/man/sr/mc.1.in b/doc/man/sr/mc.1.in index 56abe5213..1955562d8 100644 --- a/doc/man/sr/mc.1.in +++ b/doc/man/sr/mc.1.in @@ -64,7 +64,9 @@ termcap/terminfo. Корисно је само на ХП\-овим термин .B %pkglibexecdir%/mc.sh (за кориснике љуски bash и zsh) или .B %pkglibexecdir%/mc.csh -(за кориснике љуске tcsh), тим редом, да бисте задали +(за кориснике љуске tcsh) или +.B %pkglibexecdir%/mc.fish +(за кориснике љуске fish), тим редом, да бисте задали .B mc као надимак за одговарајући спис љуске. .TP |