This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GDB/MI reporting non-ASCII file names


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':
> 



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]