Fossil

Diff
Login

Differences From Artifact [294f6cf41a]:

To Artifact [722cdb2de9]:


24110
24111
24112
24113
24114
24115
24116
24117
24118

24119
24120
24121
24122
24123
24124
24125
24110
24111
24112
24113
24114
24115
24116

24117
24118
24119
24120
24121
24122
24123
24124
24125







-

+








/*
** Change the mode to eMode
*/
static void modeChange(ShellState *p, unsigned char eMode){
  const ModeInfo *pI;
  if( eMode<ArraySize(aModeInfo) ){
    pI = &aModeInfo[eMode];
    Mode *pM = &p->mode;
    pI = &aModeInfo[eMode];
    pM->eMode = eMode;
    if( pI->eCSep ) modeSetStr(&pM->spec.zColumnSep, aModeStr[pI->eCSep]);
    if( pI->eRSep ) modeSetStr(&pM->spec.zRowSep, aModeStr[pI->eRSep]);
    if( pI->eNull ) modeSetStr(&pM->spec.zNull, aModeStr[pI->eNull]);
    pM->spec.eText = pI->eText;
    pM->spec.eBlob = pI->eBlob;
    pM->spec.bTitles = pI->bHdr;
24611
24612
24613
24614
24615
24616
24617
24618



24619
24620
24621
24622
24623
24624
24625
24626







24627
24628
24629
24630
24631
24632
24633
24634







24635
24636
24637
24638
24639
24640
24641
24642







24643
24644
24645


24646
24647
24648
24649
24650
24651
24652
24611
24612
24613
24614
24615
24616
24617

24618
24619
24620
24621







24622
24623
24624
24625
24626
24627
24628
24629







24630
24631
24632
24633
24634
24635
24636
24637







24638
24639
24640
24641
24642
24643
24644
24645
24646

24647
24648
24649
24650
24651
24652
24653
24654
24655







-
+
+
+

-
-
-
-
-
-
-
+
+
+
+
+
+
+

-
-
-
-
-
-
-
+
+
+
+
+
+
+

-
-
-
-
-
-
-
+
+
+
+
+
+
+


-
+
+







  if( ++seenInterrupt>1 ) cli_exit(1);
  if( globalDb ) sqlite3_interrupt(globalDb);
}

/* Try to determine the screen width.  Use the default if unable.
*/
int shellScreenWidth(void){
  if( stdout_tty_width>0 ) return stdout_tty_width;
  if( stdout_tty_width>0 ){
    return stdout_tty_width;
  }else{
#if defined(TIOCGSIZE)
  struct ttysize ts;
  if( ioctl(STDIN_FILENO, TIOCGSIZE, &ts)>=0
   || ioctl(STDOUT_FILENO, TIOCGSIZE, &ts)>=0
   || ioctl(STDERR_FILENO, TIOCGSIZE, &ts)>=0
  ){
    return ts.ts_cols;
  }
    struct ttysize ts;
    if( ioctl(STDIN_FILENO, TIOCGSIZE, &ts)>=0
     || ioctl(STDOUT_FILENO, TIOCGSIZE, &ts)>=0
     || ioctl(STDERR_FILENO, TIOCGSIZE, &ts)>=0
    ){
      return ts.ts_cols;
    }
#elif defined(TIOCGWINSZ)
  struct winsize ws;
  if( ioctl(STDIN_FILENO, TIOCGWINSZ, &ws)>=0
   || ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws)>=0
   || ioctl(STDERR_FILENO, TIOCGWINSZ, &ws)>=0
  ){
    return ws.ws_col;
  }
    struct winsize ws;
    if( ioctl(STDIN_FILENO, TIOCGWINSZ, &ws)>=0
     || ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws)>=0
     || ioctl(STDERR_FILENO, TIOCGWINSZ, &ws)>=0
    ){
      return ws.ws_col;
    }
#elif defined(_WIN32)
  CONSOLE_SCREEN_BUFFER_INFO csbi;
  if( GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)
   || GetConsoleScreenBufferInfo(GetStdHandle(STD_ERROR_HANDLE), &csbi)
   || GetConsoleScreenBufferInfo(GetStdHandle(STD_INPUT_HANDLE), &csbi)
  ){
    return csbi.srWindow.Right - csbi.srWindow.Left + 1;
  }
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    if( GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)
     || GetConsoleScreenBufferInfo(GetStdHandle(STD_ERROR_HANDLE), &csbi)
     || GetConsoleScreenBufferInfo(GetStdHandle(STD_INPUT_HANDLE), &csbi)
    ){
      return csbi.srWindow.Right - csbi.srWindow.Left + 1;
    }
#endif
#define DEFAULT_SCREEN_WIDTH 80
  return DEFAULT_SCREEN_WIDTH;
    return DEFAULT_SCREEN_WIDTH;
  }
}

#if (defined(_WIN32) || defined(WIN32)) && !defined(_WIN32_WCE)
/*
** This routine runs for console events (e.g. Ctrl-C) on Win32
*/
static BOOL WINAPI ConsoleCtrlHandler(
31874
31875
31876
31877
31878
31879
31880
31881
31882

31883
31884
31885
31886
31887
31888
31889
31877
31878
31879
31880
31881
31882
31883

31884
31885
31886
31887
31888
31889
31890
31891
31892







-

+







    data.mode.eMode = MODE_List;
    data.mode.spec.eText = QRF_TEXT_Plain;
    data.mode.spec.nCharLimit = 0;
    data.mode.spec.zRowSep = "\n";
    rc = shell_exec(&data,zSql,0);
    sqlite3_free(zSql);
    if( rc==SQLITE_OK ){
      memset(hasStat, 0, sizeof(hasStat));
      sqlite3_stmt *pStmt;
      memset(hasStat, 0, sizeof(hasStat));
      rc = sqlite3_prepare_v2(p->db,
               "SELECT substr(name,12,1) FROM sqlite_schema"
               " WHERE name GLOB 'sqlite_stat[134]'",
               -1, &pStmt, 0);
      if( rc==SQLITE_OK ){
        while( sqlite3_step(pStmt)==SQLITE_ROW ){
          int k = sqlite3_column_int(pStmt,0);