]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add the /m escape to the CLI prompt string. Use it to show "memory"
authordrh <>
Thu, 30 Apr 2026 15:07:25 +0000 (15:07 +0000)
committerdrh <>
Thu, 30 Apr 2026 15:07:25 +0000 (15:07 +0000)
in italic for the default prompt for in-memory databases.

FossilOrigin-Name: 1e3c95393044279997833145cb610b98926fb0c8f53ae4fb35e9fcc6c1ded1a2

manifest
manifest.uuid
src/shell.c.in

index 123547996d3decbec2b9d17043bc928691f46823..27274330518c75b936f557b4550e3d4c9ee8e594 100644 (file)
--- 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.
index 88f3ef29069884d7517bb325ce114fa40ec28497..1f21b0a3991d2c646ed14518ff324d1c2572aa63 100644 (file)
@@ -1 +1 @@
-1f940357f7bb160b583ac5b08ff4e32a9fef353255d032c5a18bcb04416c0f0b
+1e3c95393044279997833145cb610b98926fb0c8f53ae4fb35e9fcc6c1ded1a2
index 1976cf7e94ec3c02e6773823f30f1cfc16867eef..dae7d4605dcfa045b94dae2135e15ef4eae4d9c2 100644 (file)
@@ -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,'\\');