Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: _ps1234, _date_formats: Complete strftime formats for %D{}



On Mon, Jul 6, 2015 at 1:11 PM, Oliver Kiddle <okiddle@xxxxxxxxxxx> wrote:
> Mikael Magnusson wrote:
>>
>> PS, my strftime(3) says it handles %E and %O, and it does work with date +%Ey,
>> but zsh just prints the literal %Ey. Is it handled wrong by us or not
>> by the libc like the manpage claims?
>
> Looking at the source, it seems only - is treated as a modifier.
> It'd be nice for it to be updated if it can remain portable.
>
>>  Completion/Unix/Type/_ps1234       | 14 +++++--
>
> Shouldn't this be in Completion/Zsh/Type?

Possibly, but I figured we could use it for _date too?

>> +else
>> +  _default "$@"
>
> I really don't think _default is applicable there. The function is only
> for completing date formats. If the calling function needs that, it
> should do it itself. If _default is somehow needed, the return status
> should be considered.

For this I just copied what I did in _ps1234, which before these two
patches did the compset before calling _default, so it would complete
filenames anywhere... but of course you couldn't complete in
subdirectories since it compset -P away what you just typed :). I
guess it's unlikely to be useful here yeah.

>> +  compset -P "*"
>> +  _describe -t date-format-specifier 'date format specifier' '(%)' -S ''
>
> Using _describe to complete just % seems rather overkill. An _wanted
> would do. However, it'd be better to use a prefix for the % and use
> compset -P to cut off complete format specifiers or unrelated
> characters. The patch below does that and adds a case statement to
> select some OS specific additions.
>
> It'd perhaps be nice to complete format specifiers and modifiers with a
> different tag and description.

I don't know how most of the things you did work, but as far as I can
tell it only breaks one thing; pressing tab after %5 now completes all
modifiers instead of just putting in a . since %. is the only one that
takes a numeric argument. %- is also handled internally by zsh for
some modifiers, so it'll work on any OSTYPE as long as $1 is zsh.

I'll commit my patches as they were and then you can modify them.

-- 
Mikael Magnusson



Messages sorted by: Reverse Date, Date, Thread, Author