Fossil SCM

Cherry-pick [ee1aa460a4]: Fix using the unary bitwise NOT operator in TH1. Update to SQLite 3.8.4.3

jan.nijtmans 2014-04-04 12:18 branch-1.28
Commit 97608a6b57f290d6f953a163c36841597e45783c
+4 -4
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
11
/******************************************************************************
22
** This file is an amalgamation of many separate C source files from SQLite
3
-** version 3.8.4.2. By combining all the individual C code files into this
3
+** version 3.8.4.3. By combining all the individual C code files into this
44
** single large file, the entire code can be compiled as a single translation
55
** unit. This allows many compilers to do optimizations that would not be
66
** possible if the files were compiled separately. Performance improvements
77
** of 5% or more are commonly seen when SQLite is compiled as a single
88
** translation unit.
@@ -220,13 +220,13 @@
220220
**
221221
** See also: [sqlite3_libversion()],
222222
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
223223
** [sqlite_version()] and [sqlite_source_id()].
224224
*/
225
-#define SQLITE_VERSION "3.8.4.2"
225
+#define SQLITE_VERSION "3.8.4.3"
226226
#define SQLITE_VERSION_NUMBER 3008004
227
-#define SQLITE_SOURCE_ID "2014-03-26 18:51:19 02ea166372bdb2ef9d8dfbb05e78a97609673a8e"
227
+#define SQLITE_SOURCE_ID "2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3"
228228
229229
/*
230230
** CAPI3REF: Run-Time Library Version Numbers
231231
** KEYWORDS: sqlite3_version, sqlite3_sourceid
232232
**
@@ -115267,11 +115267,11 @@
115267115267
k = pLevel->addrBody;
115268115268
pOp = sqlite3VdbeGetOp(v, k);
115269115269
for(; k<last; k++, pOp++){
115270115270
if( pOp->p1!=pLevel->iTabCur ) continue;
115271115271
if( pOp->opcode==OP_Column ){
115272
- pOp->opcode = OP_SCopy;
115272
+ pOp->opcode = OP_Copy;
115273115273
pOp->p1 = pOp->p2 + pTabItem->regResult;
115274115274
pOp->p2 = pOp->p3;
115275115275
pOp->p3 = 0;
115276115276
}else if( pOp->opcode==OP_Rowid ){
115277115277
pOp->opcode = OP_Null;
115278115278
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.8.4.2. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -220,13 +220,13 @@
220 **
221 ** See also: [sqlite3_libversion()],
222 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
223 ** [sqlite_version()] and [sqlite_source_id()].
224 */
225 #define SQLITE_VERSION "3.8.4.2"
226 #define SQLITE_VERSION_NUMBER 3008004
227 #define SQLITE_SOURCE_ID "2014-03-26 18:51:19 02ea166372bdb2ef9d8dfbb05e78a97609673a8e"
228
229 /*
230 ** CAPI3REF: Run-Time Library Version Numbers
231 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
232 **
@@ -115267,11 +115267,11 @@
115267 k = pLevel->addrBody;
115268 pOp = sqlite3VdbeGetOp(v, k);
115269 for(; k<last; k++, pOp++){
115270 if( pOp->p1!=pLevel->iTabCur ) continue;
115271 if( pOp->opcode==OP_Column ){
115272 pOp->opcode = OP_SCopy;
115273 pOp->p1 = pOp->p2 + pTabItem->regResult;
115274 pOp->p2 = pOp->p3;
115275 pOp->p3 = 0;
115276 }else if( pOp->opcode==OP_Rowid ){
115277 pOp->opcode = OP_Null;
115278
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.8.4.3. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -220,13 +220,13 @@
220 **
221 ** See also: [sqlite3_libversion()],
222 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
223 ** [sqlite_version()] and [sqlite_source_id()].
224 */
225 #define SQLITE_VERSION "3.8.4.3"
226 #define SQLITE_VERSION_NUMBER 3008004
227 #define SQLITE_SOURCE_ID "2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3"
228
229 /*
230 ** CAPI3REF: Run-Time Library Version Numbers
231 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
232 **
@@ -115267,11 +115267,11 @@
115267 k = pLevel->addrBody;
115268 pOp = sqlite3VdbeGetOp(v, k);
115269 for(; k<last; k++, pOp++){
115270 if( pOp->p1!=pLevel->iTabCur ) continue;
115271 if( pOp->opcode==OP_Column ){
115272 pOp->opcode = OP_Copy;
115273 pOp->p1 = pOp->p2 + pTabItem->regResult;
115274 pOp->p2 = pOp->p3;
115275 pOp->p3 = 0;
115276 }else if( pOp->opcode==OP_Rowid ){
115277 pOp->opcode = OP_Null;
115278
+4 -4
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
11
/******************************************************************************
22
** This file is an amalgamation of many separate C source files from SQLite
3
-** version 3.8.4.2. By combining all the individual C code files into this
3
+** version 3.8.4.3. By combining all the individual C code files into this
44
** single large file, the entire code can be compiled as a single translation
55
** unit. This allows many compilers to do optimizations that would not be
66
** possible if the files were compiled separately. Performance improvements
77
** of 5% or more are commonly seen when SQLite is compiled as a single
88
** translation unit.
@@ -220,13 +220,13 @@
220220
**
221221
** See also: [sqlite3_libversion()],
222222
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
223223
** [sqlite_version()] and [sqlite_source_id()].
224224
*/
225
-#define SQLITE_VERSION "3.8.4.2"
225
+#define SQLITE_VERSION "3.8.4.3"
226226
#define SQLITE_VERSION_NUMBER 3008004
227
-#define SQLITE_SOURCE_ID "2014-03-26 18:51:19 02ea166372bdb2ef9d8dfbb05e78a97609673a8e"
227
+#define SQLITE_SOURCE_ID "2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3"
228228
229229
/*
230230
** CAPI3REF: Run-Time Library Version Numbers
231231
** KEYWORDS: sqlite3_version, sqlite3_sourceid
232232
**
@@ -115267,11 +115267,11 @@
115267115267
k = pLevel->addrBody;
115268115268
pOp = sqlite3VdbeGetOp(v, k);
115269115269
for(; k<last; k++, pOp++){
115270115270
if( pOp->p1!=pLevel->iTabCur ) continue;
115271115271
if( pOp->opcode==OP_Column ){
115272
- pOp->opcode = OP_SCopy;
115272
+ pOp->opcode = OP_Copy;
115273115273
pOp->p1 = pOp->p2 + pTabItem->regResult;
115274115274
pOp->p2 = pOp->p3;
115275115275
pOp->p3 = 0;
115276115276
}else if( pOp->opcode==OP_Rowid ){
115277115277
pOp->opcode = OP_Null;
115278115278
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.8.4.2. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -220,13 +220,13 @@
220 **
221 ** See also: [sqlite3_libversion()],
222 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
223 ** [sqlite_version()] and [sqlite_source_id()].
224 */
225 #define SQLITE_VERSION "3.8.4.2"
226 #define SQLITE_VERSION_NUMBER 3008004
227 #define SQLITE_SOURCE_ID "2014-03-26 18:51:19 02ea166372bdb2ef9d8dfbb05e78a97609673a8e"
228
229 /*
230 ** CAPI3REF: Run-Time Library Version Numbers
231 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
232 **
@@ -115267,11 +115267,11 @@
115267 k = pLevel->addrBody;
115268 pOp = sqlite3VdbeGetOp(v, k);
115269 for(; k<last; k++, pOp++){
115270 if( pOp->p1!=pLevel->iTabCur ) continue;
115271 if( pOp->opcode==OP_Column ){
115272 pOp->opcode = OP_SCopy;
115273 pOp->p1 = pOp->p2 + pTabItem->regResult;
115274 pOp->p2 = pOp->p3;
115275 pOp->p3 = 0;
115276 }else if( pOp->opcode==OP_Rowid ){
115277 pOp->opcode = OP_Null;
115278
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.8.4.3. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -220,13 +220,13 @@
220 **
221 ** See also: [sqlite3_libversion()],
222 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
223 ** [sqlite_version()] and [sqlite_source_id()].
224 */
225 #define SQLITE_VERSION "3.8.4.3"
226 #define SQLITE_VERSION_NUMBER 3008004
227 #define SQLITE_SOURCE_ID "2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3"
228
229 /*
230 ** CAPI3REF: Run-Time Library Version Numbers
231 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
232 **
@@ -115267,11 +115267,11 @@
115267 k = pLevel->addrBody;
115268 pOp = sqlite3VdbeGetOp(v, k);
115269 for(; k<last; k++, pOp++){
115270 if( pOp->p1!=pLevel->iTabCur ) continue;
115271 if( pOp->opcode==OP_Column ){
115272 pOp->opcode = OP_Copy;
115273 pOp->p1 = pOp->p2 + pTabItem->regResult;
115274 pOp->p2 = pOp->p3;
115275 pOp->p3 = 0;
115276 }else if( pOp->opcode==OP_Rowid ){
115277 pOp->opcode = OP_Null;
115278
+2 -2
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -105,13 +105,13 @@
105105
**
106106
** See also: [sqlite3_libversion()],
107107
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108108
** [sqlite_version()] and [sqlite_source_id()].
109109
*/
110
-#define SQLITE_VERSION "3.8.4.2"
110
+#define SQLITE_VERSION "3.8.4.3"
111111
#define SQLITE_VERSION_NUMBER 3008004
112
-#define SQLITE_SOURCE_ID "2014-03-26 18:51:19 02ea166372bdb2ef9d8dfbb05e78a97609673a8e"
112
+#define SQLITE_SOURCE_ID "2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3"
113113
114114
/*
115115
** CAPI3REF: Run-Time Library Version Numbers
116116
** KEYWORDS: sqlite3_version, sqlite3_sourceid
117117
**
118118
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -105,13 +105,13 @@
105 **
106 ** See also: [sqlite3_libversion()],
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.8.4.2"
111 #define SQLITE_VERSION_NUMBER 3008004
112 #define SQLITE_SOURCE_ID "2014-03-26 18:51:19 02ea166372bdb2ef9d8dfbb05e78a97609673a8e"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
118
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -105,13 +105,13 @@
105 **
106 ** See also: [sqlite3_libversion()],
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.8.4.3"
111 #define SQLITE_VERSION_NUMBER 3008004
112 #define SQLITE_SOURCE_ID "2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
118
+2 -2
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -105,13 +105,13 @@
105105
**
106106
** See also: [sqlite3_libversion()],
107107
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108108
** [sqlite_version()] and [sqlite_source_id()].
109109
*/
110
-#define SQLITE_VERSION "3.8.4.2"
110
+#define SQLITE_VERSION "3.8.4.3"
111111
#define SQLITE_VERSION_NUMBER 3008004
112
-#define SQLITE_SOURCE_ID "2014-03-26 18:51:19 02ea166372bdb2ef9d8dfbb05e78a97609673a8e"
112
+#define SQLITE_SOURCE_ID "2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3"
113113
114114
/*
115115
** CAPI3REF: Run-Time Library Version Numbers
116116
** KEYWORDS: sqlite3_version, sqlite3_sourceid
117117
**
118118
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -105,13 +105,13 @@
105 **
106 ** See also: [sqlite3_libversion()],
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.8.4.2"
111 #define SQLITE_VERSION_NUMBER 3008004
112 #define SQLITE_SOURCE_ID "2014-03-26 18:51:19 02ea166372bdb2ef9d8dfbb05e78a97609673a8e"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
118
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -105,13 +105,13 @@
105 **
106 ** See also: [sqlite3_libversion()],
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.8.4.3"
111 #define SQLITE_VERSION_NUMBER 3008004
112 #define SQLITE_SOURCE_ID "2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
118
+1
--- src/th.c
+++ src/th.c
@@ -1996,10 +1996,11 @@
19961996
case OP_BITWISE_OR: iRes = iLeft|iRight; break;
19971997
case OP_LOGICAL_AND: iRes = iLeft&&iRight; break;
19981998
case OP_LOGICAL_OR: iRes = iLeft||iRight; break;
19991999
case OP_UNARY_MINUS: iRes = -iLeft; break;
20002000
case OP_UNARY_PLUS: iRes = +iLeft; break;
2001
+ case OP_BITWISE_NOT: iRes = ~iLeft; break;
20012002
case OP_LOGICAL_NOT: iRes = !iLeft; break;
20022003
default: assert(!"Internal error");
20032004
}
20042005
Th_SetResultInt(interp, iRes);
20052006
}else if( rc==TH_OK && eArgType==ARG_NUMBER ){
20062007
--- src/th.c
+++ src/th.c
@@ -1996,10 +1996,11 @@
1996 case OP_BITWISE_OR: iRes = iLeft|iRight; break;
1997 case OP_LOGICAL_AND: iRes = iLeft&&iRight; break;
1998 case OP_LOGICAL_OR: iRes = iLeft||iRight; break;
1999 case OP_UNARY_MINUS: iRes = -iLeft; break;
2000 case OP_UNARY_PLUS: iRes = +iLeft; break;
 
2001 case OP_LOGICAL_NOT: iRes = !iLeft; break;
2002 default: assert(!"Internal error");
2003 }
2004 Th_SetResultInt(interp, iRes);
2005 }else if( rc==TH_OK && eArgType==ARG_NUMBER ){
2006
--- src/th.c
+++ src/th.c
@@ -1996,10 +1996,11 @@
1996 case OP_BITWISE_OR: iRes = iLeft|iRight; break;
1997 case OP_LOGICAL_AND: iRes = iLeft&&iRight; break;
1998 case OP_LOGICAL_OR: iRes = iLeft||iRight; break;
1999 case OP_UNARY_MINUS: iRes = -iLeft; break;
2000 case OP_UNARY_PLUS: iRes = +iLeft; break;
2001 case OP_BITWISE_NOT: iRes = ~iLeft; break;
2002 case OP_LOGICAL_NOT: iRes = !iLeft; break;
2003 default: assert(!"Internal error");
2004 }
2005 Th_SetResultInt(interp, iRes);
2006 }else if( rc==TH_OK && eArgType==ARG_NUMBER ){
2007
+1
--- src/th.c
+++ src/th.c
@@ -1996,10 +1996,11 @@
19961996
case OP_BITWISE_OR: iRes = iLeft|iRight; break;
19971997
case OP_LOGICAL_AND: iRes = iLeft&&iRight; break;
19981998
case OP_LOGICAL_OR: iRes = iLeft||iRight; break;
19991999
case OP_UNARY_MINUS: iRes = -iLeft; break;
20002000
case OP_UNARY_PLUS: iRes = +iLeft; break;
2001
+ case OP_BITWISE_NOT: iRes = ~iLeft; break;
20012002
case OP_LOGICAL_NOT: iRes = !iLeft; break;
20022003
default: assert(!"Internal error");
20032004
}
20042005
Th_SetResultInt(interp, iRes);
20052006
}else if( rc==TH_OK && eArgType==ARG_NUMBER ){
20062007
--- src/th.c
+++ src/th.c
@@ -1996,10 +1996,11 @@
1996 case OP_BITWISE_OR: iRes = iLeft|iRight; break;
1997 case OP_LOGICAL_AND: iRes = iLeft&&iRight; break;
1998 case OP_LOGICAL_OR: iRes = iLeft||iRight; break;
1999 case OP_UNARY_MINUS: iRes = -iLeft; break;
2000 case OP_UNARY_PLUS: iRes = +iLeft; break;
 
2001 case OP_LOGICAL_NOT: iRes = !iLeft; break;
2002 default: assert(!"Internal error");
2003 }
2004 Th_SetResultInt(interp, iRes);
2005 }else if( rc==TH_OK && eArgType==ARG_NUMBER ){
2006
--- src/th.c
+++ src/th.c
@@ -1996,10 +1996,11 @@
1996 case OP_BITWISE_OR: iRes = iLeft|iRight; break;
1997 case OP_LOGICAL_AND: iRes = iLeft&&iRight; break;
1998 case OP_LOGICAL_OR: iRes = iLeft||iRight; break;
1999 case OP_UNARY_MINUS: iRes = -iLeft; break;
2000 case OP_UNARY_PLUS: iRes = +iLeft; break;
2001 case OP_BITWISE_NOT: iRes = ~iLeft; break;
2002 case OP_LOGICAL_NOT: iRes = !iLeft; break;
2003 default: assert(!"Internal error");
2004 }
2005 Th_SetResultInt(interp, iRes);
2006 }else if( rc==TH_OK && eArgType==ARG_NUMBER ){
2007
+1
--- src/th.c
+++ src/th.c
@@ -1996,10 +1996,11 @@
19961996
case OP_BITWISE_OR: iRes = iLeft|iRight; break;
19971997
case OP_LOGICAL_AND: iRes = iLeft&&iRight; break;
19981998
case OP_LOGICAL_OR: iRes = iLeft||iRight; break;
19991999
case OP_UNARY_MINUS: iRes = -iLeft; break;
20002000
case OP_UNARY_PLUS: iRes = +iLeft; break;
2001
+ case OP_BITWISE_NOT: iRes = ~iLeft; break;
20012002
case OP_LOGICAL_NOT: iRes = !iLeft; break;
20022003
default: assert(!"Internal error");
20032004
}
20042005
Th_SetResultInt(interp, iRes);
20052006
}else if( rc==TH_OK && eArgType==ARG_NUMBER ){
20062007
--- src/th.c
+++ src/th.c
@@ -1996,10 +1996,11 @@
1996 case OP_BITWISE_OR: iRes = iLeft|iRight; break;
1997 case OP_LOGICAL_AND: iRes = iLeft&&iRight; break;
1998 case OP_LOGICAL_OR: iRes = iLeft||iRight; break;
1999 case OP_UNARY_MINUS: iRes = -iLeft; break;
2000 case OP_UNARY_PLUS: iRes = +iLeft; break;
 
2001 case OP_LOGICAL_NOT: iRes = !iLeft; break;
2002 default: assert(!"Internal error");
2003 }
2004 Th_SetResultInt(interp, iRes);
2005 }else if( rc==TH_OK && eArgType==ARG_NUMBER ){
2006
--- src/th.c
+++ src/th.c
@@ -1996,10 +1996,11 @@
1996 case OP_BITWISE_OR: iRes = iLeft|iRight; break;
1997 case OP_LOGICAL_AND: iRes = iLeft&&iRight; break;
1998 case OP_LOGICAL_OR: iRes = iLeft||iRight; break;
1999 case OP_UNARY_MINUS: iRes = -iLeft; break;
2000 case OP_UNARY_PLUS: iRes = +iLeft; break;
2001 case OP_BITWISE_NOT: iRes = ~iLeft; break;
2002 case OP_LOGICAL_NOT: iRes = !iLeft; break;
2003 default: assert(!"Internal error");
2004 }
2005 Th_SetResultInt(interp, iRes);
2006 }else if( rc==TH_OK && eArgType==ARG_NUMBER ){
2007
--- test/th1.test
+++ test/th1.test
@@ -297,5 +297,55 @@
297297
298298
###############################################################################
299299
300300
fossil test-th-eval "string last {AB} {abc}"
301301
test th1-string-last-9 {$RESULT eq {-1}}
302
+
303
+###############################################################################
304
+
305
+fossil test-th-eval "expr ~(-1)"
306
+test th1-expr-14 {$RESULT eq {0}}
307
+
308
+###############################################################################
309
+
310
+fossil test-th-eval "expr ~-1"
311
+test th1-expr-15 {$RESULT eq {0}}
312
+
313
+###############################################################################
314
+
315
+fossil test-th-eval "expr ~0"
316
+test th1-expr-16 {$RESULT eq {-1}}
317
+
318
+###############################################################################
319
+
320
+fossil test-th-eval "expr ~+0"
321
+test th1-expr-17 {$RESULT eq {-1}}
322
+
323
+###############################################################################
324
+
325
+fossil test-th-eval "expr ~-0"
326
+test th1-expr-18 {$RESULT eq {-1}}
327
+
328
+###############################################################################
329
+
330
+fossil test-th-eval "expr ~(+0)"
331
+test th1-expr-19 {$RESULT eq {-1}}
332
+
333
+###############################################################################
334
+
335
+fossil test-th-eval "expr ~(-0)"
336
+test th1-expr-20 {$RESULT eq {-1}}
337
+
338
+###############################################################################
339
+
340
+fossil test-th-eval "expr ~1"
341
+test th1-expr-21 {$RESULT eq {-2}}
342
+
343
+###############################################################################
344
+
345
+fossil test-th-eval "expr ~+1"
346
+test th1-expr-22 {$RESULT eq {-2}}
347
+
348
+###############################################################################
349
+
350
+fossil test-th-eval "expr ~(+1)"
351
+test th1-expr-23 {$RESULT eq {-2}}
302352
--- test/th1.test
+++ test/th1.test
@@ -297,5 +297,55 @@
297
298 ###############################################################################
299
300 fossil test-th-eval "string last {AB} {abc}"
301 test th1-string-last-9 {$RESULT eq {-1}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
--- test/th1.test
+++ test/th1.test
@@ -297,5 +297,55 @@
297
298 ###############################################################################
299
300 fossil test-th-eval "string last {AB} {abc}"
301 test th1-string-last-9 {$RESULT eq {-1}}
302
303 ###############################################################################
304
305 fossil test-th-eval "expr ~(-1)"
306 test th1-expr-14 {$RESULT eq {0}}
307
308 ###############################################################################
309
310 fossil test-th-eval "expr ~-1"
311 test th1-expr-15 {$RESULT eq {0}}
312
313 ###############################################################################
314
315 fossil test-th-eval "expr ~0"
316 test th1-expr-16 {$RESULT eq {-1}}
317
318 ###############################################################################
319
320 fossil test-th-eval "expr ~+0"
321 test th1-expr-17 {$RESULT eq {-1}}
322
323 ###############################################################################
324
325 fossil test-th-eval "expr ~-0"
326 test th1-expr-18 {$RESULT eq {-1}}
327
328 ###############################################################################
329
330 fossil test-th-eval "expr ~(+0)"
331 test th1-expr-19 {$RESULT eq {-1}}
332
333 ###############################################################################
334
335 fossil test-th-eval "expr ~(-0)"
336 test th1-expr-20 {$RESULT eq {-1}}
337
338 ###############################################################################
339
340 fossil test-th-eval "expr ~1"
341 test th1-expr-21 {$RESULT eq {-2}}
342
343 ###############################################################################
344
345 fossil test-th-eval "expr ~+1"
346 test th1-expr-22 {$RESULT eq {-2}}
347
348 ###############################################################################
349
350 fossil test-th-eval "expr ~(+1)"
351 test th1-expr-23 {$RESULT eq {-2}}
352
--- test/th1.test
+++ test/th1.test
@@ -297,5 +297,55 @@
297297
298298
###############################################################################
299299
300300
fossil test-th-eval "string last {AB} {abc}"
301301
test th1-string-last-9 {$RESULT eq {-1}}
302
+
303
+###############################################################################
304
+
305
+fossil test-th-eval "expr ~(-1)"
306
+test th1-expr-14 {$RESULT eq {0}}
307
+
308
+###############################################################################
309
+
310
+fossil test-th-eval "expr ~-1"
311
+test th1-expr-15 {$RESULT eq {0}}
312
+
313
+###############################################################################
314
+
315
+fossil test-th-eval "expr ~0"
316
+test th1-expr-16 {$RESULT eq {-1}}
317
+
318
+###############################################################################
319
+
320
+fossil test-th-eval "expr ~+0"
321
+test th1-expr-17 {$RESULT eq {-1}}
322
+
323
+###############################################################################
324
+
325
+fossil test-th-eval "expr ~-0"
326
+test th1-expr-18 {$RESULT eq {-1}}
327
+
328
+###############################################################################
329
+
330
+fossil test-th-eval "expr ~(+0)"
331
+test th1-expr-19 {$RESULT eq {-1}}
332
+
333
+###############################################################################
334
+
335
+fossil test-th-eval "expr ~(-0)"
336
+test th1-expr-20 {$RESULT eq {-1}}
337
+
338
+###############################################################################
339
+
340
+fossil test-th-eval "expr ~1"
341
+test th1-expr-21 {$RESULT eq {-2}}
342
+
343
+###############################################################################
344
+
345
+fossil test-th-eval "expr ~+1"
346
+test th1-expr-22 {$RESULT eq {-2}}
347
+
348
+###############################################################################
349
+
350
+fossil test-th-eval "expr ~(+1)"
351
+test th1-expr-23 {$RESULT eq {-2}}
302352
--- test/th1.test
+++ test/th1.test
@@ -297,5 +297,55 @@
297
298 ###############################################################################
299
300 fossil test-th-eval "string last {AB} {abc}"
301 test th1-string-last-9 {$RESULT eq {-1}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
--- test/th1.test
+++ test/th1.test
@@ -297,5 +297,55 @@
297
298 ###############################################################################
299
300 fossil test-th-eval "string last {AB} {abc}"
301 test th1-string-last-9 {$RESULT eq {-1}}
302
303 ###############################################################################
304
305 fossil test-th-eval "expr ~(-1)"
306 test th1-expr-14 {$RESULT eq {0}}
307
308 ###############################################################################
309
310 fossil test-th-eval "expr ~-1"
311 test th1-expr-15 {$RESULT eq {0}}
312
313 ###############################################################################
314
315 fossil test-th-eval "expr ~0"
316 test th1-expr-16 {$RESULT eq {-1}}
317
318 ###############################################################################
319
320 fossil test-th-eval "expr ~+0"
321 test th1-expr-17 {$RESULT eq {-1}}
322
323 ###############################################################################
324
325 fossil test-th-eval "expr ~-0"
326 test th1-expr-18 {$RESULT eq {-1}}
327
328 ###############################################################################
329
330 fossil test-th-eval "expr ~(+0)"
331 test th1-expr-19 {$RESULT eq {-1}}
332
333 ###############################################################################
334
335 fossil test-th-eval "expr ~(-0)"
336 test th1-expr-20 {$RESULT eq {-1}}
337
338 ###############################################################################
339
340 fossil test-th-eval "expr ~1"
341 test th1-expr-21 {$RESULT eq {-2}}
342
343 ###############################################################################
344
345 fossil test-th-eval "expr ~+1"
346 test th1-expr-22 {$RESULT eq {-2}}
347
348 ###############################################################################
349
350 fossil test-th-eval "expr ~(+1)"
351 test th1-expr-23 {$RESULT eq {-2}}
352
--- test/th1.test
+++ test/th1.test
@@ -297,5 +297,55 @@
297297
298298
###############################################################################
299299
300300
fossil test-th-eval "string last {AB} {abc}"
301301
test th1-string-last-9 {$RESULT eq {-1}}
302
+
303
+###############################################################################
304
+
305
+fossil test-th-eval "expr ~(-1)"
306
+test th1-expr-14 {$RESULT eq {0}}
307
+
308
+###############################################################################
309
+
310
+fossil test-th-eval "expr ~-1"
311
+test th1-expr-15 {$RESULT eq {0}}
312
+
313
+###############################################################################
314
+
315
+fossil test-th-eval "expr ~0"
316
+test th1-expr-16 {$RESULT eq {-1}}
317
+
318
+###############################################################################
319
+
320
+fossil test-th-eval "expr ~+0"
321
+test th1-expr-17 {$RESULT eq {-1}}
322
+
323
+###############################################################################
324
+
325
+fossil test-th-eval "expr ~-0"
326
+test th1-expr-18 {$RESULT eq {-1}}
327
+
328
+###############################################################################
329
+
330
+fossil test-th-eval "expr ~(+0)"
331
+test th1-expr-19 {$RESULT eq {-1}}
332
+
333
+###############################################################################
334
+
335
+fossil test-th-eval "expr ~(-0)"
336
+test th1-expr-20 {$RESULT eq {-1}}
337
+
338
+###############################################################################
339
+
340
+fossil test-th-eval "expr ~1"
341
+test th1-expr-21 {$RESULT eq {-2}}
342
+
343
+###############################################################################
344
+
345
+fossil test-th-eval "expr ~+1"
346
+test th1-expr-22 {$RESULT eq {-2}}
347
+
348
+###############################################################################
349
+
350
+fossil test-th-eval "expr ~(+1)"
351
+test th1-expr-23 {$RESULT eq {-2}}
302352
--- test/th1.test
+++ test/th1.test
@@ -297,5 +297,55 @@
297
298 ###############################################################################
299
300 fossil test-th-eval "string last {AB} {abc}"
301 test th1-string-last-9 {$RESULT eq {-1}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
--- test/th1.test
+++ test/th1.test
@@ -297,5 +297,55 @@
297
298 ###############################################################################
299
300 fossil test-th-eval "string last {AB} {abc}"
301 test th1-string-last-9 {$RESULT eq {-1}}
302
303 ###############################################################################
304
305 fossil test-th-eval "expr ~(-1)"
306 test th1-expr-14 {$RESULT eq {0}}
307
308 ###############################################################################
309
310 fossil test-th-eval "expr ~-1"
311 test th1-expr-15 {$RESULT eq {0}}
312
313 ###############################################################################
314
315 fossil test-th-eval "expr ~0"
316 test th1-expr-16 {$RESULT eq {-1}}
317
318 ###############################################################################
319
320 fossil test-th-eval "expr ~+0"
321 test th1-expr-17 {$RESULT eq {-1}}
322
323 ###############################################################################
324
325 fossil test-th-eval "expr ~-0"
326 test th1-expr-18 {$RESULT eq {-1}}
327
328 ###############################################################################
329
330 fossil test-th-eval "expr ~(+0)"
331 test th1-expr-19 {$RESULT eq {-1}}
332
333 ###############################################################################
334
335 fossil test-th-eval "expr ~(-0)"
336 test th1-expr-20 {$RESULT eq {-1}}
337
338 ###############################################################################
339
340 fossil test-th-eval "expr ~1"
341 test th1-expr-21 {$RESULT eq {-2}}
342
343 ###############################################################################
344
345 fossil test-th-eval "expr ~+1"
346 test th1-expr-22 {$RESULT eq {-2}}
347
348 ###############################################################################
349
350 fossil test-th-eval "expr ~(+1)"
351 test th1-expr-23 {$RESULT eq {-2}}
352
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,10 +1,10 @@
11
<title>Change Log</title>
22
33
<h2>Changes For Version 1.28.1 (most likely never being released, those
44
are candidate cherry-picks just in case)</h2>
5
- * Upgraded internal SQLite to version 3.8.4.2, which adds support for
5
+ * Upgraded internal SQLite to version 3.8.4.3, which adds support for
66
CTE and the WITH clause, and fixes various (minor) SQLite bugs.
77
* Relax minimum SQLite version check to 3.7.17, as Fossil 1.28
88
actually works fine with this version and higher, when configured
99
with --disable-internal-sqlite.
1010
See: [https://www.mail-archive.com/[email protected]/msg14520.html]
@@ -22,10 +22,11 @@
2222
* [3fbdaa243d]: Speedup "fossil extras" and other commands which traverse
2323
the local filesystem.
2424
* [bfdabaecc8]: Fix the EXPLAIN indenter in the command-line shell to
2525
correctly handle NextIfOpen and PrevIfOpen opcodes.
2626
* [684eb478e7]: Fix the SCGI processing so that it works with Nginx.
27
+ * [ee1aa460a4]: Fix using the unary bitwise NOT operator in TH1
2728
* [fc6bb93689]: Add the "httpize" TH1 command.
2829
2930
<h2>Changes For Version 1.28 (2014-01-27)</h2>
3031
* Enhance [/help?cmd=/reports | /reports] to support event type filtering.
3132
* When cloning a repository, the user name passed via the URL (if any)
3233
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,10 +1,10 @@
1 <title>Change Log</title>
2
3 <h2>Changes For Version 1.28.1 (most likely never being released, those
4 are candidate cherry-picks just in case)</h2>
5 * Upgraded internal SQLite to version 3.8.4.2, which adds support for
6 CTE and the WITH clause, and fixes various (minor) SQLite bugs.
7 * Relax minimum SQLite version check to 3.7.17, as Fossil 1.28
8 actually works fine with this version and higher, when configured
9 with --disable-internal-sqlite.
10 See: [https://www.mail-archive.com/[email protected]/msg14520.html]
@@ -22,10 +22,11 @@
22 * [3fbdaa243d]: Speedup "fossil extras" and other commands which traverse
23 the local filesystem.
24 * [bfdabaecc8]: Fix the EXPLAIN indenter in the command-line shell to
25 correctly handle NextIfOpen and PrevIfOpen opcodes.
26 * [684eb478e7]: Fix the SCGI processing so that it works with Nginx.
 
27 * [fc6bb93689]: Add the "httpize" TH1 command.
28
29 <h2>Changes For Version 1.28 (2014-01-27)</h2>
30 * Enhance [/help?cmd=/reports | /reports] to support event type filtering.
31 * When cloning a repository, the user name passed via the URL (if any)
32
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,10 +1,10 @@
1 <title>Change Log</title>
2
3 <h2>Changes For Version 1.28.1 (most likely never being released, those
4 are candidate cherry-picks just in case)</h2>
5 * Upgraded internal SQLite to version 3.8.4.3, which adds support for
6 CTE and the WITH clause, and fixes various (minor) SQLite bugs.
7 * Relax minimum SQLite version check to 3.7.17, as Fossil 1.28
8 actually works fine with this version and higher, when configured
9 with --disable-internal-sqlite.
10 See: [https://www.mail-archive.com/[email protected]/msg14520.html]
@@ -22,10 +22,11 @@
22 * [3fbdaa243d]: Speedup "fossil extras" and other commands which traverse
23 the local filesystem.
24 * [bfdabaecc8]: Fix the EXPLAIN indenter in the command-line shell to
25 correctly handle NextIfOpen and PrevIfOpen opcodes.
26 * [684eb478e7]: Fix the SCGI processing so that it works with Nginx.
27 * [ee1aa460a4]: Fix using the unary bitwise NOT operator in TH1
28 * [fc6bb93689]: Add the "httpize" TH1 command.
29
30 <h2>Changes For Version 1.28 (2014-01-27)</h2>
31 * Enhance [/help?cmd=/reports | /reports] to support event type filtering.
32 * When cloning a repository, the user name passed via the URL (if any)
33
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,10 +1,10 @@
11
<title>Change Log</title>
22
33
<h2>Changes For Version 1.28.1 (most likely never being released, those
44
are candidate cherry-picks just in case)</h2>
5
- * Upgraded internal SQLite to version 3.8.4.2, which adds support for
5
+ * Upgraded internal SQLite to version 3.8.4.3, which adds support for
66
CTE and the WITH clause, and fixes various (minor) SQLite bugs.
77
* Relax minimum SQLite version check to 3.7.17, as Fossil 1.28
88
actually works fine with this version and higher, when configured
99
with --disable-internal-sqlite.
1010
See: [https://www.mail-archive.com/[email protected]/msg14520.html]
@@ -22,10 +22,11 @@
2222
* [3fbdaa243d]: Speedup "fossil extras" and other commands which traverse
2323
the local filesystem.
2424
* [bfdabaecc8]: Fix the EXPLAIN indenter in the command-line shell to
2525
correctly handle NextIfOpen and PrevIfOpen opcodes.
2626
* [684eb478e7]: Fix the SCGI processing so that it works with Nginx.
27
+ * [ee1aa460a4]: Fix using the unary bitwise NOT operator in TH1
2728
* [fc6bb93689]: Add the "httpize" TH1 command.
2829
2930
<h2>Changes For Version 1.28 (2014-01-27)</h2>
3031
* Enhance [/help?cmd=/reports | /reports] to support event type filtering.
3132
* When cloning a repository, the user name passed via the URL (if any)
3233
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,10 +1,10 @@
1 <title>Change Log</title>
2
3 <h2>Changes For Version 1.28.1 (most likely never being released, those
4 are candidate cherry-picks just in case)</h2>
5 * Upgraded internal SQLite to version 3.8.4.2, which adds support for
6 CTE and the WITH clause, and fixes various (minor) SQLite bugs.
7 * Relax minimum SQLite version check to 3.7.17, as Fossil 1.28
8 actually works fine with this version and higher, when configured
9 with --disable-internal-sqlite.
10 See: [https://www.mail-archive.com/[email protected]/msg14520.html]
@@ -22,10 +22,11 @@
22 * [3fbdaa243d]: Speedup "fossil extras" and other commands which traverse
23 the local filesystem.
24 * [bfdabaecc8]: Fix the EXPLAIN indenter in the command-line shell to
25 correctly handle NextIfOpen and PrevIfOpen opcodes.
26 * [684eb478e7]: Fix the SCGI processing so that it works with Nginx.
 
27 * [fc6bb93689]: Add the "httpize" TH1 command.
28
29 <h2>Changes For Version 1.28 (2014-01-27)</h2>
30 * Enhance [/help?cmd=/reports | /reports] to support event type filtering.
31 * When cloning a repository, the user name passed via the URL (if any)
32
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,10 +1,10 @@
1 <title>Change Log</title>
2
3 <h2>Changes For Version 1.28.1 (most likely never being released, those
4 are candidate cherry-picks just in case)</h2>
5 * Upgraded internal SQLite to version 3.8.4.3, which adds support for
6 CTE and the WITH clause, and fixes various (minor) SQLite bugs.
7 * Relax minimum SQLite version check to 3.7.17, as Fossil 1.28
8 actually works fine with this version and higher, when configured
9 with --disable-internal-sqlite.
10 See: [https://www.mail-archive.com/[email protected]/msg14520.html]
@@ -22,10 +22,11 @@
22 * [3fbdaa243d]: Speedup "fossil extras" and other commands which traverse
23 the local filesystem.
24 * [bfdabaecc8]: Fix the EXPLAIN indenter in the command-line shell to
25 correctly handle NextIfOpen and PrevIfOpen opcodes.
26 * [684eb478e7]: Fix the SCGI processing so that it works with Nginx.
27 * [ee1aa460a4]: Fix using the unary bitwise NOT operator in TH1
28 * [fc6bb93689]: Add the "httpize" TH1 command.
29
30 <h2>Changes For Version 1.28 (2014-01-27)</h2>
31 * Enhance [/help?cmd=/reports | /reports] to support event type filtering.
32 * When cloning a repository, the user name passed via the URL (if any)
33
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,10 +1,10 @@
11
<title>Change Log</title>
22
33
<h2>Changes For Version 1.28.1 (most likely never being released, those
44
are candidate cherry-picks just in case)</h2>
5
- * Upgraded internal SQLite to version 3.8.4.2, which adds support for
5
+ * Upgraded internal SQLite to version 3.8.4.3, which adds support for
66
CTE and the WITH clause, and fixes various (minor) SQLite bugs.
77
* Relax minimum SQLite version check to 3.7.17, as Fossil 1.28
88
actually works fine with this version and higher, when configured
99
with --disable-internal-sqlite.
1010
See: [https://www.mail-archive.com/[email protected]/msg14520.html]
@@ -22,10 +22,11 @@
2222
* [3fbdaa243d]: Speedup "fossil extras" and other commands which traverse
2323
the local filesystem.
2424
* [bfdabaecc8]: Fix the EXPLAIN indenter in the command-line shell to
2525
correctly handle NextIfOpen and PrevIfOpen opcodes.
2626
* [684eb478e7]: Fix the SCGI processing so that it works with Nginx.
27
+ * [ee1aa460a4]: Fix using the unary bitwise NOT operator in TH1
2728
* [fc6bb93689]: Add the "httpize" TH1 command.
2829
2930
<h2>Changes For Version 1.28 (2014-01-27)</h2>
3031
* Enhance [/help?cmd=/reports | /reports] to support event type filtering.
3132
* When cloning a repository, the user name passed via the URL (if any)
3233
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,10 +1,10 @@
1 <title>Change Log</title>
2
3 <h2>Changes For Version 1.28.1 (most likely never being released, those
4 are candidate cherry-picks just in case)</h2>
5 * Upgraded internal SQLite to version 3.8.4.2, which adds support for
6 CTE and the WITH clause, and fixes various (minor) SQLite bugs.
7 * Relax minimum SQLite version check to 3.7.17, as Fossil 1.28
8 actually works fine with this version and higher, when configured
9 with --disable-internal-sqlite.
10 See: [https://www.mail-archive.com/[email protected]/msg14520.html]
@@ -22,10 +22,11 @@
22 * [3fbdaa243d]: Speedup "fossil extras" and other commands which traverse
23 the local filesystem.
24 * [bfdabaecc8]: Fix the EXPLAIN indenter in the command-line shell to
25 correctly handle NextIfOpen and PrevIfOpen opcodes.
26 * [684eb478e7]: Fix the SCGI processing so that it works with Nginx.
 
27 * [fc6bb93689]: Add the "httpize" TH1 command.
28
29 <h2>Changes For Version 1.28 (2014-01-27)</h2>
30 * Enhance [/help?cmd=/reports | /reports] to support event type filtering.
31 * When cloning a repository, the user name passed via the URL (if any)
32
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,10 +1,10 @@
1 <title>Change Log</title>
2
3 <h2>Changes For Version 1.28.1 (most likely never being released, those
4 are candidate cherry-picks just in case)</h2>
5 * Upgraded internal SQLite to version 3.8.4.3, which adds support for
6 CTE and the WITH clause, and fixes various (minor) SQLite bugs.
7 * Relax minimum SQLite version check to 3.7.17, as Fossil 1.28
8 actually works fine with this version and higher, when configured
9 with --disable-internal-sqlite.
10 See: [https://www.mail-archive.com/[email protected]/msg14520.html]
@@ -22,10 +22,11 @@
22 * [3fbdaa243d]: Speedup "fossil extras" and other commands which traverse
23 the local filesystem.
24 * [bfdabaecc8]: Fix the EXPLAIN indenter in the command-line shell to
25 correctly handle NextIfOpen and PrevIfOpen opcodes.
26 * [684eb478e7]: Fix the SCGI processing so that it works with Nginx.
27 * [ee1aa460a4]: Fix using the unary bitwise NOT operator in TH1
28 * [fc6bb93689]: Add the "httpize" TH1 command.
29
30 <h2>Changes For Version 1.28 (2014-01-27)</h2>
31 * Enhance [/help?cmd=/reports | /reports] to support event type filtering.
32 * When cloning a repository, the user name passed via the URL (if any)
33

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button