summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/.gitignore5
-rw-r--r--contrib/Makefile.am22
-rw-r--r--contrib/mc-wrapper.csh.in4
-rw-r--r--contrib/mc-wrapper.fish.in21
-rw-r--r--contrib/mc-wrapper.sh.in4
-rw-r--r--contrib/mc.fish.in3
-rw-r--r--doc/man/es/mc.1.in6
-rw-r--r--doc/man/hu/mc.1.in6
-rw-r--r--doc/man/it/mc.1.in6
-rw-r--r--doc/man/mc.1.in8
-rw-r--r--doc/man/ru/mc.1.in4
-rw-r--r--doc/man/sr/mc.1.in4
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