Does mbutils.c really need to use L'\0' ?

Поиск
Список
Период
Сортировка
Искать

Does mbutils.c really need to use L'\0' ?

От:
Tom Lane <tgl@sss.pgh.pa.us>
Дата:
I grow weary of mopping up after pgindent, as in
http://archives.postgresql.org/pgsql-committers/2010-07/msg00069.php

The problem evidently is that pgindent hasn't heard of wide character
constants.  No doubt the best fix would be to teach it about them;
but given that we seem to have next to no use for such constants,
I'm dubious that it's worth the trouble.  I suggest that it might be
best to replace these usages of L'\0' by plain scalar 0.  Does anyone
think that wouldn't work or is too grotty?
		regards, tom lane

Re: Does mbutils.c really need to use L'\0' ?

От:
Tom Lane <tgl@sss.pgh.pa.us>
Дата:
Andrew Dunstan  writes:
> Tom Lane wrote:
>> I'm dubious that it's worth the trouble.  I suggest that it might be
>> best to replace these usages of L'\0' by plain scalar 0.  Does anyone
>> think that wouldn't work or is too grotty?

> or maybe 0x0000, which I gather from 
>  is the usual locution.

Hm.  I don't really read that page as suggesting that 0x0000 is what to
use if your compiler hasn't got wide chars.  I'd tend to go with just 0,
which is a reasonably common substitute for non-wide '\0' ...
		regards, tom lane

Re: Does mbutils.c really need to use L'\0' ?

От:
Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp>
Дата:

Tom Lane  wrote:

> >> I'm dubious that it's worth the trouble.  I suggest that it might be
> >> best to replace these usages of L'\0' by plain scalar 0.
> I'd tend to go with just 0,
> which is a reasonably common substitute for non-wide '\0' ...

I think all of the following codes work in the same way
at least on Windows, where the codes are actually used.
   utf16[dstlen] = L'\0';   utf16[dstlen] = '\0';   utf16[dstlen] = 0;   utf16[dstlen] = (WCHAR) 0;

Regards,
---
Takahiro Itagaki
NTT Open Source Software Center



Re: Does mbutils.c really need to use L'\0' ?

От:
Andrew Dunstan <andrew@dunslane.net>
Дата:


Tom Lane wrote:
> I grow weary of mopping up after pgindent, as in
> http://archives.postgresql.org/pgsql-committers/2010-07/msg00069.php
>
> The problem evidently is that pgindent hasn't heard of wide character
> constants.  No doubt the best fix would be to teach it about them;
> but given that we seem to have next to no use for such constants,
> I'm dubious that it's worth the trouble.  I suggest that it might be
> best to replace these usages of L'\0' by plain scalar 0.  Does anyone
> think that wouldn't work or is too grotty?
>
> 			
>   

or maybe 0x0000, which I gather from 
 is the usual locution.

cheers

andrew.

Re: Does mbutils.c really need to use L'\0' ?

От:
Tom Lane <tgl@sss.pgh.pa.us>
Дата:
Takahiro Itagaki  writes:
> I think all of the following codes work in the same way
> at least on Windows, where the codes are actually used.

>     utf16[dstlen] = L'\0';
>     utf16[dstlen] = '\0';
>     utf16[dstlen] = 0;
>     utf16[dstlen] = (WCHAR) 0;

The last one seems like the best choice, since it makes the intent visible.
Committed that way --- thanks for the suggestion!
		regards, tom lane

FAQ