SQLite

Check-in [493a17c46a]
Login

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

Overview
Comment:In the CLI, quote strings that contain the separator character. Ticket #2850. (CVS 4638)
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 493a17c46a66d2febc11205c052bf949a3f22bd8
User & Date: drh 2007-12-18 15:41:44.000
Context
2007-12-18
17:50
Fix a problem with SQLITE_MAX_SQL_LENGTH introduced by check-in (4636). Ticket #2851 (CVS 4639) (check-in: cdd866f597 user: drh tags: trunk)
15:41
In the CLI, quote strings that contain the separator character. Ticket #2850. (CVS 4638) (check-in: 493a17c46a user: drh tags: trunk)
11:19
Fix for typo in main.mk: the output of target sqlite3 was testcli. (CVS 4637) (check-in: 15675dc518 user: danielk1977 tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/shell.c.
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
**    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.170 2007/11/26 22:54:27 drh Exp $
*/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include "sqlite3.h"
#include <ctype.h>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
**    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.171 2007/12/18 15:41:44 drh Exp $
*/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include "sqlite3.h"
#include <ctype.h>
465
466
467
468
469
470
471

472
473


474
475
476
477
478
479
480
*/
static void output_csv(struct callback_data *p, const char *z, int bSep){
  FILE *out = p->out;
  if( z==0 ){
    fprintf(out,"%s",p->nullvalue);
  }else{
    int i;

    for(i=0; z[i]; i++){
      if( needCsvQuote[((unsigned char*)z)[i]] ){


        i = 0;
        break;
      }
    }
    if( i==0 ){
      putc('"', out);
      for(i=0; z[i]; i++){







>

|
>
>







465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
*/
static void output_csv(struct callback_data *p, const char *z, int bSep){
  FILE *out = p->out;
  if( z==0 ){
    fprintf(out,"%s",p->nullvalue);
  }else{
    int i;
    int nSep = strlen(p->separator);
    for(i=0; z[i]; i++){
      if( needCsvQuote[((unsigned char*)z)[i]] 
         || (z[i]==p->separator[0] && 
             (nSep==1 || memcmp(z, p->separator, nSep)==0)) ){
        i = 0;
        break;
      }
    }
    if( i==0 ){
      putc('"', out);
      for(i=0; z[i]; i++){