Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Enhance "box" and "column" mode formatting in the CLI to better deal with double-wide characters. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | trunk |
Files: | files | file ages | folders |
SHA3-256: |
b0de22ed0abf2ea5d269f191c884d7b2 |
User & Date: | drh 2025-05-31 20:51:42.476 |
Context
2025-05-31
| ||
20:51 | Enhance "box" and "column" mode formatting in the CLI to better deal with double-wide characters. (Leaf check-in: b0de22ed0a user: drh tags: trunk) | |
18:26 | New makefile target "xdevtest" works like "releasetest" except that it omits the "verify-source" dependency so that it can be run with uncommitted changes in the source tree. (check-in: 1afb1ac3e9 user: drh tags: trunk) | |
Changes
Changes to src/shell.c.in.
︙ | ︙ | |||
883 884 885 886 887 888 889 | const char *z2 = z; while( *z2 ){ z2++; } return 0x3fffffff & (int)(z2 - z); } /* ** Return the length of a string in characters. Multibyte UTF8 characters | | > | > > > > > > > > | 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 | const char *z2 = z; while( *z2 ){ z2++; } return 0x3fffffff & (int)(z2 - z); } /* ** Return the length of a string in characters. Multibyte UTF8 characters ** count as a single character for single-width characters, or as two ** characters for double-width characters. */ static int strlenChar(const char *z){ int n = 0; while( *z ){ if( (0x80&z[0])==0 ){ n++; z++; }else{ int u = 0; int len = decodeUtf8((const u8*)z, &u); z += len; n += cli_wcwidth(u); } } return n; } /* ** Return open FILE * if zFile exists, can be opened for read ** and is an ordinary file or a character stream source. |
︙ | ︙ |
Added test/dblwidth-a.sql.
> > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /* ** Run this script using "sqlite3" to confirm that the command-line ** shell properly handles the output of double-width characters. ** ** https://sqlite.org/forum/forumpost/008ac80276 */ .mode box CREATE TABLE data(word TEXT, description TEXT); INSERT INTO data VALUES('〈οὐκέτι〉','Greek without dblwidth <...>'); .print .mode box SELECT * FROM data; .mode table .print .mode table SELECT * FROM data; .mode qbox .print .mode qbox SELECT * FROM data; .mode column .print .mode column SELECT * FROM data; |