]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
#if out the '.load' command in WASM builds. Several UI layout tweaks.
authorstephan <stephan@noemail.net>
Wed, 18 May 2022 23:40:27 +0000 (23:40 +0000)
committerstephan <stephan@noemail.net>
Wed, 18 May 2022 23:40:27 +0000 (23:40 +0000)
FossilOrigin-Name: 67d98297f01d4274c510f5c5cb2a219aeb36fcbb7ce78b8b9ed65639a4561c73

ext/fiddle/fiddle.in.html
manifest
manifest.uuid
src/shell.c.in

index 9e761d6ffa78ddf0573283166b106a293cf4280d..ae3bce871f02b3f2dbc87737603aec3eb703f8b6 100644 (file)
@@ -45,6 +45,7 @@
           flex-direction: column;
           align-items: stretch;
           flex: 1 1 auto;
+          margin: 0.25em;
       }
       .button-bar {
           display: flex;
           pointer-events: none !important;
           display: none !important;
       }
+      fieldset.options {
+          font-size: 80%;
+      }
+      fieldset > legend {
+          padding: 0 0.5em;
+      }
+      span.labeled-input {
+          padding: 0.25em;
+          margin: 0.25em 0.5em;
+          border: 1px inset;
+          border-radius: 0.25em;
+      }
     </style>
   </head>
   <body>
     <div class="emscripten">
       <progress value="0" max="100" id="progress" hidden='1'></progress>  
     </div>
+    <fieldset class='options'>
+      <legend>Options</legend>
+      <div class=''>
+        <span class='labeled-input'>
+          <input type='checkbox' id='opt-cb-sbs'>
+          <label for='opt-cb-sbs'>Side-by-side</label>
+        </span>
+        <span class='labeled-input'>
+          <input type='checkbox' id='opt-cb-autoscroll' checked>
+          <label for='opt-cb-autoscroll'>Auto-scroll output</label>
+        </span>
+      </div>
+    </fieldset>
     <div id='main-wrapper'>
       <div class='ta-wrapper'>
         <textarea id="input" rows="8">-- Use ctrl-enter or shift-enter to execute SQL
@@ -89,23 +115,16 @@ select * from t;</textarea>
         <div class='button-bar'>
           <button id='btn-run' disabled>Run</button>
           <button id='btn-clear' disabled>Clear</button>
+          <button data-cmd='.help' disabled>Help</button>
         </div>
       </div>
       <div class='ta-wrapper'>
         <textarea id="output" readonly rows="18" placeholder="Shell output"></textarea>
         <div class='button-bar'>
-          <button data-cmd='.help' disabled>Help</button>
           <button id='btn-clear-output' disabled>Clear</button>
         </div>
       </div>
     </div>
-    <fieldset>
-      <legend>Options</legend>
-      <div class=''>
-        <input type='checkbox' id='opt-cb-sbs'>
-        <label for='opt-cb-sbs'>Side-by-side</label>
-      </div>
-    </fieldset>
     <hr>
     <header>
       Notes and Caveats
