On 15 June 2012 22:59, Josh Hurst <joshhu...@gmail.com> wrote:
> Sending it to ast-users because ast-developers doesn't let me subscribe.
>
> Josh
>
> ---------- Forwarded message ----------
> From: Josh Hurst <joshhu...@gmail.com>
> Date: Fri, Jun 15, 2012 at 10:47 PM
> Subject: Re: Re: Re: [ast-developers] RFE: Extend ksh93 printf %q to
> accept modifiers
> To: ast-developers@research.att.com
>
>
> On Fri, Jun 8, 2012 at 5:33 PM, Lionel Cons
> <lionelcons1...@googlemail.com> wrote:
>> On 8 June 2012 16:38, Clark WANG <dearv...@gmail.com> wrote:
>>> On Fri, Jun 8, 2012 at 10:06 PM, Dan Shelton
>>> <dan.f.shel...@googlemail.com> wrote:
>>>> On 30 May 2012 01:31, David Korn <d...@research.att.com> wrote:
>>>>> cc:  ast-developers@research.att.com  iszczesn...@gmail.com  
>>>>> k...@research.att.com
>>>>> Subject: Re: Re: Re: [ast-developers] RFE: Extend ksh93 printf %q to 
>>>>> accept modifiers
>>>>> --------
>>>>>
>>>>> I have added %(html)q and %(url)q to the next release.
>>>>
>>>> I think there was a misunderstanding for using %(...)q for egrep
>>>
>>> There's not a standard or specification for %(...)q so there's no
>>> misunderstanding here. I personally like the way %(ere)q and
>>> %(pattern)q work. :)
>>>
>>>> expressions and similar things. The goal was to QUOTE strings that
>>>> they retain any all characters in the target format in their literal
>>>> meaning and not to CONVERT them like the current implementation for
>>>> %(ere)q does.
>>>> As an example, %(ere)q should quote special characters like (, ), [,
>>>> ], {, }, \ with a preceding backslash so they are retain their literal
>>>> meaning:
>>>>
>>>> printf '%(ere)q' 'hello(world)'
>>>> hello\(world\)
>>>>
>>>> %(csv)q, %(html)q and %(url)q work as expected but %(pattern)q and
>>>> %(ere)q need to be changed to just quote the values and not convert
>>>> them into something different.
>>>
>>> They're not converted to something different. They're converted to
>>> another form which means the same.
>>
>> Clark, %q means 'quoting', not conversion. So I agree with Dan that
>> from the spirit of naming plain quoting actions belong into %()q while
>> whole conversions into a completely different pattern syntax should
>> fall into something like %()C.
>
> I agree with Lionel on that. Besides, we have %R/%P for that. I like
> the Olga's original proposal because it made it easy to insert file
> names (or other strings) into a extended regular expression pattern
> without worrying that they change the meaning or cause corruptions
> because their characters were not quoted.
> As example: I have two files (from Windows) with the name 'Document
> copy(1).doc' and 'Document copy(2).doc'. If %(ere)q would work as I
> would expect it it would allow to create a OR pattern simply by doing
> a printf "(%(ere)q|%(ere)q)" 'Document copy(1).doc' 'Document
> copy(2).doc' and get the properly quoted '(Document
> copy\(1\)\.doc|Document copy\(2\)\.doc)' from that.
>
> So back to the original proposal from Olga:
> ---------------
> %(egrep)q convert string into a literal accepted plainly by egrep
> (e.g. things like '[', ']', '(', ')' etc. are quoted)
> %(grep)q convert string into a literal accepted plainly by grep (e.g.
> things like '[', ']', etc. are quoted)
> %(agrep)q, %(xgrep)q convert string into a literal accepted plainly by
> grep -X/-A (e.g. things like '[', ']', '(', ')' etc. are quoted)
> ---------------
> Can we get %()q changed that egrep/grep/agrep quote the strings as
> Olga proposed for the next beta, please? IMO this is more practical
> than just having new names for %R/%P
>
> Josh

This is still broken in ksh93v-. %(ere) should quote things and not convert it.

Ced
-- 
Cedric Blancher <cedric.blanc...@googlemail.com>
Institute Pasteur
_______________________________________________
ast-developers mailing list
ast-developers@research.att.com
https://mailman.research.att.com/mailman/listinfo/ast-developers

Reply via email to