OLD | NEW |
1 /***************************************************************************/ | 1 /***************************************************************************/ |
2 /* */ | 2 /* */ |
3 /* afmparse.c */ | 3 /* afmparse.c */ |
4 /* */ | 4 /* */ |
5 /* AFM parser (body). */ | 5 /* AFM parser (body). */ |
6 /* */ | 6 /* */ |
7 /* Copyright 2006, 2007, 2008, 2009, 2010 by */ | 7 /* Copyright 2006-2010, 2012 by */ |
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ | 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
9 /* */ | 9 /* */ |
10 /* This file is part of the FreeType project, and may only be used, */ | 10 /* This file is part of the FreeType project, and may only be used, */ |
11 /* modified, and distributed under the terms of the FreeType project */ | 11 /* modified, and distributed under the terms of the FreeType project */ |
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ | 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
13 /* this file you indicate that you have read the license and */ | 13 /* this file you indicate that you have read the license and */ |
14 /* understand and accept it fully. */ | 14 /* understand and accept it fully. */ |
15 /* */ | 15 /* */ |
16 /***************************************************************************/ | 16 /***************************************************************************/ |
17 | 17 |
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
624 shared_vals[4].type = AFM_VALUE_TYPE_FIXED; | 624 shared_vals[4].type = AFM_VALUE_TYPE_FIXED; |
625 if ( afm_parser_read_vals( parser, shared_vals, 5 ) != 5 ) | 625 if ( afm_parser_read_vals( parser, shared_vals, 5 ) != 5 ) |
626 goto Fail; | 626 goto Fail; |
627 | 627 |
628 tk->degree = shared_vals[0].u.i; | 628 tk->degree = shared_vals[0].u.i; |
629 tk->min_ptsize = shared_vals[1].u.f; | 629 tk->min_ptsize = shared_vals[1].u.f; |
630 tk->min_kern = shared_vals[2].u.f; | 630 tk->min_kern = shared_vals[2].u.f; |
631 tk->max_ptsize = shared_vals[3].u.f; | 631 tk->max_ptsize = shared_vals[3].u.f; |
632 tk->max_kern = shared_vals[4].u.f; | 632 tk->max_kern = shared_vals[4].u.f; |
633 | 633 |
634 /* is this correct? */ | |
635 if ( tk->degree < 0 && tk->min_kern > 0 ) | |
636 tk->min_kern = -tk->min_kern; | |
637 break; | 634 break; |
638 | 635 |
639 case AFM_TOKEN_ENDTRACKKERN: | 636 case AFM_TOKEN_ENDTRACKKERN: |
640 case AFM_TOKEN_ENDKERNDATA: | 637 case AFM_TOKEN_ENDKERNDATA: |
641 case AFM_TOKEN_ENDFONTMETRICS: | 638 case AFM_TOKEN_ENDFONTMETRICS: |
642 fi->NumTrackKern = n + 1; | 639 fi->NumTrackKern = n + 1; |
643 return PSaux_Err_Ok; | 640 return PSaux_Err_Ok; |
644 | 641 |
645 case AFM_TOKEN_UNKNOWN: | 642 case AFM_TOKEN_UNKNOWN: |
646 break; | 643 break; |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
747 ? shared_vals[3].u.i : 0; | 744 ? shared_vals[3].u.i : 0; |
748 } | 745 } |
749 } | 746 } |
750 break; | 747 break; |
751 | 748 |
752 case AFM_TOKEN_ENDKERNPAIRS: | 749 case AFM_TOKEN_ENDKERNPAIRS: |
753 case AFM_TOKEN_ENDKERNDATA: | 750 case AFM_TOKEN_ENDKERNDATA: |
754 case AFM_TOKEN_ENDFONTMETRICS: | 751 case AFM_TOKEN_ENDFONTMETRICS: |
755 fi->NumKernPair = n + 1; | 752 fi->NumKernPair = n + 1; |
756 ft_qsort( fi->KernPairs, fi->NumKernPair, | 753 ft_qsort( fi->KernPairs, fi->NumKernPair, |
757 sizeof( AFM_KernPairRec ), | 754 sizeof ( AFM_KernPairRec ), |
758 afm_compare_kern_pairs ); | 755 afm_compare_kern_pairs ); |
759 return PSaux_Err_Ok; | 756 return PSaux_Err_Ok; |
760 | 757 |
761 case AFM_TOKEN_UNKNOWN: | 758 case AFM_TOKEN_UNKNOWN: |
762 break; | 759 break; |
763 | 760 |
764 default: | 761 default: |
765 goto Fail; | 762 goto Fail; |
766 } | 763 } |
767 } | 764 } |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
955 FT_FREE( fi->KernPairs ); | 952 FT_FREE( fi->KernPairs ); |
956 fi->NumKernPair = 0; | 953 fi->NumKernPair = 0; |
957 | 954 |
958 fi->IsCIDFont = 0; | 955 fi->IsCIDFont = 0; |
959 | 956 |
960 return error; | 957 return error; |
961 } | 958 } |
962 | 959 |
963 | 960 |
964 /* END */ | 961 /* END */ |
OLD | NEW |