[rb-general] BUILD_PATH_PREFIX_MAP code examples and test cases
Daniel Shahaf
danielsh at apache.org
Tue Jan 31 10:35:13 CET 2017
Ximin Luo wrote on Tue, Jan 31, 2017 at 08:57:00 +0000:
> Daniel Shahaf:
> > [..]
> >
> > I also agree that all implementations should be required to behave the
> > same way on strings that can't be produced by the encoder, such as '%%+'
> > or '%x'. However, my first preference would be to specify that
> > consumers <rfc2219>must</rfc2219> reject such strings with an error
> > message. That is: I would require consumers to be strict in what they
> > accept.
> >
>
> I had left this out originally, because the cleanest way I could think of, to implement this in a high-level language, was to regex-match for /%[^pec]|%$/ and I was trying to avoid the need for regexes. But I suppose a single check isn't too bad.
>
> If you can think of a better way to do it, let me know.
You could use negative lookahead (/%(?![pec])/), or .split():
for x in os.getenv(…).split('%')[1:]:
if not (x != '' and x[0] in 'pec'):
raise ValueError
> > Have we run this encoding past windows folks? The character '%' is
> > special to batch scripts, so it would be good to ensure windows build
> > scripts can handle the encoding scheme we're discussing here. (Or if
> > they can't, to use «\» or «@» or whatever else instead of «%».) We
> > don't have to check this right now, but we should check this before
> > releasing v1.0 of the spec.
> >
> > [..]
> >
>
> It looks like you can write %% instead, if doing it manually. Or use EnableDelayedExpansion if you need to do anything more complex with % characters.
>
> https://stackoverflow.com/questions/14718591/escape-percent-signs-in-given-variables
>
I don't fully follow that link, but I take it the bottom line is that
% can be used. Thanks for checking!
More information about the rb-general
mailing list