From: drh <> Date: Thu, 30 Apr 2026 15:07:25 +0000 (+0000) Subject: Add the /m escape to the CLI prompt string. Use it to show "memory" X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3e663bd8c7472f00fe9e7a33f0feda328023b6c9;p=thirdparty%2Fsqlite.git Add the /m escape to the CLI prompt string. Use it to show "memory" in italic for the default prompt for in-memory databases. FossilOrigin-Name: 1e3c95393044279997833145cb610b98926fb0c8f53ae4fb35e9fcc6c1ded1a2 --- diff --git a/manifest b/manifest index 123547996d..2727433051 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\scrash\sthat\scould\soccur\sif\sthe\sdestination\sdatabase\sof\sa\sbackup\sis\nreplaced\susing\ssqlite3_deserialize()\sbetween\sthe\scall\sto\ssqlite3_backup_init()\nand\sthe\sfirst\scall\sto\ssqlite3_backup_step().\sForum\spost\s[forum:15d82885e2\s|\s15d82885e2]. -D 2026-04-29T19:14:54.013 +C Add\sthe\s/m\sescape\sto\sthe\sCLI\sprompt\sstring.\s\sUse\sit\sto\sshow\s"memory"\nin\sitalic\sfor\sthe\sdefault\sprompt\sfor\sin-memory\sdatabases. +D 2026-04-30T15:07:25.472 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -736,7 +736,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c F src/resolve.c 928ff887f2a7c64275182060d94d06fdddbe32226c569781cf7e7edc6f58d7fd F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97 F src/select.c 4c05cde130f26991b7411d8c6809e0630625e18078742c963a047b4b9cc01d49 -F src/shell.c.in c76e531d1535404b302ddba8b7d3724e2c7e7a2ced2c52baf6503193055ff4a9 +F src/shell.c.in faae585d2244458532f0791d34d76c0295f0e3c6bb19e4f40da3e20847e40ff9 F src/sqlite.h.in 39d2e09114d2bdb7afd998f4a469c8f8cd065f8093835a7d0422f260fc78fb4f F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479 F src/sqlite3ext.h 9788c301f95370fa30e808861f1d2e6f022a816ddbe2a4f67486784c1b31db2e @@ -2203,8 +2203,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 1786fcd5b4ee6cd9b4780f3687dfaec5b90ef0476e0da266a94e069b98e70514 -R 5b43b2d170e39f26e9627eaaeadf5925 -U dan -Z efb7538193cd694216b53a7535e0ddd9 +P 1f940357f7bb160b583ac5b08ff4e32a9fef353255d032c5a18bcb04416c0f0b +R 032b220f8929a064e69625bebb78bfe6 +U drh +Z 8768f59b39f2d34d4fd9fe4e6313ed70 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 88f3ef2906..1f21b0a399 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -1f940357f7bb160b583ac5b08ff4e32a9fef353255d032c5a18bcb04416c0f0b +1e3c95393044279997833145cb610b98926fb0c8f53ae4fb35e9fcc6c1ded1a2 diff --git a/src/shell.c.in b/src/shell.c.in index 1976cf7e94..dae7d4605d 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -954,7 +954,7 @@ static const char *shellPromptAppDef(int c){ #elif defined(SQLITE_PS_NOANSI) return "/A-/v /~> "; #else - return "/e[1;32m/A-/v /e[1;/x33/:36/;m/f/e[0m-> "; + return "/e[1;32m/A-/v /e[1;/x33/:36/;m/m/e[3mmemory/:/f/;/;/e[0m-> "; #endif /* The default continuation prompt string */ @@ -1026,7 +1026,7 @@ static const char *prompt_string(ShellState *p, int bContinue){ ** Return the name of the open database file, to be used for prompt ** expansion purposes. */ -static const char *prompt_filename(ShellState *p){ +static const char *prompt_filename(ShellState *p, const char *zMemoryName){ sqlite3_filename pFN; const char *zFN = 0; if( p->pAuxDb->mFlgs & 0x01 ){ @@ -1037,7 +1037,7 @@ static const char *prompt_filename(ShellState *p){ if( zFN==0 || zFN[0]==0 ){ zFN = p->pAuxDb->zDbFilename; if( zFN==0 || zFN[0]==0 || cli_strcmp(zFN,":memory:")==0 ){ - zFN = "in-memory"; + zFN = zMemoryName; } } return zFN; @@ -1195,13 +1195,20 @@ static char *expand_prompt( i = -1; continue; } + if( c=='m' ){ + /* /m turns display on for an in-memory database and off for persistent */ + mOff = (mOff<<1) | (p->db && prompt_filename(p,0)!=0); + zPrompt += 2; + i = -1; + continue; + } if( c=='f' || c=='F' || c=='~' ){ /* /f becomes the tail of the database filename */ /* /F becomes the full pathname */ /* /~ becomes the full pathname relative to $HOME */ if( !mOff ){ - const char *zFN = prompt_filename(p); + const char *zFN = prompt_filename(p,""); if( c=='f' ){ #ifdef _WIN32 const char *zTail = strrchr(zFN,'\\');