aboutsummaryrefslogtreecommitdiffhomepage
path: root/init/functions/__fish_move_last.fish
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2006-02-08 19:20:05 +1000
committerGravatar axel <axel@liljencrantz.se>2006-02-08 19:20:05 +1000
commit73a9c8bcb8d3d8db967fcc5cc9dd5e8db645400f (patch)
tree13862f394dca16b0c9bae427f86fbbecdfc9ac03 /init/functions/__fish_move_last.fish
parent47b652c76e240e16875734f7ca251bab97ae6309 (diff)
Autoloaded functions
darcs-hash:20060208092005-ac50b-8e784f79a4e158c8c15b553fad85002dccc7bd03.gz
Diffstat (limited to 'init/functions/__fish_move_last.fish')
-rw-r--r--init/functions/__fish_move_last.fish27
1 files changed, 27 insertions, 0 deletions
diff --git a/init/functions/__fish_move_last.fish b/init/functions/__fish_move_last.fish
new file mode 100644
index 00000000..965072cd
--- /dev/null
+++ b/init/functions/__fish_move_last.fish
@@ -0,0 +1,27 @@
+function __fish_move_last -d "Move the last element of a directory history from src to dest"
+ set -l src $argv[1]
+ set -l dest $argv[2]
+
+ set -l size_src (count $$src)
+
+ if test $size_src = 0
+ # Cannot make this step
+ printf (_ "Hit end of history...\n")
+ return 1
+ end
+
+ # Append current dir to the end of the destination
+ set -g (echo $dest) $$dest (command pwd)
+
+ set ssrc $$src
+
+ # Change dir to the last entry in the source dir-hist
+ builtin cd $ssrc[$size_src]
+
+ # Keep all but the last from the source dir-hist
+ set -e (echo $src)[$size_src]
+
+ # All ok, return success
+ return 0
+end
+