On 10/6/07, Fernando Canizo <[EMAIL PROTECTED]> wrote: > Hello, I'm trying to set up everything as I had in bash, the mc-wrapper > is one thing I cannot make work. > > This is the code for the bundled mc-wrapper, I'm calling it in bash with > an alias: alias mc='. /usr/share/bin/mc-wrapper.sh' > > 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 > > MC () > { > mkdir -p $HOME/.mc/tmp 2> /dev/null > chmod 700 $HOME/.mc/tmp > MC=$HOME/.mc/tmp/mc-$$ > /usr/bin/mc -P "$MC" > cd "`cat $MC`" > rm -f "$MC" > unset MC; > } > > This makes mc left you on the last directory you were navigating > inside mc when it exits, pretty useful. All the magic is done by the > '-P' switch. > > Now I don't know why the wrapper has the stuff twice, first it calls mc > and then it defines the function MC() wich is never called, so I ignored > it and went with the basic and simple stuff that I think should work, > so in fish I do this in my config.fish (which *is* being sourced): > > function mc > set mctmpfile (tempfile) > /usr/bin/mc -P $mctmpfile > cd (cat $mctmpfile) > rm -f $mctmpfile > set mctmpfile > end > > But it doesn't work. > I checked also the csh version of the wrapper and it doesn't have the > double definition, so I guess the function definition is there for > example (maybe, who knows). > > The thing that annoys me most is that using bash, and going to the > places where I'm supposed to find the file defined for the '-P' switch, > I don't find the file! But somehow it works. One can think that the file > is created upon exit, so that's why I cannot see it, but in fish, or > even from the command line, the file gets created instantly, the thing > is nothing is put inside it. > > I tried from the command line '/usr/bin/mc -P /tmp/deleteme' and nothing > is to be found on /tmp/deleteme > > I'm pretty lost now, anyone else uses mc? Or have an idea on where to > aim from here?
I suspect that the empty file problem you're seeing is actually a regession bug in fish. Specifically, I belive the file in question does contain the file name, but does not end with a newline, and that the fish prompt 'swallows' the output. You can test this theory by calling echo after cat-ing the file. The next fish release will fix this problem. The following script seems to work correctly for me, though the choice of filename leaves something to be desired: function mc set tmpfile ~/ggg command mc -P $tmpfile cd (cat $tmpfile) rm $tmpfile end I did run into some issues with mc, e.g. when I specified a relative directory path for the -P file, the file seemed to get completely swallowed. Hope this helps! Axel > -- > Fernando Canizo - http://muriandre.homelinux.org/~conan/ ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Fish-users mailing list Fish-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fish-users