X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=ttf2png.c;fp=ttf2png.c;h=27838112917fe5b3d854e7e03b6a80efccf40a3c;hb=e80f88a25e4c1e3f91be435636be4267ba6ab9ec;hp=0c1c09a490f0dd675c000496b2f7fd3cc6159e5c;hpb=8f108143e67a2d4b2ca6d377db8b3c18a4abe75c;p=ttf2png.git diff --git a/ttf2png.c b/ttf2png.c index 0c1c09a..2783811 100644 --- a/ttf2png.c +++ b/ttf2png.c @@ -73,7 +73,7 @@ typedef unsigned char bool; void usage(void); int convert_numeric_option(char, int); void convert_code_point_range(char, Range *); -unsigned str_to_code_point(const char *, char **); +int str_to_code_point(const char *, char **); void convert_size(char, unsigned *, unsigned *); void sort_and_compact_ranges(Range *, unsigned *); int range_cmp(const void *, const void *); @@ -344,11 +344,11 @@ void convert_code_point_range(char opt, Range *range) } value = str_to_code_point(optarg, &ptr); - if(value>0 && *ptr==',') + if(value>=0 && *ptr==',') { range->first = value; value = str_to_code_point(ptr+1, &ptr); - if(value>0 && !*ptr) + if(value>=0 && !*ptr) { range->last = value; return; @@ -359,7 +359,7 @@ void convert_code_point_range(char opt, Range *range) exit(1); } -unsigned str_to_code_point(const char *nptr, char **endptr) +int str_to_code_point(const char *nptr, char **endptr) { if(nptr[0]=='U' && nptr[1]=='+') return strtoul(nptr+2, endptr, 16); @@ -374,9 +374,9 @@ unsigned str_to_code_point(const char *nptr, char **endptr) for(bytes=1; (bytes<4 && (nptr[0]&(0x80>>bytes))); ++bytes) if((nptr[bytes]&0xC0)!=0x80) - return 0; + return -1; if(bytes<2) - return 0; + return -1; code = nptr[0]&(0x3F>>bytes); for(i=1; i