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