From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12198 invoked by alias); 28 Oct 2015 02:59:52 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 36993 Received: (qmail 8429 invoked from network); 28 Oct 2015 02:59:51 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.0 From: Eric Cook To: zsh-workers@zsh.org Subject: [PATCH] zed: fix argument parsing Date: Tue, 27 Oct 2015 22:54:32 -0400 Message-Id: <1446000872-26311-1-git-send-email-llua@gmx.com> X-Mailer: git-send-email 2.6.1 In-Reply-To: <1445968457-5930-1-git-send-email-llua@gmx.com> References: <1445968457-5930-1-git-send-email-llua@gmx.com> X-Provags-ID: V03:K0:ca6cxSLEZQcX/XjJLiq7D7kI6TE/Rj7ttxC7RW/CsCKvKmY2cNO zH1o5kJYT9Qxc1IzCHM1oHSdH/yslYQuorx2/1qmR/H1f0zmFYjopG5WvVvyslnkovuZ6VP bTpzSWff0aDSnkX1r4PbP2mTkfcsLBDpmtbBlM53T+ra1CROi7mKrnKH3sQXrikpB4f+oJi Vwg54RDoe1M/x736xcv2Q== X-UI-Out-Filterresults: notjunk:1;V01:K0:jRSq3Uf14K8=:IOWvNVzj7o3J6lDnDr/XxC 1F0dbFhyWOM1+QBaEDbjvwjPRkT/GYec5egttpDe+ShM+NK1RFHdkvvtgH302DIVmttncUF0O LrkiseiB25QPonHtjdg2ERaOdspBisdxKQT576mP2gLcu+OnKrV4nmcXHHjsbt2zl5bf0PLZo k9uJLF4VH5Q1ynNkaXfEabcGW7q227BJ5pHUCZQYuPxM7/hrix1uAv5vQaj93tj8+hXne66hs gVXVo4QpPjrreGkKR01rGsPKW8CzB3VXDk7LLgyi8YDDd0vzDwiPGA6+JC6shrtBNKN6ik96M cnC1QiNHEZoz3dI3RT/6fWnRuCh3+/WNGXQki4N85z6sIh66321Zc04KiNl0Hte3z+sjkutrM 2aNzim5zUKa2nnZHlfsaKJb1J4+ji9RvTcZDwZ7S9YhHfOd696uN3R71iJ2t3e7Fx42xQs3Yw kEocETD+Sxr4O+4BNgX0PVceWy15aN731zEEtK74yq7WhKVigJi1Q56DrCkZkj8kZQCxtSzKL oeqEM6J+AQWBe/B+El/J1+QuHzLue25jDNHMNR3b9Dh9e/A7e+BgNUsbPwT7T/qxjEdRFEKpk purnrL/kDB1Y/zuCrUVNjH8ZpkeLsDhVGmvxFv5OrNNctFidrf1SJl0yoF8ccabJHe89YknKo Y+HImUUR/vUx51l6wPFH4WbIn8LABI6OuNQoxn87bc0syuXMo4ZSrxt0t5Kw7oWnwoYVG76/s ujLyy7KadHFXFx6X1frNnvqPBxxM4MecorbDcQ5TL4JmM/B7hnHcL6ji5/0= Also reported in IRC: % fned +vi-git-applied-string zed:4: bad option: -v zed:4: bad option: -i zed:4: bad option: -- zed:4: bad option: -g ... This could optionally be fixed by changing getopts "fbx:" to getopts ":fbx:" so the `unknown options' are silently ignored. --- Functions/Misc/zed | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/Functions/Misc/zed b/Functions/Misc/zed index 1f6042e..ef7f9c1 100644 --- a/Functions/Misc/zed +++ b/Functions/Misc/zed @@ -6,31 +6,20 @@ # Use ^X^W to save, ^C to abort. # Option -f: edit shell functions. (Also if called as fned.) -local var opt zed_file_name +local var opts zed_file_name # We do not want timeout while we are editing a file integer TMOUT=0 okargs=1 fun bind local -a expand -while getopts "fbx:" opt; do - case $opt in - (f) - fun=1 - ;; - - (b) - bind=1 - ;; - - (x) - if [[ $OPTARG != <-> ]]; then - print -r "Integer expected after -x: $OPTARG" >&2 - return 1 - fi - expand=(-x $OPTARG) - ;; - esac -done -shift $(( OPTIND - 1 )) +zparseopts -D -A opts f b x: +fun=$+opts[-f] +bind=$+opts[-b] +if [[ $opts[-x] == <-> ]]; then + expand=(-x $opts[-x]) +elif (( $+opts[-x] )); then + print -r "Integer expected after -x: $opts[-x]" >&2 + return 1 +fi [[ $0 = fned ]] && fun=1 (( bind )) && okargs=0 -- 2.6.1