[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: filenames in error messages
From: |
Jim Meyering |
Subject: |
Re: filenames in error messages |
Date: |
Thu, 07 Feb 2008 09:49:18 +0100 |
Eric Blake <address@hidden> wrote:
...
> resulting quoted buffer). Sure, you can use quotearg_buffer or
> quotearg_alloc, but then you have to manage the string yourself, whereas
> it would be kind of nice being able to do
> ~ error (...,"%s", quotearg_n_style_mem (n, shell_quoting_style, str, len))
I agree.
> Is there any reason that shortcuts like quotearg_style_mem are not
> defined, in contrast with quotearg_style(s,a) short for
> quotearg_n_style(0,s,a)?
I suspect no one noticed.
> I also noticed that once you call quotearg_colon, all future calls to
> quotearg() will behave as though they were quotearg_colon unless you
> manually call set_char_quoting(NULL,':',0). In other words,
> quotearg_colon does not remember nor restore the prior state of the colon
> character in the default quoting options.
Sounds like a bug.
> One thing I like about the "shell" quoting style is that its use of quotes
> is dependent on the contents - in the common case, where nothing needs
> quoting, the input can be reused as the output. Along the lines of the
> problem at hand, I wonder if the GNU Coding Standards should use a style
> like the following:
>
> If the file name comes from the portable set ([-_a-zA-Z0-9./], and
> probably a few others like + that are not required by POSIX), then
> messages relative to a file can look like:
>
> program:file:line: message
>
> If the file name contains problematic characters (including the : in a
> URL, or non-printable characters), then the file name is surrounded in
> quotes, and uses C escapes for the problematic characters:
>
> program:"embedded colon:, quote\", and spaces":line: message
> program:"http://example.com/file":line: message
That sounds fine.
> Should I go ahead and hack on a new quoting style in quotearg.c that can
> be used in this manner, adding "" around the string only if an escape
> sequence or quote_these_too character is encountered?
Please do.