summaryrefslogtreecommitdiffstats
path: root/source/ap/mc/profile.d
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/mc/profile.d')
-rwxr-xr-xsource/ap/mc/profile.d/mc-wrapper.csh20
-rwxr-xr-xsource/ap/mc/profile.d/mc-wrapper.sh14
-rwxr-xr-xsource/ap/mc/profile.d/mc.csh1
-rwxr-xr-xsource/ap/mc/profile.d/mc.sh1
4 files changed, 36 insertions, 0 deletions
diff --git a/source/ap/mc/profile.d/mc-wrapper.csh b/source/ap/mc/profile.d/mc-wrapper.csh
new file mode 100755
index 000000000..7b4c383d9
--- /dev/null
+++ b/source/ap/mc/profile.d/mc-wrapper.csh
@@ -0,0 +1,20 @@
+set MC_USER="`id | sed 's/[^(]*(//;s/).*//'`"
+
+if ($?TMPDIR) then
+ setenv MC_PWD_FILE $TMPDIR/mc-$MC_USER/mc.pwd.$$
+else
+ setenv MC_PWD_FILE /tmp/mc-$MC_USER/mc.pwd.$$
+endif
+
+/usr/bin/mc -P "$MC_PWD_FILE" $*
+
+if (-r "$MC_PWD_FILE") then
+ setenv MC_PWD "`cat '$MC_PWD_FILE'`"
+ if ( -d "$MC_PWD" ) then
+ cd "$MC_PWD"
+ endif
+ unsetenv MC_PWD
+endif
+
+rm -f "$MC_PWD_FILE"
+unsetenv MC_PWD_FILE
diff --git a/source/ap/mc/profile.d/mc-wrapper.sh b/source/ap/mc/profile.d/mc-wrapper.sh
new file mode 100755
index 000000000..36db15747
--- /dev/null
+++ b/source/ap/mc/profile.d/mc-wrapper.sh
@@ -0,0 +1,14 @@
+MC_USER=`id | sed 's/[^(]*(//;s/).*//'`
+MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$"
+/usr/bin/mc -P "$MC_PWD_FILE" "$@"
+
+if test -r "$MC_PWD_FILE"; then
+ MC_PWD="`cat "$MC_PWD_FILE"`"
+ if test -n "$MC_PWD" && test -d "$MC_PWD"; then
+ cd "$MC_PWD"
+ fi
+ unset MC_PWD
+fi
+
+rm -f "$MC_PWD_FILE"
+unset MC_PWD_FILE
diff --git a/source/ap/mc/profile.d/mc.csh b/source/ap/mc/profile.d/mc.csh
new file mode 100755
index 000000000..5a614bb22
--- /dev/null
+++ b/source/ap/mc/profile.d/mc.csh
@@ -0,0 +1 @@
+alias mc 'source /usr/share/mc/bin/mc-wrapper.csh'
diff --git a/source/ap/mc/profile.d/mc.sh b/source/ap/mc/profile.d/mc.sh
new file mode 100755
index 000000000..8198ab456
--- /dev/null
+++ b/source/ap/mc/profile.d/mc.sh
@@ -0,0 +1 @@
+alias mc='. /usr/share/mc/bin/mc-wrapper.sh'