Обсуждение: Does mbutils.c really need to use L'\0' ?
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
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 <http://en.wikipedia.org/wiki/Wide_character> is the usual locution. cheers andrew.
Andrew Dunstan <andrew@dunslane.net> 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 > <http://en.wikipedia.org/wiki/Wide_character> 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
Tom Lane <tgl@sss.pgh.pa.us> 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
Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp> 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