[REBOL] Re: [ANN] TTF-parser 0.0.1
From: rebol-list2:seznam:cz at: 11-Sep-2003 12:17
Hello Anton,
Wednesday, September 10, 2003, 5:00:13 PM, you wrote:
AR> Hi Oldes,
AR> Looks interesting. I'll just post a bug report
AR> for the first two fonts I tried:
AR> %/c/windows/fonts/outlook.ttf
AR> %/c/windows/fonts/wingdng3.ttf
AR> ### Vertical Device Metrics table 340 1504 ; outlook.ttf
AR> ### character to glyph mapping 1844 354 ; outlook.ttf
AR> ** Script Error: segCount has no value
AR> ** Where: switch
AR> ** Near: parse/all v [
AR> USHORT (append tmp v n: v / 2)
AR> USHORT (append tmp v)
AR> USHORT (append tmp v)
AR> USHORT (append tmp v)
AR> (
AR> endCount: make block! n
AR> startCount: make block! n
AR> idDelta: make block! n
AR> idRangeOffset: make block! n
AR> )
AR> segCount [
AR> USHORT (append endCount v)
AR> ]
AR> USHORT
AR> segCount [
AR> USHORT (append startCount v)
AR> ]
AR> segCount [
AR> SHORT (append idDelta v)
AR> ]
AR> segCount [
AR> USHORT (append idRangeOffset v)
AR> ]
AR> v:
AR> (
AR> repend/only tmp endCount
AR> repend/only tmp startCount
AR> repend/only tmp idDelta
AR> repend/only tmp idRangeOffset
AR> repend tmp glyphIdArray
AR> )
AR> ]
AR> Anton.
>> Hello rebol-list,
>>
>> here is first version of my TTF-parser (which I use to explore true
>> type fonts)
>> rebOldes mailto:[oliva--david--seznam--cz]
Yes... I found it as well (that was because I closed the variables in
the ttf object context but since I was working still in same console
window I didn't found that some of them are still not replaced)
this one is fixed:
write %ttf-parser.r decompress #{
789CAD1B6B73DB36F233F52B10653A95DBB3F588F3A8349D9EE347E21BA7F658
CAA3E7F1DD502424B1E6434742B2955CFFFBED2E0012E043526FAAB41609EC2E
168BC5621FD0EDF9DBEB2B76D762F0990422E443D69E88D9E1D24D339EB6A9FD
CC15D0DCEF1F8EF9F270D0EBBDE8F607C3FEF1F0F8CD8F8361AF4730BFBA11C0
C449CCE9F5134FB3208987AC77D43B1A50D345109A10EF130BE1642516490A83
27A1CF3339EEF563CC5303E636982F446634FCCAB96FBE4FDCA9F9FA3173E7E6
1837AB749964D0F26D92B055EC038FC28D7DF6B870C5F7190BE22CF039130BCE
7E381262C666C071F607A19E2651C46301A8F4EA4C00681E6E960B2605C5820C
C611CC4BA265C8851CCFE920F5CBEF23EACA562967C10CDEC3904D3973A7210C
66310243679CCD7E80CF1CD911E9CA1320C66CD89104E5DF5992B228016A3E17
6E1066402A5909862C4B141C69968461F2082481B330881F86127721C472D8ED
3E3E3E1E4581972659321347C075576C96C93C75679BAE10F0DFECDFD9927BF0
E02D7A83233FF1085D0AE37D908924DD1892BD72E3F9CA16F664B3345F4F9358
9000F396F308781FB2240CD6EE91EFAE03FFEF19FF1ABBD191F7B575DF6A010F
8733D29994BB7E771AC46EBA0181512373B307D6D68B3464DFB5D9E83B779526
A9EBD1DA7D277826E8A9D56A8DE661327543B676D300C59E0D5B20C3C8457686
6C3D64225A2ACE5AAD8F179FAF6FCF86ECE3F8FDF5ED64C8EEBC64B9616B3660
D943B0641D044F6075049FF3F4193E4BD69EB1F5C17DEBE3D5F5AFEF862CC73A
56582D47E2E5B0D4C00358F2943DFFF6A6273F7FB09F196AC2DA6ABB1BF48F5F
1FBF79F1EAF80DFB1145A046CF415F5FC8CF1FF777266FEBFB0390E4C5E597F3
B3A153CB51CA7F4F8218F6BFE3741A6685685DD07281323860EDA3F65EC03408
4A6D70D072880F940C9A9249803BFF4EF1F197CA0938EBFF74F80F373EECFFF4
7AD07D8156AAF75ACA4CC0B05B65076CDEB1FE21FCFBA977DCED0DE15F3DE6FA
BEE5E0849482287DA928CA1E53294F434E21E6731013EBBC18BC7EF5861D3631
FD070AB666BDDFFE36392FD4B6BF97DA9EBE3FB9ADE2EC9C81CDBFCD7D7FD0C8
FB36CE2FAE4EDE8D6BD9E7F1D4CD7817FF205965105029EF5B3727E3D393ABF1
E4F61277DF1D12621DDCDB075AC162228476052DC05990724F1A31E09940843B
D75A38EA2CD3044C343401A7AB3089E7AC4378A70BEE3D8C571152CE7B92D92C
E3C26A0A793C170BD9D449F992C77E3789C30D1AE9AEE620637738A845984962
4C1220A990291CB2C87DE02C99FE0E7C3F43A6732AAA6B1A26DEC333D67FD572
166030AB08CE5A1DCAF03803737CCBD7817EF7D4F027FEEFAB4CD0518750A13B
CFF061150722BBE1E97944C0609005F7F1314AFC6016C8E7A70F01D1DAA8EFA7
0FEE937C97DF91EB8DC506AC353CC3D104F6F9967B3737E71F3443725180A3F7
811C3F80A3F169925C25DE8534D7D046A72E9811F7425B7034DB0E6CC9C87D5A
D6CC3A5E45EF1027933C3CDD80C113FA058FA5649516AF11780881E02520D55A
82FE278CAC9F278F4188EE898538060DC35351BE5DAC629ADD199F6980CBE28C
375AC7C2F51ECE438ECB90B7055FF9F5ECD2F4090CE662802C21E4ED677C899A
988B090458A34D28A6294FAF67E61C77AD2868F58DC86C1CC36DB9929BC06ECC
0C56926C50C3C9D3C97A7EBA70D3CF812FB157D9678EB23D0DDD2C530DD897BF
CF32F23690B3F16A9A7969B0145F506276D36FD5A62FD772EFDA7056E312764D
8562DEF85B5DE3977A02165D91060F1CDCB6025FB7DCA0AEA97D995DB851106E
F2992EDD183D589441F8310EBCC4E7B7E07BF17EB569506D7A516D3AC626D75B
7C82B5BC3C93C21CF350EE4329EB0BB0310217E412B7A36CBB724B4DB802C949
E671F466F386335E6EB90A62FECE5DEA558C0945E4AF1241BE87A7C0E40DEC1F
738656DBC0D025B07EEE902DC1D60ED96C398F74D7028CE1765B68726D316CF0
EAFA6B37F638A99D36670128F80CD6CFE76F393896F15CB55298526AC69D73FE
24D4D43C37E5621C264B7E1BC8D5345A56C454C4411D3CC3CE195BF4FD07EA34
77D222124F35B334D926B39B4D0DA4079EC6DB45134F94BBEC38EAA9C08E29E2
AB60632008763D497D42532ACF4670DA4390038E6142510AC88565D23CB2CE2C
4DA2A2970EB68323C72686A2D0A33B23857A9272D76009ACB4A861A9906020DC
30F04EE2B93C8528F482E0889B5B2E6F9C2C02EF012CBC346BB00D9EB87F1340
40A4D6F9038FD0EC1C0F94C5B5DFF3FEBEDDDDCF0F3153985EE4D69D5D3C868D
0AA22A96C16E21A1E0D65A4D45797D965E58278C4FC5EA5E80D9FE95740ADFF2
A93DBD276B8B8FF9798D9C4B53846FA7EED280D944D3241C4BBB867033D7231C
B40FAE27787A4A41B1762A300F40D902A29F260FFC734E8B1455DBF2314F8399
E4209F1578431470775D08A2758488F37AFE0DDCE7BE0C034618F6292D66FDA3
1E7865D92201E5EAC00ED27A8C1F72D85457069BD55B90591996BA80F174238D
22A628CCAE14E1C78B6026869AE0884660B987C9103DA0D5CB8767B6130ACE5C
02607E4BBBA787B8B932F24D81DC9CF6013CDEF2FFAC00C767924ACB69A3DEB4
E14B8B1ABD759997808E25E809046B6D3CF1DBF405ED3EA80C36A28F088DE877
317CC6640FB4C223B4C2E482AFD00331B3D10736C6EE93462AC34E34BFD0491E
1B3281EFB8A3B00F1DB3367D051178B8E05BE3AA610F4EB34D5F680F68EAD88C
FB189A61578A319D9C1028C8805D51BC1E77076DF94561059C1C7EF29831CC59
803FEA199C8DAE978805DC1A525B0BD6664E1BFD963409D927375C71D98DD4CF
DF9E4D80FA39EC0CDF07694F0301D2CC2577FEF6EAB4A65BCFD8801BD7C1651E
D82098AD06C3C34A2F0488669EBA112D9A9BA1D0E669E083920B81283855408F
21A689B57E038AC77DCCF874007583D4F9012D971F9596CB0787DFE3E6AAE109
D0965F4A57AE26E3F7D082479F0BDAB44839687AE81B6B03272C009C7E9AB09B
82DB9BD32B14197CB19785203F9D7DF802AD607244007CB133C9803ABE0A9A6B
A975399C0628746F2D75AF0CD196E1116D199988939B466AB734FE98FD80E80D
E22E6CECEAD38DF66AA5D78A8B240865740C909A5049023EFFF6F2A277F1E2F4
E22598A0C89D079E34AE78BCDB998162380AB0B644B6383EA5190C2423189303
9B8915935115A66D05CA0338250FCC6518DD1401D4776D9ABB284E68C2CABB2A
13CB03440CDB476F03C17A6C8ACAD709C06780A018EC4A1F31470C3BFB4C1EE7
763776656C70D87FC9407779BA869DD751BDBD83A3BA71ED6054325786A9C6A7
F570959095E6D26398B39567860CF0B3BF01FFD888F982A31A429538B7A0E3AD
D214D48E499388C81DF8DF59825325D81DA95884629BA1E30E92016BE1334D98
F55F8173E01C908F200D30ED132915672487032C79DCB1CECF2035E61410C422
E2754D578F12A907B560D7797AE4FFF402697675A34A9FD0CC7EC4726A4EECE0
9C8089686903BCC2DE9C47382339CA265A127737A12B50A897675B80B407B615
4827C4B702E14CB6028C4942328CDE0926C5CC6C296AE14278E1C23E89D97423
7846DB408AD52927A7EA648C232130CA0E95673DD4AB02D2E2103DC25643E066
02B41A8EE25B015772C5B2BDFB4A3FBC44A4FBFD541B47B5545B3B47867233E5
9AE9A353C653AC639B05AD6C88DD2D39E0A4E55B00AA0A69431B7E7A1988B496
3568ED8BBF5A6BF134A8C02486064DF93C88D129C8F7221A50AC8DE9399029A2
F292A64DBCB3B24235888946D50AB5D7C459995F69FF9A0068ADD821EC78360A
4B5BA8424AA9044258F962A90E4EF688C191D23AC491FAECF4F483DA46929E6C
BA975FC739C80A4EF73B003A4D56A0CCB445E563E09FF1102412F8147EC88D7C
AFD19C22E059E7B4B64DB98B659A51C6E744FDCB602B0A41E691CF2E502B12DA
055CC4463964277F72B420AAF65B7D0A01358228C16DE93704DA0475903FC586
78CB93CAD76D5DC0DFE74FBA60A0A160F6E780E41511B02FF70B194B581A741B
CBF21B697FE5064EE9B1F2588EF6E2CE50A6ADFC1570746CA0ED2D4247AF8EC9
86F1EDE1B5026F1D5B01C1C012184742A5B619C0327C4540DBA66EADF12E0E0C
50E0433EE0883A6ABEF44F5208A218B0D6CBD1D74336327B2B74A575F9C52271
50A7F39669845DA2D5A519A258B0661825D86D00C6BCCB60A6C9728CDDA0C577
6F5A33F977A4AA63D229A87810F64957F61D3ABBCF72248067B9F251297D411A
60F8C8D8D8ADD42C584D444290F5710C75D5C7310AAB2E8E51587957D158A987
5826A7916DE3E82F9BD226CA72E4FB523443A0D5024C2E95D2D1568792D9055F
8AB69EA98F79C1E559FED93FFCC0B1ECF083324345985E9A0EF6768BF25D356A
2480A2A4D70C502CC81610BBF4B707E41E546589B0B9BF54366C06D4A5C46608
ABBCD80C562E396E1BD22C436E81AB96267708CF2A57EE01AB4A9872B7EDA76B
48C3D635CA195AD140E1F4198327D9A06B5720AB0C228C5D946C8429EA94957C
0142A8CA656D5FB996B903E8B77D80BE5C1B7715B6D0DA0156AA89EE04DBCE5B
A56EBA9BDE7640ABB6BA03262FFDD4C259F557CB88F67B86154550559AAD240D
49114AC5DA3D8006FB00BDD807E8D866FCB8C47751FCAD5762B31EDCA4E6A512
7113985D35AE87B20BC95B608A52ED16205DC26DDE9FBA02BD054217A51B645D
2A53EF03A517575A26598EB8D3AE84AC5E9B9E43477B98E04B1D407C778CB86E
BC913E83724D0C970129141E82F6B8C01F63ED35963AB2619BE55EAB46D0EE16
95802AA973682CA7CE8DCC2EF696D6ACDC5D5EAE727F69A5CADDE5027C3D919A
9A7C2360A54C5F0F6954EEAB195F042815F37702AD2C53B3EBBB880A6BA8562E
09D424D611AE7A71E0CF1CA548C23E4AA91228151649C0841A87C27EEA04146B
116BC2F11C8EAE29D4A675A5C6AF2E3E6302D154F90A7D150A4AC82A280C61EC
903D050188B620A87E66FA1424736C2D6D964A776C6614ADDC9F8698D4240A63
F68395C1B6E66560A9C9EF0262F93545CA93218ABC39D98030334A1102FC168D
407736B7F0C2465E02F2706582499D43726C7DE172EB3C64084DF9B3F8C6C58B
93B27E8E694469D074B64C27EA641143670D8A349D9323DA821DF4F2787FBF74
5B3EBE646868661E1A61F74EB7D918FB65DD6C9CBAE49BB2FDB6464979FEA032
ADF4516DCD39174988C609B931C216B814AD6D0128AD6C1D203DE6804512C7BE
455B5AFE4AD6A2929430952AC76E5948468AE34F1A06246E1B06BAC1200F51BC
3624373E36762D4B5DEE34EF27E9E3882C5D0E51BDB2B403AEB8C554714CE490
E6C5A67A10EBAE53038879FD6917951A1FA9444443148526B5B14B62543ADA1E
1CF5DA5A5FC94C80A39427D0731C7DEBCA2A30E41BBF76DFD7585083546EBCA5
8656AA1771DE17EFC8DC5715B8481B9655D96440E7E0F0E3857465A368C98992
AB685E912F0D5ECAF5ED37A2B15DF6ACD12199D236F14251F135B1B1FBC93E3E
0D4DC15EE3E65AF57C25084B9FCB9DFA865B43777E09A1AED3B809D70051DC8E
6BA29FDF98B323CA572A32234D442D541DF84B89E7ED7FFDBDCDFECBE445B1FB
7B66314457EE54FD5D21B137469C27F9AAB98F675E37315861AFCAC8F9AD3D09
87BF17B12466DCE3AB85286EF6C96EE96714048CBB7E7FC637456453A5F03A50
6BA4F08AEB76C699CBACD39415E724A0EA6AB6AA770AEBA71A2D070B0C3B7FB1
213B5B9AF7F6F3E7CFDBEA360533EEF6D1CF4D6CCC9693AEC8E3B3A0D5B52684
6F3964614A7573BAD421F455488B64CB0966F4DB43BC3EF90B23F2B4DB8C3B94
6000A89D36A4B6B23872B74FA0239D7FCF93FE7F86035C189D795312615B9613
42655C4DC2A27B71391605AF569EBA5D8960256334A536DD73684B4A74656D6F
4AF20A792DA5910ED5EB23EA5D7CD01D49791020A8BCB15E7318D9ABA37E6E45
0148DD0D23F633EBABD3E58E0CBDB237D6A18563A1A197E6DA8296A6B511D6D8
87385D5A370D752FDD24DC76FF03BB7134C2483C0000
}
--
Best regards,
rebOldes mailto:[oliva--david--seznam--cz]