On 2018-02-18 00:36, Richard Hipp wrote:
The current behavior of the printf() function in SQLite, goofy though
it may be, exactly mirrors the behavior of the printf() C function in
the standard library in this regard.

So I'm not sure whether or not this is something that ought to be "fixed".

For the sake of sanity, such exception would be considered. I.e. ``length'' specification could mean number of ``multibyte characters'' -- not ``characters''. A C programmer has a chance to put all his buffer, especially that there are no special provisions on multibyte characters in the buffer (i.e. it must not begin nor end with an initial shift state): for ( i = 0; len > i; i += 5 ) printf("%-5.5s", &s[i]); -- a bit non-sense but illustrates the problem.

On the other hand, SQLite's SQL has no access to memory buffers. In such case, the C standard handles the situation (look at the end of ``s'' conversion specifier together with ``l'' flag): ``In no case is a partial multibyte character written.''.

Is there somebody who things about a byte content of buffers, when he is writing a software at a SQL level?

-- best regards

Cezary H. Noweta
sqlite-users mailing list

Reply via email to