]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/lemon/files/snprintf.patch
OE tree imported from monotone branch org.openembedded.oz354fam083 at revision 8b12e3...
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / lemon / files / snprintf.patch
1 --- lemon.c     2004-04-24 14:59:13.000000000 +0200
2 +++ lemon.c     2004-07-27 15:31:40.000000000 +0200
3 @@ -1272,15 +1272,15 @@
4    va_start(ap, format);
5    /* Prepare a prefix to be prepended to every output line */
6    if( lineno>0 ){
7 -    sprintf(prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno);
8 +    snprintf(prefix,sizeof prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno);
9    }else{
10 -    sprintf(prefix,"%.*s: ",PREFIXLIMIT-10,filename);
11 +    snprintf(prefix,sizeof prefix,"%.*s: ",PREFIXLIMIT-10,filename);
12    }
13    prefixsize = strlen(prefix);
14    availablewidth = LINEWIDTH - prefixsize;
15  
16    /* Generate the error message */
17 -  vsprintf(errmsg,format,ap);
18 +  vsnprintf(errmsg,sizeof errmsg,format,ap);
19    va_end(ap);
20    errmsgsize = strlen(errmsg);
21    /* Remove trailing '\n's from the error message. */
22 @@ -2675,7 +2675,7 @@
23      while( cfp ){
24        char buf[20];
25        if( cfp->dot==cfp->rp->nrhs ){
26 -        sprintf(buf,"(%d)",cfp->rp->index);
27 +        snprintf(buf,sizeof buf,"(%d)",cfp->rp->index);
28          fprintf(fp,"    %5s ",buf);
29        }else{
30          fprintf(fp,"          ");
31 @@ -2721,7 +2721,7 @@
32      c = *cp;
33      *cp = 0;
34      path = (char *)malloc( strlen(argv0) + strlen(name) + 2 );
35 -    if( path ) sprintf(path,"%s/%s",argv0,name);
36 +    if( path ) snprintf(path,sizeof path,"%s/%s",argv0,name);
37      *cp = c;
38    }else{
39      extern char *getenv();
40 @@ -2734,7 +2734,7 @@
41          if( cp==0 ) cp = &pathlist[strlen(pathlist)];
42          c = *cp;
43          *cp = 0;
44 -        sprintf(path,"%s/%s",pathlist,name);
45 +        snprintf(path,sizeof path,"%s/%s",pathlist,name);
46          *cp = c;
47          if( c==0 ) pathlist = "";
48          else pathlist = &cp[1];
49 @@ -2814,14 +2814,16 @@
50  
51    cp = strrchr(lemp->filename,'.');
52    if( cp ){
53 -    sprintf(buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename);
54 +    snprintf(buf,sizeof buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename);
55    }else{
56 -    sprintf(buf,"%s.lt",lemp->filename);
57 +    snprintf(buf,sizeof buf,"%s.lt",lemp->filename);
58    }
59    if( access(buf,004)==0 ){
60      tpltname = buf;
61    }else if( access(templatename,004)==0 ){
62      tpltname = templatename;
63 +  }else if( access("/usr/share/lemon/lempar.c",004)==0 ){
64 +    tpltname = "/usr/share/lemon/lempar.c";
65    }else{
66      tpltname = pathsearch(lemp->argv0,templatename,0);
67    }
68 @@ -2833,7 +2835,7 @@
69    }
70    in = fopen(tpltname,"r");
71    if( in==0 ){
72 -    fprintf(stderr,"Can't open the template file \"%s\".\n",templatename);
73 +    fprintf(stderr,"Can't open the template file \"%s\".\n",tpltname);
74      lemp->errorcnt++;
75      return 0;
76    }
77 @@ -3447,7 +3449,7 @@
78    /* Generate a table containing the symbolic name of every symbol
79    */
80    for(i=0; i<lemp->nsymbol; i++){
81 -    sprintf(line,"\"%s\",",lemp->symbols[i]->name);
82 +    snprintf(line,sizeof line,"\"%s\",",lemp->symbols[i]->name);
83      fprintf(out,"  %-15s",line);
84      if( (i&3)==3 ){ fprintf(out,"\n"); lineno++; }
85    }
86 @@ -3562,7 +3564,7 @@
87    in = file_open(lemp,".h","r");
88    if( in ){
89      for(i=1; i<lemp->nterminal && fgets(line,LINESIZE,in); i++){
90 -      sprintf(pattern,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i);
91 +      snprintf(pattern,sizeof pattern,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i);
92        if( strcmp(line,pattern) ) break;
93      }
94      fclose(in);