-C Consolidate\stwo\sdifferent\sUTF8\sencoders\sinto\sa\ssingle\ssubroutine.
-D 2025-02-25T11:47:34.550
+C Small\sperformance\simprovement\sfor\sthe\snew\s%#Q\sconversion\sin\sprintf.
+D 2025-02-25T12:18:27.029
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
F src/pcache1.c 78d4935e510f7bed0fdd1a3f742c0e663b36a795f9dc7411161dc22bdae1245e
F src/pragma.c c7ada272232e1182c4536d9637fa7b955a10bc1bd8d5a87d4dc9309dab827791
F src/prepare.c 1832be043fce7d489959aae6f994c452d023914714c4d5457beaed51c0f3d126
-F src/printf.c b6056bd2818523255255af34d370e2665b4895e50476955de797368d92f8f31f
+F src/printf.c b373a8800e09fb888497b2bc640e455ee8ebc584a60f16368989394d5b895ac0
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
F src/resolve.c 626c24b258b111f75c22107aa5614ad89810df3026f5ca071116d3fe75925c75
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P c3949852cee320c2e02123b99c33155c459b10b2ac8e4fe80b1b7624c9ce0817
-R 783f95f7f826d114483ba4d9a5fea8e7
+P 6208e494858b9d362efc7db4e8aac6f8e93fe51d2e038c94dfa97c55a74688a0
+R 5e3cbac5c36e856b76f244c18c63cff3
U drh
-Z 0a01b2d715a4d18665f9611e7764aecb
+Z 71404ee027b8adeecdc3ccec4e60e22e
# Remove this line to create a well-formed Fossil manifest.
case etESCAPE_Q: /* %Q: Escape ' and enclose in '...' */
case etESCAPE_w: { /* %w: Escape " characters */
i64 i, j, k, n;
- int isnull, needQuote = 0;
+ int needQuote = 0;
char ch;
char *escarg;
char q;
}else{
escarg = va_arg(ap,char*);
}
- isnull = escarg==0;
+ if( escarg==0 ){
+ escarg = (xtype==etESCAPE_Q ? "NULL" : "(NULL)");
+ }else if( xtype==etESCAPE_Q ){
+ needQuote = 1;
+ }
if( xtype==etESCAPE_w ){
q = '"';
flag_alternateform = 0;
}else{
q = '\'';
}
- if( isnull ){
- escarg = (xtype==etESCAPE_Q ? "NULL" : "(NULL)");
- }else if( xtype==etESCAPE_Q ){
- needQuote = 1;
- }
/* For %q, %Q, and %w, the precision is the number of bytes (or
** characters if the ! flags is present) to use from the input.
** Because of the extra quoting characters inserted, the number
}
}
k = i;
- for(i=0; i<k; i++){
- bufpt[j++] = ch = escarg[i];
- if( ch==q ){
- bufpt[j++] = ch;
- }else if( flag_alternateform ){
- if( ch=='\\' ){
+ if( flag_alternateform ){
+ for(i=0; i<k; i++){
+ bufpt[j++] = ch = escarg[i];
+ if( ch==q ){
+ bufpt[j++] = ch;
+ }else if( ch=='\\' ){
bufpt[j++] = '\\';
}else if( ch<=0x1f ){
bufpt[j-1] = '\\';
bufpt[j++] = "0123456789abcdef"[ch&0xf];
}
}
+ }else{
+ for(i=0; i<k; i++){
+ bufpt[j++] = ch = escarg[i];
+ if( ch==q ) bufpt[j++] = ch;
+ }
}
if( needQuote ){
bufpt[j++] = '\'';