From: | "Tristan Partin" <tristan(at)neon(dot)tech> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Make psql ignore trailing semicolons in \sf, \ef, etc |
Date: | 2024-01-09 16:27:54 |
Message-ID: | CYABFFJZJJ6S.259AZSIMLI8JZ@neon.tech |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon Jan 8, 2024 at 6:08 PM CST, Tom Lane wrote:
> "Tristan Partin" <tristan(at)neon(dot)tech> writes:
> > On Mon Jan 8, 2024 at 2:48 PM CST, Tom Lane wrote:
> >> + (isascii((unsigned char) mybuf.data[mybuf.len - 1]) &&
> >> + isspace((unsigned char) mybuf.data[mybuf.len - 1]))))
>
> > Seems like if there was going to be any sort of casting, it would be to
> > an int, which is what the man page says for these two function, though
> > isascii(3) explicitly mentions "unsigned char."
>
> Casting to unsigned char is our standard pattern for using these
> functions. If "char" is signed (which is the only case in which
> this changes anything) then casting to int would imply sign-extension
> of the char's high-order bit, which is exactly what must not happen
> in order to produce a legal value to be passed to these functions.
> POSIX says:
>
> The c argument is an int, the value of which the application shall
> ensure is a character representable as an unsigned char or equal
> to the value of the macro EOF. If the argument has any other
> value, the behavior is undefined.
>
> If we cast to unsigned char, then the subsequent implicit cast to int
> will do zero-extension which is what we need.
Thanks for the explanation.
> > Small English nit-pick: I would drop the hyphen between semi and colons.
>
> Me too, except that it's spelled like that in nearby comments.
> Shall I change them all?
I'll leave it up to you. Patch looks good as-is.
--
Tristan Partin
Neon (https://neon.tech)
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2024-01-09 16:29:22 | Re: pg_dump: Remove obsolete trigger support |
Previous Message | Nathan Bossart | 2024-01-09 16:20:09 | Re: add AVX2 support to simd.h |