f2eaeda5d7ba274730859256d6ca686e2c2aa7d1
[m17n/libotf.git] / ChangeLog
1 2007-12-20  Kenichi Handa  <handa@ni.aist.go.jp>
2
3         * src/otfdrive.c (gstring_subst): If a glyph is changed, set the
4         character code to 0, and update GlyphClass.
5
6 2007-10-29  Kenichi Handa  <handa@m17n.org>
7
8         * example/otfdump.c (dump_chain_class_set_list): Ignore an element
9         whose offset is zero.
10
11 2007-09-06  Kenichi Handa  <handa@m17n.org>
12
13         * src/otfdrive.c (lookup_gpos): Ignore mark glyphs while
14         processing GPOS_MarkBase1.
15
16 2007-08-17  Kenichi Handa  <handa@m17n.org>
17
18         * src/otfdrive.c (lookup_gpos): Fix handling of IGNORED_GLYPH.
19
20 2007-08-06  Kenichi Handa  <handa@m17n.org>
21
22         * src/otfdrive.c (gstring_subst): If otf->cmap is NULL, set
23         character code of a glyph to 0.
24         (OTF_drive_gsub): If otf->cmap is NULL, try to load it.
25
26 2007-07-13  Kenichi Handa  <handa@m17n.org>
27
28         * Version 0.9.6 released.
29
30 2007-07-13  Kenichi Handa  <handa@m17n.org>
31
32         * configure.ac: Updated to 0.9.6.
33
34         * src/otf.h (LIBOTF_VERSION): Updated to 0.9.6.
35         (LIBOTF_RELEASE_NUMBER): Updated to 6.
36
37 2007-07-09  Kenichi Handa  <handa@m17n.org>
38
39         * src/otfdrive.c (gstring_subst): Remove a glyph if it is ignored
40         because of 0 glyph ID.
41
42 2007-01-09  Kenichi Handa  <handa@m17n.org>
43
44         * src/otf.h: Adjusted for C++.  Adjusted many prototypes to
45         contain `const' qualifiers.
46
47         * src/otferror.h (otf__error): Add `const' qualifier.
48
49         * src/otferror.c (otf__error, OTF_perror): Add `const' qualifiers.
50
51         * src/otfdrive.c: Add many `const' qualifiers.
52
53         * src/otfopen.c: Add many `const' qualifiers.
54
55 2006-07-25  Kenichi Handa  <handa@m17n.org>
56
57         * Version 0.9.5 released.
58
59 2006-07-25  Kenichi Handa  <handa@m17n.org>
60
61         * src/otfdrive.c (gstring_subst): Setup all members of struct
62         OTF_Glyph.
63         (lookup_gsub): Call gstring_subst with correct args.
64
65 2006-07-19  Kenichi Handa  <handa@m17n.org>
66
67         * libotf.pc.in: New file.
68
69         * Makefile.am (pkgconfigdir, pkgconfig_DATA): New variables.
70
71         * configure.ac: Updated to 0.9.5.
72         (FREETYPE_INC, FREETYPE_LD_FLAGS): AC_SUBST them.
73         (AC_CONFIG_FILES): Include libotf.pc.
74
75         * libotf-config.in: Include @FREETYPE_INC@ and @FREETYPE_LD_FLAGS@
76         in output.
77
78 2006-07-18  Kenichi Handa  <handa@m17n.org>
79
80         * example/otfview.c (bitmap): Array increated to cover full
81         Unicode.
82         (fontindex): New variable.
83         (update_glyph_area): Adjusted for the change of `bitmap'.
84         (GlyphProc): Likewise.
85         (help): New function.
86         (main): Accept a new 2nd arg INDEX.
87
88 2006-07-14  Kenichi Handa  <handa@m17n.org>
89
90         * src/otfopen.c: Include FT_TRUETYPE_TABLES_H.
91         (make_stream): New arg name.  Caller changed.
92         (setup_stream): Delete arg name.
93         (make_stream_from_ft_face): New function.
94         (read_cmap_table): Fix typo (`i'->`j').
95         (read_header_part): New arg face.  Caller changed.
96         (OTF_open_ft_face): New function.
97
98         * src/otf.h (LIBOTF_VERSION): Updated to 0.9.5.
99         (LIBOTF_RELEASE_NUMBER): Updated to 5.
100         (OTF_open_ft_face): Extern it.
101
102 2006-07-11  Kenichi Handa  <handa@m17n.org>
103
104         * src/otf.h (OTF_ERROR_FT_FACE): New macro.
105
106 2006-07-07  Kenichi Handa  <handa@m17n.org>
107
108         * src/otf.h (OTF_Anchor): Distinguish XDeviceTable and
109         YDeviceTable.
110
111 2006-06-23  Kenichi Handa  <handa@m17n.org>
112
113         * example/otfview.c (update_glyph_area): Don't use none_pixmap for
114         glyph index 0 if charmap_index is negative.
115
116         * example/otftobdf.c (main): Call dump_image with the arg full as 0.
117
118         * src/otfopen.c (read_table_directory): Fix setting of tag name.
119
120 2006-02-15  Kenichi Handa  <handa@m17n.org>
121
122         * example/otfview.c (DumpProc): Fix handling of non-existing glyph.
123         (create_otf_script_widgets): Fix typo; gsub -> gpos.
124
125 2006-02-10  Kenichi Handa  <handa@m17n.org>
126
127         * src/otfopen.c (read_table_directory): Fix setting of
128         OTF_TableDirectory->name.
129
130 2006-02-07  Kenichi Handa  <handa@m17n.org>
131
132         * example/otfview.c (DumpProc): Fix calculation of x/y offsets.
133
134 2006-01-27  Kenichi Handa  <handa@m17n.org>
135
136         * example/otfview.c (DumpProc): Completely re-written to produce
137         PostScirpt instead of PBM.
138
139 2005-12-22  Kenichi Handa  <handa@m17n.org>
140
141         * Version 0.9.4 released.
142
143         * src/otf.h (LIBOTF_VERSION): Updated to "0.9.4"
144         (LIBOTF_RELEASE_NUMBER): Update to 4.
145
146 2005-12-22  Kenichi Handa  <handa@m17n.org>
147
148         * example/otfview.c (update_glyph_area): Use non_pixmap for
149         non-existing glyphs.
150
151 2005-11-22  Kenichi Handa  <handa@m17n.org>
152
153         * example/otfview.c (main) [! HAVE_X11_XAW_COMMAND_H]: Fix args to
154         fpintf.
155
156         * configure.ac: Use AC_CHECK_HEADERS instead of AC_CHECK_HEADER.
157
158 2005-09-02  Kenichi Handa  <handa@m17n.org>
159
160         * example/Makefile.am (otfview_LDFLAGS): Use @X11_XT_XAW_XMU@
161         instead of directory listing libraries.
162
163         * autogen.sh: Run automake with -a -c.
164
165         * configure.ac (AC_INIT): Version updated to 0.9.4.
166         (AM_INIT_AUTOMAKE): Likewise.
167         (X11_XT_XAW_XMU): New variable.  Set to a library list for Xaw if
168         X11 is available.
169
170 2005-07-11  Kenichi Handa  <handa@m17n.org>
171
172         * src/otfdrive.c (OTF_drive_gsub_internal): Call OTF_get_table
173         unconditionally.
174         (OTF_drive_gpos): Likewise.
175
176         * src/otfopen.c (read_gsub_gpos_table): Set *table->address earlier.
177         (OTF_check_features): Set script_list and feature_list according
178         to gsubp.  Even if failed in getting features, if all requested
179         features are negative, return 1.
180
181 2005-06-29  Kenichi Handa  <handa@m17n.org>
182
183         * example/otfview.c (get_features): Don't return "*" even if all
184         features are being used.
185
186         * src/otfdrive.c (OTF_drive_gsub_internal): Initialize
187         positioning_type member to 0.
188         (OTF_drive_gpos): Likewise.
189
190 2005-06-24  Kenichi Handa  <handa@m17n.org>
191
192         * src/otfopen.c (OTF_check_features): If the MSB of a feature tag
193         is set, treat it as a negation flag.
194
195 2005-06-14  Kenichi Handa  <handa@m17n.org>
196
197         * src/otfopen.c (OTF_check_features): If gsubp is zero, check gpos
198         scripts and features.  Treat feature tag 0 as wildcard.
199
200 2005-05-26  Kenichi Handa  <handa@m17n.org>
201
202         * example/otfview.c (langsys_tag): New variable.
203         (get_features): Check if rec->langsys and rec->features are not
204         NULL.
205         (update_seq_area): Delete unused var.
206         (setup_feature_rec): Setup rec->langsys correctly.  Don't allocate
207         rec->features here.
208         (compose_script_langsys, decompose_script_langsys): New functions.
209         (ScriptProc): Fix handling of the arg call_data.
210         (create_otf_script_widgets): Check all langsys.  Allocate
211         gsub.features and gpos.features here.
212         (create_otf_widgets): Delete unused var.
213
214         * example/otflist.c (print_gsub_gpos_info): Don't print
215         superfluous space.
216         (main): Delete unused variables.
217
218 2005-05-23  Kenichi Handa  <handa@m17n.org>
219
220         * src/otfopen.c (OTF_check_features): Fix indexing to
221         feature_list->Feature.
222         (OTF_tag): Handle the case that the length of NAME is short.
223
224 2005-05-21  Kenichi Handa  <handa@m17n.org>
225
226         * src/otfopen.c (OTF_get_features): If table_info doesn't have
227         stream nor address, return -1.
228
229 2005-05-19  Kenichi Handa  <handa@m17n.org>
230
231         * src/otf.h (OTF_get_scripts, OTF_get_features,
232         OTF_check_features): Extern them.
233
234         * src/otfopen.c (enum OTF_ReaderFlag): New enum.
235         (OTF_TableInfo): Change the prototype of the member `reader'.
236         Caller changed.
237         (read_head_table, read_name_table, read_cmap_table)
238         (read_gdef_table): Adjusted for the change of OTF_TableInfo.
239         (read_feature_list): Seek the stream at first.
240         (read_gsub_gpos_table): Adjusted for the change of OTF_TableInfo.
241         Pay attention to the arg `flag'.
242         (read_gsub_table, read_gpos_table): Adjusted for the change of
243         OTF_TableInfo.
244         (OTF_get_table): Likewise.
245         (OTF_get_scripts, OTF_get_features, OTF_check_features): New
246         functions.
247
248 2005-05-13  Kenichi Handa  <handa@m17n.org>
249
250         * src/otfdrive.c (lookup_gsub): Increment `gidx' correctly in the
251         case of GSUB_Ligature1.
252
253 2005-02-18  Kenichi Handa  <handa@m17n.org>
254
255         * src/otferror.c (error_message): Allocate it statically.
256         (otf__error): Don't allocate error_message dynamically.
257         (OTF_perror): Adjust for the above changes.
258
259 2005-02-17  Kenichi Handa  <handa@m17n.org>
260
261         * example/otflist.c (filter): Accept extentions ".ttc" and ".TTC".
262
263         * src/otfopen.c (read_cmap_table): Delete unsed var.
264
265         * src/otfdrive.c (gstring_subst): Correctly set temp.f.index.
266         (lookup_gsub): Fix updating gidx.
267         (gstring_subst): New arg OTF.  Callers changed.
268         (lookup_gsub): New arg OTF.  Callers changed.
269
270 2004-12-27  Kenichi Handa  <handa@m17n.org>
271
272         * Version 0.9.3 released.
273
274 2004-11-19  Kenichi Handa  <handa@m17n.org>
275
276         * libotf-config: Update to version "0.9.3".
277
278         * configure.ac (AC_INIT): Update to 0.9.3.
279         (AM_INIT_AUTOMAKE): Likewise.
280
281         * src/otf.h (LIBOTF_VERSION): Update to "0.9.3".
282         (LIBOTF_RELEASE_NUMBER): Update to 3.
283
284 2004-11-09  Kenichi Handa  <handa@m17n.org>
285
286         * src/otf.h (OTF_Glyph): Delete member alternate_set.
287         (OTF_drive_gsub_alternate): Extern it.
288
289         * src/otfdrive.c (lookup_gsub): New arg alternate_subst.  Callers
290         changed.
291         (OTF_drive_gsub_internal): Renamed from OTF_drive_gsub.
292         (OTF_drive_gsub): Just call OTF_drive_gsub_internal.
293         (OTF_drive_gsub_alternate): New function.
294
295         * example/otfview.c (alt_subst, do_alternate_subst): New
296         variables.
297         (update_seq_area): If do_alternate_subst, call
298         OTF_drive_gsub_alternate.  Correctly set advance.  Don't check
299         g->alternate_set.
300         (AltSubstProc): New function.
301         (create_widgets): Create AltSubst widget.
302
303 2004-11-08  Kenichi Handa  <handa@m17n.org>
304
305         * example/otfview.c: Include "config.h".
306
307 2004-11-02  Kenichi Handa  <handa@m17n.org>
308
309         * example/otfview.c (MAX_FEATURE_COUNT): Delete this macro.
310         (FeatureElement): New type.
311         (FeatureRec): New element num_features and parent.
312         (update_seq_area): Show alternate glyphs if any.
313         (setup_feature_rec): (Re)allocate rec->features.  Create widgets.
314         (create_otf_widgets): Don't create widgets here.
315
316         * example/otfdump.c (dump_cmap_table): Support Format 2 of cmap.
317
318         * src/otfopen.c (read_cmap_table): Support Format 2 of cmap.
319
320         * src/otfdrive.c (lookup_gsub): For Format 3, set
321         OTF_Glyph->alternate_set.
322
323         * src/otf.h (OTF_EncodingSubtable2): New members subHeaderCount
324         and glyphIndexCount.
325         (OTF_Glyph): New member alternate_set.
326
327 2004-10-27  Kenichi Handa  <handa@m17n.org>
328
329         * example/otfview.c: Pay attention to HAVE_X11_XAW_COMMAND_H.
330
331         * configure.ac: Check existence of X11/Xaw/Command.h.
332
333 2004-09-03  Kenichi Handa  <handa@m17n.org>
334
335         * src/otfdrive.c (GSTRING_INSERT): Fix size of reallocating
336         memory.
337         (lookup_gpos): For LooupType 5, fix finding a base/ligature glyph.
338
339         * example/otfview.c (update_seq_area): Use malloc and free for
340         gstring.glyphs.
341
342 2004-08-13  Kenichi Handa  <handa@m17n.org>
343
344         * Version 0.9.2 released.
345
346 2004-08-13  Kenichi Handa  <handa@m17n.org>
347
348         * src/otfdrive.c (IGNORED_GLYPH): Fix checking of MarkAttachClass.
349
350         * configure.ac: Updated to 0.9.2.
351
352         * src/otf.h (LIBOTF_VERSION): Updated to 0.9.2.
353         (LIBOTF_RELEASE_NUMBER): Updated to 2.
354
355 2004-08-09  Kenichi Handa  <handa@m17n.org>
356
357         * Version 0.9.1 released.
358
359 2004-08-09  Kenichi Handa  <handa@m17n.org>
360
361         * src/otfdrive.c (setup_lookup_indices): Fix handling of "*" in
362         features.
363
364         * example/otfview.c (update_seq_area): Call OTF_drive_gdef only
365         when otf is not NULL.
366
367 2004-08-07  Kenichi Handa  <handa@m17n.org>
368
369         * example/otfview.c (FeatureProc): Highlight selected features by
370         changing border width, not by changing fore and back color.
371         (setup_feature_rec): Setup internal height and width of widgets.
372         (create_otf_widgets): Likewise.
373
374         * src/otfdrive.c (IGNORED_GLYPH): New macro.
375         (gstring_subst, match_ids, match_chain_ids, match_classes)
376         (match_chain_classes, match_coverages, match_chain_coverages):
377         use IGNORED_GLYPH.
378         (lookup_gsub): Likewise.  Include OTF_MarkAttachmentType in flag.
379         (lookup_gpos): Likewise.
380
381 2004-08-06  Kenichi Handa  <handa@m17n.org>
382
383         * src/otfdrive.c (lookup_gsub): Fix handling of Extension lookup.
384         (lookup_gpos): Support Extension lookup.
385         (gstring_subst): Fix previous change.
386
387 2004-08-05  Kenichi Handa  <handa@m17n.org>
388
389         * src/otf.h (enum OTF_LookupFlagBit): Fix OTF_IgnoreMarks.
390
391         * example/otfview.c (update_seq_area): Fix sign of yoff.
392         Support more positioning_type.
393
394         * example/otfdump.c (dump_lookup_subtable_gpos): Add support for
395         LookupType 5.
396
397         * src/otfopen.c (read_ligature_attach): Fix for the case that an
398         offset is NULL.
399
400         * src/otfdrive.c (lookup_gpos): Add support for LookupType 5.
401         Fix handling of flag.
402         (gstring_subst): Fix previous change.
403
404 2004-08-04  Kenichi Handa  <handa@m17n.org>
405
406         * example/otfview.c (bidi, reversed): New variables.
407         (update_seq_area): Call OTF_drive_gdef.  If reversed is nonzero,
408         reorder glyphs properly.  Create pixmap if necessary.  Handle
409         OTF_XAdvance and OTF_XAdvDevice.
410         (BidiProc): New function.
411         (create_widgets): Setup bidi.
412
413         * src/otfdrive.c (gstring_subst): New arg flag.  Caller changed.
414         Ignore glyphs specified in flag.
415         (match_ids, match_classes, match_coverages): Likewise.
416         (match_chain_ids, match_chain_classes, match_chain_coverages): New
417         arg flag.
418         (lookup_gsub): Fix handling of LookupFlag.
419         (lookup_gpos): Likewise.  Support more LookupType.
420
421         * src/otf.h (OTF_LookupFlagIgnoreMask): New macro.
422
423 2004-07-29  Kenichi Handa  <handa@m17n.org>
424
425         * example/otfview.c (create_widgets): Fix width of index glyphs..
426
427 2004-07-26  Kenichi Handa  <handa@m17n.org>
428
429         * src/otfopen.c (read_value_record): Fix typo.
430
431         * src/otfdrive.c (lookup_gpos): Don't apply a GPOS feature twice.
432         (OTF_drive_gpos): Initialize values positioning_type memeber.
433         (OTF_drive_gsub): Fix previous change.
434
435 2004-07-24  Kenichi Handa  <handa@m17n.org>
436
437         * src/otfdrive.c (gstring_subst): Set `c' and `f.index' of
438         OTF_Glyph.
439         (OTF_drive_gsub): Iniialize f.index member of OTF_Glhph.
440
441         * src/otf.h (OTF_Glyph): New union member u.index.
442
443 2004-07-23  Kenichi Handa  <handa@m17n.org>
444
445         * example/otfview.c: Big change to implement selection of script.
446
447 2004-07-12  Kenichi Handa  <handa@m17n.org>
448
449         * example/otfview.c: Big change to implement driving OpenType
450         tables (GSUB and GPOS).
451
452         * src/otfdrive.c (get_langsys): If script is NULL, use the first
453         one in script_list.
454
455 2004-07-09  Kenichi Handa  <handa@m17n.org>
456
457         * src/otfdrive.c (lookup_gpos): Ignore glyphs whose ID is 0 (fix
458         for the case of LookupType 2).
459
460 2004-07-08  Kenichi Handa  <handa@m17n.org>
461
462         * src/otfopen.c (read_class_set_list): Allocate the array *set
463         by OTF_CALLOC.
464
465 2004-07-07  Kenichi Handa  <handa@m17n.org>
466
467         * src/otfdrive.c (lookup_gsub): For LookupType 5 Subformat 2, if
468         ClassSet is not defined, do nothing.
469
470 2004-06-29  Kenichi Handa  <handa@m17n.org>
471
472         * src/otfdrive.c (lookup_gsub): Fix handling of lookup type 6
473         format 3.
474
475 2004-05-28  Kenichi Handa  <handa@m17n.org>
476
477         * example/otflist.c: Include <sys/types.h> and "config.h".
478         (next_file): New function.
479         (main): Call next_file.
480
481         * configure.ac: Check functions scandir and alphasort.
482
483 2004-05-06  Kenichi Handa  <handa@m17n.org>
484
485         * example/otftobdf.c (registry): New variable.
486         (dump_header): Include registry in the font name.
487         (main): Handle the encoding arg of the format M-N.  Without this
488         arg, generate a font with raw-encoding.
489
490         * src/otfdrive.c: Include "config.h".  Delete '//' style comments.
491         (lookup_encoding_0, lookup_encoding_2, lookup_encoding_4)
492         (lookup_encoding_6, lookup_encoding_8, lookup_encoding_10)
493         (lookup_encoding_12, OTF_drive_cmap2): New functions.
494
495         * src/otfopen.c (read_name): Argument changed.  Set
496         OTF_NameRecord->ascii.  If possible, convert Unicode sequence to
497         ASCII.
498         (read_name_table): Adjusted for the change of read_name.
499         (read_cmap_table): Signal an error (not-yet-supported) if format
500         is 2.  Support for formats, 8, 10, 12.
501         (read_value_record): Clear value_record at first.
502         (read_lookup_subtable_gpos): Fix for the case subFormat is 1 and
503         2.
504         (OTF_open): Check file name extension.
505
506         * example/otflist.c: Include <otf.h>.
507         (FATAL_ERROR): New macro.
508         (print_tag, print_gsub_gpos_info, help_and_exit): New functions.
509         (main): Handle -h, --help, -l args.  Prefer family/style names
510         extracted by the otf library.
511
512 2004-03-30  Kenichi Handa  <handa@m17n.org>
513
514         * src/otfopen.c (read_value_record): Clear value_record at
515         first.
516         (read_lookup_subtable_gpos): For Lookup Type 1, read Coverage at
517         first.
518
519 2004-03-29  Kenichi Handa  <handa@m17n.org>
520
521         * example/otfdump.c (dump_lookup_subtable_gsub): For Lookup Type
522         7, fix arg to dump_lookup_subtable_gsub.
523         (dump_lookup_subtable_gpos): Support Lookup Type 9.
524
525         * autogen.sh: Run automake after autoheader.
526
527         * src/otfopen.c (OTF_close): Free otf->filename.
528
529 2004-02-01  Kenichi Handa  <handa@m17n.org>
530
531         * Version 0.9 released.
532
533 \f
534 Copyright (C) 2003, 2004
535   National Institute of Advanced Industrial Science and Technology (AIST)
536   Registration Number H15PRO112
537
538 This file is part of the m17n library.
539
540 The m17n library is free software; you can redistribute it and/or
541 modify it under the terms of the GNU Lesser General Public License
542 as published by the Free Software Foundation; either version 2.1 of
543 the License, or (at your option) any later version.
544
545 The m17n library is distributed in the hope that it will be useful,
546 but WITHOUT ANY WARRANTY; without even the implied warranty of
547 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
548 Lesser General Public License for more details.
549
550 You should have received a copy of the GNU Lesser General Public
551 License along with the m17n library; if not, write to the Free
552 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
553 02111-1307, USA.