@@ -44,19 +44,20 @@
44 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define etBLOB 11 /* Blob objects. %b */
45 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define etBLOBSQL 12 /* Blob objects quoted for SQL. %B */
46 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define etSQLESCAPE 13 /* Strings with '\'' doubled. %q */
47 47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define etSQLESCAPE2 14 /* Strings with '\'' doubled and enclosed in '',
48 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
NULL pointers replaced by SQL NULL. %Q */
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define etPOINTER 15 /* The %p conversion */
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define etHTMLIZE 16 /* Make text safe for HTML */
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define etHTTPIZE 17 /* Make text safe for HTTP. "/" encoded as %2f */
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define etURLIZE 18 /* Make text safe for HTTP. "/" not encoded */
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define etFOSSILIZE 19 /* The fossil header encoding format. */
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define etPATH 20 /* Path type */
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define etWIKISTR 21 /* Timeline comment text rendered from a char*: %w */
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define etSQLESCAPE3 15 /* Double '"' characters within an indentifier. %w */
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define etPOINTER 16 /* The %p conversion */
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define etHTMLIZE 17 /* Make text safe for HTML */
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define etHTTPIZE 18 /* Make text safe for HTTP. "/" encoded as %2f */
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define etURLIZE 19 /* Make text safe for HTTP. "/" not encoded */
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define etFOSSILIZE 20 /* The fossil header encoding format. */
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define etPATH 21 /* Path type */
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define etWIKISTR 22 /* Timeline comment text rendered from a char*: %W */
56 57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define etSTRINGID 23 /* String with length limit for a UUID prefix: %S */
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define etROOT 24 /* String value of g.zTop: % */
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define etROOT 24 /* String value of g.zTop: %R */
58 59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
60 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
61 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An "etByte" is an 8-bit unsigned value.
62 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -96,15 +97,16 @@
96 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'z', 0, 6, etDYNSTRING, 0, 0 },
97 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'q', 0, 4, etSQLESCAPE, 0, 0 },
98 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'Q', 0, 4, etSQLESCAPE2, 0, 0 },
99 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'b', 0, 2, etBLOB, 0, 0 },
100 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'B', 0, 2, etBLOBSQL, 0, 0 },
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { 'w', 0, 2, etWIKISTR, 0, 0 },
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 'W', 0, 2, etWIKISTR, 0, 0 },
102 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'h', 0, 4, etHTMLIZE, 0, 0 },
103 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'R', 0, 0, etROOT, 0, 0 },
104 105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 't', 0, 4, etHTTPIZE, 0, 0 }, /* "/" -> "%2F" */
105 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'T', 0, 4, etURLIZE, 0, 0 }, /* "/" unchanged */
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { 'w', 0, 4, etSQLESCAPE3, 0, 0 },
106 108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'F', 0, 4, etFOSSILIZE, 0, 0 },
107 109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'S', 0, 4, etSTRINGID, 0, 0 },
108 110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'c', 0, 0, etCHARX, 0, 0 },
109 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'o', 8, 0, etRADIX, 0, 2 },
110 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 'u', 10, 0, etRADIX, 0, 0 },
@@ -661,35 +663,37 @@
661 663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
length = j;
662 664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( length==n+cnt+2 );
663 665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
664 666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
665 667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case etSQLESCAPE:
666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case etSQLESCAPE2: {
668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case etSQLESCAPE2:
669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case etSQLESCAPE3: {
667 670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i, j, n, ch, isnull;
668 671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int needQuote;
669 672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int limit = flag_alternateform ? va_arg(ap,int) : -1;
673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char q = ((xtype==etSQLESCAPE3)?'"':'\''); /* Quote characters */
670 674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *escarg = va_arg(ap,char*);
671 675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
isnull = escarg==0;
672 676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( isnull ) escarg = (xtype==etSQLESCAPE2 ? "NULL" : "(NULL)");
673 677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( limit<0 ) limit = strlen(escarg);
674 678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=n=0; i<limit; i++){
675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( escarg[i]=='\'' ) n++;
679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( escarg[i]==q ) n++;
676 680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
677 681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
needQuote = !isnull && xtype==etSQLESCAPE2;
678 682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n += i + 1 + needQuote*2;
679 683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( n>etBUFSIZE ){
680 684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bufpt = zExtra = fossil_malloc( n );
681 685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
682 686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bufpt = buf;
683 687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
684 688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
j = 0;
685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( needQuote ) bufpt[j++] = '\'';
689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( needQuote ) bufpt[j++] = q;
686 690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<limit; i++){
687 691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bufpt[j++] = ch = escarg[i];
688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( ch=='\'' ) bufpt[j++] = ch;
692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ch==q ) bufpt[j++] = ch;
689 693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( needQuote ) bufpt[j++] = '\'';
694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( needQuote ) bufpt[j++] = q;
691 695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bufpt[j] = 0;
692 696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
length = j;
693 697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( precision>=0 && precision<length ) length = precision;
694 698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
695 699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
696 700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!