/ Check-in [68662e3b]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix the CLI so that it does not terminate input when an Oracle or MS-SQL command terminator mark is seen in the middle of a string literal. Ticket #3490. (CVS 5878)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:68662e3b487b80b2c94cd2376060388bd8df0e4e
User & Date: drh 2008-11-11 00:30:12
Context
2008-11-11
00:36
When an assignment occurs in a boolean, always test the result using "!=0" to avoid confusion and make it clear that assignment is intended, not an equality test. Ticket #3491. (CVS 5879) check-in: 89ee5295 user: drh tags: trunk
00:30
Fix the CLI so that it does not terminate input when an Oracle or MS-SQL command terminator mark is seen in the middle of a string literal. Ticket #3490. (CVS 5878) check-in: 68662e3b user: drh tags: trunk
00:21
When an OOM error occurs while resizing an sqlite_value object, make sure the value of the object is set to NULL. Ticket #3488. (CVS 5877) check-in: 7b9c9b35 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/shell.c.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
....
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains code to implement the "sqlite" command line
** utility for accessing SQLite databases.
**
** $Id: shell.c,v 1.185 2008/08/11 19:12:35 drh Exp $
*/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include "sqlite3.h"
#include <ctype.h>
................................................................................
      if( rc==2 ){
        break;
      }else if( rc ){
        errCnt++;
      }
      continue;
    }
    if( _is_command_terminator(zLine) ){
      memcpy(zLine,";",2);
    }
    nSqlPrior = nSql;
    if( zSql==0 ){
      int i;
      for(i=0; zLine[i] && isspace((unsigned char)zLine[i]); i++){}
      if( zLine[i]!=0 ){







|







 







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
....
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains code to implement the "sqlite" command line
** utility for accessing SQLite databases.
**
** $Id: shell.c,v 1.186 2008/11/11 00:30:12 drh Exp $
*/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include "sqlite3.h"
#include <ctype.h>
................................................................................
      if( rc==2 ){
        break;
      }else if( rc ){
        errCnt++;
      }
      continue;
    }
    if( _is_command_terminator(zLine) && sqlite3_complete(zSql) ){
      memcpy(zLine,";",2);
    }
    nSqlPrior = nSql;
    if( zSql==0 ){
      int i;
      for(i=0; zLine[i] && isspace((unsigned char)zLine[i]); i++){}
      if( zLine[i]!=0 ){