Tue Apr 4 12:01:37 2000 Owen Taylor * pango/utils.[ch] pango/pango-context.c: fribidi-0.1.9 wants UCS-4 not UCS2; switch accordingly. Mon Apr 3 20:30:20 2000 Owen Taylor * pango/mapping.c (pango_glyph_string_x_to_index): Fix handling of positions at character limits. * modules/basic/basic.c (basic_engine_shape): Fix bug that was causing mirrored characters not to mirror. Mon Apr 3 15:16:06 2000 Owen Taylor * pango/glyphstring.c (pango_glyph_string_get_logical_widths): Fix off-by-one error for RTL runs. * configure.in: Add -lglib to AC_CHECK_LIB(fribidi...) (How did this work?) From Matt Wilson. * pango/pango-layout.c (pango_layout_check_lines): Correctly deal with handling character offsets when breaking lines. * modules/arabic/arabic.c (arabic_engine_shape): Fix problem with setting unknown glyph when no arabic-capable font found. Fri Mar 31 11:29:47 2000 Owen Taylor * pango/pangox.[ch] (pango_x_render_layout[_line]) examples/viewer.c: Add capability to render foreground / background colors. The interfaces here are possibly certainly not right, or convenient, but they should be a start. Thu Mar 30 17:06:39 2000 Owen Taylor * modules/arabic/*.[ch]: New version of Arabic module from Karl Koehler, supporting: - More extensive ligatures - Some Hamza handling - Vowel marks - mule-arabic font - LangBox font - Persian (farsi) (needs testing) Thu Mar 30 16:49:06 2000 Owen Taylor * modules/basic/basic.c pango/utils.c (find_converter): Use "UTF-8" with the dash as the charset name for utf-8. (Change suggested by Adrian Havill ) * pango/pango-layout.[ch]: Add function to get logical attributes of the text string. Mon Mar 13 11:47:53 2000 Owen Taylor * pango/pango-layout.c pango/pangox.c (pango_x_render_layout): Handle right alignment for width == -1, align within total width of layout. Mon Mar 13 10:54:48 2000 Owen Taylor * pango/pango-item.[ch]: Memory management functions for PangoItem. * pango/*.[ch]: Random constification. * pango/pangox.c pango/pango-layout.c pango/pango-context.c: Add an extra_attrs field to PangoItem. Use this to handle underlining for PangoLayout. * examples/viewer.c (reload_font): Make paragraphs global to save the complexity of passing it around all over the place. * pango/pango-layout.[ch] (pango_layout_context_changed): Add a function to reset the layout on changes to the layout's context. * pango/pangox.c (pango_x_make_matching_xlfd): Prefer bitmap to scaleable if the discrepancy is < 1 pixel. (Probably not the ideal criterion.) * pango/pangox.c (pango_x_font_map_for_display): Fix resolution computation error. * pango/pango-layout.c (pango_layout_check_lines): Handle text with embedded newlines. * pango/pangox.c (pango_x_render_layout): Fix y to refer to the top of the layout, not the baseline of the first line. * pango/pango-layout.c (process_item): Don't wrap if width is set to -1. * Makefile.am configure.in **/*.[ch]: move libpango/ directory and fix all headers to install under include/pango/ Thu Mar 9 19:55:21 2000 Owen Taylor * Release pango-0.8 * docs/TEXT/coding-style: Added some notes about coding style within Pango. * modules/*.[ch]: New version from Karl Koehler adding support for vowels marks, better ligatures. * docs/tmpl/*: Doc updates * libpango/pango-layout.[ch] libpango/pangox/.[ch]: Add functions for handling paragraphs as 2-D objects, not simple lists of lines, to make things easier for people using pango-layout. * examples/viewer.c: Simplify using the now 2-D layout-capabable PangoLayout. * libpango/fonts.c (pango_font_{get_coverage,find_shaper}): Allow NULL language tag. * libpango/modules.c (_pango_find_map): Fix for allowing NULL language tag. Wed Mar 8 13:34:57 2000 Owen Taylor * libpango/pango-layout.[ch]: First draft of highlevel driver. It currently only handles a paragraph as a list of lines, but it is probably necessary to make it handle 2D layout for a paragraph as well * examples/viewer.c: Move over to new layout driver (much of the code moved into pango-layout.c) * libpango/glyphs.c libpango/pango-glyphs.h: Fixes to get_extents(), add pango_glyph_string_get_logical_widths. * libpango/pango-itemize.c: Handle 0-length text properly. * libpango/pangox.c: When loading particular sized fonts, use the original XLFD, since XFree86 doesn't handle wildcards in aliases properly. * libpango/pangox.[ch] (pango_x_render_layout_line): Add function to render an entire PangoLayoutLine. * libpango/reorder-items.c: Add a note to the effect that pango_reorder_items() is basically replaced by a similar function in PangoLayout. Wed Mar 8 10:58:56 2000 Owen Taylor * modules/arabic/arconv.c (shapecount): Fix from Karl Koehler to joining behavior. * modules/Makefile.am modules/arabic/*: Added arabic shaper from Karl Koehler * modules/basic/tables-{small,big}.i: Remove arabic from the ranges that the basic shaper marks as "exact". * examples/HELLO.utf8: Partially alphabetize, add arabic. Mon Mar 6 21:03:28 2000 Owen Taylor * libpango/pango-layout.[ch]: Started work on highlevel layout driver. Mon Mar 6 20:55:32 2000 Owen Taylor * libpango/mapping.c example/viewer.c: * modules/hangul/hangul.c modules/basic/basic.c modules/tamil/tamil.c: Convert log_clusters[] use from char offsets to byte offset - should make it easier to have all interface deal with stuff in byte offsets. * libpango/mapping.c libpango/pango-glyph.h: Rename x_to_cp and cp_to_x to make them "member functions" of glyph_string. * libpango/pango-types.h: Add a rectangle type for use in storing glyph/glyph-string extents, plus macros for extracting ascent/descent. * libpango/fonts.c libpango/pango-font.h libpango/pangox.c: Virtualize glyph extents function into the font. * libpango/pangox.c modules/*/*.c examples/viewer.c: Convert over to new rationalized unit system - everything in 1000ths of a point or 1000ths of a glyph unit. * libpango/pango-glyph.h libpango/glyphstring.c: Add function to get extents of a glyph string. (We may want to fastpath the width in the future, since getting the width seems to be a very common and time-critical operation) Mon Feb 28 19:46:35 2000 Owen Taylor * libpango/fonts.c libpango/pango-fonts.h: Add functions to convert font descriptions to and from human-readable strings. * examples/viewer.c: Use functions from libpango instead of rolling our own font-description conversion functions. Fri Feb 25 15:04:21 2000 Owen Taylor * libpango/{fonts.c,pango-font.h,pango-context.[ch],pangox.c, pango-attributes.c,examples/viewer.c: Add size to the font description structure instead of continually passing it around as an extra argument. * libpango/pangox.c: Take screen resolution into account when choosing fonts, instead of assumming point == pixel. Fri Feb 25 12:32:01 2000 Owen Taylor * configure.in examples/Makefile.am: If GTK+ test fails, just skip the example program. * pango-config.in pango.spec.in: Add a simple pango-config script to the build. (pango-config --libs pangox really should add the X libraries, but we'll omit that for the moment.) Sat Feb 19 18:51:35 2000 Owen Taylor * libpango/pangox.c (pango_x_make_matching_xlfd): Fix problem where charsets specified in alias files where being ignored and treated as wildcards. Sat Feb 19 17:46:49 2000 Owen Taylor * README: Fix Dov's name. Wed Feb 16 19:55:05 2000 Owen Taylor * configure.in: Release 0.7 * examples/Makefile.am (aliasdir): Install example pangox_aliases file. * examples/Makefile.am (bin_PROGRAMS): Install pango-viewer. * docs/tmpl/*: Updated templates. Wed Feb 16 16:39:46 2000 Owen Taylor * libpango/pango-coverage.c (pango_coverage_get): Make refcounted. * libpango/modules.c (struct _PangoEnginePair): Since we don't currently unload engines, cache loaded engines. (Not really quite satisfactory, but should work OK) * libpango/pango-context.c (pango_context_get_font_description): Added a global font description. * libpango/modules.c (_pango_find_map): Allow NULL language tags. * libpango/pango-context.c (pango_itemize) examples/viewer.c: Switch itemize over to take a PangoAttrList. * examples/viewer.c: Conform to changes in itemization interface * libpango/font.[ch]: Add a compare function for FontDescription * libpango/pango-attributes.[ch]: Change the iteration iterface to be more convenient. * libpango/pango-context.[ch]: Add the ability to set a default font. * libpango/pango-context.[ch]: Take the font for itemization from the attributes on the text. * libpango/pangox.c: Cache currently loaded fonts, and cache coverages. Tue Feb 15 02:35:56 2000 Owen Taylor * docs/**: Add documentation for attributes. * Makefile.am libpango/pango-attributes.[ch]: Finish initial implementation of attributes APIs. Mon Feb 14 22:04:38 2000 Owen Taylor * libpango/pango-attributes.[ch]: Start of attribute lists. Fri Feb 11 16:04:50 2000 Owen Taylor * libpango/Makefile.am: make dist fixups. * Makefile.am pango.spec.in: Add a spec file * examples/HELLO.utf8: Change Maltese to a different phrase to include some unique Maltese characters. (Suggestion from Steven R. Loomis) * libpango/Makefile.am modules/Makefile.am libpango/modules.c: Move pango.modules file to /var Thu Feb 10 23:45:49 2000 Owen Taylor * docs/**: Added recent API changes. * libpango/pango-context.c: Doc comment fixes * configure.in: Add in directories from unicode-config when running AC_CHECK_LIB on libunicode. Thu Feb 10 23:45:27 2000 Owen Taylor * configure.in: Up version to match 0.6 release that was made yesterday. * examples/viewer.c (main): Look for fixed if sans isn't found as an initial font. * modules/Makefile.am: Add an install rule to run pango-querymodules. * modules/*/Makefile.am (module_LTLIBRARIES): Set up appropriate install rules. * libpango/Makefile.am: Break the X code out into a separate library. Thu Feb 10 20:19:39 2000 Owen Taylor * examples/viewer.c: Fix some runtime and compile-time warnings. * modules/hangul/hangul.c (hangul_engine_shape): Shape the string with the unknown glyph rather than giving a warning when the font doesn't have any of the necesary charsets. Thu Feb 10 19:57:27 2000 Owen Taylor * examples/viewer.c: Add style selector, rewrite family selector to use list_families(). * libpango/pango-context.[ch] libpango/pango-font.h libpango/pangox.c libpango/fonts.c: Add calls to list families, modify list_fonts() call to take an optional "family" parameter for the purpose of listing the fonts within a family. Wed Feb 9 14:04:35 2000 Owen Taylor * TODO: updates. * docs/*: Added some docs on font handling, both general and for X. Tue Feb 8 15:05:17 2000 Owen Taylor * libpango/pangox.c: Moved the primary size and charset matching inside of Pango instead of on the font server. This allows us to do better matching, and only scale scaleable fonts, and not scale bitmaps. Also, match size and charset simultaneously, so that we can handle the cases where all sizes are not available in all charsets better. Mon Feb 7 20:27:35 2000 Owen Taylor * libpango/pangox.c (pango_x_names_for_size): Start at reworking code to do size and charset lookups simultaneously. twill compile once I get home. Mon Feb 7 16:49:32 2000 Owen Taylor * examples/viewer.c (make_families_menu): Switch the option menu for a combo box. * examples/pangox_aliases: Add a demo alias file. * libpango/pangox.c: Add a font-alias mechanism allowing. * examples/viewer.c (make_font_selector): Added a spin-button for size. Wed Feb 2 20:49:21 2000 Owen Taylor * libpango/pangox.c (pango_x_get_unknown_glyph): Add a call to get a glyph for unknown an unknown char. * modules/basic/basic.c: use pango_x_get_unknown_glyph. * libpango/utils.[ch] (_pango_guchar4_to_utf8): Added util function for coverting wide chars to utf8. * libpango/pangox.c (pango_x_font_get_coverage pango_x_font_get_shaper): Initial implementations. Wed Feb 2 11:12:12 2000 Owen Taylor * libpango/pango-types.h: Conditionally define G_N_ELEMENTS() when using glib-1.3. * modules/basic/basic.c modules/hangul/hangul.c modules/tamil/tamil.c: Replace MEMBERS() with G_N_ELEMENTS(). * libpango/pango-engine.h: Added a get_coverage() function to the PangoEngineShape vtable. * modules/basic/basic.c modules/hangul/hangul.c modules/tamil/tamil.c: Added get_coverage() functions. The basic.c one is incredibly inefficient (but caching may make that matter that much). The Hangul one needs checking. Wed Feb 2 00:07:13 2000 Owen Taylor * libpango/pango-*.h: The great header file reorganization. Split up roughtly by objects. * libpango/pango-font.h libpango/fonts.h: Add generic font-loading and listing interfaces. * libpango/pangox.c: Implement font-listing/loading interfaces for X. * libpango/pango-context.[ch]: Flesh out context structure. Add appropriate accesors, font loading-methods, etc. * libpango/pango-coverage.[ch]: Coverage map objects. * examples/viewer.c: First stab at adding font-selection. Majorly deficient for the moment until we add font lists and fallbacks based on coverage maps. Thu Jan 27 16:50:51 2000 Owen Taylor * docs/**: Updates to match recent API changes. Mon Jan 17 22:03:24 2000 Owen Taylor * modules/hangul/hangul.c modules/tamil/tamil.c: Updated to use new X font mechanism. * libpango/pangox.[ch]: Misc bugfixes, no longer segfaults. Mon Jan 17 18:29:39 2000 Owen Taylor * libpango/pangox.[ch] modules/basic/basic.c: back away from the strict charset model to having subfonts arbitrarily indexed. The charset-index model didn't allow proper fallbacks. Add a function pango_x_list_subfonts() function that lists subfonts in the proper order for a given list of charsets. (segfaults currently, will fix pronto) Sat Jan 15 03:17:35 2000 Owen Taylor * pango/glyphstring.c pango/mapping.c pango/pangox.c modules/basic.c examples/viewer.c: Switch GlyphStrings to have a single array of PangoGlyphInfo instead of multiple arrays. Rename PangoGlyphIndex to PangoGlyph. Sat Jan 15 01:06:45 2000 Owen Taylor * libpango/pangox.c libpango/pangox.h libpango/fonts.c libpango/glyphstring.c modules/basic/basic.c: Eliminate PangoCFont; For X, encode charset into upper 16 bits of 32 bit glyph IDs. Revise X core <=> module interfaces to support this change. Remove support for X_XLFD_FONT_RANGES, which has been disavowed by its proponents, in favor of checking metrics to figure out if the relevant characters are there. Rework operation of basic module to be faster and simple. * modules/Makefile.am: temporarily comment out Tamil and Hangul modules until I finish mucking with the X font interfaces. Fri Jan 14 12:08:43 2000 Owen Taylor * examples/HELLO.utf8: Add Pango properly spelled. * **/Makefile.am: make dist fixes. Thu Jan 13 17:49:45 2000 Owen Taylor * TODO: Updated. Thu Jan 13 16:57:22 2000 Owen Taylor * examples/viewer.c: reindented. * README: updated Wed Jan 12 16:49:03 2000 Owen Taylor * Huge rename from GScript to Pango. * modules/tamil/* examples/muru.utf fonts/tscakaram.pcf: Tamil module from Sivaraj Doddannan Mon Aug 2 18:32:59 1999 Owen Taylor * configure.in: Check for libunicode. * examples/viewer.c libgscript/break.c libgscript/itemize.c modules/basic/basic.c: Use libunicode functions for conversion. * modules/basic/basic.c: Add support for simple accent composition; fix bidi swapping to correctly swap clusters as a unit. 1999-07-26 * libgscript/mapping.c (g_script_cp_to_x): Fix buggy algorithm. 1999-07-31 Changwoo Ryu * modules/hangul/Makefile.am (EXTRA_DIST): Added tables-*.i files. 1999-07-29 Raja R Harinath * modules/hangul/Makefile.am (INCLUDES): Use -I$(top_srcdir)/libgscript. 1999-07-30 Changwoo Ryu * modules/hangul/*, Makefile.am, configure.in: Added the Hangul shaping module. Wed Jul 28 14:45:00 1999 Owen Taylor * Released version 0.4 Wed Jul 28 14:43:41 1999 Owen Taylor * libgscript/reorder-items.c: Return NULL correctly. * libgscript/mapping.c: Fixed buggy algorithm for cp to x. Fixed reversed interpolation for x to cp. Wed Jul 28 14:42:40 1999 Owen Taylor * libgscript/mapping.c: Fix bugs Thu Jul 22 09:36:08 1999 Owen Taylor * Released version 0.3 Wed Jul 21 18:46:14 1999 Owen Taylor * libgscript/gscriptx.c (g_script_x_extents): Fix same off-by-one bug here too... Wed Jul 21 18:44:55 1999 Owen Taylor * libgscript/gscriptx.c (g_script_x_glyph_extents): Fix an off-by-one error in computing indexes into the per-char information. Tue Jul 20 20:09:09 1999 Owen Taylor * docs/tmpl/engines.sgml: First pass at documenting engine interfaces. Tue Jul 20 16:10:48 1999 Owen Taylor * **: Documentation improvements. Tue Jul 20 15:05:45 1999 Owen Taylor * modules/basic/{basic.c,tables-{big,small}.i}: Rewrote basic module to support subset fonts meaningfully. This meant revising the algorithm used to look up a font for each character independently. Which required aggresive caching here and in the font code to give half-way decent performance. Added support for ISO-10646-1 fonts. * libgscript/fonts.c (g_script_font_[get/set]_data): Add the ability to add user data to a font. * libgscript/gscriptx.[ch]: Add functions to allow: - Querying all XLFD's matching a set of character sets for a font. - Loading a component font with a particular XLFD. - Finding the range of present characters for a given XLFD. Also added tons of caching. Wed Jul 14 19:11:41 1999 Owen Taylor * libgscript/gscriptx.c (g_script_x_glyph_extents): Fixed min/max confusion. Mon Jul 12 17:14:53 1999 Owen Taylor * docs/TEXT/glossary (CFont): Expanded. * libgscript/fonts.c (g_script_cfont_unref): Fixed leak. (Pointed out by Raph) * libgscript/gscriptx.c: Handle the case where fontstruct->per_char == NULL. Sun Jul 11 23:44:42 1999 Owen Taylor * Made version 0.2 * **/Makefile.am: Fixes for srcdir != builddir Sun Jul 11 23:41:19 1999 Owen Taylor * docs/tmpl/glyphs.sgml: SGML fix. Sun Jul 11 22:53:11 1999 Owen Taylor * libgscript/mapping.c: Implemented g_script_cp_to_x() and g_script_x_to_cp(). * examples/viewer.c: Added clicking on a character to identify it as a test of the above. * gscript/gscript.h gscript/gglyphstring.c modules/basic/basic.c: Add another field into the GGlyphString which holds a mapping from glyphs to logical clusters. * libgscript/gscript.h (struct _GScriptLangRange): Make it start-length like everything else, not start-end. Sun Jul 11 00:18:56 1999 Owen Taylor * docs/tmpl/gscript-x.sgml: Fix sgml error. Sat Jul 10 23:40:40 1999 Owen Taylor * modules/basic/basic.c: Added ability to use multibyte character sets. (Right now, they have to be converted by iconv into EUC encoding, but that can easily be extended). Added simply CJK support. This really bloats and slows down the module because the range-based encoding we use to map characters onto character-sets wasn't designed for CJK-style charsets. But it's better than nothing for now. * libgscript/reorder-items.c (reorder_items_recurse): Fix bug with variable initialization. * examples/viewer.c (draw): Compute line increments. * libgscript/gscriptx.c (g_script_x_[glyph]_extents): Added logical_ascent/descent parameters. * examples/viewer.c: Commented Sat Jul 10 04:35:10 1999 Owen Taylor * configure.in Makefile.am: automake'd and libtoolized. Sat Jul 10 00:00:00 1999 Owen Taylor * It renders! Start a ChangeLog