2005-11-18 Behdad Esfahbod * === Released 1.11.0 === * configure.in: Version 1.11.0 * NEWS: Updated. 2005-11-18 Behdad Esfahbod * pango/pango-layout.c (pango_layout_move_cursor_visually): Use the new support for negative offsets in g_utf8_pointer_to_offset. So now, we simply do: offset += g_utf8_pointer_to_offset(text+oldindex, text+newindex), instead of doing offset = g_utf8_pointer_to_offset(text, text+index) as we did before. 2005-11-17 Behdad Esfahbod * pango/pango-renderer.c: Documentation improvements. (#321731) 2005-11-17 Behdad Esfahbod * pango/fonts.c (pango_font_description_*): General cleanup. (pango_font_description_unset_fields): Set fields being unset to their default value. (pango_font_description_hash, pango_font_description_equal): Do not use mask in these. Use all other fields unconditionally. 2005-11-17 Matthias Clasen * modules/hangul/tables-jamos.i: const correctness fixes found by Arjan van de Ven and gcc. 2005-11-17 Behdad Esfahbod * pango/pangofc-fontmap.c (fontset_hash_key_equal): Compare language too. (#318168) 2005-11-17 Behdad Esfahbod * pango/break.c (pango_get_log_attrs): Remove g_utf8_strlen that was only used to give a warning. * pango/break.c (pango_default_break): Add gcc-suggested parantheses around boolean expression. 2005-11-17 Behdad Esfahbod * docs/tmpl/coverage-maps.sgml docs/tmpl/fonts.sgml docs/tmpl/glyphs.sgml docs/tmpl/layout.sgml docs/tmpl/main.sgml docs/tmpl/scripts.sgml docs/tmpl/tab-stops.sgml docs/tmpl/text-attributes.sgml pango/break.c pango/fonts.c pango/pango-fontset.c pango/pango-layout.c pango/pango-script.c pango/pango-utils.c pango/pangofc-decoder.c pango/pangofc-decoder.h pango/pangofc-font.c pango/pangofc-font.h pango/pangoxft-font.c: More documentation improvements. 2005-11-17 Behdad Esfahbod Part of #101079: * pango/opentype/ftxopen.c (Load_Lookup): In extension subtables, offset is relative to the extension subtable, not the original table. (Greg Aumann) * pango/opentype/ftxgpos.c (Load_BaseArray): When reading BaseAnchor, skip offsets that are zero. Works around bug in Doulos SIL Regular. 2005-11-16 Behdad Esfahbod * docs/pango_markup.sgml docs/tmpl/coverage-maps.sgml docs/tmpl/engines.sgml docs/tmpl/fonts.sgml docs/tmpl/freetype-fonts.sgml docs/tmpl/glyphs.sgml docs/tmpl/layout.sgml docs/tmpl/main.sgml docs/tmpl/modules.sgml docs/tmpl/opentype.sgml docs/tmpl/pango-engine-lang.sgml docs/tmpl/pango-engine-shape.sgml docs/tmpl/pango-renderer.sgml docs/tmpl/pangocairo.sgml docs/tmpl/pangofc-decoder.sgml docs/tmpl/pangofc-font.sgml docs/tmpl/pangofc-fontmap.sgml docs/tmpl/scripts.sgml docs/tmpl/tab-stops.sgml docs/tmpl/text-attributes.sgml docs/tmpl/win32-fonts.sgml docs/tmpl/x-fonts.sgml docs/tmpl/xft-fonts.sgml pango/break.c pango/ellipsize.c pango/fonts.c pango/pango-attributes.c pango/pango-color.c pango/pango-context.c pango/pango-coverage.c pango/pango-fontmap.c pango/pango-glyph-item.c pango/pango-layout.c pango/pango-markup.c pango/pango-tabs.c pango/pango-types.h pango/pango-utils.c pango/pangoft2-render.c pango/pangox.c pango/pangoxft-render.c: Various documentation improvements. 2005-11-15 Behdad Esfahbod * pango/pango-types.h: Added % to PANGO_DIRECTION_LTR in doc comments. 2005-11-15 Behdad Esfahbod * examples/GLASS.utf8: Added redistribution permission. 2005-11-14 Behdad Esfahbod * modules/khmer/khmer/khmer-fc.c: Fixed bug in khmer module state table. (#320569, Jens Herden) 2005-11-14 Behdad Esfahbod Updated Tibetan shaper from Pema Geyleg. (#313513) * examples/tibetan.utf: Added. * examples/Makefile.am (EXTRA_DIST): tibetan.utf added. * modules/tibetan/tibetan-fc.c: Updated Tibetan shaper that is rewritten from scratch. Supports the number pre-combining mark, illegal sequence detection, etc. 2005-11-14 Behdad Esfahbod * examples/GLASS.utf8: Added. The infamous "I Can Eat Glass" in vairous languages. Adopted from http://www.columbia.edu/kermit/utf8.html#glass * examples/Makefile.am (EXTRA_DIST): GLASS.utf8 added. 2005-11-14 Behdad Esfahbod * pango/pangocairo-fcfont.c: Respect fontconfig reassignment of pixelsize. (#317121, Funda Wang) 2005-11-14 Behdad Esfahbod Updates from #320666: * pango/Makefile.am: Remove pango-easy-scripts-table.h. * pango/pango-easy-scripts-table.h: Removed. The "easy" table goes into pango-scripts-table.h too. * pango/pango-script-table.h: Include "easy" table. * pango/pango-script.c: Change gunichar->script last_index caching mechanism. The caching is simply done by making int mid in the bsearch static. * tools/Makefile.am: Remove gen-easy-scripts-table.c. * tools/gen-easy-scripts-table.c: Removed. The "easy" table is generated in gen-scripts-table.pl too. * tools/gen-script-table.h: Generate "easy" table. 2005-11-14 Behdad Esfahbod * examples/Makefile.am: Add X_CFLAGS to INCLUDES. We normally are picking them up from XFT_CFLAGS, but we don't require Xft any more for X11. (#320576) 2005-11-14 Behdad Esfahbod * pango/break.c (pango_default_break): Remove g_utf8_strlen and work around the logic. Patch by Owen Taylor. 2005-11-14 Behdad Esfahbod * pango/mini-fribidi/fribidi.c): Include string.h, needed for memset. * pango/mini-fribidi/fribidi.c (fribidi_analyse_string_utf8): Handle short-circuiting of the case when there are ltr letters, no rtl strongs, and base dir is weak rtl. Pointed out by Owen Taylor. 2005-11-11 Behdad Esfahbod * pango/pango-layout.c (pango_layout_get_alignment): Fix get/set typo in docs. (#321247, Masao Mutoh) 2005-11-09 Behdad Esfahbod * pango/pangocairo-fontmap.c (pango_cairo_update_context): Call get_context_info after g_return_if_fail. 2005-11-09 Behdad Esfahbod * pango/break.c (pango_break): Do not call strlen when length < 0. Leave it to language engines to handle NULL-terminated strings. 2005-11-09 Behdad Esfahbod * pango/mini-fribidi/README, pango/mini-fribidi/fribidi.patch, pango/mini-fribidi/fribidi.c: Short-circuit on LTR-only or RTL-only text. 2005-11-09 Behdad Esfahbod * pango/opentype/ftxgpos.c, pango/opentype/ftxopen.c: Remove debug line that got in accidentally. 2005-11-09 Behdad Esfahbod * examples/renderdemo.c (make_layout): Set layout wrapping to PANGO_WRAP_WORD_CHAR if width is set for the layout. Setting width didn't have any effect previously. * pango/pango-layout.c (process_item): Remove the excess letter_spacing adjustment on the item width. (#168593, Damon Chaplin) * pango/pango-markup.c (pango_parse_markup), pango/querymodules.c: Replace g_string_new ("") with g_string_new (NULL). * pango/pangoft2.c: Use g_malloc'ed memory for unknown FreeType2 error, instead of static buffer. 2005-11-09 Behdad Esfahbod * modules/hebrew/.cvsignore, modules/khmer/.cvsignore, modules/tibetan/.cvsignore: Minor clean up and adjustment. 2005-11-07 Federico Mena Quintero Fixes bug #320666: Instead of doing a bsearch() for every gunichar to map it to a PangoScript, use a precomputed table for the first 8192 code points. Also, remember the last script that we computed on each invocation; this will also help CJK and the other scripts above U+2000. This table also holds information on whether the characters in it are paired characters. We can use this to avoid doing the expensive get_pair_index() call most of the time. Many thanks to Matthias Clasen for his suggestions for this patch. * tools/gen-easy-scripts-table.c: New program to generate pango_easy_scripts_table. * tools/Makefile.am: Build gen-easy-scripts-table. * pango/pango-easy-scripts-table.h: New file with a mapping of the first 8192 Unicode characters to their corresponding scripts. The table also says whether each character has a paired char or not. * pango/Makefile.am (libpango_1_0_la_SOURCES): Add pango-easy-scripts-table.h. * pango/pango-script-table.h: Remove everything below U+2000, and add a note to that effect. * pango/pango-script.c (pango_script_for_unichar_with_last_index): New function. This is the old pango_script_for_unichar(), but it lets the caller keep around the computed index in pango_script_table. This works under the assumption that a character is likely to be in the same script block as the preceding character in a string. (pango_script_for_unichar): First, do a quick check against the pango_easy_scripts_table. Then, do the expensive check with pango_script_for_unichar_with_last_index(). (pango_script_iter_next): If the character is within the easy script range, find out if it is a paired character by using PANGO_PAIRED_CHAR_FLAG. (struct _PangoScriptIter): Add a last_index_for_script_lookup field. We use this to maintain the last-lookup index from pango_script_for_unichar_with_last_index(). (pango_script_iter_next): If the character is not within the easy script range, use pango_script_for_unichar_with_last_index(), and store the index in the last_index_for_script_lookup field of the PangoScriptIter. 2005-11-04 Behdad Esfahbod * pango-config.in, pango.spec.in: Removed. Not used for a long time, and were out of date. * .cvsignore: Remove pango-config and pango.spec. 2005-11-04 Behdad Esfahbod * pango/break.c: Update to handle new line-breaking types in the Unicode 4.1 UAX#14. (#313907) * configure.in: Bump required glib version to 2.9.0. Needed for above-mentioned line-breaking types. 2005-11-04 Behdad Esfahbod * configure.in, examples/argcontext.c examples/cairoview.c, examples/renderdemo.c, examples/renderdemo.h examples/xftview.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, modules/hebrew/hebrew-shaper.c, modules/hebrew/hebrew-shaper.h, modules/indic/indic-fc.c, modules/indic/mprefixups.c, modules/syriac/syriac-fc.c, pango/break.c pango/fonts.c, pango/modules.c, pango/pango-coverage.c pango/pango-engine.c, pango/pango-engine.h, pango/pango-fontmap.c, pango/pango-fontset.c, pango/pango-impl-utils.h, pango/pango-layout.c, pango/pango-layout.h, pango/pango-renderer.c, pango/pango-script.c, pango/pango-utils.c, pango/pangocairo-fc.h, pango/pangocairo-font.c, pango/pangocairo-fontmap.c, pango/pangocairo-private.h, pango/pangofc-decoder.c, pango/pangofc-font.c, pango/pangofc-fontmap.c pango/pangoft2.c, pango/pangox-fontcache.c, pango/pangox-fontmap.c pango/pangox.c, pango/pangoxft-font.c, pango/querymodules.c, pango/opentype/ftglue.c, pango/opentype/ftxgpos.c, pango/opentype/ftxopen.c, pango/opentype/pango-ot-buffer.c, pango/opentype/pango-ot-info.c, pango/opentype/pango-ot-ruleset.c, tests/dump-boundaries.c, tests/testboundaries.c, tests/testcolor.c tests/testiter.c, tests/testscript.c: Turn various gcc warnings off. Adding const, adding static, fully initializing structs, match signedness in comparisons. (#317804) * tests/testscript.c, tools/gen-script-for-lang.c: (scripts_for_file): Pass error->message instead of error to fail(), which was wrong. (compare_lang): Fix typo comparing a and a instead of a and b. 2005-11-04 Federico Mena Quintero Fixes #320665: * pango/pangocairo-fcfont.c: Use a simple, fixed-size cache to map gunichars to glyph indices within the font. The cache is described in detail here: http://primates.ximian.com/~federico/news-2005-10.html#gtkfilechooser-profile-5 (GlyphCacheEntry): new structure to hold a gunichar and a PangoGlyph. (struct _PangoCairoFcFont): Add a char_to_glyph_cache field. (pango_cairo_fc_font_get_glyph): Allocate the char_to_glyph_cache if needed. We do it on demand because while many fonts will be alive at any one time (in order to cover the whole Unicode space), only very few of them will be actually accessed for glyph lookups. (pango_cairo_fc_font_get_glyph): Look up the gunichar in the cache, and replace the cache entry if necessary. (pango_cairo_fc_font_finalize): Free the char_to_glyph_cache. 2005-11-04 Behdad Esfahbod * pango/pangocairo-fontmap.c: Use quarks for GObject data to improve performance. (Patch from Federico Mena Quintero) * pango/modules.c (pango_module_load), pango/querymodules.c: Pass G_MODULE_BIND_LAZY to g_module_open. (Pointed by John Rice) 2005-11-04 Behdad Esfahbod * pango/pangofc-font.c: Use macros for locking and unlocking fonts we know are valid to avoid redundant PANGO_IS_FC_FONT checks. (Review by Matthias Clasen) 2005-11-03 Behdad Esfahbod * docs/tmpl/main.sgml, pango/Makefile.am, pango/pango-context.c (itemize_state_init), pango/pango-utils.c, pango/pango-utils.h, pango/pangox.c (itemize_string_foreach), pango/mini-fribidi/*: Updated to FriBidi version 0.10.7 patched to handle UTF-8 directly. Moved pango_log2vis_get_embedding_levels to pango-utils.c instead of mini-fribidi. (#317192, review by Matthias Clasen) 2005-11-03 Behdad Esfahbod * examples/pangoft2pgm.c, renderdemo.c, renderdemo.h: Added a --runs options, useful for profiling. Misc cleanup, freeing memory. (from #170414) 2005-11-03 Behdad Esfahbod Patches from #170414. Reviewed by Matthias Clasen. * pango/opentype/ftxgpos.c, pango/opentype/ftxgsub.c: Use call table to dispatch different lookup types. * pango/opentype/pango-ot-buffer.c, pango/opentype/pango-ot-ruleset.c: Small cleanup. 2005-10-02 Behdad Esfahbod * pango/pango-engine.h: Add const to gchar * members of structs. Shuts up gcc warnings. (#317676) 2005-09-09 Owen Taylor * pango/pangocairo-render.c (pango_cairo_show_glyph_string): unset all part colors, since when drawing just a glyph string, prepare_run() isn't called. (#315599, Choe Hwanjin) * pango/pango-renderer.c (pango_renderer_draw_layout_line): NULL out renderer->priv->line_state. 2005-09-25 Behdad Esfahbod * pango/mini-fribidi/fribidi_get_type.c: Removed. Not needed since 2003 or so! 2005-09-22 Tor Lillqvist * pango/pangocairo-win32font.c (_pango_cairo_win32_font_new): Move the calculation of dpi and size earlier. Use the size variable instad of isize when looking for a matching cached font. Isize was supposed to be the same as size anyway. (Actually it was the same only when LOGPIXELSY equalled 96 (which often is the default value), see below.) * pango/pangocairo-win32fontmap.c (pango_cairo_win32_font_map_init): Set dpi to the LOGPIXELSY value instead of hardcoding 96. * pango/Makefile.am (libpangocairo_1_0_la_LIBADD): Need WIN32_LIBS now. 2005-09-14 Tor Lillqvist * pango/pangocairo-win32font.c: Use identical glyph extents cacheing as in pangocairo-fcfont.c. Huge performance improvement. * README.win32: Update. 2005-09-14 Tor Lillqvist * pango/pangocairo-win32font.c (struct _PangoCairoWin32Font): Have a list of metrics by language instead of just one metrics. (pango_cairo_win32_font_get_scaled_font): Use the name cwfont instead of cffont. (free_metrics_info, pango_cairo_win32_font_finalize): Free the metrics by language list. (create_metrics_for_context): New helper function. Approximate the character and digit widths correctly. (#314114) (pango_cairo_win32_font_get_metrics): Use the list of metrics by language. Call create_metrics_for_context() to measure metrics. (_pango_cairo_win32_font_new): Keep the PangoWin32Font objects in the PangoWin32Face::cached_fonts, like the pangowin32 backend does. PangoWin32Face::cached_fonts isn't really a proper cache. It's a list with unbound length, one PangoWin32Font per size. Once there is cacheing in cairo this can be dropped presumably? What does the pangofc backend do? There are too many levels of cacheing going on: we have the stuff in pangowin32-fontcache.c (unused now with cairo), the PangoWin32FontMap::freed_fonts cache, and the PangoWin32::cached_fonts list. * pango/pangowin32-fontmap.c (pango_win32_fontmap_cache_remove, pango_win32_fontmap_cache_clear): Use GQueue API instead of manipulating pointers manually. * pango/pangowin32-private.h * pango/pangowin32.c: Move PangoWin32MetricsInfo to the private header file, as also pangocairo-win32font.c uses it. 2005-09-13 Tor Lillqvist * modules/basic/basic-win32.c: Drop unused font_cache variable and the call to pango_win32_font_map_for_display() used in its initialization, which caused an extra instance of PangoWin32FontMap to be created, and fonts enumerated an extra time. 2005-09-12 Jean Brefort * pango/pango-attributes.c: (pango_attr_list_splice): Fixed typo (#316054). 2005-09-11 Matthias Clasen * pango/pangocairo-fontmap.c (free_context_info): Use g_free() to free g_new()-allocated data, otherwise the GLib memory profiler becomes very unhappy. 2005-09-05 Behdad Esfahbod * pango/pango-layout.c (pango_layout_set_auto_dir): Fixed typo in docs. 2005-08-29 Behdad Esfahbod * pango/opentype/ottest.c, pango/opentype/disasm.c: Generate valid XML output. Dump LookupFlag too. 2005-08-29 Behdad Esfahbod * examples/cairoview.c: Set cairo font resolution. * tests/testboundaries.c: Remove unused Hangul Jamo macros. 2005-08-29 Behdad Esfahbod * examples/HELLO.utf8: Add a few Arabic non-spacing marks to the example. Put the line with Pango in Greek-Japanese back in. 2005-08-26 Behdad Esfahbod * pango/break.c: Protect against future line-break type additions in glib Unicode module. 2005-08-25 Tor Lillqvist * pango/Makefile.am: Use pangocairo.def when linking libpangocairo on Windows, instead of relying on GNU ld auto-exporting all public symbols. * pango/pangocairo.def: Add missing entries. (#314420, Kazuki Iwamoto) 2005-08-24 Owen Taylor * pango/pangocairo-render.c (draw_error_underline): convert from Pango units to doubles, fix some coordinate space problems that had previously been fixed in GTK+. (#313015, Luis Villa)