about summary refs log tree commit diff
path: root/Functions/Zftp/zfopen
diff options
context:
space:
mode:
Diffstat (limited to 'Functions/Zftp/zfopen')
-rw-r--r--Functions/Zftp/zfopen42
1 files changed, 42 insertions, 0 deletions
diff --git a/Functions/Zftp/zfopen b/Functions/Zftp/zfopen
new file mode 100644
index 000000000..fa9b4f81d
--- /dev/null
+++ b/Functions/Zftp/zfopen
@@ -0,0 +1,42 @@
+# function zfopen {
+# Use zftp params to set parameters for open, rather than sending
+# them straight to open.  That way they are stored for a future open
+# command.
+#
+# With option -1 (just this 1ce), don't do that.
+
+emulate -L zsh
+
+local optlist opt once
+
+while [[ $1 = -* ]]; do
+  if [[ $1 = - || $1 = -- ]]; then
+    shift;
+    break;
+  fi
+  optlist=${1#-}
+  for (( i = 1; i <= $#optlist; i++)); do
+    opt=$optlist[$i]
+    case $optlist[$i] in
+      1) once=1
+	 ;;
+      *) print option $opt not recognised >&2
+	 ;;
+    esac
+  done
+  shift
+done
+
+# This is where we should try and do same name-lookupage in
+# both .netrc and .ncftp/bookmarks .  We could even try saving
+# the info in their for new hosts, like ncftp does.
+
+if [[ $once = 1 ]]; then
+  zftp open $*
+else
+  # set parameters, but only if there was at least a host
+  (( $# > 0 )) && zfparams $*
+  # now call with no parameters
+  zftp open
+fi
+# }