@@ -136,6 +155,14 @@ select * from t;</textarea>
     </div><!-- #notes-caveats -->
     <script type='text/javascript'>
       (function(){
+          /* An object for propagating certain config state between our
+           JS code and the WASM module. */
+          const config = {
+              /* If true, the Module.print() impl will auto-scroll
+                 the output widget to the bottom when it receives output,
+                 else it won't. */
+              autoScrollOutput: true
+          };
           /**
              Callback for the emscripten module init process, gets
              passed the module object after all parts of the module
@@ -186,6 +213,10 @@ select * from t;</textarea>
                           this.checked ? 'add' : 'remove'
                       ]('side-by-side');
                   }, false);
+              document.querySelector('#opt-cb-autoscroll')
+                  .addEventListener('change', function(){
+                      config.autoScrollOutput = this.checked;
+                  }, false);
               document.querySelector('#cb-notes-caveats')
                   .addEventListener('change', function(){
                       document.querySelector('#notes-caveats').classList[
@@ -229,7 +260,9 @@ select * from t;</textarea>
                       //console.log("arguments",arguments);
                       console.log(text);
                       f._.value += text + "\n";
-                      f._.scrollTop = f._.scrollHeight; // focus on bottom
+                      if(config.autoScrollOutput){
+                          f._.scrollTop = f._.scrollHeight;
+                      }
                   };
               })(),
               setStatus: function f(text) {
index 15c9edcabf0395d6edc9e77750b33933e95ec757..a60f4ea1b9e85bc5bed805253078ed1173daa720 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C In\swasm\sbuilds,\sifdef\sout\sshell\scommands\swhich\srequire\sfile\sI/O,\spipes,\sor\swhich\strigger\san\sexit()\s(.quit\sand\s.exit).\sDocumented\ssome\sof\sthe\squirks\sand\slimitations\sof\sthe\sC/WASM\scrossover.\sKeep\sthe\sJS\scode\sfrom\scalling\sinto\sthe\sC\scode\safter\san\sexit()\shas\sbeen\striggered.
-D 2022-05-18T22:58:34.214
+C #if\sout\sthe\s'.load'\scommand\sin\sWASM\sbuilds.\sSeveral\sUI\slayout\stweaks.
+D 2022-05-18T23:40:27.606
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -56,7 +56,7 @@ F ext/expert/sqlite3expert.c 6ca30d73b9ed75bd56d6e0d7f2c962d2affaa72c505458619d0
 F ext/expert/sqlite3expert.h ca81efc2679a92373a13a3e76a6138d0310e32be53d6c3bfaedabd158ea8969b
 F ext/expert/test_expert.c d56c194b769bdc90cf829a14c9ecbc1edca9c850b837a4d0b13be14095c32a72
 F ext/fiddle/Makefile ea647919e6ac4b50edde1490f60ee87e8ccd75141e4aa650718c6f28eb323bbc
-F ext/fiddle/fiddle.in.html 4836ba55dba4f29e6dc356e4ab763a6bcb0e13a7835da24b68f746078121a655
+F ext/fiddle/fiddle.in.html a3e79d914bd340f5ef99d2c8c0debc6e5a24eb8e44d3f50daba33f2c793d6dbc
 F ext/fiddle/index.md d9c1c308d8074341bc3b11d1d39073cd77754cb3ca9aeb949f23fdd8323d81cf
 F ext/fts1/README.txt 20ac73b006a70bcfd80069bdaf59214b6cf1db5e
 F ext/fts1/ft_hash.c 3927bd880e65329bdc6f506555b228b28924921b
@@ -557,7 +557,7 @@ F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
 F src/resolve.c a4eb3c617027fd049b07432f3b942ea7151fa793a332a11a7d0f58c9539e104f
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
 F src/select.c 74060a09f66c0c056f3c61627e22cb484af0bbfa29d7d14dcf17c684742c15de
-F src/shell.c.in be0687bf657dfa3df50153063d5629ec1324f44da11b21acd3920384f86450b7
+F src/shell.c.in fe3e1f36d67639e5fd81ee890d47286f178dd5cd295b6e3963d8403b542b160e
 F src/sqlite.h.in d15c307939039086adca159dd340a94b79b69827e74c6d661f343eeeaefba896
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h a988810c9b21c0dc36dc7a62735012339dc76fc7ab448fb0792721d30eacb69d
@@ -1957,8 +1957,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P bf06ddf4125d2726019fa16d312726c8551094be991509499b5688f6a68a7747
-R f918d85b43414b7ea69ea32ee376905e
+P bee436e62a956e49b0df4a92abff2c89f2b44e21d8f593716df0331f8fc49814
+R e1289b13b7cf898dfe59929a952893e9
 U stephan
-Z d35b2897d114db6dc646414a4ea884d4
+Z 956e918f03d99cce3794ab764703b43a
 # Remove this line to create a well-formed Fossil manifest.
index 61fcbbb319367494ff3ef22c9e8db7a5d9fc61ce..ba9caa5f5eb434c7d9d18bd69de4891999cfdd7a 100644 (file)
@@ -1 +1 @@
-bee436e62a956e49b0df4a92abff2c89f2b44e21d8f593716df0331f8fc49814
\ No newline at end of file
+67d98297f01d4274c510f5c5cb2a219aeb36fcbb7ce78b8b9ed65639a4561c73
\ No newline at end of file
index fc9ffb11523d8967e88c44ee933ff7df0041a134..d22dd7310b49ebe3627c3985294ece9f408af0b7 100644 (file)
@@ -4348,7 +4348,7 @@ static const char *(azHelp[]) = {
   ".lint OPTIONS            Report potential schema issues.",
   "     Options:",
   "        fkey-indexes     Find missing foreign key indexes",
-#ifndef SQLITE_OMIT_LOAD_EXTENSION
+#if !defined(SQLITE_OMIT_LOAD_EXTENSION) && !defined(SQLITE_SHELL_WASM_MODE)
   ".load FILE ?ENTRY?       Load an extension library",
 #endif
   ".log FILE|off            Turn logging on or off.  FILE can be stderr/stdout",
@@ -9360,7 +9360,7 @@ static int do_meta_command(char *zLine, ShellState *p){
     lintDotCommand(p, azArg, nArg);
   }else
 
-#ifndef SQLITE_OMIT_LOAD_EXTENSION
+#if !defined(SQLITE_OMIT_LOAD_EXTENSION) && !defined(SQLITE_SHELL_WASM_MODE)
   if( c=='l' && strncmp(azArg[0], "load", n)==0 ){
     const char *zFile, *zProc;
     char *zErrMsg = 0;