7893bb5d0f285c4c35139bb833c5eeb72b7d50dc
[m17n/libotf.git] / ChangeLog
1 2011-02-11  Kenichi Handa  <handa@m17n.org>
2
3         * src/otfopen.c (read_anchor_array): Do not read an anchor if its
4         offset is zero.
5         (read_ligature_attach): Fix return code on error.
6         (read_ligature_array): Do not read an anchor if its offset is
7         zero.
8         (read_lookup_subtable_gpos): Fix typo.
9
10         * example/otfdump.c (indent_spaces): Delete it.
11         (IPRINT): Do not use indent_spaces.
12         (dump_anchor): Do nothing if anchor->offset is zero.
13
14 2010-11-05  Elias Pipping  <pipping.elias@googlemail.com>  (tiny change)
15
16         * example/Makefile.am (bin_PROGRAMS): Add otfview conditionally.
17
18         * configure.ac: Add AM_CONDITIONAL for X11_UNAVAILABLE.
19
20 2010-10-04  Kenichi Handa  <handa@m17n.org>
21
22         * Version 0.9.12 released.
23
24 2010-09-22  Kenichi Handa  <handa@m17n.org>
25
26         * src/otfopen.c (OTF_check_features): If language is specified but
27         not found, return 0 instead of using the default langsys.
28
29 2010-09-16  Kenichi Handa  <handa@m17n.org>
30
31         * src/internal.h: Include alloca.h if available.
32
33         * example/otftobdf.c: Include alloca.h if available.
34
35         * example/otfview.c: Include alloca.h if available.
36
37         * example/otflist.c: Include alloca.h if available.
38
39 2010-09-13  Martin Gieseking  <martin.gieseking@uos.de>  (tiny change)
40
41         * example/otftobdf.c (main): Fix checking number of arguments.
42
43 2010-09-10  Kenichi Handa  <handa@m17n.org>
44
45         * src/otfopen.c (OTF_check_features): If LANGUAGE is specified but
46         not found in a font, return 0.
47
48 2010-05-18  Kenichi Handa  <handa@m17n.org>
49
50         * example/otfview.c (create_otf_script_widgets): Create a box
51         widget for each script in a limited-width box.
52
53 2010-04-21  Kenichi Handa  <handa@m17n.org>
54
55         * configure.ac: Versions changed to 0.9.12.
56
57         * src/otfopen.c (OTF_check_features): Even if no feature is
58         specified, check script support.
59
60         * src/otf.h (LIBOTF_VERSION): Changed to 0.9.12
61         (LIBOTF_RELEASE_NUMBER): Changed to 12.
62
63 2010-03-30  Kenichi Handa  <handa@m17n.org>
64
65         * configure.ac: Versions changed to 0.9.11.
66
67 2010-03-23  Kenichi Handa  <handa@m17n.org>
68
69         * src/Makefile.am (libotf_la_SOURCES): Include internal.h.
70
71 2010-03-19  Kenichi Handa  <handa@m17n.org>
72
73         * src/Makefile.am (libotf_la_SOURCES): Exclude otferror.h.
74
75         * configure.ac: Versions changed to 0.9.11pre.
76
77 2010-01-22  Kenichi Handa  <handa@m17n.org>
78
79         * src/otfdrive.c (lookup_gsub): Change the meaning of the arg
80         alternate_subst.
81
82 2009-12-17  Kenichi Handa  <handa@m17n.org>
83
84         * src/otfdrive.c (gstring_subst): Update g->MarkAttachGlass.
85         (lookup_gsub): Update g->GlyphClass and g->MarkAttachGlass.
86         (OTF_drive_gdef): Don't return error even if GDEF table doesn't
87         exist.
88
89 2009-11-30  Kenichi Handa  <handa@m17n.org>
90
91         * src/otfdrive.c (OTF_drive_gsub_internal): Fix previous change.
92         (OTF_drive_gpos_internal): Likewise.
93
94 2009-11-27  Kenichi Handa  <handa@m17n.org>
95
96         * src/otfdrive.c (gstring_subst): Set positioning_type to 1.
97         (lookup_gsub): If a feature is applied to a glyph, set its
98         positioning_type to 1.
99         (OTF_drive_gsub_internal): Only if a feature is applied to a
100         glyph, set its feature log.
101         (OTF_drive_gpos_internal): Likewise.
102
103 2009-11-24  Kenichi Handa  <handa@m17n.org>
104
105         * src/otf.h (OTF_drive_gsub_with_log, OTF_drive_gpos_with_log):
106         Extern them.
107         (OTF_get_drive_log): Delete extern.
108
109         * src/internal.h (OTF_DriveLog): Delete it.
110         (set_drive_log, get_drive_log): Delete externs.
111
112         * src/otfopen.c (OTF_InternalData): Delete the member drive_log.
113         (set_drive_log, get_drive_log): Delete them.
114
115         * src/otfdrive.c (USHORT): New macro for "unsigned short".
116         (prepare_drive_log): Delete it.
117         (setup_lookup_flags): Change the type of lookup_flags.
118         (lookup_gsub): Change the return value.
119         (gstring_insert_for_gpos): Adjusted for the change of
120         OTF_Glyph.positioning_type.
121         (print_glyph_positioning): Likewise.
122         (lookup_gpos): Likewise. Change the return value.
123         (OTF_drive_gsub_internal): New arg "with_log".  Adjusted for the
124         change of OTF_Glyph.positioning_type.
125         (OTF_drive_gsub): Fix args to OTF_drive_gsub_internal.
126         (OTF_drive_gsub_with_log): New function.
127         (OTF_drive_gpos_internal): New arg "with_log".  Adjusted for the
128         change of OTF_Glyph.positioning_type.
129         (OTF_drive_gpos): Fix args to OTF_drive_gpos_internal.
130         (OTF_drive_gpos2): Likewise.
131         (OTF_drive_gpos_with_log): New function.
132         (OTF_drive_gsub_alternate): Fix args to OTF_drive_gsub_internal.
133         (OTF_iterate_gsub_feature): Adjusted for the change of
134         OTF_Glyph.positioning_type.
135         (OTF_get_drive_log): Delete it.
136
137         * example/otfview.c (update_seq_area): Call
138         OTF_driver_gsub_with_log and OTF_driver_gpos_with_log.  Show which
139         features are applied.
140         (get_features): Fix previous change.
141
142 2009-11-24  mule  <handa@m17n.org>
143
144         * src/otferror.h: Removed.  All codes move to internal.h.
145
146         * src/internal.h: New file.
147
148         * src/otfdrive.c: Include internal.h instead of otferror.h.
149         (prepare_drive_log): New function.
150         (OTF_drive_gpos_internal): Make it static.
151         (OTF_get_drive_log): New function.
152
153         * src/otfopen.c: Include internal.h instead of otferror.h.
154         (OTF_InternalData): New member drive_log.
155         (set_drive_log, get_drive_log): New functions.
156
157         * src/otf.h (OTF_get_drive_log): Extern it.
158
159         * example/otfview.c (get_features): Adjusted for the change of
160         FeatureRec->features.
161         (FeatureProc): Don't re-order FeatureRec->features.
162
163 2009-11-18  Kenichi Handa  <handa@m17n.org>
164
165         * example/otfview.c (update_seq_area): Fix previous change.
166
167         * src/otfdrive.c (match_ids): New arg "direction".  Callers changed.
168         (match_ids_backward): Delete it.
169         (match_chain_ids): Adjusted for the change fo match_ids.
170         (match_classes): New arg "direction".  Callers changed.
171         (match_chain_classes): Adjusted for the change fo match_classes.
172         (match_coverages): New arg "direction".  Callers changed.
173         (match_chain_coverages): Adjusted for the change fo match_coverages.
174
175         * src/otfopen.c (read_header_part): Handle TTC (TrueType
176         Collection).
177         (OTF_open): Accept "ttc".
178
179 2009-11-13  Kenichi Handa  <handa@m17n.org>
180
181         * src/otfdrive.c (match_ids_backward): New function.
182         (match_chain_ids): Call match_ids_backward for backward matching.
183
184         * example/otfview.c (code, code_label, code_list): New variables.
185         (update_seq_area): Display code list.
186         (create_widgets): Create widgets code, code_label, code_list.
187
188 2009-11-09  Kenichi Handa  <handa@m17n.org>
189
190         * src/otfdrive.c (get_anchor): Delete it.
191         (get_class_def_auto): Make it static.
192
193 2009-11-07  Kenichi Handa  <handa@m17n.org>
194
195         * example/otfview.c (update_seq_area): Accumulate adjustments by
196         ValueRecord.
197
198         * src/otfdrive.c (print_anchor, print_glyph_positioning): New
199         functions.
200         (lookup_gpos): Improve debug info printing.
201
202 2009-11-04  Kenichi Handa  <handa@m17n.org>
203
204         * example/otfview.c (update_seq_area): Call OTF_driver_gdef after
205         OTF_driver_cmap.
206
207         * src/otfopen.c (debug_flag): New variable
208         (set_debug_flag): New function.
209         (OTF_open, OTF_open_ft_face): Check debug flag if not yet done.
210
211         * src/otfdrive.c (debug_flag): Extern it.
212         (lookup_gsub): Print debugging info if requested.  Don't ignore a
213         glyph that already has positioning_type.  Be sure to increment
214         gidx.
215
216 2009-10-08  Kenichi Handa  <handa@m17n.org>
217
218         * src/otfopen.c (read_cmap_table): Fix bug of handling
219         seg->idDelta.
220         (OTF_close): Free app_data before free all memories.
221
222 2009-10-02  Kenichi Handa  <handa@m17n.org>
223
224         * src/otfopen.c (OTF_ApplicationData): New type.
225         (OTF_InternalData): New member app_data.
226         (OTF_close): Free OTF_InternalData->app_data.
227         (OTF_put_data, OTF_get_data): New functions.
228
229         * src/otf.h (OTF_put_data, OTF_get_data): Extern them.
230
231 2009-09-29  Kenichi Handa  <handa@m17n.org>
232
233         * src/otf.h (OTF_Feature_Callback): New type.
234         (OTF_iterate_gsub_feature): Extern it.
235
236         * src/otfdrive.c (OTF_iterate_gsub_feature): New function.
237
238 2009-08-13  Kenichi Handa  <handa@m17n.org>
239
240         * Version 0.9.10 released.
241
242 2009-08-13  Kenichi Handa  <handa@m17n.org>
243
244         * src/otf.h (LIBOTF_VERSION): Changed to "0.9.10".
245         (LIBOTF_RELEASE_NUMBER): Changed to 10.
246
247         * configure.ac: Versions changed to 0.9.10.
248
249 2009-07-23  Kenichi Handa  <handa@m17n.org>
250
251         * src/otf.h (OTF_cmap): New member table_index;
252
253         * src/otfopen.c (read_cmap_table): Set cmap->table_index.
254
255         * src/otfdrive.c (lookup_encoding_0, lookup_encoding_2)
256         (lookup_encoding_4, lookup_encoding_6, lookup_encoding_8)
257         (lookup_encoding_10, lookup_encoding_12): Arguments and return
258         value changed.
259         (lookup_cmap_func): New function type.
260         (lookup_cmap_func_table): New variable.
261         (get_GlyphID): New function.
262         (get_uvs_glyph): Call get_GlyphID instead of directly accessing
263         cmal->unicode_table.
264         (OTF_drive_cmap, OTF_drive_cmap2): Call one of lookup functions in
265         lookup_cmap_func_table.
266
267 2009-07-10  Kenichi Handa  <handa@m17n.org>
268
269         * example/otfview.c (update_seq_area): Drive features of the
270         correct script and langsys.
271
272 2009-03-03  Kenichi Handa  <handa@m17n.org>
273
274         * Version 0.9.9 released.
275
276 2009-03-03  Kenichi Handa  <handa@m17n.org>
277
278         * src/otf.h (LIBOTF_VERSION): Changed to "0.9.9".
279         (LIBOTF_RELEASE_NUMBER): Changed to 9.
280
281 2009-03-02  Kenichi Handa  <handa@m17n.org>
282
283         * configure.ac: Versions changed to 0.9.9.
284
285 2009-02-26  Kenichi Handa  <handa@m17n.org>
286
287         * src/otfopen.c (free_stream): Check stream->buf before freeing
288         it.
289         (read_gdef_table): Do nothing if stream->buf is NULL.
290         (read_header_part): If a font doesn't have a GDEF table, make a
291         pseudo stream.
292
293         * src/otfdrive.c (glyph_class_table): New variable.
294         (get_class_def_auto): New function.
295         (OTF_drive_gdef): If a font doesn't have a GDEF table, use
296         get_class_def_auto.
297
298 2009-02-25  Kenichi Handa  <handa@m17n.org>
299
300         * src/otfopen.c (get_table_info): Always succeed for GDEF table.
301
302         * example/otfview.c (main): If ! otf, don't setup sub14.
303
304 2008-12-31  Kenichi Handa  <handa@m17n.org>
305
306         * src/otfdrive.c (check_cmap_uvs): Update the member
307         MGlyph.f.index.to.
308
309 2008-12-29  Kenichi Handa  <handa@m17n.org>
310
311         * src/otf.h (OTF_get_variation_glyphs): Extern it..
312
313         * src/otfdrive.c (OTF_get_variation_glyphs): New function.
314
315         * example/otfview.c (uvs_area, uvs_label): New variables.
316         (sub14, uvs): New variable.
317         (update_uvs_area): New function.
318         (update_seq_area): Set `glyph_id' member only when no charmap is
319         used.
320         (update_render_area): Handle a variation selector.
321         (UVSProc): New function.
322         (RenderProc): Call update_uvs_area if the font is OpenType.
323         (create_widgets): Create uvs_area widget if the font has variation
324         selector.
325         (main): Setup sub14. Set font in gc_set.
326
327 2008-12-24  Kenichi Handa  <handa@m17n.org>
328
329         * src/otfdrive.c (get_uvs_glyph): Complete the code.
330
331 2008-12-23  Kenichi Handa  <handa@m17n.org>
332
333         * example/otfview.c (update_seq_area): Call OTF_drive_cmap.
334
335         * example/otfdump.c (dump_cmap_table): Fix previous change.
336
337         * src/otfdrive.c (lookup_encoding_4): Fix typo.
338         (get_uvs_glyph): Argument changed.
339         (check_cmap_uvs): Adjusted for the above change.
340
341         * src/otfopen.c (READ_UINT24): New macro.
342         (read_cmap_uvs_table): Argument changed.  Complete the code.
343         (read_cmap_table): Adjusted for the above change.  Fix typo.
344
345         * src/otf.h (OTF_cmapSegment): Fix typo.
346         (OTF_EncodingSubtable4): Fix typo.
347         (OTF_UVSMapping): New type.
348         (OTF_UnicodeValueRange): New type.
349         (OTF_VariationSelectorRecord): New type.
350         (OTF_EncodingSubtable14): Fix previous change.
351
352 2008-12-22  Kenichi Handa  <handa@m17n.org>
353
354         * example/otfdump.c (dump_cmap_table): Handle format 14.
355
356         * src/otfdrive.c (check_cmap_uvs): New function.  Not yet completed.
357         (UVS_P): New macro.
358         (OTF_drive_cmap): Check UVS (Unicode Variation Sequences).
359         (get_uvs_glyph): New function.
360
361         * src/otfopen.c (read_cmap_uvs_table): New function.
362         (read_cmap_table): Handle format 14 (Unicode Variation Sequences).
363         Not yet completed.
364
365         * src/otf.h (OTF_EncodingSubtable14): New type.
366         (OTF_EncodingSubtable): New union member f.f14.
367
368 2008-12-03  Kenichi Handa  <handa@m17n.org>
369
370         * example/otfview.c (update_seq_area): Call OTF_drive_gpos2
371         instead of OTF_drive_gpos.  Handle the accumulated positioning.
372
373         * src/otfdrive.c (setup_lookup_flags): The last argument changed
374         to lookup_flags.  Just set the elements to 1 or 0.
375         (gstring_insert_for_gpos): New function.
376         (lookup_gpos): New arg accumulate.  Insert pseudo glyphs to
377         accumulate positioning if necessary.
378         (OTF_drive_gsub_internal): Adjusted for the change of
379         setup_lookup_flags.
380         (OTF_drive_gpos_internal): Renamed from OTF_drive_gpos.  Adjusted
381         for the change of setup_lookup_flags and lookup_gpos.
382         (OTF_drive_gpos): Just call OTF_drive_gpos_internal with
383         accumulate == 0.
384         (OTF_drive_gpos2): New function.
385
386         * src/otf.h (OTF_drive_gpos2): Extern it.
387
388 2008-11-27  Simon Zamecnik  <zamecnik@ui42.sk>  (tiny change)
389
390         * src/otfdrive.c (setup_lookup_indices): New arg LangSys.
391         (OTF_drive_gsub_internal, OTF_drive_gpos): Adjusted for the above
392         change.
393
394 2008-07-01  Kenichi Handa  <handa@m17n.org>
395
396         * src/otfopen.c (make_stream, setup_stream)
397         (make_stream_from_ft_face, free_stream, read_offset_table): Make
398         them static.
399
400 2008-06-29  Kenichi Handa  <handa@m17n.org>
401
402         * Version 0.9.8 released.
403
404 2008-06-29  Kenichi Handa  <handa@m17n.org>
405
406         * configure.ac: Versions changed to 0.9.8.
407
408         * example/otfview.c (DEVICE_DELTA): Handle an invalid table.
409
410         * example/otfdump.c (dump_device_table): Handle an invalid table.
411
412         * src/otfopen.c (read_device_table): Accept an invalid table.
413
414 2007-12-28  Kenichi Handa  <handa@ni.aist.go.jp>
415
416         * Version 0.9.7 released.
417
418 2007-12-28  Kenichi Handa  <handa@ni.aist.go.jp>
419
420         * configure.ac: Versions changed to 0.9.7.
421
422 2007-12-20  Kenichi Handa  <handa@ni.aist.go.jp>
423
424         * src/otfdrive.c (gstring_subst): If a glyph is changed, set the
425         character code to 0, and update GlyphClass.
426
427 2007-10-29  Kenichi Handa  <handa@m17n.org>
428
429         * example/otfdump.c (dump_chain_class_set_list): Ignore an element
430         whose offset is zero.
431
432 2007-09-06  Kenichi Handa  <handa@m17n.org>
433
434         * src/otfdrive.c (lookup_gpos): Ignore mark glyphs while
435         processing GPOS_MarkBase1.
436
437 2007-08-17  Kenichi Handa  <handa@m17n.org>
438
439         * src/otfdrive.c (lookup_gpos): Fix handling of IGNORED_GLYPH.
440
441 2007-08-06  Kenichi Handa  <handa@m17n.org>
442
443         * src/otfdrive.c (gstring_subst): If otf->cmap is NULL, set
444         character code of a glyph to 0.
445         (OTF_drive_gsub): If otf->cmap is NULL, try to load it.
446
447 2007-07-13  Kenichi Handa  <handa@m17n.org>
448
449         * Version 0.9.6 released.
450
451 2007-07-13  Kenichi Handa  <handa@m17n.org>
452
453         * configure.ac: Updated to 0.9.6.
454
455         * src/otf.h (LIBOTF_VERSION): Updated to 0.9.6.
456         (LIBOTF_RELEASE_NUMBER): Updated to 6.
457
458 2007-07-09  Kenichi Handa  <handa@m17n.org>
459
460         * src/otfdrive.c (gstring_subst): Remove a glyph if it is ignored
461         because of 0 glyph ID.
462
463 2007-01-09  Kenichi Handa  <handa@m17n.org>
464
465         * src/otf.h: Adjusted for C++.  Adjusted many prototypes to
466         contain `const' qualifiers.
467
468         * src/otferror.h (otf__error): Add `const' qualifier.
469
470         * src/otferror.c (otf__error, OTF_perror): Add `const' qualifiers.
471
472         * src/otfdrive.c: Add many `const' qualifiers.
473
474         * src/otfopen.c: Add many `const' qualifiers.
475
476 2006-07-25  Kenichi Handa  <handa@m17n.org>
477
478         * Version 0.9.5 released.
479
480 2006-07-25  Kenichi Handa  <handa@m17n.org>
481
482         * src/otfdrive.c (gstring_subst): Setup all members of struct
483         OTF_Glyph.
484         (lookup_gsub): Call gstring_subst with correct args.
485
486 2006-07-19  Kenichi Handa  <handa@m17n.org>
487
488         * libotf.pc.in: New file.
489
490         * Makefile.am (pkgconfigdir, pkgconfig_DATA): New variables.
491
492         * configure.ac: Updated to 0.9.5.
493         (FREETYPE_INC, FREETYPE_LD_FLAGS): AC_SUBST them.
494         (AC_CONFIG_FILES): Include libotf.pc.
495
496         * libotf-config.in: Include @FREETYPE_INC@ and @FREETYPE_LD_FLAGS@
497         in output.
498
499 2006-07-18  Kenichi Handa  <handa@m17n.org>
500
501         * example/otfview.c (bitmap): Array increated to cover full
502         Unicode.
503         (fontindex): New variable.
504         (update_glyph_area): Adjusted for the change of `bitmap'.
505         (GlyphProc): Likewise.
506         (help): New function.
507         (main): Accept a new 2nd arg INDEX.
508
509 2006-07-14  Kenichi Handa  <handa@m17n.org>
510
511         * src/otfopen.c: Include FT_TRUETYPE_TABLES_H.
512         (make_stream): New arg name.  Caller changed.
513         (setup_stream): Delete arg name.
514         (make_stream_from_ft_face): New function.
515         (read_cmap_table): Fix typo (`i'->`j').
516         (read_header_part): New arg face.  Caller changed.
517         (OTF_open_ft_face): New function.
518
519         * src/otf.h (LIBOTF_VERSION): Updated to 0.9.5.
520         (LIBOTF_RELEASE_NUMBER): Updated to 5.
521         (OTF_open_ft_face): Extern it.
522
523 2006-07-11  Kenichi Handa  <handa@m17n.org>
524
525         * src/otf.h (OTF_ERROR_FT_FACE): New macro.
526
527 2006-07-07  Kenichi Handa  <handa@m17n.org>
528
529         * src/otf.h (OTF_Anchor): Distinguish XDeviceTable and
530         YDeviceTable.
531
532 2006-06-23  Kenichi Handa  <handa@m17n.org>
533
534         * example/otfview.c (update_glyph_area): Don't use none_pixmap for
535         glyph index 0 if charmap_index is negative.
536
537         * example/otftobdf.c (main): Call dump_image with the arg full as 0.
538
539         * src/otfopen.c (read_table_directory): Fix setting of tag name.
540
541 2006-02-15  Kenichi Handa  <handa@m17n.org>
542
543         * example/otfview.c (DumpProc): Fix handling of non-existing glyph.
544         (create_otf_script_widgets): Fix typo; gsub -> gpos.
545
546 2006-02-10  Kenichi Handa  <handa@m17n.org>
547
548         * src/otfopen.c (read_table_directory): Fix setting of
549         OTF_TableDirectory->name.
550
551 2006-02-07  Kenichi Handa  <handa@m17n.org>
552
553         * example/otfview.c (DumpProc): Fix calculation of x/y offsets.
554
555 2006-01-27  Kenichi Handa  <handa@m17n.org>
556
557         * example/otfview.c (DumpProc): Completely re-written to produce
558         PostScirpt instead of PBM.
559
560 2005-12-22  Kenichi Handa  <handa@m17n.org>
561
562         * Version 0.9.4 released.
563
564         * src/otf.h (LIBOTF_VERSION): Updated to "0.9.4"
565         (LIBOTF_RELEASE_NUMBER): Update to 4.
566
567 2005-12-22  Kenichi Handa  <handa@m17n.org>
568
569         * example/otfview.c (update_glyph_area): Use non_pixmap for
570         non-existing glyphs.
571
572 2005-11-22  Kenichi Handa  <handa@m17n.org>
573
574         * example/otfview.c (main) [! HAVE_X11_XAW_COMMAND_H]: Fix args to
575         fprintf.
576
577         * configure.ac: Use AC_CHECK_HEADERS instead of AC_CHECK_HEADER.
578
579 2005-09-02  Kenichi Handa  <handa@m17n.org>
580
581         * example/Makefile.am (otfview_LDFLAGS): Use @X11_XT_XAW_XMU@
582         instead of directory listing libraries.
583
584         * autogen.sh: Run automake with -a -c.
585
586         * configure.ac (AC_INIT): Version updated to 0.9.4.
587         (AM_INIT_AUTOMAKE): Likewise.
588         (X11_XT_XAW_XMU): New variable.  Set to a library list for Xaw if
589         X11 is available.
590
591 2005-07-11  Kenichi Handa  <handa@m17n.org>
592
593         * src/otfdrive.c (OTF_drive_gsub_internal): Call OTF_get_table
594         unconditionally.
595         (OTF_drive_gpos): Likewise.
596
597         * src/otfopen.c (read_gsub_gpos_table): Set *table->address earlier.
598         (OTF_check_features): Set script_list and feature_list according
599         to gsubp.  Even if failed in getting features, if all requested
600         features are negative, return 1.
601
602 2005-06-29  Kenichi Handa  <handa@m17n.org>
603
604         * example/otfview.c (get_features): Don't return "*" even if all
605         features are being used.
606
607         * src/otfdrive.c (OTF_drive_gsub_internal): Initialize
608         positioning_type member to 0.
609         (OTF_drive_gpos): Likewise.
610
611 2005-06-24  Kenichi Handa  <handa@m17n.org>
612
613         * src/otfopen.c (OTF_check_features): If the MSB of a feature tag
614         is set, treat it as a negation flag.
615
616 2005-06-14  Kenichi Handa  <handa@m17n.org>
617
618         * src/otfopen.c (OTF_check_features): If gsubp is zero, check gpos
619         scripts and features.  Treat feature tag 0 as wildcard.
620
621 2005-05-26  Kenichi Handa  <handa@m17n.org>
622
623         * example/otfview.c (langsys_tag): New variable.
624         (get_features): Check if rec->langsys and rec->features are not
625         NULL.
626         (update_seq_area): Delete unused var.
627         (setup_feature_rec): Setup rec->langsys correctly.  Don't allocate
628         rec->features here.
629         (compose_script_langsys, decompose_script_langsys): New functions.
630         (ScriptProc): Fix handling of the arg call_data.
631         (create_otf_script_widgets): Check all langsys.  Allocate
632         gsub.features and gpos.features here.
633         (create_otf_widgets): Delete unused var.
634
635         * example/otflist.c (print_gsub_gpos_info): Don't print
636         superfluous space.
637         (main): Delete unused variables.
638
639 2005-05-23  Kenichi Handa  <handa@m17n.org>
640
641         * src/otfopen.c (OTF_check_features): Fix indexing to
642         feature_list->Feature.
643         (OTF_tag): Handle the case that the length of NAME is short.
644
645 2005-05-21  Kenichi Handa  <handa@m17n.org>
646
647         * src/otfopen.c (OTF_get_features): If table_info doesn't have
648         stream nor address, return -1.
649
650 2005-05-19  Kenichi Handa  <handa@m17n.org>
651
652         * src/otf.h (OTF_get_scripts, OTF_get_features,
653         OTF_check_features): Extern them.
654
655         * src/otfopen.c (enum OTF_ReaderFlag): New enum.
656         (OTF_TableInfo): Change the prototype of the member `reader'.
657         Caller changed.
658         (read_head_table, read_name_table, read_cmap_table)
659         (read_gdef_table): Adjusted for the change of OTF_TableInfo.
660         (read_feature_list): Seek the stream at first.
661         (read_gsub_gpos_table): Adjusted for the change of OTF_TableInfo.
662         Pay attention to the arg `flag'.
663         (read_gsub_table, read_gpos_table): Adjusted for the change of
664         OTF_TableInfo.
665         (OTF_get_table): Likewise.
666         (OTF_get_scripts, OTF_get_features, OTF_check_features): New
667         functions.
668
669 2005-05-13  Kenichi Handa  <handa@m17n.org>
670
671         * src/otfdrive.c (lookup_gsub): Increment `gidx' correctly in the
672         case of GSUB_Ligature1.
673
674 2005-02-18  Kenichi Handa  <handa@m17n.org>
675
676         * src/otferror.c (error_message): Allocate it statically.
677         (otf__error): Don't allocate error_message dynamically.
678         (OTF_perror): Adjust for the above changes.
679
680 2005-02-17  Kenichi Handa  <handa@m17n.org>
681
682         * example/otflist.c (filter): Accept extentions ".ttc" and ".TTC".
683
684         * src/otfopen.c (read_cmap_table): Delete unsed var.
685
686         * src/otfdrive.c (gstring_subst): Correctly set temp.f.index.
687         (lookup_gsub): Fix updating gidx.
688         (gstring_subst): New arg OTF.  Callers changed.
689         (lookup_gsub): New arg OTF.  Callers changed.
690
691 2004-12-27  Kenichi Handa  <handa@m17n.org>
692
693         * Version 0.9.3 released.
694
695 2004-11-19  Kenichi Handa  <handa@m17n.org>
696
697         * libotf-config: Update to version "0.9.3".
698
699         * configure.ac (AC_INIT): Update to 0.9.3.
700         (AM_INIT_AUTOMAKE): Likewise.
701
702         * src/otf.h (LIBOTF_VERSION): Update to "0.9.3".
703         (LIBOTF_RELEASE_NUMBER): Update to 3.
704
705 2004-11-09  Kenichi Handa  <handa@m17n.org>
706
707         * src/otf.h (OTF_Glyph): Delete member alternate_set.
708         (OTF_drive_gsub_alternate): Extern it.
709
710         * src/otfdrive.c (lookup_gsub): New arg alternate_subst.  Callers
711         changed.
712         (OTF_drive_gsub_internal): Renamed from OTF_drive_gsub.
713         (OTF_drive_gsub): Just call OTF_drive_gsub_internal.
714         (OTF_drive_gsub_alternate): New function.
715
716         * example/otfview.c (alt_subst, do_alternate_subst): New
717         variables.
718         (update_seq_area): If do_alternate_subst, call
719         OTF_drive_gsub_alternate.  Correctly set advance.  Don't check
720         g->alternate_set.
721         (AltSubstProc): New function.
722         (create_widgets): Create AltSubst widget.
723
724 2004-11-08  Kenichi Handa  <handa@m17n.org>
725
726         * example/otfview.c: Include "config.h".
727
728 2004-11-02  Kenichi Handa  <handa@m17n.org>
729
730         * example/otfview.c (MAX_FEATURE_COUNT): Delete this macro.
731         (FeatureElement): New type.
732         (FeatureRec): New element num_features and parent.
733         (update_seq_area): Show alternate glyphs if any.
734         (setup_feature_rec): (Re)allocate rec->features.  Create widgets.
735         (create_otf_widgets): Don't create widgets here.
736
737         * example/otfdump.c (dump_cmap_table): Support Format 2 of cmap.
738
739         * src/otfopen.c (read_cmap_table): Support Format 2 of cmap.
740
741         * src/otfdrive.c (lookup_gsub): For Format 3, set
742         OTF_Glyph->alternate_set.
743
744         * src/otf.h (OTF_EncodingSubtable2): New members subHeaderCount
745         and glyphIndexCount.
746         (OTF_Glyph): New member alternate_set.
747
748 2004-10-27  Kenichi Handa  <handa@m17n.org>
749
750         * example/otfview.c: Pay attention to HAVE_X11_XAW_COMMAND_H.
751
752         * configure.ac: Check existence of X11/Xaw/Command.h.
753
754 2004-09-03  Kenichi Handa  <handa@m17n.org>
755
756         * src/otfdrive.c (GSTRING_INSERT): Fix size of reallocating
757         memory.
758         (lookup_gpos): For LooupType 5, fix finding a base/ligature glyph.
759
760         * example/otfview.c (update_seq_area): Use malloc and free for
761         gstring.glyphs.
762
763 2004-08-13  Kenichi Handa  <handa@m17n.org>
764
765         * Version 0.9.2 released.
766
767 2004-08-13  Kenichi Handa  <handa@m17n.org>
768
769         * src/otfdrive.c (IGNORED_GLYPH): Fix checking of MarkAttachClass.
770
771         * configure.ac: Updated to 0.9.2.
772
773         * src/otf.h (LIBOTF_VERSION): Updated to 0.9.2.
774         (LIBOTF_RELEASE_NUMBER): Updated to 2.
775
776 2004-08-09  Kenichi Handa  <handa@m17n.org>
777
778         * Version 0.9.1 released.
779
780 2004-08-09  Kenichi Handa  <handa@m17n.org>
781
782         * src/otfdrive.c (setup_lookup_indices): Fix handling of "*" in
783         features.
784
785         * example/otfview.c (update_seq_area): Call OTF_drive_gdef only
786         when otf is not NULL.
787
788 2004-08-07  Kenichi Handa  <handa@m17n.org>
789
790         * example/otfview.c (FeatureProc): Highlight selected features by
791         changing border width, not by changing fore and back color.
792         (setup_feature_rec): Setup internal height and width of widgets.
793         (create_otf_widgets): Likewise.
794
795         * src/otfdrive.c (IGNORED_GLYPH): New macro.
796         (gstring_subst, match_ids, match_chain_ids, match_classes)
797         (match_chain_classes, match_coverages, match_chain_coverages):
798         use IGNORED_GLYPH.
799         (lookup_gsub): Likewise.  Include OTF_MarkAttachmentType in flag.
800         (lookup_gpos): Likewise.
801
802 2004-08-06  Kenichi Handa  <handa@m17n.org>
803
804         * src/otfdrive.c (lookup_gsub): Fix handling of Extension lookup.
805         (lookup_gpos): Support Extension lookup.
806         (gstring_subst): Fix previous change.
807
808 2004-08-05  Kenichi Handa  <handa@m17n.org>
809
810         * src/otf.h (enum OTF_LookupFlagBit): Fix OTF_IgnoreMarks.
811
812         * example/otfview.c (update_seq_area): Fix sign of yoff.
813         Support more positioning_type.
814
815         * example/otfdump.c (dump_lookup_subtable_gpos): Add support for
816         LookupType 5.
817
818         * src/otfopen.c (read_ligature_attach): Fix for the case that an
819         offset is NULL.
820
821         * src/otfdrive.c (lookup_gpos): Add support for LookupType 5.
822         Fix handling of flag.
823         (gstring_subst): Fix previous change.
824
825 2004-08-04  Kenichi Handa  <handa@m17n.org>
826
827         * example/otfview.c (bidi, reversed): New variables.
828         (update_seq_area): Call OTF_drive_gdef.  If reversed is nonzero,
829         reorder glyphs properly.  Create pixmap if necessary.  Handle
830         OTF_XAdvance and OTF_XAdvDevice.
831         (BidiProc): New function.
832         (create_widgets): Setup bidi.
833
834         * src/otfdrive.c (gstring_subst): New arg flag.  Caller changed.
835         Ignore glyphs specified in flag.
836         (match_ids, match_classes, match_coverages): Likewise.
837         (match_chain_ids, match_chain_classes, match_chain_coverages): New
838         arg flag.
839         (lookup_gsub): Fix handling of LookupFlag.
840         (lookup_gpos): Likewise.  Support more LookupType.
841
842         * src/otf.h (OTF_LookupFlagIgnoreMask): New macro.
843
844 2004-07-29  Kenichi Handa  <handa@m17n.org>
845
846         * example/otfview.c (create_widgets): Fix width of index glyphs..
847
848 2004-07-26  Kenichi Handa  <handa@m17n.org>
849
850         * src/otfopen.c (read_value_record): Fix typo.
851
852         * src/otfdrive.c (lookup_gpos): Don't apply a GPOS feature twice.
853         (OTF_drive_gpos): Initialize values positioning_type memeber.
854         (OTF_drive_gsub): Fix previous change.
855
856 2004-07-24  Kenichi Handa  <handa@m17n.org>
857
858         * src/otfdrive.c (gstring_subst): Set `c' and `f.index' of
859         OTF_Glyph.
860         (OTF_drive_gsub): Iniialize f.index member of OTF_Glhph.
861
862         * src/otf.h (OTF_Glyph): New union member u.index.
863
864 2004-07-23  Kenichi Handa  <handa@m17n.org>
865
866         * example/otfview.c: Big change to implement selection of script.
867
868 2004-07-12  Kenichi Handa  <handa@m17n.org>
869
870         * example/otfview.c: Big change to implement driving OpenType
871         tables (GSUB and GPOS).
872
873         * src/otfdrive.c (get_langsys): If script is NULL, use the first
874         one in script_list.
875
876 2004-07-09  Kenichi Handa  <handa@m17n.org>
877
878         * src/otfdrive.c (lookup_gpos): Ignore glyphs whose ID is 0 (fix
879         for the case of LookupType 2).
880
881 2004-07-08  Kenichi Handa  <handa@m17n.org>
882
883         * src/otfopen.c (read_class_set_list): Allocate the array *set
884         by OTF_CALLOC.
885
886 2004-07-07  Kenichi Handa  <handa@m17n.org>
887
888         * src/otfdrive.c (lookup_gsub): For LookupType 5 Subformat 2, if
889         ClassSet is not defined, do nothing.
890
891 2004-06-29  Kenichi Handa  <handa@m17n.org>
892
893         * src/otfdrive.c (lookup_gsub): Fix handling of lookup type 6
894         format 3.
895
896 2004-05-28  Kenichi Handa  <handa@m17n.org>
897
898         * example/otflist.c: Include <sys/types.h> and "config.h".
899         (next_file): New function.
900         (main): Call next_file.
901
902         * configure.ac: Check functions scandir and alphasort.
903
904 2004-05-06  Kenichi Handa  <handa@m17n.org>
905
906         * example/otftobdf.c (registry): New variable.
907         (dump_header): Include registry in the font name.
908         (main): Handle the encoding arg of the format M-N.  Without this
909         arg, generate a font with raw-encoding.
910
911         * src/otfdrive.c: Include "config.h".  Delete '//' style comments.
912         (lookup_encoding_0, lookup_encoding_2, lookup_encoding_4)
913         (lookup_encoding_6, lookup_encoding_8, lookup_encoding_10)
914         (lookup_encoding_12, OTF_drive_cmap2): New functions.
915
916         * src/otfopen.c (read_name): Argument changed.  Set
917         OTF_NameRecord->ascii.  If possible, convert Unicode sequence to
918         ASCII.
919         (read_name_table): Adjusted for the change of read_name.
920         (read_cmap_table): Signal an error (not-yet-supported) if format
921         is 2.  Support for formats, 8, 10, 12.
922         (read_value_record): Clear value_record at first.
923         (read_lookup_subtable_gpos): Fix for the case subFormat is 1 and
924         2.
925         (OTF_open): Check file name extension.
926
927         * example/otflist.c: Include <otf.h>.
928         (FATAL_ERROR): New macro.
929         (print_tag, print_gsub_gpos_info, help_and_exit): New functions.
930         (main): Handle -h, --help, -l args.  Prefer family/style names
931         extracted by the otf library.
932
933 2004-03-30  Kenichi Handa  <handa@m17n.org>
934
935         * src/otfopen.c (read_value_record): Clear value_record at
936         first.
937         (read_lookup_subtable_gpos): For Lookup Type 1, read Coverage at
938         first.
939
940 2004-03-29  Kenichi Handa  <handa@m17n.org>
941
942         * example/otfdump.c (dump_lookup_subtable_gsub): For Lookup Type
943         7, fix arg to dump_lookup_subtable_gsub.
944         (dump_lookup_subtable_gpos): Support Lookup Type 9.
945
946         * autogen.sh: Run automake after autoheader.
947
948         * src/otfopen.c (OTF_close): Free otf->filename.
949
950 2004-02-01  Kenichi Handa  <handa@m17n.org>
951
952         * Version 0.9 released.
953
954 \f
955 Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
956   National Institute of Advanced Industrial Science and Technology (AIST)
957   Registration Number H15PRO112
958
959 This file is part of the m17n library.
960
961 The m17n library is free software; you can redistribute it and/or
962 modify it under the terms of the GNU Lesser General Public License
963 as published by the Free Software Foundation; either version 2.1 of
964 the License, or (at your option) any later version.
965
966 The m17n library is distributed in the hope that it will be useful,
967 but WITHOUT ANY WARRANTY; without even the implied warranty of
968 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
969 Lesser General Public License for more details.
970
971 You should have received a copy of the GNU Lesser General Public
972 License along with the m17n library; if not, write to the Free
973 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
974 02111-1307, USA.