From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23762 invoked by alias); 28 May 2016 14:39:03 -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: 38549 Received: (qmail 21667 invoked from network); 28 May 2016 14:39:00 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) 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.1 Subject: Re: [PATCH] zsh locale completion To: zsh-workers@zsh.org References: <573088A4.3020204@redhat.com> <20160509221458.GA30922@tarsus.local2> <5731FEF4.7000306@redhat.com> From: Eric Cook Message-ID: <5749AD7B.9050609@gmx.com> Date: Sat, 28 May 2016 10:38:51 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <5731FEF4.7000306@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:r0rb/lo2QJ0oBwUvgGN8IBSiql/vfyVKyx9leLiC2O1XxtHFRWj s2nIpDgbeK0COjOrWPKcNVhEmMMnZrC03izMnkkngsKKT994QpEpnuzVXbDqJXx/4U1I8E2 Nbnh3XkZyb2w9k41HQSS4FQ7xNkj1rOhUX3sld2N0O260SnRhIb8hjzZHcrE68t2rwTmeBr GYKcHHdmAVY/5vfAykbkg== X-UI-Out-Filterresults: notjunk:1;V01:K0:2jvPh1VvjSU=:9IDlzM16VTljMoHDmAr38p wBD5Ce2WfIB/XX5NOW/UArf37HQMRmPozfkRNn2ljL8hdktvdbnGRfuE2UBJQ9xPXuvtEMTbJ qSkwXqK7uFhSRELq3baSra8QVlvIumPNYubsJuU3quiX6WTMOsVOG5Bn/ka59EQCJ2mB2mLtI MuNwKeMXtye00uymhrgMvaFpu0OTzs/qXNMXS255vWmIXTUEtlJ9nx/jYj4yUhbuOH7hjyVQ3 7ZUbKAbZzrdP7R8gqP5favj/01KqTKxwIUw0KQaJrBGQctrToOBxcqUFcmR8hff5qoIgr7B4k tvQl0DJJ2tmmRhsbsU1CQ9sRyyWbKTjcIX7qcNX9/E1Dn4VQ5vQFcunO5LvvLz6CqYc7q/2Dp z8+PuE2IlfIRu85yGZDrqX5OqjfJkKw6phxwZFX2zLciKG9XjqsV+ULyineyl3QjfhDf4fR/p KblLcTz4+Av53AAEeO3Oa+yMo3hnpOvSqfqO54LHh4x2Y3UZXyLGu5HeqO+G5KXZ4MTJebgIu hLgbNAYmS0Xz2ol39d5LppGO0zP+qzknefBiZN3qIaPmmPFO8jRGo/AlNXRn1Hu+EyQZyTT4u TrygayW6RLYSEY/yRJpytabNH5ISH0ISpX/5t1DCYimbSy/0LxMweTxdgh3zc8rUseWRVk41o OWExrJXMZJzOjPngtPfBfIml56SH7vpL79mDuIYZDFIwL1GMTc9fjRipSRmhU812fOiELifnI iim8SGIUt0MUFjRHzJWzB2LvpyG+bRKWIlRb9fCZVNJ1x2YLYp6DFObxaDLvtmzmZQt1it+fD 3yRYuuY On 05/10/2016 11:32 AM, Marko Myllynen wrote: > Hi, > > On 2016-05-10 01:14, Daniel Shahaf wrote: >> Marko Myllynen wrote on Mon, May 09, 2016 at 15:55:00 +0300: >>> +++ b/Completion/Unix/Command/_locale >>> @@ -0,0 +1,28 @@ >>> +local curcontext="$curcontext" state line expl ret=1 >> ⋮ >>> +_arguments -A -C -S -s \ >> ⋮ >>> + '*:name:->catkey' \ >>> + && return=0 >> >> Typo: s/return/ret/ > > Good catch - updated patch below. It seems that using return is > required as otherwise we end up inside the if-statement even in > cases like locale -. > > --- > Completion/Unix/Command/_locale | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > create mode 100644 Completion/Unix/Command/_locale > > diff --git a/Completion/Unix/Command/_locale b/Completion/Unix/Command/_locale > new file mode 100644 > index 0000000..af6e90c > --- /dev/null > +++ b/Completion/Unix/Command/_locale > @@ -0,0 +1,28 @@ > +#compdef locale > + > +local curcontext="$curcontext" state line expl ret=1 > +local exargs="-? --help --usage -V --version" > + > +_arguments -A -C -S -s \ > + '(- *)'{-\?,--help}'[display help information]' \ > + '(- *)--usage[display a short usage message]' \ > + '(- *)'{-V,--version}'[print program version]' \ > + - set1 \ > + "(-a --all-locales $exargs)"{-a,--all-locales}'[list all available locales]' \ > + "(-v --verbose $exargs)"{-v,--verbose}'[display additional information]' \ > + - set2 \ > + "(-m --charmaps $exargs)"{-m,--charmaps}'[list all available charmaps]' \ > + - set3 \ > + "(-c --category-name $exargs)"{-c,--category-name}'[print also locale category]' \ > + "(-k --keyword-name $exargs)"{-k,--keyword-name}'[print also keyword of each value]' \ > + '*:name:->catkey' \ > + && return 0 > + > +if [[ $state == catkey ]]; then > + typeset -a cats keys > + cats=( ${${${(f)"$(locale)"}%=*}%(LANG|LANGUAGE|LC_ALL)} ) > + keys=( ${${(f)"$(locale -k $cats 2>/dev/null)"}%=*} ) > + _wanted values expl name compadd "$@" -a - cats keys && ret=0 > +fi > + > +return ret > > Thanks, > Could you also test the version locale? possibly with _pick_variant and if the locale(1) isn't glibc's locale; only present the options mandated by posix?[1] also for bonus points, openbsd's locale only has the options -a and -m [1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/locale.html