Re: GDB/MI reporting non-ASCII file names

Pedro Alves <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On 10/09/2015 02:31 PM, Eli Zaretskii wrote:

>>
>> But with a file named "γλώσσα.c" + "set print sevenbit-strings off":
>>
>> *stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={addr="0x00000000004004fb",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffd808"}],file="γλ�\216�\203�\203α.c",fullname="/home/pedro/gdb/tests/γλ�\216�\203�\203α.c",line="5"},thread-id="1",stopped-threads="all",core="3"
>> =breakpoint-deleted,id="1"
>> (gdb)
> 
> I think the 0x7F..0xA0 range is a left-over from the Latin-N era, and
> is a bad idea with the current UTF-8 default.
> 
> Would something like the following be acceptable (if accompanied with
> the suitable changes to NEWS and the manual)?
> 

I wonder whether we should we use isprint instead of removing
the condition entirely?

If this could be covered by a test it'd be great.

Thanks,
Pedro Alves

> diff --git a/gdb/utils.c b/gdb/utils.c
> index afeff12..56eb9d5 100644
> --- a/gdb/utils.c
> +++ b/gdb/utils.c
> @@ -1509,12 +1509,11 @@ printchar (int c, void (*do_fputs) (const char *, struct ui_file *),
>  	   void (*do_fprintf) (struct ui_file *, const char *, ...)
>  	   ATTRIBUTE_FPTR_PRINTF_2, struct ui_file *stream, int quoter)
>  {
> -  c &= 0xFF;			/* Avoid sign bit follies */
> +  c &= 0xFF;				/* Avoid sign bit follies */
>  
> -  if (c < 0x20 ||		/* Low control chars */
> -      (c >= 0x7F && c < 0xA0) ||	/* DEL, High controls */
> -      (sevenbit_strings && c >= 0x80))
> -    {				/* high order bit set */
> +  if (c < 0x20 ||			/* Low control chars */
> +      (sevenbit_strings && c >= 0x80))	/* High order bit set */
> +    {
>        switch (c)
>  	{
>  	case '\n':
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.