diff --git a/contrib/.gitignore b/contrib/.gitignore index bf2c44a93..8aebcef00 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.sh +mc.fish diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 4fad494b5..0f99f3fee 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) @@ -17,15 +29,8 @@ EXTRA_DIST = \ $(SCRIPTS_IN) \ $(noinst_DATA) -mc.csh: $(top_builddir)/config.status $(srcdir)/mc.csh.in - $(SED) "s%@""pkglibexecdir@%$(pkglibexecdir)%" $(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 - -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.sh: $(top_builddir)/config.status $(srcdir)/mc-wrapper.sh.in - $(SED) "s%@""bindir@%$(bindir)%" $(srcdir)/mc-wrapper.sh.in > mc-wrapper.sh +mc.%: $(top_builddir)/config.status $(srcdir)/mc.%.in + $(SED) "s%@""pkglibexecdir@%$(pkglibexecdir)%" $(srcdir)/mc.$*.in > $@ +mc-wrapper.%: $(top_builddir)/config.status $(srcdir)/mc-wrapper.%.in + $(SED) "s%@""bindir@%$(bindir)%" $(srcdir)/mc-wrapper.$*.in > $@ diff --git a/contrib/mc-wrapper.csh.in b/contrib/mc-wrapper.csh.in index 1b00491bc..671ab02bf 100644 --- a/contrib/mc-wrapper.csh.in +++ b/contrib/mc-wrapper.csh.in @@ -6,7 +6,7 @@ else setenv MC_PWD_FILE "`mktemp '/tmp/mc.pwd.XXXXXX'`" endif -@bindir@/mc -P "$MC_PWD_FILE" $* +@bindir@/mc -P "$MC_PWD_FILE" $* || true if (-r "$MC_PWD_FILE") then setenv MC_PWD "`cat '$MC_PWD_FILE'`" diff --git a/contrib/mc-wrapper.fish.in b/contrib/mc-wrapper.fish.in new file mode 100644 index 000000000..0acc8c89c --- /dev/null +++ b/contrib/mc-wrapper.fish.in @@ -0,0 +1,20 @@ +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 + +@bindir@/mc -P "$MC_PWD_FILE" $argv || true + +if test -r "$MC_PWD_FILE" + set MC_PWD (cat $MC_PWD_FILE) + if test -n "$MC_PWD" && test $MC_PWD != $PWD && test -d $MC_PWD + cd $MC_PWD || true + end + set -e MC_PWD +end + +rm -f $MC_PWD_FILE +set -e MC_PWD_FILE diff --git a/contrib/mc-wrapper.sh.in b/contrib/mc-wrapper.sh.in index 3d929b348..399b38a89 100644 --- a/contrib/mc-wrapper.sh.in +++ b/contrib/mc-wrapper.sh.in @@ -6,7 +6,7 @@ else MC_PWD_FILE="`mktemp "/tmp/mc.pwd.XXXXXX"`" fi -@bindir@/mc -P "$MC_PWD_FILE" "$@" +@bindir@/mc -P "$MC_PWD_FILE" "$@" || true if test -r "$MC_PWD_FILE"; then MC_PWD="`cat "$MC_PWD_FILE"`" 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..ff15ecb73 100644 --- a/doc/man/es/mc.1.in +++ b/doc/man/es/mc.1.in @@ -94,7 +94,9 @@ Midnight Commander. Consúltese en los archivos .B %pkglibexecdir%/mc.sh (usuarios de bash y zsh) y .B %pkglibexecdir%/mc.csh -(usuarios de tcsh) la manera de definir +(usuarios de tcsh) +.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 b14631c1b..06a57e550 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 7b2591ad0..e1c806b38 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 dc90272ad..3265dbd46 100644 --- a/doc/man/mc.1.in +++ b/doc/man/mc.1.in @@ -79,8 +79,10 @@ 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 +.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 0c0630951..2ae88751e 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 98b16c635..2d2db4ce9 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