X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=src%2Fcharsets.c;h=a81ceebe1a1bb6f8f7e1d38a1379a8c85e7fac77;hb=e2020c47c14a8a03f44734a6c0adc48fb5129c2f;hp=b52a1eb651b019f91d4d3757c057c1b5333f9397;hpb=51f0f8ed69b065cd2577a27c2a2911cdda243b99;p=oss%2Fcatdoc.git diff --git a/src/charsets.c b/src/charsets.c index b52a1eb..a81ceeb 100644 --- a/src/charsets.c +++ b/src/charsets.c @@ -46,13 +46,14 @@ CHARSET make_reverse_map(short int *charset) { int i,j,k,l; short int *p; if (! charset) { + free(newmap); return NULL; } for (i=0;i<256;i++) { k= charset[i]; j= (unsigned)k>>8; if (!newmap[j]) { - newmap[j] = malloc(sizeof(short int *)*256); + newmap[j] = (short int *)malloc(sizeof(short int)*256); if (!newmap[j]) { fprintf(stderr,"Insufficient memory for charset\n"); exit(1); @@ -72,7 +73,7 @@ CHARSET make_reverse_map(short int *charset) { short int * read_charset(const char *filename) { char *path; FILE *f; - short int *new=calloc(sizeof(short int),256); + short int *new; int c; long int uc; path= find_file(stradd(filename,CHARSET_EXT),charset_path); @@ -89,6 +90,7 @@ short int * read_charset(const char *filename) { if (input_buffer) setvbuf(f,input_buffer,_IOFBF,FILE_BUFFER); /* defaults */ + new = calloc(sizeof(short int),256); for (c=0;c<32;c++) { new[c]=c; } @@ -163,7 +165,7 @@ int get_utf16msb (FILE *f,long *offset,long fileend) { int get_utf8 (FILE *f,long *offset,long fileend) { unsigned char buf[3]; - int d,c; + int c; int result; result=catdoc_read(buf, 1, 1, f); if (result<0) { @@ -172,7 +174,6 @@ int get_utf8 (FILE *f,long *offset,long fileend) { } if (result==0) return EOF; c=buf[0]; - d=0; if (c<0x80) return c; if (c <0xC0)