}
catdoc_read(buffer,4,1,f);
buffer[4]=0;
- if (strncmp(buffer,write_sign,2)==0) {
+ if (strncmp((char *)&buffer,write_sign,2)==0) {
printf("[Windows Write file. Some garbage expected]\n");
get_unicode_char=get_8bit_char;
return process_file(f,LONG_MAX);
- } else if (strncmp(buffer,rtf_sign,4)==0) {
+ } else if (strncmp((char *)&buffer,rtf_sign,4)==0) {
return parse_rtf(f);
- } else if (strncmp(buffer,old_word_sign,2)==0) {
+ } else if (strncmp((char *)&buffer,old_word_sign,2)==0) {
fread(buffer+4,1,124,f);
return parse_word_header(buffer,f,128,0);
}
fread(buffer+4,1,4,f);
- if (strncmp(buffer,ole_sign,8)==0) {
+ if (strncmp((char *)&buffer,ole_sign,8)==0) {
if ((new_file=ole_init(f, buffer, 8)) != NULL) {
set_ole_func();
while((ole_file=ole_readdir(new_file)) != NULL) {
exit(1);
}
} else {
- set_std_func();
- copy_out(f,buffer);
+
+ copy_out(f,(char *)&buffer);
return 0;
}
void print_sheet(void);
void free_sheet(void);
void print_value(unsigned char *value);
-char *format_double(char *rec,int offset,int format_code);
+char *format_double(unsigned char *rec,int offset,int format_code);
char *format_int(int value,int format_code);
-char *format_rk(char *rec,short int format_code);
+char *format_rk(unsigned char *rec,short int format_code);
char *gettypename(long rectype);
-void parse_sst(char *sstbuf,int bufsize);
-void process_item (int rectype, int reclen, char *rec);
+void parse_sst(unsigned char *sstbuf,int bufsize);
+void process_item (int rectype, int reclen, unsigned char *rec);
unsigned char **allocate(int row,int col);
-char *copy_unicode_string(unsigned char **src);
+unsigned char *copy_unicode_string(unsigned char **src);
char convert8to8(char *src,int count);
char *convert16to8(char *src,int count);
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;
exit(1);
}
while(itemsread){
- char buffer[2];
+ unsigned char buffer[2];
rectype = 0;
itemsread = catdoc_read(buffer, 2, 1, input);
if (catdoc_eof(input)) {
*/
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 */
if (sst != NULL)
free(sst);
- sstBuffer=(char*)malloc(reclen);
+ sstBuffer=(unsigned char*)malloc(reclen);
sstBytes = reclen;
if (sstBuffer == NULL ) {
perror("SSTptr alloc error! ");
endcol=getshort(rec,reclen-2);
pcell=allocate(row,endcol);
*pcell=NULL;
+ (void)startcol;
break;
}
case CONSTANT_STRING: {
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;
}
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: {
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;
}
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: {
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;
/*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;
}
/*
* 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 ||
}
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) {
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;
}
void CleanUpFormatIdxUsed() {
int i;
- for (i=0;i<NUMOFDATEFORMATS; i++);
- FormatIdxUsed[i]=0;
+ for (i=0;i<NUMOFDATEFORMATS; i++)
+ FormatIdxUsed[i]=0;
}
/*
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;
/*
* 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;
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
/*
* 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*/