#endif
#if SHELL_CON_TRANSLATE
-# define CI_INITIALIZER { INVALID_HANDLE_VALUE, SHELL_INVALID_CONS_MODE, \
+# define PST_INITIALIZER { INVALID_HANDLE_VALUE, SHELL_INVALID_CONS_MODE, \
{0,0,0,0}, SHELL_INVALID_FILE_PTR }
#else
-# define CI_INITIALIZER { 0, SHELL_INVALID_FILE_PTR }
+# define PST_INITIALIZER { 0, SHELL_INVALID_FILE_PTR }
#endif
/* Quickly say whether a known output is going to the console. */
-static short pstReachesConsole(PerStreamTags *ppst){
#if SHELL_CON_TRANSLATE
+static short pstReachesConsole(PerStreamTags *ppst){
+# if SHELL_CON_TRANSLATE
return (ppst->hx != INVALID_HANDLE_VALUE);
-#else
+# else
return (ppst->reachesConsole != 0);
-#endif
+# endif
}
+#else
+# define pstReachesConsole(ppst) 0
+#endif
#if SHELL_CON_TRANSLATE
static void restoreConsoleArb(PerStreamTags *ppst){
}
static ConsoleInfo consoleInfo = {
- { /* pstSetup */ CI_INITIALIZER, CI_INITIALIZER, CI_INITIALIZER },
- { /* pstDesignated[] */ CI_INITIALIZER, CI_INITIALIZER, CI_INITIALIZER },
+ { /* pstSetup */ PST_INITIALIZER, PST_INITIALIZER, PST_INITIALIZER },
+ { /* pstDesignated[] */ PST_INITIALIZER, PST_INITIALIZER, PST_INITIALIZER },
SAC_NoConsole /* sacSetup */
};
-#undef SHELL_INVALID_FILE_PTR
-#undef CI_INITIALIZER
SQLITE_INTERNAL_LINKAGE FILE* invalidFileStream = (FILE *)~0;
-static void maybeSetupAsConsole(PerStreamTags *ppst, short odir){
#if SHELL_CON_TRANSLATE
+static void maybeSetupAsConsole(PerStreamTags *ppst, short odir){
if( pstReachesConsole(ppst) ){
DWORD cm = odir? SHELL_CONO_MODE : SHELL_CONI_MODE;
SetConsoleMode(ppst->hx, cm);
}
+}
#else
- (void)ppst;
- (void)odir;
+# define maybeSetupAsConsole(ppst,odir)
#endif
-}
SQLITE_INTERNAL_LINKAGE void consoleRenewSetup(void){
#if SHELL_CON_TRANSLATE
#endif
}
+#ifdef CONSIO_INPUT_REDIR
/* Say whether given FILE* is among those known, via either
** consoleClassifySetup() or set{Output,Error}Stream, as
** readable, and return an associated PerStreamTags pointer
} while( apst[++ix] != 0 );
return apst[ix];
}
+#endif
/* Say whether given FILE* is among those known, via either
** consoleClassifySetup() or set{Output,Error}Stream, as
SQLITE_INTERNAL_LINKAGE FILE *setOutputStream(FILE *pf){
return designateEmitStream(pf, 1);
}
+#ifdef CONSIO_SET_ERROR_STREAM
SQLITE_INTERNAL_LINKAGE FILE *setErrorStream(FILE *pf){
return designateEmitStream(pf, 2);
}
+#endif
#if SHELL_CON_TRANSLATE
static void setModeFlushQ(FILE *pf, short bFlush, int mode){
}
#endif /* SHELL_CON_TRANSLATE */
-
+#ifdef CONSIO_GET_EMIT_STREAM
static PerStreamTags * getDesignatedEmitStream(FILE *pf, unsigned chix,
PerStreamTags *ppst){
PerStreamTags *rv = isKnownWritable(pf);
streamOfConsole(pf, ppst);
return ppst;
}
+#endif
/* Get stream info, either for designated output or error stream when
** chix equals 1 or 2, or for an arbitrary stream when chix == 0.
va_list ap;
int rv;
FILE *pfOut;
- PerStreamTags pst; /* Needed only for heretofore unknown streams. */
+ PerStreamTags pst = PST_INITIALIZER; /* for unknown streams */
+#if SHELL_CON_TRANSLATE
PerStreamTags *ppst = getEmitStreamInfo(1, &pst, &pfOut);
-
+#else
+ getEmitStreamInfo(1, &pst, &pfOut);
+#endif
va_start(ap, zFormat);
#if SHELL_CON_TRANSLATE
if( pstReachesConsole(ppst) ){
va_list ap;
int rv;
FILE *pfErr;
- PerStreamTags pst; /* Needed only for heretofore unknown streams. */
+ PerStreamTags pst = PST_INITIALIZER; /* for unknown streams */
+#if SHELL_CON_TRANSLATE
PerStreamTags *ppst = getEmitStreamInfo(2, &pst, &pfErr);
-
+#else
+ getEmitStreamInfo(2, &pst, &pfErr);
+#endif
va_start(ap, zFormat);
#if SHELL_CON_TRANSLATE
if( pstReachesConsole(ppst) ){
SQLITE_INTERNAL_LINKAGE int fPrintfUtf8(FILE *pfO, const char *zFormat, ...){
va_list ap;
int rv;
+ PerStreamTags pst = PST_INITIALIZER; /* for unknown streams */
#if SHELL_CON_TRANSLATE
- PerStreamTags pst; /* Needed only for heretofore unknown streams. */
PerStreamTags *ppst = getEmitStreamInfo(0, &pst, &pfO);
+#else
+ getEmitStreamInfo(0, &pst, &pfO);
#endif
va_start(ap, zFormat);
}
SQLITE_INTERNAL_LINKAGE int fPutsUtf8(const char *z, FILE *pfO){
+ PerStreamTags pst = PST_INITIALIZER; /* for unknown streams */
#if SHELL_CON_TRANSLATE
- PerStreamTags pst; /* Needed only for heretofore unknown streams. */
PerStreamTags *ppst = getEmitStreamInfo(0, &pst, &pfO);
+#else
+ getEmitStreamInfo(0, &pst, &pfO);
+#endif
+#if SHELL_CON_TRANSLATE
if( pstReachesConsole(ppst) ){
int rv;
maybeSetupAsConsole(ppst, 1);
SQLITE_INTERNAL_LINKAGE int ePutsUtf8(const char *z){
FILE *pfErr;
- PerStreamTags pst; /* Needed only for heretofore unknown streams. */
+ PerStreamTags pst = PST_INITIALIZER; /* for unknown streams */
+#if SHELL_CON_TRANSLATE
PerStreamTags *ppst = getEmitStreamInfo(2, &pst, &pfErr);
+#else
+ getEmitStreamInfo(2, &pst, &pfErr);
+#endif
#if SHELL_CON_TRANSLATE
if( pstReachesConsole(ppst) ) return conZstrEmit(ppst, z, (int)strlen(z));
else {
SQLITE_INTERNAL_LINKAGE int oPutsUtf8(const char *z){
FILE *pfOut;
- PerStreamTags pst; /* Needed only for heretofore unknown streams. */
+ PerStreamTags pst = PST_INITIALIZER; /* for unknown streams */
+#if SHELL_CON_TRANSLATE
PerStreamTags *ppst = getEmitStreamInfo(1, &pst, &pfOut);
+#else
+ getEmitStreamInfo(1, &pst, &pfOut);
+#endif
#if SHELL_CON_TRANSLATE
if( pstReachesConsole(ppst) ) return conZstrEmit(ppst, z, (int)strlen(z));
else {
int ncConsume = (int)(zPast - cBuf);
if( pfO == 0 ) return ncConsume;
#if SHELL_CON_TRANSLATE
- PerStreamTags pst; /* Needed only for heretofore unknown streams. */
+ PerStreamTags pst = PST_INITIALIZER; /* for unknown streams */
PerStreamTags *ppst = getEmitStreamInfo(0, &pst, &pfO);
if( pstReachesConsole(ppst) ){
int rv;
FILE *pfOut;
const char *zPast = zSkipValidUtf8(cBuf, nAccept, ctrlMask);
int ncConsume = (int)(zPast - cBuf);
- PerStreamTags pst; /* Needed only for heretofore unknown streams. */
+ PerStreamTags pst = PST_INITIALIZER; /* for unknown streams */
+#if SHELL_CON_TRANSLATE
PerStreamTags *ppst = getEmitStreamInfo(1, &pst, &pfOut);
+#else
+ getEmitStreamInfo(1, &pst, &pfOut);
+#endif
#if SHELL_CON_TRANSLATE
if( pstReachesConsole(ppst) ){
return conZstrEmit(ppst, cBuf, ncConsume);
#endif
}
+#ifdef CONSIO_EPUTB
SQLITE_INTERNAL_LINKAGE int
ePutbUtf8(const char *cBuf, int nAccept, long ctrlMask){
FILE *pfErr;
const char *zPast = zSkipValidUtf8(cBuf, nAccept, ctrlMask);
int ncConsume = (int)(zPast - cBuf);
- PerStreamTags pst; /* Needed only for heretofore unknown streams. */
+ PerStreamTags pst = PST_INITIALIZER; /* for unknown streams */
PerStreamTags *ppst = getEmitStreamInfo(2, &pst, &pfErr);
-#if SHELL_CON_TRANSLATE
+# if SHELL_CON_TRANSLATE
if( pstReachesConsole(ppst) ){
return conZstrEmit(ppst, cBuf, ncConsume);
}else {
-#endif
+# endif
return (int)fwrite(cBuf, 1, ncConsume, pfErr);
-#if SHELL_CON_TRANSLATE
+# if SHELL_CON_TRANSLATE
}
-#endif
+# endif
}
+#endif /* defined(CONSIO_EPUTB) */
SQLITE_INTERNAL_LINKAGE char* fGetsUtf8(char *cBuf, int ncMax, FILE *pfIn){
if( pfIn==0 ) pfIn = stdin;
}
#endif
}
+
+#undef SHELL_INVALID_FILE_PTR
-C Fix\svar-intro\safter\sexecutable\scode\sdeparture\sfrom\sold\sC.
-D 2023-11-13T13:01:01.956
+C Cure\smany\swarnings\sfrom\sgcc,\sclang\sand\sCL.exe.
+D 2023-11-13T15:59:27.593
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/async/README.txt e12275968f6fde133a80e04387d0e839b0c51f91
F ext/async/sqlite3async.c 6f247666b495c477628dd19364d279c78ea48cd90c72d9f9b98ad1aff3294f94
F ext/async/sqlite3async.h 46b47c79357b97ad85d20d2795942c0020dc20c532114a49808287f04aa5309a
-F ext/consio/console_io.c 41fd57d99340dd51efa3a61af12eedbb90a62ff5db31c5f9d3e665134bc09353 x
-F ext/consio/console_io.h 3a2ad14e8adcca431fe9bd12e8ebb5ecfe30002cfa190b2be1479048a441e6ec
+F ext/consio/console_io.c b59dac1eb138339fcef6da8feae2f3a9a4397b7362ef52b4dca630ef5f848f23 x
+F ext/consio/console_io.h 515d27ca9e5a5d36e12ff2b85977b5931fdeba0ce142f40178d94dc8638b4c81
F ext/expert/README.md b321c2762bb93c18ea102d5a5f7753a4b8bac646cb392b3b437f633caf2020c3
F ext/expert/expert.c d548d603a4cc9e61f446cc179c120c6713511c413f82a4a32b1e1e69d3f086a4
F ext/expert/expert1.test 0dd5cb096d66bed593e33053a3b364f6ef52ed72064bf5cf298364636dbf3cd6
F src/resolve.c d017bad7ba8e778617701a0e986fdeb393d67d6afa84fb28ef4e8b8ad2acf916
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/select.c 503331aca8785254a7bf3d74ab338a99118fa297e1184a4dde33b3cdf7a9d341
-F src/shell.c.in 6317180fce95b4d994423047648676e9d8c4bd7b82ab8ad98644a9e9a81ff24c
+F src/shell.c.in 187da23da7601bfb225d0efadf77cbf766d9cee7574323a25a3d42dc29cd27fe
F src/sqlite.h.in 4f841d3d117b830ee5ee45e8d89ceff1195f3ebb72d041ace8d116ba4c103b35
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F src/sqlite3ext.h 3f046c04ea3595d6bfda99b781926b17e672fd6d27da2ba6d8d8fc39981dcb54
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 97e2c9621e3e01048e33da63ca4146ededa33cf6adefa996fa49b8c6a8d555b5
-R 9e09f295654f16b3a3c0e5e6e0bcae0d
+P 08996f4fd52f5742e77225ce3da2ac43ea5cc44bb0d8d21126b6d624273842a5
+R ab417e4721f6826c6db3c6522006d6a5
U larrybr
-Z 4863af021829bb44bd729f706b66926d
+Z 401b90e437fbd22102bf23dbdae3a8b4
# Remove this line to create a well-formed Fossil manifest.
int nVal,
sqlite3_value **apVal
){
- ShellState *p = (ShellState*)sqlite3_user_data(pCtx);
+ /* Unused: (ShellState*)sqlite3_user_data(pCtx); */
(void)nVal;
oputf("%s\n", sqlite3_value_text(apVal[0]));
sqlite3_result_value(pCtx, apVal[0]);
*/
static const char *anyOfInStr(const char *s, const char *zAny, size_t ns){
const char *pcFirst = 0;
- if( ns == ~0 ) ns = strlen(s);
+ if( ns == ~(size_t)0 ) ns = strlen(s);
while(*zAny){
const char *pc = (const char*)memchr(s, *zAny&0xff, ns);
if( pc ){
char cbsSay;
oputz(zq);
while( *z!=0 ){
- const char *pcDQBSRO = anyOfInStr(z, zDQBSRO, ~0);
+ const char *pcDQBSRO = anyOfInStr(z, zDQBSRO, ~(size_t)0);
const char *pcPast = z + fPutbUtf8(0, z, INT_MAX, ctrlMask);
const char *pcEnd = (pcDQBSRO && pcDQBSRO < pcPast)? pcDQBSRO : pcPast;
if( pcEnd > z ) oPutbUtf8(z, (int)(pcEnd-z), 0);
** Display a single line of status using 64-bit values.
*/
static void displayStatLine(
- ShellState *p, /* The shell context */
char *zLabel, /* Label for this one line */
char *zFormat, /* Format for the result */
int iStatusCtrl, /* Which status to display */
return 0;
}
- displayStatLine(pArg, "Memory Used:",
+ displayStatLine("Memory Used:",
"%lld (max %lld) bytes", SQLITE_STATUS_MEMORY_USED, bReset);
- displayStatLine(pArg, "Number of Outstanding Allocations:",
+ displayStatLine("Number of Outstanding Allocations:",
"%lld (max %lld)", SQLITE_STATUS_MALLOC_COUNT, bReset);
if( pArg->shellFlgs & SHFLG_Pagecache ){
- displayStatLine(pArg, "Number of Pcache Pages Used:",
+ displayStatLine("Number of Pcache Pages Used:",
"%lld (max %lld) pages", SQLITE_STATUS_PAGECACHE_USED, bReset);
}
- displayStatLine(pArg, "Number of Pcache Overflow Bytes:",
+ displayStatLine("Number of Pcache Overflow Bytes:",
"%lld (max %lld) bytes", SQLITE_STATUS_PAGECACHE_OVERFLOW, bReset);
- displayStatLine(pArg, "Largest Allocation:",
+ displayStatLine("Largest Allocation:",
"%lld bytes", SQLITE_STATUS_MALLOC_SIZE, bReset);
- displayStatLine(pArg, "Largest Pcache Allocation:",
+ displayStatLine("Largest Pcache Allocation:",
"%lld bytes", SQLITE_STATUS_PAGECACHE_SIZE, bReset);
#ifdef YYTRACKMAXSTACKDEPTH
- displayStatLine(pArg, "Deepest Parser Stack:",
+ displayStatLine("Deepest Parser Stack:",
"%lld (max %lld)", SQLITE_STATUS_PARSER_STACK, bReset);
#endif