Add license files to doc section.
[fedora-mingw.git] / sqlite / sqlite-3.6.6.2-lemon-snprintf.patch
1 diff -up sqlite-3.6.6.2/tool/lemon.c.lemparpath sqlite-3.6.6.2/tool/lemon.c
2 --- sqlite-3.6.6.2/tool/lemon.c.lemparpath      2008-12-05 20:37:49.000000000 +0200
3 +++ sqlite-3.6.6.2/tool/lemon.c 2008-12-05 20:44:08.000000000 +0200
4 @@ -1324,15 +1324,15 @@ void ErrorMsg(const char *filename, int 
5    va_start(ap, format);
6    /* Prepare a prefix to be prepended to every output line */
7    if( lineno>0 ){
8 -    sprintf(prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno);
9 +    snprintf(prefix,sizeof prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno);
10    }else{
11 -    sprintf(prefix,"%.*s: ",PREFIXLIMIT-10,filename);
12 +    snprintf(prefix,sizeof prefix,"%.*s: ",PREFIXLIMIT-10,filename);
13    }
14    prefixsize = lemonStrlen(prefix);
15    availablewidth = LINEWIDTH - prefixsize;
16  
17    /* Generate the error message */
18 -  vsprintf(errmsg,format,ap);
19 +  vsnprintf(errmsg,sizeof errmsg,format,ap);
20    va_end(ap);
21    errmsgsize = lemonStrlen(errmsg);
22    /* Remove trailing '\n's from the error message. */
23 @@ -2911,7 +2911,7 @@ struct lemon *lemp;
24      while( cfp ){
25        char buf[20];
26        if( cfp->dot==cfp->rp->nrhs ){
27 -        sprintf(buf,"(%d)",cfp->rp->index);
28 +        snprintf(buf,sizeof buf,"(%d)",cfp->rp->index);
29          fprintf(fp,"    %5s ",buf);
30        }else{
31          fprintf(fp,"          ");
32 @@ -2966,6 +2966,7 @@ int modemask;
33  {
34    char *pathlist;
35    char *path,*cp;
36 +  size_t pathsz;
37    char c;
38  
39  #ifdef __WIN32__
40 @@ -2976,21 +2977,21 @@ int modemask;
41    if( cp ){
42      c = *cp;
43      *cp = 0;
44 -    path = (char *)malloc( lemonStrlen(argv0) + lemonStrlen(name) + 2 );
45 -    if( path ) sprintf(path,"%s/%s",argv0,name);
46 +    path = (char *)malloc((pathsz=lemonStrlen(argv0) + lemonStrlen(name) + 2));
47 +    if( path ) snprintf(path,pathsz,"%s/%s",argv0,name);
48      *cp = c;
49    }else{
50      extern char *getenv();
51      pathlist = getenv("PATH");
52      if( pathlist==0 ) pathlist = ".:/bin:/usr/bin";
53 -    path = (char *)malloc( lemonStrlen(pathlist)+lemonStrlen(name)+2 );
54 +    path = (char *)malloc((pathsz=lemonStrlen(pathlist)+lemonStrlen(name)+2));
55      if( path!=0 ){
56        while( *pathlist ){
57          cp = strchr(pathlist,':');
58          if( cp==0 ) cp = &pathlist[lemonStrlen(pathlist)];
59          c = *cp;
60          *cp = 0;
61 -        sprintf(path,"%s/%s",pathlist,name);
62 +        snprintf(path,pathsz,"%s/%s",pathlist,name);
63          *cp = c;
64          if( c==0 ) pathlist = "";
65          else pathlist = &cp[1];
66 @@ -3070,14 +3071,16 @@ struct lemon *lemp;
67  
68    cp = strrchr(lemp->filename,'.');
69    if( cp ){
70 -    sprintf(buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename);
71 +    snprintf(buf,sizeof buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename);
72    }else{
73 -    sprintf(buf,"%s.lt",lemp->filename);
74 +    snprintf(buf,sizeof buf,"%s.lt",lemp->filename);
75    }
76    if( access(buf,004)==0 ){
77      tpltname = buf;
78    }else if( access(templatename,004)==0 ){
79      tpltname = templatename;
80 +  }else if( access("/usr/share/lemon/lempar.c",004)==0 ){
81 +    tpltname = "/usr/share/lemon/lempar.c";
82    }else{
83      tpltname = pathsearch(lemp->argv0,templatename,0);
84    }
85 @@ -3089,7 +3092,7 @@ struct lemon *lemp;
86    }
87    in = fopen(tpltname,"rb");
88    if( in==0 ){
89 -    fprintf(stderr,"Can't open the template file \"%s\".\n",templatename);
90 +    fprintf(stderr,"Can't open the template file \"%s\".\n",tpltname);
91      lemp->errorcnt++;
92      return 0;
93    }
94 @@ -3827,7 +3830,7 @@ int mhflag;     /* Output in makeheaders
95    /* Generate a table containing the symbolic name of every symbol
96    */
97    for(i=0; i<lemp->nsymbol; i++){
98 -    sprintf(line,"\"%s\",",lemp->symbols[i]->name);
99 +    snprintf(line,sizeof line,"\"%s\",",lemp->symbols[i]->name);
100      fprintf(out,"  %-15s",line);
101      if( (i&3)==3 ){ fprintf(out,"\n"); lineno++; }
102    }
103 @@ -3983,7 +3986,7 @@ struct lemon *lemp;
104    in = file_open(lemp,".h","rb");
105    if( in ){
106      for(i=1; i<lemp->nterminal && fgets(line,LINESIZE,in); i++){
107 -      sprintf(pattern,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i);
108 +      snprintf(pattern,sizeof pattern,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i);
109        if( strcmp(line,pattern) ) break;
110      }
111      fclose(in);