]> www.wagner.pp.ru Git - oss/catdoc.git/blobdiff - src/xlsparse.c
Fixed some warnings produced by GCC 4.9.2
[oss/catdoc.git] / src / xlsparse.c
index 139bcfe7a76a4084b2d505916891cd3ec0957a97..372eb087bbeefbd6f8b132c424514f86410469de 100644 (file)
@@ -51,6 +51,7 @@ void do_table(FILE *input,char *filename) {
                                        itemsread=catdoc_read(rec,4,1,input);
                                        build_year=getshort(rec+2,0);
                                        build_rel=getshort(rec,0);
+                                       (void) build_rel;
                                        if(build_year > 5 ) {
                                                itemsread=catdoc_read(rec,8,1,input);
                                                biff_version=8;
@@ -84,7 +85,7 @@ void do_table(FILE *input,char *filename) {
                exit(1);
        }    
        while(itemsread){
-               char buffer[2];
+               unsigned char buffer[2];
                rectype = 0;
                itemsread = catdoc_read(buffer, 2, 1, input);
                if (catdoc_eof(input)) {
@@ -130,7 +131,7 @@ int prev_rectype=0;
  */
 unsigned char **saved_reference = NULL;
 
-void process_item (int rectype, int reclen, char *rec) {
+void process_item (int rectype, int reclen, unsigned char *rec) {
        if (rectype != CONTINUE && prev_rectype == SST) {
                /* we have accumulated  unparsed SST, and now encountered
                 * another record, which indicates that SST is ended */
@@ -191,7 +192,7 @@ void process_item (int rectype, int reclen, char *rec) {
                if (sst != NULL)
                        free(sst);
                
-               sstBuffer=(char*)malloc(reclen);
+               sstBuffer=(unsigned char*)malloc(reclen);
                sstBytes = reclen;
                if (sstBuffer == NULL ) {
                        perror("SSTptr alloc error! ");
@@ -241,6 +242,7 @@ void process_item (int rectype, int reclen, char *rec) {
                endcol=getshort(rec,reclen-2);
                pcell=allocate(row,endcol);
                *pcell=NULL;
+               (void)startcol;
                break;
        }          
        case CONSTANT_STRING: {
@@ -261,13 +263,13 @@ void process_item (int rectype, int reclen, char *rec) {
                        exit(1);         
                } else if (sst[string_no] !=NULL) {     
                        int len;
-                       char *outptr;
-                       len=strlen(sst[string_no]);
+                       unsigned char *outptr;
+                       len=strlen((char *)sst[string_no]);
                        outptr=*pcell=malloc(len+1);
-                       strcpy(outptr,sst[string_no]);
+                       strcpy((char *)outptr,(char *)sst[string_no]);
                } else {
                        *pcell=malloc(1);
-                       strcpy(*pcell,"");
+                       **pcell = 0;
                }       
                break;
        }
@@ -282,7 +284,7 @@ void process_item (int rectype, int reclen, char *rec) {
                row = getshort(rec,0)-startrow; 
                col = getshort(rec,2);
                pcell=allocate(row,col);
-               *pcell=strdup(format_double(rec,6,getshort(rec,4)));
+               *pcell=(unsigned char *)strdup(format_double(rec,6,getshort(rec,4)));
                break;
        }
        case INTEGER_CELL: {
@@ -292,7 +294,7 @@ void process_item (int rectype, int reclen, char *rec) {
                row = getshort(rec,0)-startrow;
                col = getshort(rec,2);
                pcell=allocate(row,col);
-               *pcell=strdup(format_int(getshort(rec,7),getshort(rec,4)));               
+               *pcell=(unsigned char *)strdup(format_int(getshort(rec,7),getshort(rec,4)));              
                break;
 
        }                                 
@@ -305,7 +307,7 @@ void process_item (int rectype, int reclen, char *rec) {
                col = getshort(rec,2);
                pcell=allocate(row,col);
                format_code = getshort(rec,4);
-               *pcell=strdup(format_rk(rec+6,format_code));
+               *pcell=(unsigned char *)strdup(format_rk(rec+6,format_code));
                break;
        }
        case MULRK: {
@@ -319,7 +321,7 @@ void process_item (int rectype, int reclen, char *rec) {
                for (offset=4,col=startcol;col<=endcol;offset+=6,col++) { 
                        pcell=allocate(row,col);
                        format_code=getshort(rec,offset);
-                       *pcell=strdup(format_rk(rec+offset+2,format_code));
+                       *pcell=(unsigned char *)strdup(format_rk(rec+offset+2,format_code));
 
                }                
                break;
@@ -337,17 +339,17 @@ void process_item (int rectype, int reclen, char *rec) {
                                /*boolean*/
                                char buf[2]="0";
                                buf[0]+=rec[9];
-                               *pcell=strdup(buf);
+                               *pcell=(unsigned char *)strdup(buf);
                        } else if (rec[6]==2) {
                                /*error*/
                                char buf[6]="ERROR";
-                               *pcell=strdup(buf);
+                               *pcell=(unsigned char *)strdup(buf);
                        } else if (rec[6]==0) {
                                saved_reference=pcell;
                        }   
                } else {
                        int format_code=getshort(rec,4);
-                       *pcell=strdup(format_double(rec,6,format_code));
+                       *pcell=(unsigned char *)strdup(format_double(rec,6,format_code));
                }                
                break;
        }
@@ -415,23 +417,22 @@ void process_item (int rectype, int reclen, char *rec) {
 /*
  * Extracts string from sst and returns mallocked copy of it
  */
-char *copy_unicode_string (unsigned char **src) {
+unsigned char *copy_unicode_string (unsigned char **src) {
        int count=0;
        int flags = 0;
        int start_offset=0;
-       int to_skip=0;                                                          /* ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÐÏÄÓÞÅÔÁ ÄÌÉÎÙ ÄÁÎÎÙÈ
-                                                                                                                                * ÚÁ ËÏÎÃÏÍ ÓÔÒÏËÉ */
-       int offset = 1;                                                         /* ÄÌÑ ÕÞÅÔÁ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ ÐÅÒ×ÏÇÏ ÐÏÌÑ  */
+       int to_skip=0;  /* Used to counmt data after end of string */ 
+       int offset = 1; /* Variable length of the first field  */
        int charsize;
        /*      char *realstart=*src; */
-       char *dest;                                                                             /* ËÕÄÁ ÂÕÄÅÍ ËÏÐÉÒÏ×ÁÔØ ÓÔÒÏËÕ */
-       char *s,*d,*c;
+       unsigned char *dest;/* where to copy string */
+       unsigned char *s,*d,*c;
 
        int i,u,l,len;
 
        /*      for(i=0;i<20;i++) */
        /*              fprintf(stderr,"%02x ",(*src)[i]); */
-       /*      fprintf(stderr,"\n"); */
+               /*      fprintf(stderr,"\n"); */
 
        flags = *(*src+1+offset);
        if (! ( flags == 0 || flags == 1 || flags == 8 || flags == 9 ||
@@ -500,7 +501,7 @@ char *copy_unicode_string (unsigned char **src) {
                }
                if ( charsize == 2 ){
                        u=(unsigned short)getshort(s,0);
-                       c=convert_char(u);
+                       c=(unsigned char *)convert_char(u);
                        /*                      fprintf(stderr,"char=%02x %02x\n", *s, *(s+1)); */
                } else {
                        if (!source_charset) {
@@ -509,16 +510,16 @@ char *copy_unicode_string (unsigned char **src) {
                                source_charset=read_charset(source_csname);
                        }       
                        u=(unsigned short)to_unicode(source_charset,(unsigned char)*s);
-                       c=convert_char(u);
+                       c=(unsigned char *)convert_char(u);
                }
                if (c != NULL) {
-                       int dl = strlen(c);
+                       int dl = strlen((char *)c);
                        while (l+dl>=len) {
                                len+=16;
                                dest=realloc(dest,len+1);
                        }
                        d=dest+l;
-                       strcpy(d,c);
+                       strcpy((char *)d,(char *)c);
                        d+=dl;
                        l+=dl;
                }      
@@ -584,8 +585,8 @@ static char FormatIdxUsed[NUMOFDATEFORMATS];
 
 void CleanUpFormatIdxUsed() {
        int i;
-       for (i=0;i<NUMOFDATEFORMATS; i++);
-       FormatIdxUsed[i]=0;
+       for (i=0;i<NUMOFDATEFORMATS; i++)
+               FormatIdxUsed[i]=0;
 }
 
 /* 
@@ -681,10 +682,10 @@ char *number2string(double d,short int format_code) {
        return buffer;
 }
                
-char *format_double(char *rec,int offset,int format_code) {    
-       union { char cc[8];
+char *format_double(unsigned char *rec,int offset,int format_code) {   
+       union { unsigned char cc[8];
                double d;} dconv;
-       char *d,*s; 
+       unsigned char *d,*s; 
        int i;
 # ifdef WORDS_BIGENDIAN     
        for(s=rec+offset+8,d=dconv.cc,i=0;
@@ -707,7 +708,7 @@ char *format_int(int value,int format_code) {
 /*
  * Formats RK record
  */
-char* format_rk(char *rec,short int format_code) {
+char* format_rk(unsigned char *rec,short int format_code) {
        double value=0.0;
        int i;
 
@@ -716,9 +717,9 @@ char* format_rk(char *rec,short int format_code) {
                value=(double)(getlong(rec,0)>>2);
        }
        else { 
-               union { char cc[8];
+               union { unsigned char cc[8];
                        double d;} dconv;
-               char *d,*s;
+               unsigned char *d,*s;
                for(i=0;i<8;i++)
                        dconv.cc[i]='\0';
 # ifdef WORDS_BIGENDIAN     
@@ -753,7 +754,7 @@ time_t float2date(double f) {
 /*
  * Parses SST into array of strings
  */
-void parse_sst(char *sstbuf,int bufsize) {
+void parse_sst(unsigned char *sstbuf,int bufsize) {
        int i; /* index into sst */
        unsigned char *curString; /* pointer into unparsed buffer*/
        unsigned char *barrier=(unsigned char *)sstbuf+bufsize; /*pointer to end of buffer*/