浏览代码

Use zparseopts to get passed arguments

Marc Cornellà 9 年之前
父节点
当前提交
20d63be655
共有 1 个文件被更改,包括 8 次插入2 次删除
  1. 8 2
      lib/history.zsh

+ 8 - 2
lib/history.zsh

@@ -2,12 +2,18 @@
 function omz_history {
   # Delete the history file if `-c' argument provided.
   # This won't affect the `history' command output until the next login.
-  if [[ "${@[(i)-c]}" -le $# ]]; then
+  zparseopts -E c=clear l=list
+
+  if [[ -n "$clear" ]]; then
+    # if -c provided, clobber the history file
     echo -n >| "$HISTFILE"
     echo >&2 History file deleted. Reload the session to see its effects.
-  elif [[ "${@[(i)-l]}" -le $# ]]; then
+  elif [[ -n "$list" ]]; then
+    # if -l provided, run as if calling `fc' directly
     builtin fc "$@"
   else
+    # otherwise, call `fc -l 1` to show all available
+    # history (and pass additional parameters)
     builtin fc "$@" -l 1
   fi
 }