�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!AUTHORS000064400000000140152525634440005621 0ustar00Owen Taylor , with help from many others. See file named THANKS for a list. README000064400000005063152525634440005442 0ustar00Pango is a library for layout and rendering of text, with an emphasis on internationalization. Pango can be used anywhere that text layout is needed; however, most of the work on Pango so far has been done using the GTK+ widget toolkit as a test platform. Pango forms the core of text and font handling for GTK+-2.x. Pango is designed to be modular; the core Pango layout can be used with different font backends. There are three basic backends, with multiple options for rendering with each. - Client side fonts using the FreeType and FontConfig libraries. Rendering can be with with Cairo or Xft libraries, or directly to an in-memory buffer with no additional libraries. - Native fonts on Microsoft Windows using Uniscribe for complex script handling. Rendering can be done via Cairo or directly using the native Win32 API. - Native fonts on MacOS X with the CoreText framework, rendering via Cairo. The integration of Pango with Cairo (http://cairographics.org) provides a complete solution with high quality text handling and graphics rendering. As well as the low level layout rendering routines, Pango includes PangoLayout, a high level driver for laying out entire blocks of text, and routines to assist in editing internationalized text. For more information about Pango, see: http://www.pango.org/ Dependencies ============ Pango depends on the GLib library; more information about GLib can be found at http://www.gtk.org/. To use the Free Software stack backend, Pango depends on the following libraries: * FontConfig for font discovery (http://www.fontconfig.org), * FreeType for font access (http://www.freetype.org), * HarfBuzz for complex text shaping (http://www.harfbuzz.org/) Cairo support depends on the Cairo library (http://cairographics.org). The Cairo backend is the preferred backend to use Pango with and is subject of most of the development in the future. It has the advantage that the same code can be used for display and printing. We suggest using Pango with Cairo as described above, but you can also do X-specific rendering using the Xft library. The Xft backend uses version 2 of the Xft library to manage client side fonts. Version 2 of Xft is available from http://xlibs.freedesktop.org/release/. You'll need the libXft package, and possibly the libXrender and renderext packages as well. You'll also need FontConfig. Installation of Pango on Win32 is possible, see README.win32. License ======= Most of the code of Pango is licensed under the terms of the GNU Lesser Public License (LGPL) - see the file COPYING for details. NEWS000064400000345504152525634440005270 0ustar00Overview of changes in 1.42.4 ============================= - Fix build failures (OS X, C89) - Prevent an assertion with invalid Unicode sequences Overview of changes in 1.42.2 ============================= - Require harfbuzz 1.4.2 - Restore scaling of CoreText fonts - Speed up font face enumeration - Add a pango-list utility Overview of changes in 1.42.1 ============================= - Fix meson build, in particular on Windows (#783274, #795012) - Add an Emoji font family on Windows, using Segoe UI (#794705) Overview of changes in 1.42.0 ============================= - No changes Overview of changes in 1.41.1 ============================= - Build fixes - Avoid UTF-32 conversion for fribidi - Use external fribidi and drop mini-fribidi - Only enable freetype if fontconfig is available (#792363) Overview of changes in 1.41.0 ============================= - Fix up font options from cairo (#790747) - Add support for font variations - Fix compiler warnings (#792231) Overview of changes between 1.40.13 and 1.40.14 =============================================== - Fix char break problem introduced in 1.40.13 (#789625) - Add tests for char breaking Overview of changes between 1.40.12 and 1.40.13 =============================================== - Some performance improvements (#788643) - Update pango_default_break for line breaks (#788115) - Fix an introspection warning (#781857) Overview of changes between 1.40.11 and 1.40.12 =============================================== - Fix pango_default_break for sentence start/end (#785978) - Fix multilib issue in pango-enum-types.h (#786887) Overview of changes between 1.40.10 and 1.40.11 =============================================== - Fix backspacing for more Emoji sequences - Make tests run faster Overview of changes between 1.40.9 and 1.40.10 ============================================== - Update Emoji data to version 5 - Apply gravity across spans in markup (#784243) - Support variation selectors for shaping - CoreText: Rely on CGFont for scaling (#782393) - Fix grapheme breaks and backspacing for Emoji Overview of changes between 1.40.8 and 1.40.9 ============================================= - Build and dist fixes - Fix build on Windows with MSVC (#783274) Overview of changes between 1.40.7 and 1.40.8 ============================================= - Support emoji sequences in boundary determination - Choose emoji font for color emoji Overview of changes between 1.40.6 and 1.40.7 ============================================= - Some fixes for meson build support - Don't change fonts for variation selectors (#781123) - Fix some bugs in the libthai glue layer - Pass text along when calling into cairo (#784394) Overview of changes between 1.40.5 and 1.40.6 ============================================= - Don't use deprecated harfbuzz api - Correctly implement min-required/max-allowed support - Avoid compiler warnings - Drop -uninstalled.pd files - Add support for building with meson Overview of changes between 1.40.4 and 1.40.5 ============================================= - Add missing introspection annotations (#778663) - Fix line-end handling in pango_read_line (#778816) - Make alpha attribute work without color (#773767) - win32: Enable rendering colored texti and underlines (#768779) Overview of changes between 1.40.3 and 1.40.4 ============================================= - Fix some Coverity findings (#778601, #778602, #778654, #778656) - Fix introspection annotation of pango_lkayout_get_size (#779232) Overview of changes between 1.40.2 and 1.40.3 ============================================= - Fix export of pango_cairo_win32_font_map_get_type (#771004) - Fix build on OS X (#770729) Overview of changes between 1.40.1 and 1.40.2 ============================================= - Improve introspection builds in msvc (#764984) - Properly handle UTF32 chars in coretext - Add rebeccapurple to list of colors - Correct font weight mapping in coretext (#766148) - Use version macros for exports (#767587) Overview of changes between 1.40.0 and 1.40.1 ============================================= - Use $PKG_CONFIG consistently (#764191) - Fix a PangoWin32FontMap memory leak (#7640890) Overview of changes between 1.39.1 and 1.40.0 ============================================= - Fix typos - Don't treat OGHAM SPACE MARK as whitespace Overview of changes between 1.38.1 and 1.39.0 ============================================= - Update PangoScript to Unicode 8.0 Overview of changes between 1.38.0 and 1.38.1 ============================================= - Require 0.9.30 - Fix make check with --enable-debug=no - Win32 build fixes Overview of changes between 1.37.5 and 1.38.0 ============================================= - No changes Overview of changes between 1.37.4 and 1.37.5 ============================================= - Small optimizations Overview of changes between 1.37.3 and 1.37.4 ============================================= - Use grapheme boundaries in justification - Support coloring marks and bases independently (#541608) - Fix a crash (#753167) - Make Thai and Arabic support thread-safe - Fix justification (#753772) Overview of changes between 1.37.2 and 1.37.3 ============================================= - Fix pango_glyph_item_iter_prev - Add alpha attributes - Add support for alpha in markup Overview of changes between 1.37.1 and 1.37.2 ============================================= - Don't use hb_glib_get_unicode_funcs - Warning fixes Overview of changes between 1.37.0 and 1.37.1 ============================================= - Add attributes for OpenType font features (#738505) - CoreText: locale handling improvements (#750017) - Fix ellipsization with line space (#750383) - Fix issues with hex boxes (#750463) Overview of changes between 1.36.8 and 1.37.0 ============================================= - Pango modules, engines, and config have been removed (#733882) - Added pango_fc_font_map_config_changed() (#748767) - Added pango_fc_font_map_[sg]et_config() (#547671) - Added pango_matrix_get_font_scale_factors - Lot of API has been deprecated - Fix CoreText font fallback - General build fixes - Win32 build fixes Overview of changes between 1.36.7 and 1.36.8 ============================================= - Make tests not fail on build.gnome.org Overview of changes between 1.36.6 and 1.36.7 ============================================= - Add tests for pango markup - Add tests for PangoLayout - Add an analysis flag for ellipsis (#735719) - Treat attributes in ellipsis better (#735732) Overview of changes between 1.36.5 and 1.36.6 ============================================= - Cope with lack of LC_CTYPE (#732276) - Prevent harfbuzz from using replacement char - Don't force static builds on win32 (#733137) - Allow backend selection via PANGOCAIRO_BACKEND - Support more font weights (#733764) - Fix vertical positioning on win32 - Don't break in the middle of jamo (#705727) Overview of changes between 1.36.4 and 1.36.5 ============================================= - Lower the harfbuzz requirement Overview of changes between 1.36.3 and 1.36.4 ============================================= - Improve thread-safety on Windows (#695913) - Add missing annotations (#729840) - Update PangoWeight documentation - Require harfbuzz 0.9.29 Overview of changes between 1.36.2 and 1.36.3 ============================================= - Fix builddir != srdir builds - Avoid a crash when FT_Face is NULL (#724006) - Win32 build fixes - Update pango_color_parse docs (#711061) Overview of changes between 1.36.1 and 1.36.2 ============================================= - Win32 build fixes - Fix a possible strtol(NULL) (#719549) - Fix --with-included-modules - Fix a FPE in pango_layout_iter_get_char_extents (#720379) - Use 96 dpi for CoreText by default Overview of changes between 1.36.0 and 1.36.1 ============================================= - Handle scaling absolute font sizes (#708778) - Small documentation fixes Overview of changes between 1.35.3 and 1.36.0 ============================================= - Remove a useless test (#707131) - Never return NULL from pango_layout_get_test (#707659) - Correct an annotation (#707874) - Fix gravity map (#708432) Overview of changes between 1.35.2 and 1.35.3 ============================================ - Compiler warnings about strict aliasing (#703995) - Getting rid of the arbitrary MAX_SIZE for font (707131) Overview of changes between 1.35.0 and 1.35.2 ============================================ - Bypass line reordering in some cases (#705007) Overview of changes between 1.34 and 1.35.0 =========================================== - Requires cairo 1.12.10 - Add a --with-cairo option - Handle invalid utf8 better (#700577) - Install some tests - Don't change fonts for space (#701652) Overview of changes between 1.34.0 and 1.34.1 ============================================= - 96238 - PangoAttrFilterFunc vs pango_attr_list_filter docs - Update win32/CoreText shaper signature - Fix CoreText scaling (again) - Align word breaking with newer Unicode specs Overview of changes between 1.33.9 and 1.34.0 ============================================= No changes Overview of changes between 1.33.8 and 1.33.9 ============================================= - Port PangoWin32 to use GWeakRef - 682846 - Use G_DEFINE_TYPE in pangowin32-fontmap - Fix scale in pangocairo-threads test - Misc Win32 build fixes Overview of changes between 1.33.7 and 1.33.8 ============================================= - 694095 - Fails make check: -pango_cairo_win32_font_map_get_type - 668154 - GTK+ Crashes on Non BMP utf-8 charpoints - 694626 - Add pango_font_map_changed - 694626 - PangoFc: change FontMap in pango_fc_font_map_clear_cache - 694830 - Fails make check: +pango_font_map_change - 694918 - Pango layout is misrendered with non-identity transformation - 694882 - build broken - introspection of pangoxft2 and pangoxft Overview of changes between 1.32.6 and 1.33.7 ============================================= - Allow enabling font features through fontconfig snipplets - Fix an infinite loop when starting Inkscape Overview of changes between 1.32.5 and 1.32.6 ============================================= - Make pango threadsafe - Pass down BOT/EOT flags to HarfBuzz - 690279 - broken relocation of modules - 691263 - Build with automake-1.13 broken Overview of changes between 1.32.4 and 1.32.5 ============================================= - 689843 - Drop last ues of G_CONST_RETURN - 689864 - build failure - 689882 - pango-font.h:381: error: comma at end of enumerator list - 686512 - pango_cairo_font_get_scaled_font failed under wine - 690081 - pangofc-fontmap: Remove bad use of the comma operator - 679299 - Allow incrementally parsing pango markup Overview of changes between 1.32.3 and 1.32.4 ============================================= - Require harfbuzz 0.9.9 - 340066 - Add serials tracking changes in PangoFontMap/PangoContext/PangoLayout - Automatically relayout PangoLayout if PangoContext has changed - Fix rendering of rotated frames - 576156 - Remove Thai/Lao Prepend/Extend properties - Fix grapheme properties of joiner / nonjoiner - Fix grapheme properties of U+FFxx range - Fix line break of surrogate characters - Fix grapheme boundaries of surrogates and unassigned default ignorables - Update bidi tables to Unicode 6.2.0 - 689648 - Use -Bsymbolic-functions by default if available - Fix Win32 and CoreText cairo backends to take cairo CTM into account Overview of changes between 1.32.2 and 1.32.3 ============================================= - make gobject-introspection PANGO_GLYPH happy - provide a phony define for LANGUAGE - adjust to harfbuzz 0.97 api Overview of changes between 1.32.1 and 1.32.2 ============================================= - 685021 - Fix load_fontset() for Win32 backend - pango-viewer: Flush cairo surface when done - 687470 - Xft: Fix a deadlock on display close - Add missing colors from the web palette - Rename configure.in to configure.ac Overview of changes between 1.32.0 and 1.32.1 ============================================= - Fixup grapheme clusters - 684959 - crash after "Add pango_shape_full()" Overview of changes between 1.31.2 and 1.32.0 ============================================= - Add a --without-xfg configure option - Add pango_shape_full() Overview of changes between 1.31.1 and 1.31.2 ============================================= - More work on towards thread-safety - Build fixes on OS X Overview of changes between 1.31.0 and 1.31.1 ============================================= - The module cache file can now be located in libdir - Initial work towards making pango thread-safe - Update to Unicode 6.1. - 682421 - Fix vertical text, gravity, etc, with HarfBuzz - 678721 - Don't need to get item properties... - 678997 - Colors aqua, silver and indigo missing... - 653347 - rise units documented incorrectly - 682952 - remove old glib check - Deprecate pango-ot.h. - Deprecate pango_fc_font_kern_glyphs - Deprecate pango_lookup_aliases Overview of changes between 1.30.1 and 1.31.0 ============================================= - Port to harfbuzz 0.9.x, use external harfbuzz - Remove Arabic, Syriac, Hangul Hebrew, Khmer, Tibetan and Thai shapers (replaced by harfbuzz) - Remove Indic module (replaced by harfbuzz) - Remove Atsui support (superseded by CoreText) - Remove PangoX - 679654 - Crash for PangoContext.list_families - 680965 - missing language strings for ... - 681423 - introspection: assorted fixes... Overview of changes between 1.30.0 and 1.30.1 ============================================= - Update Arabic joining classes to 6.1.0 - Build fixes - Annotation fixes - 667960 - add --system option to querymodules - 675400 - respect XDG_CONFIG_HOME for rc files - 673497 - Fix corefont fallback Overview of changes between 1.29.5 and 1.30.0 ============================================= - 667799 - Fix cross-compiling bug in configure.in - 664125 - Zero-width spaces cause missing characters - CoreText backend: implement font fallbacks - CoreText backend: make more robust against broken fonts - CoreText backend: make shaping engine more robust - CoreText backend: Guard against glyph count of zero - Win32 build fixes Overview of changes between 1.29.4 and 1.29.5 ============================================= - Documentation fixes - Build fixes for ATSUI backend - Add more Chinese poetry - Fix ChanContext backtrack matching with GPOS - Bug 653985 - Pango 1.29.x make GTK3-demo.exe crashed in Windows - Bug 635399 - Add C include and exported packages information to GIRs - Bug 658561 - Double free after calling Pango.Context.get_font_des... - Bug 656014 - Missing GIR annotation/wrapper for pango_layout_get_... - Bug 654689 - Slightly broken Introspection build - Bug 403499 - Text Attribute Markup page does not describe charact... - Bug 650456 - Visual C++ 2010 Project Files to compile Pango - Bug 653985 - Pango 1.29.x make GTK3-demo.exe crashed in Windows - Bug 661612 - Add deprecation attributes to deprecated functions Overview of changes between 1.29.1 and 1.29.3 ============================================= - Minor fix in 1.29.1 tarball Overview of changes between 1.28.4 and 1.29.1 ============================================= - Lots of introspection markup added - Misc fixes Overview of changes between 1.28.3 and 1.28.4 ============================================= - Various introspection annotation fixes - Build fixes - Require glib >= 2.24.0 - Bugs fixed: Bug 636348 - Hex boxes are incorrectly scaled with non identity cairo scale Bug 639882 - Heap corruption in font parsing with FreeType2 backend Overview of changes between 1.28.2 and 1.28.3 ============================================= - Bugs fixed: Bug 630857 - introspection: Use --include-uninstalled Overview of changes between 1.28.1 and 1.28.2 ============================================= - Reduce DLL hijack risk and simplify code in basic-win32 module - Improve performance on Windows especially for non-Latin scripts - Bugs fixed: Bug 628497 - Crash in pango_layout_line_get_extents at pango-layout.c Bug 626966 - SIGFPE _hb_sanitize_array Bug 629632 - configure bug Bug 625807 - approximate character width is 0 on pangoft2 Overview of changes between 1.28.0 and 1.28.1 ============================================= - pango-view now accepts --margin - Various HarfBuzz bug fixes - Build fixes - Bugs fixed: Bug 582698 - Support CSS-style margin specification Bug 621612 - VPATH build fix Bug 605870 - Incorrect shaping for Syriac Bug 457990 - font metrics are not converted to user space in cairo backend Bug 613015 - [HB] Does not sanitize Device tables referenced from ValueRecords Overview of changes between 1.27.1 and 1.28.0 ============================================= - [HB] Fix leak when duplicating blob - Misc bug fixes - Bugs fixed: Bug 611033 - Layout using ATSUI fontmap treats absolute font sizes a... Bug 605655 - Pango 1.26.2 introduces kerning bug Bug 611229 - Pango reads from uninitialized memory Bug 594101 - [Indic] needed character class data updates to support unicode 5.1 Bug 345066 - backspace changes independent indic characters Bug 609326 - Complex script shaping failed in the FT2 backend on Windows Bug 604128 - Applications crash when displaying Hebrew characters Bug 608923 - Incorrect/broken ligatures on MacOS Bug 610791 - checks fail for unused documented symbols Overview of changes between 1.26.2 and 1.27.1 ============================================= - Enable introspection again - Misc HarfBuzz bug fixes - Improve PangoLayout line breaking - Revert usage of CoreText in ATSUI backend - Fix FT_Face finalizer call - Bugs fixed: Bug 593240 - (pangoosx) Crash / infinite loop with Mac OS X Bug 610183 - Pango doesn't compile with gcc 3.3.3 Bug 582697 - Add pango-view --pixels option Overview of changes between 1.26.1 and 1.26.2 ============================================= - Fix non-standard C++ usage - Fix OpenType mark ligation - Bugs fixed: Bug 602823 - void function cannot return value Bug 602660 - [HB] don't use flexible arrays Bug 602408 - Invalid C++ code breaks compile with Sun C++ Compiler Overview of changes between 1.26.0 and 1.26.1 ============================================= - Finally fix GPOS positioning and kerning with non-identity cairo matrices - [HB] Fix lookup_flag ignoring - Fix leak with non-mmapped fonts - Allow using uninstalled glib - Bugs fixed: Bug 341481 - pangocairo kerning problem with nonidentity scaling Bug 587768 - [patch] Don't build pango-view twice Bug 594101 - [Indic] character class data updates to support unicode 5.1 Bug 596837 - Typo in pango_cairo_show_layout documentation Overview of changes between 1.25.6 and 1.26.0 ============================================= - New stable release series - Bugs fixed: Bug 595539 - Regressions in rendering certain Thai sequences Overview of changes between 1.25.5 and 1.25.6 ============================================= - Fix a couple of array overflow bugs - Bugs fixed: Bug 593240 - updating pango to latest git master makes things crash Bug 593231 - < c99 compiler dislikes ValueRecord Overview of changes between 1.25.4 and 1.25.5 ============================================= - Minor HarfBuzz code shuffling - Bugs fixed: Bug 592484 - invalid write in HB Bug 592194 - Fix missing _SC_PAGE_SIZE macro Overview of changes between 1.25.3 and 1.25.4 ============================================= - Fix various possible overflows in HarfBuzz - Improve HB font sanitizing - Improved win32 performance - Really fix ming32 build issues - Re-enable introspection - Bugs fixed: Bug 592131 - Add AM_SILENT_RULES Bug 592036 - integer overflow bug causes misrendering of Nepali characters Bug 591511 – hh-blob.c does not compile using mingw on windows Overview of changes between 1.25.2 and 1.25.3 ============================================= - Fix couple of crashers - Enforce -fno-exceptions better, should fix build issues for distros on x86-64. - Call mprotect() only when available. - New public API: pango_glyph_item_get_logical_widths() - Remove G_GNUC_PURE attr from pango_glyph_string_get_width() - Fix buffer corruption in HarfBuzz - Bugs fixed: Bug 591413 – needs to link with libstdc++ Bug 591511 – hb-blob.c does not compile using mingw on windows Bug 591557 – [HB] crash scrolling the evolution message list Bug 591576 – crashed with SIGSEGV at pango Bug 591465 – Gimp crashes upon opening the font selection dialog Overview of changes between 1.25.1 and 1.25.2 ============================================= - Tweak C++ compiler options. If you get link errors with gcc on x86-64 about __gxx_personality_v0(), make sure your CXXFLAGS does not have -fexceptions. This will be fixed in Pango itself later. - Fix crasher with gzipped fonts. Bug 591409 – crash in firefox. Handle non-mmapped FT_Face Overview of changes between 1.24.5 and 1.25.1 ============================================= - Merge harfbuzz-ng: brand new OpenType Layout engine Currently is not very portable. Will be fixed as reports come in. - Port to ATSUI backend to use CoreText instead of ATS - New public API: pango_gravity_get_for_script_and_width() - Misc bug fixes Bug 590042 – pango-view.1 manpage should not be gzipped Bug 410169 – gravity problem with Common chars Bug 589113 – Some characters rotated incorrectly in vertical text Bug 582851 -- Little fix for compiling with Cygwin Bug 588060 -- Fonts missing on Cygwin Overview of changes between 1.24.4 and 1.24.5 ============================================= - Build introspection again - Misc bug fixes Bug 589133 – Firefox 3.5 complains about invalid weak references Bug 585806 – crash during pango_fc_font_map_shutdown Bug 588678 – pango crash: install a new theme from Overview of changes between 1.24.3 and 1.24.4 ============================================= - Misc bug fixes Bug 586814 – Crashes related to fontmap destruction after upgrade Overview of changes between 1.24.2 and 1.24.3 ============================================= - Fix build with new automake - Misc bug fixes Bug 585337 – Fails to install: install: will not overwrite just-created Bug 585164 – 'man preload' shows man page for pango-view Bug 584328 – Persian sample text is not good Bug 583250 – pango_font_metrics_get_approximate_char_width is wrong when LANG=fa_IR Overview of changes between 1.24.1 and 1.24.2 ============================================= - Misc bug fixes Bug 580987 – SIGFPE in pango_glyph_string_index_to_x Bug 580273 – Font metrics functions incorrectly listed as reporting point sizes Bug 579694 – Cygwin parallel-build patch Bug 578944 – pango-1.24.1 fails its testsuite Bug 578935 – Syntax error (missing semicolon) in pango/pangowin32-fontmap.c Overview of changes between 1.24.0 and 1.24.1 ============================================= - Fix a couple of crashers - Fix minor pangofc API semantics breakage - Better handle SFNT fonts in dfont containers - Improved docs - Improved Indic shaper for new Unicode 5.1 characters - Misc bug fixes - Bugs fixed in this release: Bug 577952 – Error loading {GDEF,GSUB,GPOS} table 0x6EAD Bug 578336 – ABI breakage from 1.22 to 1.24 in fontmap field of PangoFcFont Bug 556132 – gnome-panel crashed with SIGSEGV in g_cclosure_marshal_VOID__BOXED() Bug 571291 – Unicode 5.1 support in pango - Indic Lanuages Bug 576298 – Fails to link pango-view if --without-x is specified but cairo has X11 support Overview of changes between 1.23.0 and 1.24.0 ============================================= - pango-view improvements: * pango-view -q now works without a X server. * Ability to save to PS, EPS, PDF, and SVG files. Filetype is detected from output file extension. * New options --foreground, --background, and --annotate. * Now installs a manual page, thanks to help2man. - PangoFc API changes: * PangoFcFont now has a "fontmap" property that subclasses can use at construction time to setup the font->fontmap link. * New backend-public API: pango_fc_font_map_find_decoder() - Misc optimizations - Build fixes - Misc bug fixes - Bugs fixed in this release: Bug 547963 – man page for pango-view Bug 502804 – pango-view or pangocairo-view option to annotate Bug 502801 – per-backend pango-view options Bug 502805 – pango-view option for foreground/background color Red Hat Bug 490331 - Crash of galeon in libpango Bug 523166 – pango-view opens display even when invoked with -q Bug 567160 – Share cmap cache between PangoFcFont's of the same face Red Hat Bug 487593 - crash changing language in gdm Bug 572662 – Remove deprecated GTK+ symbols Bug 572529 – Poor -I ordering can break build Overview of changes between 1.22.4 and 1.23.0 ============================================= - Change the PangoFc font loading API to allow for lazy loading of fonts. - Add private PangoFcFontset that loads fallback fonts as needed. - Call FcFontMatch() and only if fallback fonts are needed call FcFontSort(). - Optimize HarfBuzz number of malloc calls - Don't malloc megs of unused memory in HarfBuzz - Print-out, and parse, numeric styles correctly. Things like "DejaVu Sans weight=100" parse as font description now. - New public API: Add two new public macros: PANGO_ATTRIBUTE_INDEX_FROM_TEXT_BEGINNING PANGO_ATTRIBUTE_INDEX_TO_TEXT_END Add new public enum values: PANGO_WEIGHT_BOOK PANGO_WEIGHT_ULTRAHEAVY PANGO_WEIGHT_THIN PANGO_WEIGHT_MEDIUM - Misc bug fixes - Bugs fixed in this release: Bug 569763 – pango doesn't like font descriptions without family! Bug 560792 – Make PangoLayoutLine with line->layout==NULL renderable Bug 567392 – Abiword crashes in pango when opening document with certain locales Bug 566727 – PangoFontsetLazy Bug 567165 – Apply all pattern matrices Bug 567934 – Add introspection support inside pango Bug 549532 – Correction to the sample string for Hindi in pango-language-sample-table.h Bug 566726 – Minor optimization Bug 566941 – Add PANGO_ATTRIBUTE_INDEX_FROM_TEXT_BEGINNING and PANGO_ATTRIBUTE_INDEX_TO_TEXT_END Bug 551469 – Fold '@' to '-' when parsing PangoLanguages Bug 328206 – Update/remove some old files Bug 166709 – Handle font variants more consistently Bug 166676 – pango_fc_font_map_finalize Bug 164001 - pango-querymodules doesn't work uninstalled on win32 Bug 384362 – pango can't select some font styles Bug 168085 – numeric styles in pango_font_description_to_string() Bug 529591 – Code related to malayalam is misplaced. Patch from Rahul Bhalerao Bug 515807 – Don't bind modules lazily Bug 512662 – Update check.docs for pango-undeclared.txt Bug 565644 – Maybe pango_font_descriptions_free is deprecated Bug 469049 – Fix all compiler warnings Bug 565379 – pango_font_description_better_match some style attributes of old_match are not checked Bug 564877 – pango-engine.h: PANGO_MODULE_PREFIX and G_MODULE_EXPORT Overview of changes between 1.22.3 and 1.22.4 ============================================= - Misc bug fixes - Improved docs - Bugs fixed in this release: Bug 564644 – Not complete description of the pango_font_description_better_match function Bug 563898 – Generated output is not deterministic Bug 563803 – pango_renderer_finalize fails to call parent finalize Bug 499626 – Space should be optional after comma in PangoFontDescription input string Bug 499624 – Spaces around commas in PangoFontDescription family name should be trimmed Bug 563557 – set g_get_prgname() in fc pattern Bug 563356 – The input area of firefox and the blank width after text in gnome-menu was stretched too wide, under pango-1.22.3 Bug 562574 – Pangocariowin32 is leaking every cairo font it ever creates Overview of changes between 1.22.2 and 1.22.3 ============================================= - Minor bug fix with matrix operations - Fix build with older compilers - Bugs fixed in this release: Bug 561779 – incorrect calculations in pango_matrix_concat implementation Bug 560730 – pango 1.22.2 build failure on Solaris 10, too many array initializers in pango-language.c Bug 561740 – Use stack allocation for thai_engine_break Overview of changes between 1.22.1 and 1.22.2 ============================================= - Fix crasher when a PangoFcFontMap was freed before its fonts. - Mark monospace fonts as monospace in the pangoatsui backend. - Fix font description parsing to better handle "normal". - Bugs fixed in this release: Bug 558254 – Internal reference handling messed up Bug 558107 – is_monospace always returns FALSE in pangoatsui Bug 557620 – pango_font_description_from_string not correct Overview of changes between 1.22.0 and 1.22.1 ============================================= - Fix crasher when freeing PangoLayoutIter's - Fix loading of bogus OpenType anchor tables - Fix OpenType CursiveChain positioning - Misc bug fixes - Bugs fixed in this release: Bug 528272 – "Error loading GPOS table 5503" when using katakana characters Bug 552107 – Small libtool fixes Patch by Patryk Zawadzki Bug 539623 – document that pango_color_parse accepts NULL Bug 555219 – Memory leak when using pango_layout_iter_copy Patch from Falk Rohsiepe Bug 553345 – Japanese pangram. Patch from Takeshi AIHANA Overview of changes between 1.21.6 and 1.22.0 ============================================= - Require cairo >= 1.7.6. - Improved Romanian sample text - Don't use deprecated glib win32 API - Misc bug fixes - Bugs fixed in this release: Bug 552993 – Romanian pangram Bug 551865 – Can't change justification of a PangoLayout after first draw Bug 551416 - pangowin32-fontcache.c: argument is different type Overview of changes between 1.21.5 and 1.21.6 ============================================= - Win32 cross-compiling build system fix - Improve language sample strings. - Bugs fixed in this release: Bug 550659 – configure.in ignores a win32 backend only scenario Bug 549758 – Swedish font sample text could use punctuation Bug 549522 – New pt_BR pangram for pango Bug 549520 – fr sample string Overview of changes between 1.21.4 and 1.21.5 ============================================= - Make the reference the font->fontmap reference weak. Previously all fontmaps had circular references to their fonts and back, making them leak instead of being freed upon finalization. Now they all clean after themselves. There's a slight semantic change though, that a PangoFont does not keep its fontmap alive anymore, so that's up to the user. But then again, finalizing fontmaps is not a good idea to begin with. - Improve pango_language_get_sample_string() to add language sample texts that are actually usable. Compiled from a variety of sources. See pango-language-sample-table.h. - In pango_language_get_sample_string() use default language if provided language is NULL. - Update OpenType language-system tags to OpenType 1.5 draft intersected with ISO639-3 of 2008/08/04. - New API additions: Add a minor new public API: pango_language_get_scripts() This is what pango_language_includes_script() has been using internally. Previously one had to call that function over all possible script values to determine which scripts a language uses. The new API makes that much easier. - Bugs fixed in this release: Bug 549003 – pango_layout_set_height(): layout should not be cleared unless required Bug 143542 – PangoFT2Fontmap leak Bug 314094 – Get rid of poutpourri default sample string Bug 473806 – Improve pango_language_get_sample_string() Bug 473805 – Add API enumerating scripts for a language Bug 470895 – Improve OpenType language tag list Bug 547432 – Deprecation of pango_(backend)_font_map_create_context() not clean Overview of changes between 1.21.3 and 1.21.4 ============================================= - Use cairo_show_text_glyphs() if target cairo surface supports that. This is done by adding a new PangoRenderer method, draw_glyph_item(). Custom PangoRenderer implementations that delegate to pango_cairo may want to implement this method if they target PDF files. - Requires cairo >= 1.7.4 now - Win32 build improvements - Justify lines broken by U+2028 LINE SEPARATOR - Various small fixes and improvements - New API additions: New public API: PangoRenderer::draw_glyph_item() pango_renderer_draw_glyph_item() Make layout and layout-line default renderers go through draw_glyph_item(), which then by default falls back to draw_glyphs(). The advantage in draw_glyph_item() is that it has access to the text and cluster information. New public API, for iterating a PangoGlyphItem: PangoGlyphItemIter PANGO_TYPE_GLYPH_ITEM_ITER pango_glyph_item_iter_copy() pango_glyph_item_iter_free() pango_glyph_item_iter_init_start() pango_glyph_item_iter_init_end() pango_glyph_item_iter_next_cluster() pango_glyph_item_iter_prev_cluster() Make the following previously backend-only API public: pango_context_new() pango_context_set_font_map() This also means that bindings are recommended to allow instantiation of pango.Context. This was discouraged before. New public API: pango_font_map_create_context() This is equivalent to pango_context_new() followed by an immediate pango_context_set_font_map(). This change also deprecates various per-fontmap-type context constructors: Deprecate pango_cairo_font_map_create_context(). Deprecate pango_fc_font_map_create_context(). Deprecate pango_ft2_font_map_create_context(). Deprecate pango_win32_get_context(). Deprecate pango_xft_get_context(). Deprecate pango_x_get_context(). Language bindings are encouraged to bind pango.Fontmap.create_context() and remove the create_context() method from subclass implementations. - Bugs fixed in this release: Bug 547303 – pango_layout_get_cursor_pos crashes on certain text buffers Fedora Bug 457883 - Sindhi Characters are not supported in pango [U+097B-U+097F] Patch from Pravin Satpute Bug 441654 – prefix fails when more than one base characters (as conjuncts) present after a half form the next prefix renders incorrectly Patch from Rahul Bhalerao Bug 546534 – pango_cairo_font_map_set_default(NULL) errs Bug 431394 – Use pango_glyph_item_iter in more places Bug 377948 – Make pango_glyph_item_iter public Bug 472625 – Add draw_glyph_item() to PangoRenderer Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font Bug 540036 – Doesn't link to fontconfig Bug 380094 – Fix split matra rendering bug for Kannada language Bug 536017 – Remove SF_MPRE_FIXUP from Sinhala script flags Patch by Harshula Overview of changes between 1.21.2 and 1.21.3 ============================================== - Various small fixes and improvements - Bugs fixed in this release: Bug 538661 – Improve pango_cairo_context_update_context() Bug 536190 – Make pango_fc_font_map_clear_cache() public? Bug 537258 – Add a pango_language_to_string() function Bug 537257 – pango_language_from_string(NULL) not happy Bug 537186 – Make PangoFcFont pattern property readable Overview of changes between 1.21.1 and 1.21.2 ============================================== - Various win32 font handling improvements - Bugs fixed in this release: Bug 510299 – OpenType font variants are broken with ATSUI/Cairo Bug 436363 - Bold and Bold Italic style of MS-Mincho font are not listed in GtkFontSelection Bug 523193 – Vista Hebrew, CJK fonts to builtin win32 pango aliases Patch by Daniel Atallah. Overview of changes between 1.21.0 and 1.21.1 ============================================== - Partial work to make pango_break() exactly follow Unicode TR#14 and TR#29. The Grapheme Boundaries and Word Boundaries now work. For word boundaries, a new member was added to PangoLogAttr. Sentence Boundaries and Line Breaks to follow in the next release. - Err if no cairo font backends found - Misc bug fixes - New public API: Add new PangoLogAttr member is_word_boundary, that implements UAX#29's Word Boundaries semantics. The is_word_start and is_word_end members will change implementation later on to be consitent with the word boundaries. - Bugs fixed in this release: Bug 531242 – Leak when calculating win32 font coverage Patch from Daniel Atallah Bug 530757 – Docs build breaks because of hash sign in URL in Bug 530685 – Pango no longer using cairo as a backend as of pango 1.19.4 Part of Bug 97545 – Make pango_default_break follow Unicode TR #29 Overview of changes between 1.20.2 and 1.21.0 ============================================== - Require cairo >= 1.6.4. - Write out HarfBuzz errors as hex. - Add a section in the docs for bidirectional text. - Improved hex-box rendering in the cairo backend. - Add some aliases for tag attributes. - Preserve current-point around pango_cairo_* functions. - New public API: pango_attr_type_get_name() enum PangoBidiType; pango_bidi_type_get_type() pango_bidi_type_for_unichar() pango_layout_get_baseline() pango_cairo_create_context() pango_cairo_font_map_set_default() - Bugs fixed in this release: Bug 515432 – Add function to get bidirectional character type of a unicode character Patch from Jürg Billeter Bug 517119 – Add pango_cairo_create_context() Bug 404416 – pango_layout_get_baseline or something Bug 474706 – cairo hexbox looks ugly Bug 490669 – add some attribute aliases Bug 501334 – Make pango_cairo_[show_]*[_path]() functions preserve current point Bug 514617 – Add pango_cairo_font_map_set_default() Bug 511183 – Add pango_attr_type_get_name() Overview of changes between 1.20.1 and 1.20.2 ============================================== - Really fix build on OS X. Overview of changes between 1.20.0 and 1.20.1 ============================================== - Update to Unicode Character Databse 5.1.0. This adds new entries to the PangoScript enum. Requires glib >= 2.16.3 for the update Unicode data there, but not bumping the requirement in a stable point release. - Try making our OS X stuff compile with latest cairo 1.5.x snapshots that renamed cairo-atsui to cairo-quartz-font, as well as older versions. - Minor bug fixes. Overview of changes between 1.19.4 and 1.20.0 ============================================== - New stable release! - Bugs fixed in this release: Bug 518084 – Thai is not Virama language Patch from Theppitak Karoonboonyanan Overview of changes between 1.19.3 and 1.19.4 ============================================== - Make Win32 backend be able to use Type1 fonts - Fixed blocker bug with pango_layout_set_height() and positive height. - Fixed small leak in ATSUI backend. - Improved docs. - Bugs fixed in this release: Bug 511172 – pango_layout_set_height() with positive height always shows at least two lines Bug 515484 – Uniscribe interface handles surrogate pairs incorrectly Bug 515484 – Pango on Windows is missing Type 1 font support Patch from Adrian Johnson. Bug 517083 – pango modules: wrong fallback adding code? Bug 515484 – Variable is initialized twice Bug 504810 – Samvruthokaram (combination of U+0D41 and U+0D4D) is not rendered correctly Patch from Praveen A Bug 496244 – Don't use freetype-config, use pkg-config Bug 512566 – dont' use deprecated macro Patch from Christian Persch Bug 512473 – [patch] gtk-doc warnings Overview of changes between 1.19.2 and 1.19.3 ============================================== - pango_layout_get_pixel_extents() and pango_layout_line_get_pixel_extents() now round extents to pixels inclusively. That is, pass both ink_rect and logical_rect as first argument to pango_extents_to_pixels(). - Rename pango_extents_to_pixels() function arguments from @ink_rect and @logical_rect to @inclusive and @nearest. Given that this API is a fairly new addition and not commonly used, language bindings are encouraged to update their argument names accordingly. Moreover, they are encouraged to wrap this function as two different calls: extents_to_pixels_inclusive() and extents_to_pixels_nearest(), or similar conventions that best reflect their native language. - HarfBuzz was relicensed to a more generous and simpler license. Adapt. See pango/opentype/COPYING for the new license which is LGPL-compatible. - New public API: pango_layout_set_height() This sets the height to which the #PangoLayout should be ellipsized at. There are two different behaviors, based on whether @height is positive or negative. If @height is positive, it will be the maximum height of the layout. Only lines would be shown that would fit, and if there is any text ommitted, an ellipsis added. At least one line is included in each paragraph regardless of how small the height value is. A value of zero will render exactly one line for the entire layout. If @height is negative, it will be the (negative of) maximum number of lines per paragraph. That is, the total number of lines shown may well be more than this value if the layout contains multiple paragraphs of text. The default value of -1 means that first line of each paragraph is ellipsized. Height setting only has effect if a positive width is set on @layout and ellipsization mode of @layout is not %PANGO_ELLIPSIZE_NONE. The behavior is undefined if a height other than -1 is set and ellipsization mode is set to %PANGO_ELLIPSIZE_NONE, and may change in the future. There are still bugs remaining to be fixed, notably bug 511172 (which will be fixed before 1.20), and bug 511171 (which will be fixed in a future version). - New command-line arguments to pango-view: --height and --single-par. - Make the following symbols available to engines: PANGO_IS_OT_INFO PANGO_IS_OT_RULESET PANGO_OT_INFO PANGO_OT_RULESET PANGO_TYPE_OT_INFO PANGO_TYPE_OT_RULESET pango_ot_info_get_type pango_ot_ruleset_get_type - Bugs fixed in this release: Bug 508002 – change pango_layout_pixel_extents() to round logical rect to be inclusive Bug 469313 – Add pango_layout_set_height() Bug 508179 – PangoGlyphUnit confusion Bug 508381 – indent and center alignment don't mix Bug 508007 – Add option for single-paragraph mode to pango-view Bug 506284 – docs typo for pango_coverage_unref Patch from Christian Persch Bug 504802 – build failure: No rule to make target `pango-querymodules.1', needed by `all-am'. Stop. Bug 504585 – pango-querymodules.1 syntax error Red Hat Bug 426178: gtkdoc-scan fails on pango Overview of changes between 1.19.1 and 1.19.2 ============================================== - Render a crossed box for each invalid input byte to pango_layout_set_text(). Previously we rendered an ASCII question mark instead. The crossed box has a glyph of value of PANGO_GLYPH_INVALID_INPUT. - Use pkg-config to detect cairo features [Benjamin Otte] - Improved docs. Particularly, examples/cairo*.c have inline docs now. - New public macro: PANGO_GLYPH_INVALID_INPUT - Bugs fixed in this release: Bug 502926 – pango-1.16.4 configure bug: can fail to accept cairo Bug 399573 – replace strtoul in pango-markup.c with pango_scan_int() Bug 478914 – Use something invalid instead of '?' when validating input text Bug 501938 – Arabic shaping broken with vertical layout with vertical-hint=line Bug 501575 – Compile errors Patch from Jens Granseuer Overview of changes between 1.19.0 and 1.19.1 ============================================== - Various cleanup in the HarfBuzz code and merging with upstream/Qt changes. - Built-in pango.aliases file for Win32 default aliases. - Document cairo examples and misc documentation improvements. - Bugs fixed in this release: Bug 485536 – underline_position can be zero Bug 500549 – pangocairo.h should include pango.h and cairo.h Bug 492517 – Built-in default aliases file Bug 495091 – pango-utils.c:variable is declared at middle of block Overview of changes between 1.18.3 and 1.19.0 ============================================== - Update list of languages to that of fontconfig-2.4.91. - Various optimizations, making rendering the same Pango layout using changing cairo matrices much faster. - Make sure all boxed type copy/free functions accept NULL as legitimate input. Previously most were g_return_[val_]if_fail()ing it. This is mostly for convenience when writing code in C. - Apply 'vkrn' GPOS feature in vertical writing. - In pangofc, set "pangoversion" in pattern passed to fontconfig, such that font configuration can condition on being driven by Pango or not. - Various optimizations and cleanups in the OpenType Layout engine, aka HarfBuzz. - Changed APIs: * All PangoAttribute constructors are changed to initialize the attribute to the range [0..MAXUINT]. The range was undefined previously. All custom attribute constructors are recommended to call the new pango_attribute_init() to do the same. * Public API chance: Mark the following types as abstract: PangoFont PangoFontFace PangoFontFamily PangoFontMap PangoFcFont PangoFcFontMap PangoContext may be marked so in the future too. * Make following macros public. Previously they were only defined for backend/engine implementations. PANGO_GLYPH_EMPTY PANGO_GLYPH_UNKNOWN_FLAG PANGO_GET_UNKNOWN_GLYPH() - New public API: * Convenience for initializing custom attributes: pango_attribute_init() * Adding boxed type for PangoGlyphItem: PANGO_TYPE_GLYPH_ITEM pango_glyph_item_copy() pango_glyph_item_get_type() * Add missing copy function for a boxed type in C: pango_layout_iter_copy() * Add missing getter: pango_layout_iter_get_layout() * Convenience for writing custom PangoRenderer's: pango_renderer_get_layout() pango_renderer_get_layout_line() * PangoFc extensions to fontconfig's pattern syntax: PANGO_FC_GRAVITY PANGO_FC_VERSION - Bugs fixed in this release: Bug 490661 – Pango Markup: Link to font_desc syntax explanation Based on patch from Chris Toshok Bug 489909 – pango_cairo_update_context() should ignore matrix translation Bug 488840 – harfbuzz: protect against ligid overflow Bug 486932 – Apply vkrn GPOS feature in vertical writing Bug 486951 – ChangeLog.pre-1-18 Bug 485621 – Get rid of freetype memory allocator in harfbuzz Bug 485566 – Cache one OpenType Buffer Bug 485559 – Boston Summit HarfBuzz optimizations Bug 481537 – compiler warning fixes Patch from Kjartan Maraas Bug 478865 – Drastically reduce number of PangoFont objects created for rotating text Bug 472924 – Mark some classes abstract Bug 472629 – Add pango_renderer_get_layout(_line) Bug 472303 – Make PANGO_GLYPH_EMPTY and PANGO_GLYPH_UNKNOWN_FLAG public Bug 471601 – Pass pango version information to fontconfig Bug 471577 – GBoxed GType for PangoGlyphItem Bug 471571 – Add pango_layout_iter_get_layout() Bug 471568 – Optimizations in _pango_cairo_update_context() Bug 469641 – Initialize attribute start/end to [0..MAXUINT] Overview of changes between 1.18.2 and 1.18.3 ============================================== - Two OpenType engine fixes. Makes Nafees Nastaliq font work great, and avoids warnings with some other fonts. - Fix minor leak in win32 backend. - Bugs fixed in this release: Bug 483600 – Leak of font family name in pango_win32_font_description_from_logfont(w) Patch from Daniel Atallah Overview of changes between 1.18.1 and 1.18.2 ============================================== - Require libthai >= 0.1.9 for enabling thai-lang module - Misc bug fixes - Bugs fixed in this release: Bug 474708 – pangocairo leaks memory Bug 472891 – Bad consistency check in pango_get_log_attrs Patch from Mathias Hasselmann Bug 302952 – The placement of a diacritic marks for an arabic ligature is not correct Bug 410152 – testboundaries test fails Overview of changes between 1.18.0 and 1.18.1 ============================================== - Misc bug fixes, including fix for an infinite-loop bug. - Bugs fixed in this release: Bug 470042 – missing Macedonian OT tag Patch from Denis Jacquerye Bug 468953 – pango-renderer.c: using function without prototype Bug 463430 – Gets stuck while "formatting message" Overview of changes between 1.17.5 and 1.18.0 ============================================== - Make pango_script_for_unichar() just call g_unichar_get_script(), and document that PangoScript and GUnicodeScript are interchangeable enumerations. - Misc bug fixes - Bugs fixed in this release: Bug 348348 – Add a way to get the script name of a gunichar Bug 451682 – Cursor positioning for Sinhala is broken Based on patch from Harshula Bug 462137 – memory corruption in pango_default_break Bug 462420 – Clicking on pixbuf should move the cursor to the position nearest to the click point Bug 462630 – pango_cairo_context_set_font_options() and some others don't have a Since: tag Bug 464183 – Minimum tab width enforcement in pango-layout breaks TabArray positions Patch by David Trowbridge Bug 464270 – ellipsize doesn't work consistent Bug 465174 – TextView is ignoring multiple consecutive \t's Bug 466755 – pango hangul is crashing in gnome-about because it is failing to retrieve a font. Bug 467056 – Shape attribute handling is not consistent Bug 467077 – Remove special-case for shape attribute in pango_layout_line_index_to_x() Overview of changes between 1.17.4 and 1.17.5 ============================================== - Export PangoCairoFont and cleanup various standard macros. - Bugs fixed in this release: Bug 150883 – Unicode LRO defect Bug 449482 – Build error when xft not present Part of Bug 347236 – provide pango_cairo_font_get_scaled_font Overview of changes between 1.17.3 and 1.17.4 ============================================== - Refactored the ATSUI font backend and install pangoatsui.h that has a single function pango_atsui_font_get_atsu_font_id() and a couple of types. - Bugs fixed in this release: Bug 451547 – FAIL: runtests.sh Bug 449543 - Ship pangoatsui.h Overview of changes between 1.17.2 and 1.17.3 ============================================== - Extensive pangocairo internal code refactoring and cleanup - New public API: pango_font_face_is_synthesized() pango_cairo_font_get_scaled_font() pango_cairo_font_map_new_for_font_type() pango_cairo_font_map_get_font_type() - New engine macros: PANGO_OT_TAG_MAKE() PANGO_OT_TAG_MAKE_FROM_STRING() - New PangoFontFace method is_synthesized. - Misc bug fixes - Bugs fixed in this release: Bug 337593 – move glyph extents code (and cache) from pangocairo-*font.c into pangocairo-font.c Bug 347235 – Add pango_cairo_font_map_get_font_type Bug 347236 – provide pango_cairo_font_get_scaled_font Bug 353291 – Provide pango_cairo_font_map_new_for_font_type Bug 438801 – underline should add "error" type. Bug 440588 – Add pango_font_face_is_synthesized() Bug 445832 – pango_cairo_update_layout() always invalidates layout Bug 446018 – Bus error in the pango_ot_tag_from_language() Bug 446355 – the parsing with pango_parse_markup is not coherent Bug 447189 – fonts.c: pango_font_face_is_synthesized returns NULL Bug 447568 – improve docs on what absolute size means Bug 448342 – pango_layout_index_to_line_x() counts lines from 1 Overview of changes between 1.17.1 and 1.17.2 ============================================== - Rename recently added pango_ot_ruleset_get_for() to pango_ot_ruleset_get_for_description(). - New engine API: pango_ot_ruleset_new_from_description(). - Treat Unknown script like Common and other non-"real" scripts. [Martin Hosken] - Misc typo fixes [Peter Moulder] - Bugs fixed in this release: Bug 443206 – PANGO_SCRIPT_UNKNOWN should not cause a run break Patch from Martin Hosken Overview of changes between 1.17.0 and 1.17.1 ============================================== - Ported the rest of OpenType shapers to the new OpenType APIs and added standard features to them: Hebrew, Indic, Khmer, Thai, and Tibetan. - Added N'Ko support to the Arabic module. [Eugeniy Meshcheryakov] - Small Indic module fix for Malayalam. - Fixed font metrics returned by the ATSUI backend. [Richard Hult] - Make itemization use pango_language_get_default() if context has no language set on it. Ditto for pango_context_get_metrics() if both input language and context language are NULL. - Improved documentation on vertical text, also added stability note to those parts of Pango API that are not indefinitely stable (shaper and language engine APIs). - Misc bug fixes. - New OpenType engine API: pango_ot_ruleset_get_feature_count() - Bugs fixed in this release: Bug 357790 – Rendering problem for malayalam consonant RA (U+0D30) Bug 385168 – indic, khmer, and tibetan modules don't apply ccmp Bug 385477 – kern feature is not supported in OpenType layout for Tibetan. Bug 433805 - [Atsui] Approximate char/digit width width often 0 Bug 436699 – N'Ko support Bug 438705 – Test runs non-existent "/bin/bash" on HP-UX 11.11 Bug 438814 – synaptic crash with pango 1.17.0 Bug 440603 – Minor ABI change Overview of changes between 1.16.4 and 1.17.0 ============================================== General: - Text justification. A simple justification algorithm is implemented that tries to justify by expanding spaces in the line, and if none found, by adjust letter spacing. [Based on patch by Mathias Hasselmann] - The pango_script_get_sample_language() function is modified to use the value of environment variables PANGO_LANGUAGE or LANGUAGE (checked in that order) to make guess better languages for scripts. The env var should be a list of language tags, like "en:fa" for example where in effect makes Pango choose Persian (fa) fonts instead of Arabic (ar) fonts when a run of text in the Arabic script is found in an otherwise non-Arabic layout. This trick is also useful for East Asian languages. For example a Japanese user that cannot set her primary language to Japanese can still set PANGO_LANGUAGE="ja" and Pango will map CJK characters to Japanese. The LANGUAGE env var is a standard gettext variable listing languages the user wants to receive UI translated messages in. However, since most packages don't provide separate English translations, setting LANGUAGE="en:ja" doesn't have the intended effect and UI messages will be shown in Japanese. For these situations one can use LANGUAGE="en:C:ja". Pango skips the special language tag 'C'. - Simplified embedded-shape rendering with pangocairo backends do. [Richard Hult] - New header file: Moved PangoLanguage APIs into its own header pango-language.h, which is included from pango-types.h. - ATSUI backend now lists synthesized italic faces like other - Misc optimizations and fixes. OpenType Layout Engine Improvements: - Vertical glyph variants are not selected in vertical text if the font supports them. - Instead of hardcoded OpenType script tag in each module, and using Default Language System unconditionally, Pango will now find and use the script/lang-sys pair that best matches the detected script and language of a run of text. Moreover, it also applies the OpenType 'locl' feature. These, plus the PANGO_LANGUAGE env var, give font designers and users lots of options to provide/choose language-specific glyph variants. Only basic, arabic, and syriac modules updated to take advantage of the new support so far. New pango-view command line options: --align --justify --language Public API Changes: - New public pangocairo API: PangoCairoShapeRendererFunc pango_cairo_context_set_shape_renderer() pango_cairo_context_get_shape_renderer() These are used by the default pangocairo renderer to render shape attributes (see examples/cairoshape.c). Cairo-based PangoRenderer implementations outside Pango may want to implement the draw_shape() method similarly to provide compatibility with these new APIs. (See bug #437533 for GdkPangoRenderer for example.) - Other public API changes: New is_expandable_space member in PangoLogAttr New macro PANGO_UNITS_ROUND() - New OpenType engine API. These are engine API, for use by Pango modules, and typically need not to be bound by language bindings: PANGO_OT_NO_FEATURE PANGO_OT_NO_SCRIPT PANGO_OT_TAG_DEFAULT_SCRIPT PANGO_OT_TAG_DEFAULT_LANGUAGE PangoOTFeatureMap PangoOTRulesetDescription pango_ot_ruleset_get_for() pango_ot_ruleset_new_for() pango_ot_ruleset_maybe_add_feature() pango_ot_ruleset_maybe_add_features() pango_ot_ruleset_description_hash() pango_ot_ruleset_description_equal() pango_ot_ruleset_description_copy() pango_ot_ruleset_description_free() pango_ot_tag_from_script() pango_ot_tag_to_script() pango_ot_tag_from_language() pango_ot_tag_to_language() - Bugs fixed in this release: Bug 64538 – pango_layout_set_justify() doesn't work Bug 325714 – Pango should respect $LANGUAGE Bug 414264 – Pango vertical writing support is different with real CJK usage. Bug 416515 – Time is not aligned with date on vertical panel Bug 429397 – Updated MS Mincho/Gothic are not listed in font dialog properly on Vista/ Bug 433805 – [Atsui] Approximate char/digit width width often 0 (worked around) Bug 434160 - [atsui] Italic versions of some faces can't be created Bug 435709 – pango_cairo_context_[sg]et_shape_renderer() Bug 355789 – Pango misaligns word-wrapped text due to trailing whitespace Bug 436154 – Error building the pango.modules file while cross compiling Bug 436988 – Adding PangoScript to PangoAnalysis Bug 437534 – pango_language_includes_script is buggy Overview of changes between 1.16.3 and 1.16.4 ============================================== - Add new configure option --disable-doc-cross-references and make sure releases are made using it. Distributions are encouraged to build with --enable-gtk-doc such that their Pango docs correctly cross reference glib and cairo docs. - Bugs fixed in this release: Bug 432991 – developer docs for libpango are broken Overview of changes between 1.16.2 and 1.16.3 ============================================== - Quantize kerning value if metrics hinting is on. This greatly improves screen text rendering with certain fonts like DejaVu Sans. See: http://behdad.org/blog/mces/image/metricshinting-kerning.png - Improved hex-box positioning in the cairo backend Overview of changes between 1.16.1 and 1.16.2 ============================================== - Fixed various bug in the OpenType Layout code (HarfBuzz) - Improved documentation - Improved ATSUI backend - Misc build system fixes - Bugs fixed in this release: Bug 417946 – pangowin32-fontmap.c:using function without prototype Bug 419262 - Don't create coverage every time it's asked for Overview of changes between 1.16.0 and 1.16.1 ============================================== - Improved Win32 backend: The Win32 backend has been updated to always require Uniscribe at compile-time (it still is optional at run-time), and to use the wide-character variants of Windows APIs which improves the backend in many ways. The 1.16.0 release is obsolete as far as the Win32 backend is concerned, and official DLLs were not built for it. - Misc build system fixes - Bugs fixed in this release: Bug 110521 – can't find bold and/or italic fonts on win32 Bug 120195 – there are some functions in pangowin32-fontmap.c that might maybe should be static Bug 407315 – Use wide character Win32 API in the pangowin32 code Bug 412654 – SED variable undefined in the `libtool --config' output used by configure Bug 414297 – Fails to build with --enable-static --with-included-modules in thai lang module Patch from Loïc Minier Overview of changes between 1.15.6 and 1.16.0 ============================================== - Improved docs, with an object hierarchy and cross references to glib and cairo docs now (may require rebuilding the docs to correctly detect glib and cairo prefixes). - Improved font selection for space characters - Misc build system fixes - Bugs fixed in this release: Bug 407087 – autogen.sh wants automake-1.7 Bug 409212 – Missing link flag prevents build with "-z defs" ld flags Patch from Loïc Minier Bug 355987 – choosing font/shaper for spaces breaks Arabic runs on spaces Overview of changes between 1.15.5 and 1.15.6 ============================================== - Fix possible crasher in win32 font selection [Owen Taylor] - Misc build fixes. - Bugs fixed in this release: Bug 399738 – pango 1.15.5 won't compile on Mac OS X: 'FC_HINT_STYLE' undeclared (first use in this function) Bug 404295 – Crash initializing pango-win32 fontmap Overview of changes between 1.15.4 and 1.15.5 ============================================== - Fix the "menu accels are two chars wide" bug that was introduced in 1.15.4 - Respect FC_HINT_STYLE in the ft2 backend. Patch has been in Fedora for ages. - Require automake 1.9 Bugs fixed in this release: Bug 398238 – pangorc file missing from tests directory Overview of changes between 1.15.3 and 1.15.4 ============================================== General: - Finish vertical text support. - Fix various bugs that could cause ellipsization to stop prematurely. - Fix rendering of background color being off in presence of rise attribute. - Improved text-on-path example (examples/cairotwisted.c) Win32 Improvements: - Don't check for X and don't warn about missing fontconfig. [Tor Lillqvist] - Automatically use -mms-bitfields on Windows when building with gcc. [Tor] - Update makefile.msv. [Hans Breuer] Code base cleanups: - Whitespace cleanups. Hopefully patches still apply using patch -l - Replace C++-style // comments with C-style /* */ ones. - Move the pango-view tool from examples/ into pango-view/. The examples/ dir is still available and for simple examples only. Public API changes: - New PangoLayout query functions: pango_layout_is_wrapped() pango_layout_is_ellipsized() pango_layout_get_unknown_glyphs_count() The is_wrapped and is_ellipsized functions return whether the layout had to wrap/ellipsize any paragraphs, as opposed to the get_wrap and get_ellipsize that return the wrap/ellipsize mode set. - Misc new function: pango_parse_enum() This is more a convenience function for internal use, but set public to go with other pango_parse_* functions. Bindings should feel free to ignore this. - New header files: Moved gravity and matrix stuff into their own header files pango-gravity.h and pango-matrix.h. Both are included from pango-types.h. - Vertical text: New attribute types: PANGO_ATTR_GRAVITY PANGO_ATTR_GRAVITY_HINT. New enum type: PangoGravityHint New macro: PANGO_GRAVITY_IS_VERTICAL() New public functions: pango_attr_gravity_new() pango_attr_gravity_hint_new() pango_gravity_hint_get_type pango_context_set_gravity_hint() pango_context_get_gravity_hint() pango_gravity_get_for_matrix() pango_gravity_get_for_script() Removed: pango_matrix_to_gravity() replaced by pango_gravity_get_for_matrix() Gravity API added in previous releases: PangoGravity pango_gravity_get_type pango_context_get_base_gravity pango_context_get_gravity pango_context_set_base_gravity pango_font_description_get_gravity pango_font_description_set_gravity pango_gravity_to_rotation A tip on using the vertical text support: If you just want to get correct behavior in rotated labels (say, vertical Chinese/Japanese, but rotated Latin, etc), all you need to do is to set the context gravity to PANGO_GRAVITY_AUTO. You can do this for example #if defined(PANGO_VERSION_CHECK) && PANGO_VERSION_CHECK(1,15,4) pango_context_set_gravity (context, PANGO_GRAVITY_AUTO); #endif Bugs fixed in this release: Bug 395328 – Map kATSDeletedGlyphcode to PANGO_GLYPH_EMPTY Bug 397337 – Use is_ellipsized and is_wrapped to optimize property changes Bug 328585 – Need to know if a layout has unknown glyphs Patch from LingNing Zhang Bug 326693 – PangoLayouts should be query-able about their effective properties (width / wrapped / ellipsized / etc) Bug 397327 – pango-layout.c: 'pango_layout_is_ellipsized' must return a value Bug 323173 – Add layout of mixed direction text for vertical layout Bug 394453 – Use -mms-bitfields Bug 392628 – Don't check for X on win32 Overview of changes between 1.15.2 and 1.15.3 ============================================== - Fix Hangul crasher and other Hangul bugs introduced in 1.15.2 - Spell-checked docs - Build fixes - Don't introduce bitfields in public structs. This changes some public API that was broken in the 1.15 series. The new struct is backward compatible with the older Pango series, but not with earlier 1.15.x devel releases. - New Public API: * PangoAnalysis.flags and PANGO_ANALYSIS_FLAGS_CENTERED_BASELINE. These are mostly only useful for the vertical text support in Pango, but language bindings probably want to update their bindings for PangoAnalysis to include these. * New PangoMatrix methods: pango_matrix_transform_distance() pango_matrix_transform_point() pango_matrix_transform_rectangle() pango_matrix_transform_pixel_rectangle() The transform_rectangle methods are particularly useful when an app/toolkit wants to know the extents of a rotated layout in device coordinates. It will be used by Gtk+ for example, and is used by the pango-view tool too. The _pixel_ variant takes a PangoRectangle in device units instead of Pango units. * Unit conversion helpers: pango_units_from_double() pango_units_to_double() pango_extents_to_pixels() The first two just convert between Pango units (fixed precision) and double floating-point numbers. The current implementations are as simple as "(int)floor (d * PANGO_SCALE + 0.5)" and "(double)i / PANGO_SCALE", but the idea is to have optimized versions of these that do not use the FPU in the future. That will be appreciated by embedded devices without FPU units. Since the functionality can be generally useful, the API is made public. The pango_extents_to_pixels() function in conjunction with pango_matrix_transform_rectangle() makes it possible to convert extents to device space and round then, instead of having to transform rounded user-space extents. - Bugs fixed in this release: Bug 351496 – PangoAnalysis::gravity breaks binary compatibility Bug 388702 – Crash when there's no Hangul glyph in the font. Bug 384543 – FcFontMatch misuse Bug 392789 – vpath build fails in basic module Patch from J. Ali Harlow Bug 390877 – Don't feed pango-features.h to glib-mkenums Patch from Yevgen Muntyan Overview of changes between 1.15.1 and 1.15.2 ============================================== * Engines: - Improved Hangul shaper engine - Improved Indic shaper and language engines - Require libthai >= 0.1.7 for the Thai language engine * Optimizations: - Avoid some floating-point operations. Should cut the number of float ops per expose event in pangocairo to a half. - Cache ink and logical extents for PangoLayout * New Public API: - New, generated, public header file pango-features.h. Included by pango.h. Currently contains the version information. In the future, can be expanded to define which backends have been enabled, etc. - Public macros and functions for compile- and run-time version checking: PANGO_VERSION_ENCODE() PANGO_VERSION_MAJOR PANGO_VERSION_MINOR PANGO_VERSION_MICRO PANGO_VERSION PANGO_VERSION_STRING PANGO_VERSION_CHECK() pango_version() pango_version_string() pango_version_check() The scheme chosen here is a mixture of approaches taken by glib and cairo. The advantage over the glib model is that there are no public variables, but it still gives access to a string and numerical representation of the version number at compile- and run-time. The macros enable conditional compilation of code depending on newer Pango APIs, while the runtime functions allow refusing to run against old versions of the library. - New, readonly, version of methods that give read/write access to the internals of PangoLayout: pango_layout_get_line_readonly() pango_layout_get_lines_readonly() pango_layout_iter_get_line_readonly() pango_layout_iter_get_run_readonly() These should be used when you do not intend to modify the run/line, which is most of the time the case. The only exception known to me is Firefox that adjusts glyph widths to do justification. Most other uses that do not write to the returned structs (or structs accessible from them) should be ported to the new readonly API to benefit from major optimizations (in this case, line extents caching). The list includes, but is not limited to, Gtk+, SWT, ClassPath, gnome-applets, libgnomeprint, xmlroff, GtkMathView, Conglomerate, Dia, Anjuta, wxWindows, The Gimp, and various other applications/libraries: http://www.google.com/codesearch?hl=en&q=+pango_layout_(iter_)%3Fget_(lines%3F%7Crun)%5B%5E_%5D&start=50&sa=N Worth noting here is that, many uses of pango_layout_get_lines() can be replaced by a pango_layout_get_iter() that works both more elegantly and more efficiently. The versioning macros introduced in this release can be used to make code use these new symbols without breaking compilation against older Pango (though, such code compiled with the new Pango cannot be run against an older Pango). - pango_language_get_default(): Note that, this does not make Pango fallback to the default language automatically (yet), but the user can use this function to set the default language of the locale on a context: pango_context_set_language (context, pango_language_get_default()); This essentially deprecates gtk_get_default_language(). The pango-view tool has been updated to use this feature, so it now respects $LANG when choosing fonts. - pango_color_to_string(). * Bugs fixed in this release: Bug 326099 – Setting width, indentation and ellipsizing doesn't work as I would expect Bug 385478 – Fix tests on OPD platform Bug 319808 – Patch to let pango support artifical italic, bold and bold italic styles for the fonts which don't have these styles. Patch from James Su Bug 385321 – Worst case expansion for Sinhala Patch from Harshula Red Hat Bug 211574: [hi/ml/si_LK] cursor naviation is wrong when using ZWJ (200d) Patch from LingNing Zhang Red Hat Bug 216424: [te_IN] pango - consonant + dependent vowel (ai) Composed char is not rendering properly Patch from LingNing Zhang Bug 373856 – Wish: Function to convert a GdkColor to a string Patch from Matthew Barnes Red Hat Bug 216850: Issue in combination with vowels (ml_IN) Patch from LingNing Zhang Bug 382437 – tests/testboundaries fails Bug 333982 – Fallback to $LANG whenever NULL PangoLanguage is used Patch from LingNing Zhang Overview of changes between 1.15.0 and 1.15.1 ============================================== * Add Thai langauage engine. (currently makes tests/testboundary fail.) * Add Lao and improved Thai sample text. * Improved Indic module. * Output correct path for hexboxes in pango_cairo_layout_path(). * Implement get_resolution method for the FT2 fontmap. Shouldn't make any difference whatsoever. Open a bug if it does. * Misc small fixes. * Optimizations: - Rework PangoLayout algorithms to avoid calling a recursive call to pango_layout_get_extents(). Avoids one pango_font_get_glyph_extents() call per glyph per layout rendering. We now make 2 such calls. - Don't cache run_logical_rect in PangoLayoutIter. Avoids one pango_font_get_glyph_extents() call per glyph per layout rendering. We are down to 1 now. - Cache line extents. This avoids the final pango_font_get_glyph_extents() call per glyph per layout rendering. Now we don't make any pango_font_get_glyph_extents() calls when rendering a layout (some conditions apply)! - Replace PANGO_IS_RENDERER with PANGO_IS_RENDERER_FAST for most internal uses, that is, just a NULL-check. - Use simple, fast, casts instead of PANGO_CAIRO_*() macros where the object cannot have reached us if it wasn't of the right type. * Bugs fixed in this release: Bug 135683 – Cache glyphstring extents Red Hat Bug 211964: [ta] Rendering issue with Tamil Patch from LingNing Zhang Red Hat Bug 213632: ZWJ (200d) and ZWNJ (200c) showing same output Patch from LingNing Zhang Bug 371388 – Add Thai langauage engine Patch from Theppitak Karoonboonyanan Bug 377975 – bug in _pango_glyph_item_iter_next_cluster Bug 369670 – Checked g_free calls Changes that also appeared between 1.14.7 and 1.14.8 ===================================================== * Improved thread-safety. Pango is still NOT thread-safe, but this fixes lots of crashes using pangocairo from multiple threads. * Fix out-of-bounds array access. * Improved Indic shaper. * Improved Arabic language engine. * Choose shaper/font for unassigned Unicode codepoints. * Build fixes. * Bugs fixed in this release: Bug 356666 – pango is not thread-safe, nautilus does not honour that Bug 352795 – configure.in: Bug in "checking Whether to write dependencies into .pc files" Bug 350132 – backspacing doesn't work properly for Arabic Bug 330407 – Multiple dependant vowel signs (indic) displayed as one Patch from LingNing Zhang Overview of changes between 1.14.7 and 1.15.0 ============================================== * Add basic support for vertical text. (PangoGravity and related API) * New PangoCairo example (examples/cairotwisted) to lay text out on a path * Fix various bugs in the way language engines are used. Add simple Arabic and Indic language engines. (Backported to 1.14.6) * Step module interface version up to 1.6.0 * Misc small cleanups. * Bugs fixed in this release: Bug 330407 – Multiple dependant vowel signs (indic) displayed as one Bug 359043 – PangoRenderer does not show in API docs Bug 359046 – renderdemo.c unconditionally use GLib 2.12 Bug 357228 – Remove aix specific hack from configure.in Part of Bug 350132 – backspacing doesn't work properly for Arabic Bug 356194 – more pango_get_log_attrs problems Bug 355820 – pango_get_log_attrs broken Bug 352811 – SIGSEGV with pango(cairo)-view on HP-UX Bug 351496 – PangoAnalysis::gravity breaks binary compatibility Bug 351585 – API documentation issues with 2.15 release Overview of changes between 1.14.6 and 1.14.7 ============================================== * Fixed broken build with included lang modules. * Bugs fixed in this release: Bug 361938 – Can't include *-lang modules (./configure --with-included-modules fails) Overview of changes between 1.14.5 and 1.14.6 ============================================== * Backport language-engine handling fixes from HEAD. * Add simple Arabic and Indic language engines. * Indic shaper fixes. * Bugs fixed in this release: Bug 353877 – Sinhala is_cursor_position and backspace_deletes_character issues Patch from Akira TAGOH Bug 358224 – Telugu Character U+0C31 does not render its below-base form. Patch from Rahul Bhalerao Bug 358174 – Reph and Vattu forms of Assamese character RA(U+09F0) are not rendered. Patch from Rahul Bhalerao Overview of changes between 1.14.4 and 1.14.5 ============================================== * Indic shaper fixes. * Misc bug fixes. * Bugs fixed in this release: Bug 356685 – [or_IN] Rendering of consonant+0x0B4D+0x0B2F is wrong Patch from Rahul Bhalerao Bug 357790 – Rendering problem for malayalam consonant RA (U+0D30) Patch from Rahul Bhalerao Bug 349813 – typo in docs for pango_layout_move_cursor_visually Bug 357686 – pangocairo-font.c: illegal g_object_unref in pango_cairo_font_get_hex_box_info Overview of changes between 1.14.3 and 1.14.4 ============================================== * Indic shaper fixes. * Misc bug fixes. * Bugs fixed in this release: Bug 351223 – the conjuction of Con + 0x0d4d +0x0d31 of Malayalam is wrong Patch from LingNing Zhang Bug 355750 – The glyphs of the conjuctions about Cons+0x0d4d+0x0d32 of Malayalm are wrong. Patch from LingNing Zhang Bug 349876 – U+0x0904 of Devanagari need be "independent vowel", but it is "reserved" in Pango Patch from LingNing Zhang Bug 355550 – Miscalculation of logical attributes in pango_get_log_attrs() Patch from Theppitak Karoonboonyanan Bug 355697 – The IndicOTClassTable of Oriya has a error. Bug 355782 – Misaligned extents in pango Bug 355605 – hexbox with 0000 in it Bug 355435 – Invalid calls to pango_map_get_engine() Patch from Theppitak Karoonboonyanan Bug 347146 – underline/overstrike spaces Bug 352535 – Ink extents of empty glyph Overview of changes between 1.14.2 and 1.14.3 ============================================== * Win32 build improvement. [Tor Lillqist] * Bugs fixed in this release: Bug 353525 – libpangoft2-1.0.so.0: undefined reference to `pango_font_description_get_gravity' Bug 349813 – typo in docs for pango_layout_move_cursor_visually Overview of changes between 1.14.1 and 1.14.2 ============================================== * Find shaper/font for Private Use and space characters. Part of Bug 145275 – Font selection for space characters Overview of changes between 1.14.0 and 1.14.1 ============================================== * Increased fontset cache size from 16 to 64. This should make firefox+pango A LOT faster. * Bugs fixed in this release: Bug 352114 – pango-1.14: generated docs still contain old example code Part of Bug 348825 – pango should optimize away calls to FcFontSort as much as possible Bug 351585 – API documentation issues with 2.15 release Overview of changes between 1.13.5 and 1.14.0 ============================================== * Make pango-view accept non-ASCII --text. * Require cairo-1.2.2 for the important bug fixes it has. Overview of changes between 1.13.4 and 1.13.5 ============================================== * Indic shaper improvements. * Misc fixes. * Bugs fixed in this release: Bug 121672 – Ra (vattu) not rendered properly in Malayalam Patch from LingNing Zhang Bug 335811 – Some conjugates of Malayalam are wrong. Patch from LingNing Zhang Overview of changes between 1.13.3 and 1.13.4 ============================================== * Update to Unicode Character Database 5.0.0. * Misc fixes. * Bugs fixed in this release: Bug 336282 – Update to Unicode Character Database 5.0.0 Bug 347073 – Allow empty GPOS table Bug 347021 – atsui crash when a matching font cannot be found. Patch from Brian Tarricone. Overview of changes between 1.13.2 and 1.13.3 ============================================== * Improved build system. Using gnome-autogen.sh now. (gnome-common needed for bootstrapping) * Improved documentation. Docs now include list of new API for each stable version of Pango. * New public API: - pango_glyph_string_get_width * Little performance improvement. * Misc fixes. * Bugs fixed in this release: Bug 330603 – pango_scan_int invokes undefined behaviour Bug 315599 – PangoAttribute remains in wrong context. Bug 163677 – pango_attr_list_splice: inconsistent docs Patch from Morten Welinder Bug 345070 – [ml_IN] not render for combination with ZWJ Patch from LingNing Zhang Bug 345274 – list of new symbols for each version is missing in docs Patch from Priit Laes Bug 346297 – autogen doesn't work with automake-1.6 Patch from Priit Laes Bug 135683 – Cache glyphstring extents Bug 344766 – Memory leak in get_ruleset() in modules/basic/basic-fc.c Bug 345600 – cvs build error in pango/opentype/Makefile Bug 345511 – -no-undefined problem with new libtool Overview of changes between 1.13.1 and 1.13.2 ============================================== * Improved hexbox drawing, and font metrics calculations. * Synthesize italic variants on win32 [Hans Breuer] * New public API: - pango_cairo_show_error_underline - pango_cairo_error_underline_path - pango_font_describe_with_absolute_size * Misc fixes. * Bugs fixed in this release: Bug 326960 – hex box drawing for win32 and atsui backends of cairo Bug 343717 – License information in unclear. Bug 343355 – Add pango_cairo_show_error_underline & pango_cairo_error_underline_path Bug 343966 – pango Cygwin build fixes Patch from Cygwin Ports maintainer. Bug 343796 – Italic Chinese character can't be show correctly in Win32. Bug 314114 – max_x_advance not appropriate for approximate_(char|digit)_width Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory and have many cpu usage. Patch from Yong Li. Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct when using MarkAttchmentType Patch from Tin Myo Htet. Bug 333984 – pango_language_from_string improvements Bug 125378 – Better underline thickness handling Bug 339730 – Pango needlessly falls back away from a Type 1 font into a TTF font Bug 342562 – Support absolute sizes in pango_font_description_to/from_string Bug 341922 – pango should handle more characters as zero width Patch from Roozbeh Pournader Bug 342525 – With PangoFc and PangoWin32, approximate digit width is not what it says Bug 342079 – pangoatsui-private.h missing from release Overview of changes between 1.13.0 and 1.13.1 ============================================== * Increased robustness against broken pango.modules * Improved build infrastructure: - Remove CAIRO_CFLAGS from pangocairo.pc.in, as it Require's cairo already. - Use -no-undefined on Unix too. * Improved documentation. * Misc fixes. * Bugs fixed in this release: Bug 307196 – Unhinted fonts are measured incorrectly and drawing problems occur as a result Bug 329547 – pango_layout_get_pixel_extents and pango_layout_get_pixel_size cause off-by-one metrics Bug 339747 – pango_font_metrics_get_approximate_digit_width docs Bug 339749 – pango_language_from_string issues Patch from Morten Welinder. Bug 333771 – Use gmodule-no-export-2.0 instead of gmodule-2.0 in pango-uninstalled.pc.in Bug 337594 – pango_glyph_string_extents_range possible bug Bug 329664 – Move gunichar_to_glyph cache from PangoCairoFcFont to PangoFcFont Patch from LingNing Zhang. Bug 322374 – Examples does not build on MacOS X Bug 340229 – pango_font_description_from_string does not do bound checking Bug 329483 – hinting hexbox in cairo backend doesn't handle absolute font size Bug 340040 – pangocairo hex box hinting falls apart with PS/PDF backends Bug 71033 – make size 0 fonts work Overview of changes between 1.12.0 and 1.13.0 ============================================== * Fix incorrect rendering when in x86 64-bit precision mode https://bugs.freedesktop.org/show_bug.cgi?id=5200 * Fix non-OpenType fonts losing kerning in 1.12.0 [#336026, Denis Jacquerye] * Fix blurred underlines on Win32 [#332656, Tor Lillqvist] * Build fix when having both Win32 and FreeType cairo backends available [#337502, Alexander Larsson] * Moved the OpenType Layout code into a new project called HarfBuzz: http://www.freedesktop.org/wiki/Software/HarfBuzz * Improved documentation. * Misc bug fixes. * Fixed many compiler warnings. * Bugs fixed in this release: 332656,335840,334802,337029,337821,338343 Overview of changes between 1.11.99 and 1.12.0 ============================================== * Compilations fixes for MSVC. [#333115, Tor Lillqvist] * More NULL-check against unusable fonts, helps with Win32 fonts without a Unicode cmap. [Tor] * Use g_print instead of printf for debugging output in Win32 backend. [#332855, Tor] Overview of changes between 1.11.6 and 1.11.99 ============================================== * Fix problem recently introduced that made Win32 backend render boxes only. [#332538, Hans Breuer] * Insert '?' chars instead of invalid UTF-8 sequences in pango_layout_set_text [#33195] * Bugs fixed in this release: 332167,332538,331995 Overview of changes between 1.11.5 and 1.11.6 ============================================= * Do not export macros PANGO_GLYPH_EMPTY, PANGO_GLYPH_UNKNOWN_FLAG and PANGO_GET_UNKNOWN_GLYPH publicly; just in the engine/backend interface. * Fix a few crashers, especially when a font cannot be read. [#314239] * Change some g_critical's to g_warning, where it's not application's fault. [#331723] * Bugs fixed in this release: 330795,331038,329148,331994,331995,331996,314239,331723 Overview of changes between 1.11.4 and 1.11.5 ============================================= * Cleanup work on the win32 backend. Families are not listed all in lower case anymore. * New public function: pango_win32_font_description_from_logfont. * pango-view accepts --wrap now, and lists backends in --help output. * A couple minor bug fixes. Overview of changes between 1.11.3 and 1.11.4 ============================================= * Major change in the low-level interface of Pango. The special value PANGO_GLYPH_EMPTY is now defined to mean a "draw nothing" glyph. This was what glyph 0 was used for previously. As a result, bumped up the Pango module version, meaning that modules compiled against earlier versions are probably not compatible with this release. [#73147] * New framework in examples for building a binary called pango-view, that can be used to render a text file using any of the available backends. This is installed into bindir now. * Enhancements to the FT2 backend, to draw boxes on missing glyphs. * Better hexbox drawing for cairo backend: Hinting hexbox, and drawing a single-row hexbox for very small font sizes. * Improved documentation. Overview of changes between 1.11.2 and 1.11.3 ============================================= * Do not crash if the shapers fail. * Use g_slice for various struct allocations. * 100% symbol coverage in docs. * Misc bug fixes and documentation improvements. * Janitory works, like removing unneeded files. Overview of changes between 1.11.1 and 1.11.2 ============================================= * Draw hex box on missing glyphs for cairo-fc backend. * New --with-dynamic-modules option added to configure. * Use g_slice for various small memory allocations [Matthias Clasen] * Misc bug fixes, optimizations, and documentation improvements. Overview of changes between 1.11.0 and 1.11.1 ============================================= * ATSUI support for the cairo backend. [Anders Carlsson] * Fixed a couple of regressions with font size and scaling. * Draw a dashed empty box on missing glyphs for cairo-fc backend. * Support OpenType features for basic (Latin/Greek/...) module. * Support swash feature in Arabic module. * Misc bug fixes. * Misc documentation improvements. Optimizations: * Cache GObject private data in PangoFcFont.priv [Federico Mena Quintero] * Add a constant-sized light-weight cache for glyph extents. * Use g_slice_* instead of GMemChunk in mini-fribidi. Overview of changes between 1.10.1 and 1.11.0 ============================================= * Line-breaking algorithm updated to Unicode 4.1. * Code borrowed from GNU FriBidi resynched to version 1.0.7. * New improved Tibetan shaper module. [Pema Geyleg] * Bug fix in Khmer shaper module. [Jens Herden] * Respect fontconfig reassignment of font pixelsize. [Funda Wang] * Make OpenType GPOS handling more robust/correct. [Greg Aumann] * Various documentation fixes and improvements. * Various gcc warning fixes. * Misc bug fixes. Optimizations: * Add a lazy fixed-size per-font cache to map characters to glyphs, in the cairo backend. [Federico Mena Quintero] * Optimize character to script mapping by adding a linear table for characters < U+2000, and also caching the last mid point in bsearch. [Federico, Matthias Clasen] * Enabled mini-fribidi's trashstack instead of direct mallocs. * Short circuit the bidi algorithm for provably unidirectional text. * Make mini-fribidi process UTF-8 directly. * Several strlen and g_utf8_strlen calls removed. [Owen Taylor, Billy Biggs] * Use call tables in the OpenType layout code. * Use quarks for accessing GObject data. [Federico] * Open Pango modules with lazy-bind flags. [John Rice] * Use new negative offsets in g_utf8_pointer_to_offset to avoid scanning from the beginning of line on cursor movement. * Avoid redundant PANGO_IS_FC_FONT checks. Overview of changes between 1.10.0 and 1.10.1 ============================================= * Add various forms of caching to the Win32 backend, greatly improving performance [Tor Lillqvist] * Fix problem with colors leaking from a Pango item to subsequently drawn strings. [Choe Hwanjin] * Fix bug where error underlines would be drawn 1024 times too big in the Cairo backend. [Luis Villa] * Misc bug and build fixes [Jean Brefort, Matthias Clasen, Behdad Esfahbod, Kazuki Iwamoto] Overview of changes between 1.9.1 and 1.10.0 ============================================ * Update script tables, bidi tables, and Arabic joining tables for Unicode 4.1 [Roozbeh Pournader, Behdad Esfahbod] * Misc bug and build fixes [Sebastien Bacher, Hans Breuer, Behdad, J. Ali Harlow, Tor Lillqvist, Keith Packard, Vittorio Palmisano, Manish Singh] Overview of changes between 1.9.0 and 1.9.1 ========================================== * Support setting of font options and DPI on PangoContext for the Cairo backend. * Adapt to recent Cairo API changes * Win32 build improvements [Tor Lillqvist] * Misc bug fixes [Hans Breuer, Thomas Fitzsimmons, Kazuki IWAMOTO] Overview of changes between 1.8.x and 1.9.x =========================================== * Add Cairo support; PangoCairoFontmap is an interface with implementations for Fontconfig fonts and Win32 fonts * Extend PangoFcFontmap to allow more customization by subclasses * Handle NULL language better for pango_context_get_metrics() * misc optimization [Paolo Borelli, Behdad Esfahbod] * Misc bug and build fixes [Hans Breuer, Damien Carbery, Keith Packard, Manish Singh] * Doc fixes [Tim Janik] ============================================================ Overview of changes between 1.8.1 and 1.8.2 =========================================== * Add Khmer support [Jens Herden, Javier Sola] * Fix bugs and crashes in the operation of PangoLayoutIter [Amit Aronovitch] * Increase sharing of data between different copies of Pango [Tommi Komulainen, Ross Burton] * Remove dependence of opentype code on FreeType internals [David Turner, Behdad Esfahbod] * Cache metrics for the Win32 backend [Tor Lillqvist] * Improve handling of RTL text when passing it to Uniscribe [Tor] * Support for TrueType fonts on Win32 with characters outside the BMP [Tor] * Handle alpha in XftColors again. [Mikael Magnusson] * Better handling of MacThai encoded fonts [Theppitak Karoonboonyanan] * Handle zero width chars properly in Hangul backend [Young-Ho Cha, Changwoo Ryu] * Fix Oriya character classification [Gora Mohanty, Gautam Sengupta] * PangoAttrIterator bug fixes [Morten Welinder] * Clean up copyright/licensing information [William N. Ray] * Misc bug and build fixes [Sebastien Bacher, Brandon Bergren, Chris Blizzard, Paolo Borelli, Behdad, Harshula, Alex Jones, Aivars Kalvans, Stepan Kasal, Karel Kulhavy, Ryan Lortie, Ben Maurer, Sukhjinder Sidhu, Manish Singh, Emil Soleyman-Zomalan, Morten] Overview of changes between 1.8.0 and 1.8.1 =========================================== * Fix several problems with conjuct formation in Sinhala [Harshula] * Fix problems that were causing fonts to be missized and not print in GtkHTML [Ross Burton] * Fix compilation with old fontconfig [Vincent Noel] and old FreeType [Andrew P. Lentvorski, Jr] * Work around problem with glyphs in monospace fonts being truncated by Xft [Billy Biggs] * Misc bug fixes [Damon Chaplin, Matthias Clasen, Kees Cook, Nick Lamb, Adam Sampson,Manish Singh, Morten Welinder] * Misc build fixes [Sebastien Bacher, Matthias Clasen, Tor Lillquist] * Doc improvements [Torsten Schoenfeld, Billy Biggs, Morten Welinder] Overview of changes between 1.7.0 and 1.8.0 =========================================== * Add Sinhala support to the Indic module [Anuradha Ratnaweera] * Add Tibetan module [G Karunakar, Pema Geyleg] * Support pixel sizes for fonts [Chris Lahey] * Add pango_layout_get_font_description() [Morten Welinder] * Add PANGO_WEIGHT_SEMIBOLD [Lars Clausen] * Report underline metrics on Win32 [Tor] * Handle GLib-2.6.0 win32 filename encoding changes [Tor Lillqvist, Robert Ögren] * Fix crash when drawing long strings * Misc fixes [Matthias Clasen, Dan Winship] Overview of changes between 1.6.x and 1.7.0 =========================================== * Add PangoRenderer, a subclassable driver object holding the logic for rendering PangoLayout. * Support transformed rendering for the Xft backend * Add Lao support in Thai Module [Theppitak Karoonboonyanan] * Support Thai OpenType fonts [Theppitak] * Add Syriac module [Emil Soleyman-Zomalan] * Add underline-color and strikethrough-color attributes [Morten Welinder] * Add pango_win32_render_transformed() [Hans Breuer] * Misc fixes [Hans Breuer, Matthias Clasen, Manish Singh, Morten Welinder] * Documentation improvements ============================================================ Overview of changes since 1.6.0 =============================== * Fix several problem when computing font and selecting fonts metrics for CJK [Felipe Heidrich, Federic Zhang] * Win32 bug fixes [Tor Lillqvist, Kazuki Iwamoto, Ivan Wong] * Misc bug fixes [Vincent Berger, Paolo Borelli, Behdad Esfahbod, Leon Ho, Arun M, Kjartan Maraas, Vincent Noel, Christian Persch, Enrico Scholz, Sukhjinder Sidhu, Morten Welinder] Overview of changes between 1.5.2 and 1.6.0 =========================================== * Add OpenType support for Hebrew [Dov Grobgeld] * Win32 bug and build fixes [Tor Lillqvist, Hans Breuer, John Ehresman] * Misc bug fixes [Behdad Esfahbod, Jatin Nansi] Overview of changes between 1.5.1 and 1.5.2 =========================================== * Support 'init' feature for Bengali [Sayamindu Dasgupta] * Allow 32-bit property fields in OpenType code * Optimize repeated property lookups in OpenType code * Misc bug fixes [Behdad, Keith Sharp, Morten Welinder] Overview of changes between 1.5.0 and 1.5.1 =========================================== * Add ellipsization support to PangoLayout * Add pango_context_get_font_map(). * Fix metrics for the Xft backend when a transform is in effect * Separate out backend-independent parts of pangoft2topgm for future rendering testbeds. * Code cleanups (use G_DEFINE_TYPE, make PangoMatrix parameters const) * Add a GType for PangoMatrix [Torsten Schoenfeld] * Misc bug fixes [Morten Welinder] Overview of changes between 1.4.x and 1.5.0 =========================================== * Allow applications to provide custom font decoders [Chris Blizzard] * Add support for setting a transformation matrix on a PangoContext * Add support for rotated rendering to the FT2 backend * Add metrics for underline and strikethrough position and thickness. * Add letter-spacing attribute and implement in PangoLayout * OpenType support in Thai Module [Theppitak Karoonboonyanan] * Add Add PANGO_TYPE_LAYOUT_ITER [Johan Dahlin] ============================================================ Overview of changes between 1.4.0 and 1.4.1 =========================================== * Win32 bug fixes [Tor Lillqvist, John Ehresman] * Thai rendering improvements including OpenType support [Theppitak Karoonboonyanan] * Fix common crash in Hangul shaper [Changwoo Ryu] * Fix various problems with language tag selection [Frederic Zhang] * Documentation improvements [Felipe Heidrich, Doug Quale] * Fix crash in line break code [Jeroen Zwartepoorte, Billy Biggs] * Build fixes [J. Ali Harlow, Noah Misch] * OpenType engine fixes [Kailash C. Chowksey, Sayamindu Dasgupta, Aamir Wali, Masatake YAMATO, Soheil Hassas Yeganeh] * Indic module bug fixes [Chris Blizzard, Rajkumar S, Taneem Ahmed, Jungshik Shin] * Misc bug fixes [Stanislav Brabec, Anders Carlsson, Behdad Esfahbod, Jody Goldberg, Theppitak, Sven Neumann, Manish Singh, Morten Welinder] Overview of changes between 1.3.6 and 1.4.0 =========================================== * Use FC_WIDTH when available so that multiple width fonts are selected properly [Manish Singh] Overview of changes between 1.3.5 and 1.3.6 =========================================== * Improve handling of some Kannada vowels [Kailash C. Chowksey] * Fix problem with excess symbol exports on Linux [James Henstridge] * Win32 build fixes [Hans Breuer, John Ehresman, Tor Lillqvist, Cedric Gustin, J. Ali Harlow] Overview of changes between 1.3.3 and 1.3.5 =========================================== * Add support for automatically determining the base direction for PangoLayout from the contained text [Dov Grobgeld] * Major rework of internal opentype interfaces to fix problems with GPOS. Turn on GPOS handling for Arabic. * Add a PangoAttribute to turn off font fallback [Noah Levitt] * Add wavy error-indication underlines [Nicolas Setton] * Improve handling of BENGALI LETTER A/E [Sayamindu Dasgupta] * Win32 bug fixes and improvements [J. Ali Harlow, Hans Breuer] * Misc bug fixes [Noah, Roozbeh Pournader] Overview of changes between 1.3.2 and 1.3.3 =========================================== * Add pango_font_face_list_sizes() [Noah Levitt] * Add pango_font_family_is_monospace [Noah] * Do OpenType processing for CFF fonts [Manjunath Sripadarao] * Fix wrong sign for GPOS vertical positioning * Fix up -uninstalled .pc files [Laszlo Peter] * Misc bug and build fixes fixes [Rodney Dawes, Theppitak Karoonboonyanan, Noah, Kjartan Maraas, Julio M. Merino Vidal, Christian Persch, Torsten Schoenfeld, Manish Singh, Mariano Suárez-Alvarez, Morten Welinder, Masatake YAMATO] Overview of changes between 1.3.1 and 1.3.2 =========================================== * Correct a mixup between ZWJ and ZWNJ in the Arabic engine [Roozbeh Pournader] * Build and bug fixes for Win32 [Hans Breuer] * Fix a problem with RTL scripts on Win32 [Tor Lillqvist, Shoshannah Forbes] * Documentation improvements [Ross Burton, Matthias Clasen] Overview of changes between 1.3.0 and 1.3.1 =========================================== * Support non-Unicode font encodings when supported by fontconfig [Sven Neumann] * Draw 6-digit hex boxes for > U+FFFF [Noah Levitt] * Update to latest fribidi [Noah] * Honor U+2028 LINE SEPARATOR [Noah] * Fix a problem with iteration by chars [Mariano Suárez-Alvarez] * Misc bug and build fixes [Jeff Bonggren, Martin Kretzschmar, Noah, Sven Neumann, Padraig O'Briain, Manish Singh, Morten Welinder] * Fix header file includes to work with recent FreeType. Overview of changes between 1.2.x and 1.3.0 =========================================== * Share modules between the FT2 and Xft backend. Export PangoFcFont and PangoFcFontMap base classes so that other fontconfig based backends can be written and use these same modules. * Redo module system to use GTypeModule and work much like GTK+ theme engines and input method modules. * Change modules to declare coverage by script, rather than by code point. Add a ->covers callback so that modules can dynamically decide whether they can cover a particular codepoint with a given font. (This will allow multiple modules to handle a script for different types fonts.) * Complete rewrite of itemization pass. Now uses script information to improve language tags. This solves problems with incorrect language tags resulting in drastically wrong fonts being selected by fontconfig. * Add backspace-deletes-character PangoLogAttr; will allow proper deletion behavior for non-Western scripts. [Noah Levitt] * Add pango_fc_font_kern_glyphs(), which speeds up kerning a lot over doing it pair-by-pair. [Soeren Sandmann]. Kern in the Xft backend as well as the FT2 backend. * Remove the X font backend, except a minimal set of stubs to maintain binary compatibility. * Many improvements to pangoft2topgm to allow displaying PangoMarkup, saving to different file formats, etc. * Convert build system to automake-1.7; many cleanups and improvements. [James Henstridge] * Documentation additions and improvements [Matthias Clasen, Martin Pool]; add man pages for the included binaries. [Matthias] * Misc bug and build fixes [Josh Beam, Tony Graham, Kaushal Kumar, Noah, Mehran Mehr, Soeren, Morten Welinder] * Win32 build fixes [Tor Lillqvist, Hans Breuer] ============================================================ Overview of Changes in Pango 1.2.5 ================================== * Fix a problem where the indic-xft shaper didn't get linked against all necessary files. Overview of Changes in Pango 1.2.4 ================================== * Win32 [Tor Lillqvist] - Avoid calling Uniscribe when not necessary [Hans Breuer] - Build fixes * Indic shaper - Add pre-base-matra fixup code from ICU [Sivaraj Doddannan] - Port of Bengali rendering fix from ICU [Taneem Ahmed] * OpenType - Port various fixes by Werner Lemberg from FreeType version - Port various fixes by Lars Knoll from Qt version - Many other bug fixes [Kailash C. Chowksey, Me] * Fix bugs in FT2 rendering code [Sven Neumann] * Remove Qt-based example program; was causing compilation problems for a lot of people. * Doc fixes [Noah Levitt] * Misc bug fixes [Dave Cuthbert, Damon Chaplin, Christophe Fergeau, Tony Graham, Morten Welinder] * Build fixes [Sven Neumann, Benedikt Spranger] Overview of Changes in Pango 1.2.3 ================================== * Fix operation with --disable-debug [Jeff Waugh] * Improve handling of ink rectangle extents for empty runs * Fix problem with keynav at line boundaries for RTL text [Matthias Clasen] Overview of Changes in Pango 1.2.2 ================================== * Cache fontsets for the Xft and FT2 backends, a large speedup for short strings [Owen Taylor, Soeren Sandmann] * Make built in rendering functions, especially the FT2 one, work more like the GDK implementation [Sven Neumann] * Add an indic-ft2 module [Kapil Chowskey], Add a thai-ft2 module [Theppitak Karoonboonyanan] * Optimize pango_x_render() by drawing multiple character with a single request when possible [Morten Welinder] * Change the handling of attributes that cover only partial glyphs [Owen, Taneem Ahmed, Sunil Mohan Adapa] * Fix problems with Arial Unicode and the Opentype code [Owen, Noah Levitt] * Fix common crash for fonts missing a GDEF table * Fix common portability problem with informative output at end of configure. * Build cleanups and fixes [Tim Mooney, Chris Ross, Akira Tagoh, Will Partain, James Su] * Miscellaneous bug fixes and cleanups [Simon Budig, Rick Jones, Noah, Padraig O'Briain, Benjamin Otte, Andrey Panov, Federic Zhang] * Documentation fixes [Tim, Sven] Overview of Changes in Pango 1.2.1 ================================== * Handle older TrueType Open Arabic fonts. * Make Win32 backend handle a common TrueType font bug [Tor Lillqvist] * Fix crash with some non-BMP characters [Morten Welinder] * Avoid crashing on font descriptions like " 12" [Padraig O'Briain] * Minor build fixes [Rich Burridge, Sven Neumann] ============================================================ Changes between 1.1.6 and 1.2.0 * Documentation fixes Changes between 1.1.5 and 1.1.6 * Fix crash with isolated Hangul tone marks. * Improve font solection for Hangul tone marks * Improve range definitions for basic-xft [Jungshik Shin] * Docs improvements [Matthias Clasen] Changes between 1.1.4 and 1.1.5 * Fix wrap-around coordinate problems for X, Xt. * Draw unknown character boxes with X primitives for the X backend instead of hoping for a suitable glyph [Morten Welinder] * Fix crash with FT2 arabic shaper from using face->generic.data for two things. * For Xft/FT2, give an informative error mesage when no fonts are found. * Support shape modules with ranges beyond the BMP [Federic Zhang] * Use octal escapes rather than literal UTF-8 [Arnaud Charlet] * Use g_[sf]printf where appropriate [Matthias Clasen] * Doc improvements [Matthias] * Misc build and bug fixes [Tony Graham, Kjartan Maraas] Changes between 1.1.3 and 1.1.4 * Fix the Arabic-words-broken-by-underlines problem by stripping out non-shape affecting attributes then adding them back after shaping. * Hangul shaper fixes [Changwoo Ryu, Jungshik Shin] * Handle compatability ideographs in basic-x shaper [Federic Zhang] * Rename function parameters to avoid shadowing system headres [Soeren Sandmann] * Fix memory leak in Win32 backend [Tor Lillqvist] * Fix crasher problem with non-BMP characters [He Qiangqiang] * Implement pango_ft2_font_map_set_default_substitute() [Matthias Clasen] * Doc improvements [Matthias Clasen, Michael R. Walton, Jungshik Shin] * Misc bug and build fixes [Dagfinn I. Mannsåker, Tony Graham, Dan Mills, Sebastian Wilhelmi] Changes between 1.1.2 and 1.1.3 * Hangul module bug fixes and improvements [Changwoo Ryu, Jungshik Shin] - Move rendering of precomposed characters to hangul-xft shaper - Handle Hangul tone marks * Win32 improvements [Tor Lillqvist] - Use Uniscribe when present * Some doc build fixes [Matthias Clasen] * Code cleanup [Manish Singh] * Fix assertion failure in PangoLayout [Alex Larsson] * Fix memory leak when freeing fontmaps [Sven Neumann] Changes between 1.1.1 and 1.1.2 * Add a new wrap mode for PangoLayout - PANGO_WRAP_WORD_CHAR [Alex Larsson] * Win32 work [Tor Lillqvist] - Handle choosing the right font for CJK languages based on language tags. - Fix boxes showing up for tabs [Florent Duguet] - Better handling of finding ASCII font names. - Cygwin compilation fix [Masahiro Sakai] - Fix --with-included-modules on win32 [Arnaud Charlet] - Various build fixes and cleanups * Indic module improvements [Eric Mader] * Fixes to generic OpenType handling [Eric] * Improve language specific charset ordering basic-x11 [James Su, Brian Yuan] * Some merges of fixes by Werner Lemberg to the original FreeType OpenType code. * Robustify and otherwise improve pango_color_parse() [Matthias Clasen] * Some cross-compiling fixes [J. Ali Harlow] * Bug fix for pango_scan_int() needed for recent GTK+. Changes between 1.1.0 and 1.1.1 * Merge a lot of the code between the Xft and FT2 backend, so that the FT2 backend gets the recent improvements to Xft. * Add proper language tag support to the Xft/FT2 backends. * Various effienciency fixes for the Xft/FT2 backends. Changes between 1.0.x and 1.1.0 * Support for version 2 of the Xft library. [Keith Packard] * Convert the freetype backend over to using fontconfig, instead of MiniXft for font cataloging. * A port of the Indic OpenType code from ICU to Pango. [Eric Mader] * A new hangul-xft [Changwoo Ryu] * Bug-fixes to the OpenType handling code. * Various cleanups to the PangoXft and PangoFT2 public APIs. * Docs switched over to DocBook XML. [Matthias Clasen] ============================================================ Changes between 1.0.3 and 1.0.4 * Add Thai shaper for Xft [Theppitak Karoonboonyanan] * Support GB-18030, BIG5-HKSCS, CNS-11643, GBK encodings for basic-x shaper [Qingjiang (Brian) Yuan] * Support ksc5601.1992-3 fonts in hangul-x shpaer [Qingjiang (Brian) Yuan, Changwoo Ryu] * Support new Arabic characters in Unicode 3.2 [Roozbeh Pournader] * Bug fixes [Jacob Berkman, Arnaud Charlet, David L. Cooper II, Choe Hwangjin, Alex Larsson, Sven Neumann, Matthias Warkus, Yao Zhang] Changes between 1.0.2 and 1.0.3 * Change algorithm for mapping points to pixels on Windows to match the system method. [Joaquin Cuenca Abela, Tor Lillqvist] * Fix family listing for the FT2 backend. [Sven Neumann] * Fix memory leak in pango_font_real_get_metrics() [Matthias Clasen] * Some compilation warning fixes. [David L. Cooper II] * Fix passing attr_list == NULL to pango_parse_markip [Andreas J. Guelzow] Changes between 1.0.1 and 1.0.2 * Support building with FreeType 2.1.0 * List Sans,Serif,Monospace when listing fonts for the Xft and FT2 backends. (Xavier Cho) * Portability fixes. (David L. Cooper II, Jacob Berkman) * Fix problem with pango-querymodules using g_print(). Changes between 1.0.0 and 1.0.1 * Documentation improvements [Matthias Clasen] * Use new API in FreeType 2.0.9 to greatly speed up coverage calculation for Xft and FT2 backends. * Some fixes for reading of OpenType tables. * Add -D_REENTRANT to compilation when necessary. [Sven Neumann] * Try and enable ClearType for Win32 backend. [Tor Lillqvist] * Fixes for Korean glyphs in the basic-x shaper [Changwoo Ryu] * Improvements for computation of average char/digit width [Sven Neumann] * Bug and error reporting fixes [Arnaud Charlet, Erwann Chenede, Mikael Hallendal, Stefan Israelsson, Alex Larsson, Soeren Sandmann, Dan Winship] ============================================================ Changes between 1.0.0 rc2 and 1.0.0 * Updated README files. * Minor build fixes [Tor Lillqvist, Jacob Berkman] Changes between 1.0.0 rc1 and 1.0.0 rc2 * Fix missing weight names when parsing font names [Arnaud Charlet] * Build fixes [Martin Gansser, Manish Singh] Changes between 0.26 and 1.0.0 rc1 * Try to build libraries with only shared library dependencies on Xft to deal with transition to Xft2. * Efficiency improvements for Xft backend * Bug, build and portability fixes Contributors: Jacob Berkman, Abel Cheung, David L. Cooper II, Miroslaw Dobrzanski-Neumann, , Dov Grobgeld, Alex Larsson, Tor Lillqvist, Sven Neumann, Gediminas Paulauskas, Manish Singh, Raymond Wan, Richard Warren. Changes between 0.25 and 0.26 * Fixes for AIX compilation [Miroslaw Dobrzanski-Neumann] * Fix zero-width characters being displayed [Sven Neumann] * Add some padding to class structures [Owen Taylor] Changes between 0.24 and 0.25 * Win32 fixes [Tor Lillqvist, Hans Breuer] * Cleanup of [Darin Adler] * Bug and build fixes [Anders Carlsson, Sven Neumann, Havoc Pennington, Morten Welinder] Changes between 0.23 and 0.24 * Win32 backend improvements [Tor Lillqvist] * Doc improvements [Havoc Pennington, Dennis Bjorklund] * Fix problem where "foo\n" was treated as one paragraph by pango-layout, not two. [Arjan J. Molenaar, Owen Taylor] * Add glyph caching to FT2 backend [Alex Larsson] * Try to make configure checks for Qt-based example more robust [Owen] * New example program for FT2 backend [Dov Grobgeld] * Arabic shaper for FT2 backend [Andreas Bogk, Sven Neumann] * Bug fixes Other contributors: Mikael Hermansson, Darin Adler, Hidetoshi Tajima, Zack Rusin, Jacob Berkman, Jason Tackaberry, Evan Martin, Matthias Clasen Changes between 0.22 and 0.23 * Documentation improvements [Matthias Clasen] * Win32 fixes [Hans Breuer] * Improve search for XftConfig [Manish Singh] * Fixes for crashes in Hangul shaper [Owen Taylor] * Improvements to Arabic shapers for X and Xft [Roozbeh Pournader] * Add jisx0212, jisx0201, Big5 support to basic shaper [HideToshi Tajima] * Many bug fixes Other contributors: Darin Adler, Dennis Dementiev, Sebastian Klemke, Alex Larsson, Sven Neumann, Joshua Pritikin, Padraig O'Briain, Kristian Rietveld, Sebastian Wilhelmi Changes between 0.21 and 0.22 * Documentation improvements [Matthias Clasen] * Win32 fixes [Tor Lillqvist, Hans Breuer] * Improve line-breaking algorithm to not be O(n^2) [Alex Larsson] * API addition to render to Xrender drawable * Restructure so that "font sets" are handled by the core for all backends [Alex] * Use the Xft font configuration scheme for the FT2 backend as well [Alex] Other Contributors: Darin Alder, Sven Neumann, Raymond Wan Changes between 0.20 and 0.21 * Documentation improvements. [Matthias Clasen, Sven Neumann] * pango_break() now reports n + 1 attributes for n characters, not n. [Havoc Pennington] * Win32 fixes, including support for configure.in on Win32. [Tor Lillqvist] * Bug fixes [Tony Graham, Eric Lemings, Manish Singh, Sven Neumann, Matt Wilson, Frank Belew] Changes between 0.19 and 0.20 * Change PangoFontDescription to save values for unset fields * Fix for compilation with FreeType 2.0.4 [Havoc Pennington] * Add PANGO_TYPE_FONT_METRICS [James Henstridge] * Win32 fixes and updates [Hans Breuer * PangoLayout bug fixes [Alex Larsson, Padraig O'Briain] * Misc fixes and cleanups. Other contributors: Matthias Clasen, Tony Graham, Mario Motta, Sven Neumann Changes between 0.18 and 0.19 * Change font listing API to be more extensible. Instead of using family names and * Make PangoMetrics and PangoFontDescription opaque heap-allocated structures to allow extension going forward. * Allow for PangoFontDescription structures with unspecified style/variant/stretch/weight. * Add PANGO_ENABLE_BACKEND and PANGO_ENABLE_ENGINE #defines to protect parts of the API where we don't want to guarantee source binary compatibility for 1.x. * Bug fixes. Changes between 0.17 and 0.18 * Add PangoLanguage type for language tags, use consistently. * Add support for different font orderings for different lanuages to basic shaper. * Win32 fixes [Alex,Hans] * Add pango_context_get_metrics() to get metrics for a font description * Add GTypes for various types [James] * Lots of warning fixes [Darin] * Fix to PangoLayout for lines with only tabs on them [Matthias] * Improve compositing of glyphs for pangoft2 backend [Sven] * Export pango_color_parse(). * Adapt to changes in GLib. * Build and bug fixes. Changes between 0.16 and 0.17 * Build/bug fixes * Cursor motion is now by graphemes (logical editing units) rather than by characters * Optionally support jumping cursor instead of split cursor Changes between 0.15 and 0.16 * Ability to make newlines in a PangoLayout display as regular characters (useful for, e.g., having an entry widget with embedded newlines.) * Build fixes * Bug fixes Changes between 0.14 and 0.15 * New version of Tamil shaper from Vikram Subramanian * Update mini-fribidi to correspond to the latest FriBidi CVS * Win32 fixes * More documentation * Various minor bug and build fixes. Changes between 0.13 and 0.14 * Win32 improvements [Tor] * Much better boundary resolution using algorithms from the Unicode standard [Havoc] * Initial support for anti-aliased TrueType and OpenType fonts using the Xft and Xrender libraries from XFree86 4. [Owen] * Fix the FreeType support on Unix so it can be used for the frame-buffer port of GTK+. [Alex] * Fix up module building [Alex] * Add average-character-width font metric [Havoc] * Bug fixes Changes between 0.12 and 0.13 * Win32 Support [Tor] * Per-display caching of font coverage on the root window [Owen] * Handling of embedded non-characters in PangoLayout [Elliot] * Mapping table fixes and improvements [KUSANO Takayuki, Abigail, Owen] * Adjustable tab handling in PangoLayout [Havoc] * Add relative font-scaling attribute [Havoc] * Add function to convert XML/GMarkup description to a PangoAttrList [Havoc] * New version of Arabic shaper [Karl] * Enhanced Indic support with ligature tables from the font and many more languages [Abigail] * Include FriBidi core that provides the features that Pango needs and can be used instead of separately installed fribidi. [Owen] * Add PangoLayoutIterator that abstracts the geometry operations for iterating over the lines/items/clusters/chars in a layout [Havoc] * Bug fixes, and more bug fixes What is new in GScript 0.1: * Initial release COPYING000064400000061314152534476670005627 0ustar00 GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA. Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it!