Fri Nov 17 16:12:34 2000 Owen Taylor * Released 0.13 * NEWS: Updates for 0.13 Fri Nov 17 16:04:19 2000 Owen Taylor * tools/Makefile.am (EXTRA_DIST): Add maps/tis-620 * Makefile.am (EXTRA_DIST): Added TODO.xml * pango/Makefile.am (EXTRA_DIST): Add .def files for Win32. * examples/Makefile.am (EXTRA_DIST): Add a couple of missing files. * docs/Makefile.am (dist-hook): Add back accidentally removed rule to distribute TEXT/*. Thu Nov 16 18:59:21 2000 Owen Taylor * pango/glyphstring.c (pango_glyph_string_extents_range): Test against start not zero. Thu Nov 16 13:23:43 2000 Owen Taylor * docs/pango-sections.txt docs/tmpl/modules.sgml: Add pango_module_register (). * pango/modules.c: Make ordering of module lookup predictable. * pango/modules.c (pango_module_register): Add a useful doc comment. * pango/pango-modules.[ch]: Fix indentation. * .cvsusers: Added 2000-11-16 Havoc Pennington * pango/modules.c (handle_included_module): Declare variable j so it compiles 2000-11-15 Elliot Lee * pango/modules.c: Make some vars static. Implement pango_module_register function. * pango/pango-modules.h, pango/modules.h: Move declaration of PangoIncludedModule to pango-modules.h for public use. Wed Nov 15 16:56:38 2000 Owen Taylor * pango/pango-layout.c (process_item): Fix problem with unbreakable words at start of line longer than line width. Wed Nov 15 15:04:00 2000 Owen Taylor * pango/pango-layout.c (pango_layout_get_extents_internal): Fix problem where right-aligned lines weren't getting properly offset because width was left as -1. Tue Nov 14 18:45:24 2000 Owen Taylor * pango/shape.c (pango_shape): Every character must be part of some cluster, so when we dont' have an engine at all (pathalogical, happens now for formatting characters), create a cluster with one glyph=0 and 0 size. Wed Nov 15 10:50:38 2000 Owen Taylor * pango/pango-layout.c (process_line): Rewrite of good portions of line-break code to be more readable, work better, and maybe even be a little faster. 2000-11-14 Havoc Pennington * pango/pango-layout.c (pango_layout_get_item_properties): get the value of any rise attribute (pango_layout_run_get_extents): take rise into account 2000-11-15 Tor Lillqvist * config.h.win32: Define HAVE_FRIBIDI. * pango/pango.def: Add new functions. * pango/pango{win32*,ft2*}.[ch]: Add my name to copyright notice. Tue Nov 14 11:10:24 2000 Owen Taylor * pango/pango-layout.c (pango_layout_run_get_extents): Fix low underline code to deal with run_ink == NULL. * pango/pango-utils.c (pango_read_line): Return number of lines read to allow decent parse errors line numbers. * pango/pangox-fontmap.c (pango_x_font_map_read_alias_file): Fix line number count. * examples/pangox.aliases: Include extra international fonts for all styles, not just roman, reindent so it looks halfway legible. Mon Nov 13 14:02:48 2000 Owen Taylor * pango/pangox.c pango/pango-indic.c: Some doc comment fixes. 2000-11-13 Havoc Pennington * pango/pango-layout.c (pango_layout_get_cursor_pos): Don't need to check_lines, pango_layout_get_iter() will do that (next_cluster_start): don't ever return a value past the end of the glyph string 2000-11-13 Havoc Pennington * examples/pangox.aliases: Add italic/bold variants 2000-11-13 Elliot Lee Patches from long ago: * pango/pango-layout.c: Make pango_layout slightly more robust. Do check_lines before getting cursor position. 2000-11-13 Havoc Pennington * docs/pango-sections.txt: Add new PangoLayoutIter entry points * pango/glyphstring.c (pango_glyph_string_extents_range): New function * pango/pango-layout.c: Create PangoLayoutIter for iterating over a layout's visual elements * pango/pango-layout.c (pango_layout_check_lines): plug a memleak (attr iterator not freed) * pango/pango-tabs.c (pango_tab_array_free): plug a memleak (array->tabs not freed) Mon Nov 13 09:17:34 2000 Owen Taylor * pango/pangox.c: Remove fribidi include. * pango.pc.in (Requires): Substitute fribidi reference only when necessary * Makefile.am (pkgconfigdir): pkgconfigdir is $(libdir)/pkgconfig * modules/indic/Makefile.am (EXTRA_DIST): Add pango-indic-script.h * fonts/Makefile.am (EXTRA_DIST): Remove devnag* * configure.in: Up version to 0.13 * docs/pango-docs.sgml: Reorganize, add all new chapters. * docs/pango-sections.txt: Update * docs/Makefile.am (IGNORE_HFILES): add mini-fribidi pango-intset.h 2000-11-13 Sebastian Wilhelmi * pango/pango-attributes.c, pango/pango-attributes.h: Renamed pango_attribute_compare to pango_attribute_equal. Renamed compare member of PangoAttrClass to equal. Renamed some static functions from ..._compare to ..._equal. * pango/fonts.c, pango/pango-font.h, pango/pango-context.c: Renamed pango_font_description_compare to pango_font_description_equal. * docs/pango-sections.txt, docs/tmpl/fonts.sgml, docs/tmpl/text-attributes.sgml: Changed accordingly. 2000-11-12 Havoc Pennington * pango-config.in: Remove UNICODE_LIBS UNICODE_CFLAGS * modules/thai/Makefile.am (pango_thai_la_LIBADD): ditto * modules/basic/Makefile.am: ditto * pango/Makefile.am: ditto Mon Nov 13 02:55:38 2000 Robert Brady * examples/pangox.aliases: Added -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0, for this comes with X. Mon Nov 13 02:39:44 2000 Robert Brady * pango/modules/hangul/hangul.c: Replace fallback shaper with a call to pango_x_fallback_shape, this sets the cluster array properly. Sun Nov 12 18:36:38 2000 Owen Taylor * configure.in (included_modules): Remove checks for iconv - we now depend on g_iconv wrapper defined in GLib. * modules/basic/basic.c: Use g_iconv_* not iconv(). * pango/itemize.c pango/pango-context.c modules/thai/thai.c: Remove spurious iconv.h includes. Sun Nov 12 16:07:06 2000 Owen Taylor * configure.in pango/pango-utils.[ch] pango/Makefile.am pango/mini-fribidi/*: Include a stripped-down version of fribidi to avoid the extra dependency. No fribidi symbols are exported so conflicts with the real fribidi should not happen. Library can optionally be compiled with the real libfribidi. * pango/pango-utils.[ch]: Wrappers for fribidi_ functions when compiling with fribiid. * modules/basic/basic-ft2.c modules/basic/basic-win32.c modules/basic/basic.c modules/thai/thai.c pango/Makefile.am pango/itemize.c pango/pango-context.c pango/pangoft2.c pango/pangowin32.c pango/pangox.c: Use pango_ versions of fribidi functions. 2000-11-12 Robert Brady * pango/pango-indic.c (pango_shift_vowels): Don't corrupt the array. 2000-11-12 Havoc Pennington * pango/pango-layout.c (pango_layout_get_text): Add accessor to get the text from the layout 2000-11-11 Tor Lillqvist * pango/pangowin32.c (pango_win32_render): Add code to call SetTextAlign, but commented out. * pango/makefile.mingw.in (PANGO_OBJS): Add new objects. * pango/pango.def: Add new functions. 2000-11-08 Robert Brady * pango/fonts/devnag.README: Updated to point to the new fonts * examples/HELLO.utf8: Added a few new entries. * modules/Makefile.am, configure.in: s/devanagari/indic/ * modules/devangari: Removed. * modules/indic: New shapers for Devanagari, Bengali, Gurmukhi, Gujarati, and Burmese, that make use of the below facilities. * pango/fonts/devnag18.bdf: Removed. * pango/docs/TEXT/ligatures: Documentation on the ligatures. * examples/pangox.aliases: Added fonts for the new Indic renderers to sans, serif and monospace. * pango/pangox-fontmap.c, pango/pangox-private.h: Add a per-PangoXFontMap cache for X Atoms. * pango/pango-intset.c, pango/pango-intset.h: Integer set. * pango/pangox.c, pango/pangox.h: Mainly add two new functions, font_struct_get_ligatures, to parse X font properties for ligature info, and pango_x_apply_ligatures, which does that actual ligation. Also add utility functions pango_x_fallback_shaper, pango_x_find_first_subfont. * pango/pango-indic.c, pango/pango-indic.h: Utility functions for Indic scripts. * pango/Makefile.am: Add pango-intset, pango-indic. Thu Nov 2 16:21:22 2000 Owen Taylor * pango/modules/arabic: new version of Arabic shaper from Karl Koehler. 2000-11-01 Havoc Pennington * pango/pango-markup.c (pango_parse_markup): Return the accel keyval 2000-11-01 Havoc Pennington * pango/pango-markup.c (text_handler): Fix bug where not all text was appended when parsing accelerators 2000-11-01 Pablo Saratxaga * modules/thai/thai.c: added aliases for X11 font names used on Solaris * modules/arabic/{arabic,naqshfont}.c: changed X11 font registry from "symbol-0" to "urdunaqsh-0"; using "symbol-0" isn't really usable; you get almost always the bad font... 2000-11-01 Havoc Pennington * pango/pango-attributes.c (pango_attr_scale_new): Add a new attribute for scaling a font; also required adding PangoAttrFloat. (pango_attr_iterator_get_font): Add PANGO_ATTR_SCALE handling. * pango/pango-utils.c (pango_parse_stretch): Take a plain string not a GString (pango_parse_weight): ditto (pango_parse_variant): ditto (pango_parse_style): ditto * pango/pangox-fontmap.c (pango_x_font_map_read_alias_file): pass GString::str instead of the GString itself to pango_parse_* * pango/pangoft2-fontmap.c (pango_ft2_insert_face): ditto * pango/pangowin32-fontmap.c (pango_win32_font_map_read_alias_file): ditto * pango/pango-layout.c (get_tab_pos): adapt to new pango_itemize() signature (pango_layout_check_lines): Raise attr list copy/creation out of the loop over paragraphs. Adapt to pango_itemize() changes. * pango/pango-context.c (pango_itemize): pass in a starting index and a cached iterator (add_engines): Easy optimization, pass in n_chars instead of recomputing it. Also, pass on the start index and cached iterator. * docs/pango-sections.txt: Add new stuff docs/pango_markup.sgml: Docs on markup format * pango/pango-layout.c (pango_layout_get_attributes): New function to retrieve the AttrList from a layout (pango_layout_set_markup): Set layout from markup (pango_layout_set_markup_with_accel): Set layout from markup including accelerator parsing. * pango/pango-attributes.h (pango_parse_markup): New function to convert a tag string to an attribute list * pango/pango-markup.c (pango_parse_markup): implement * docs/Makefile.am, docs/pango-docs.sgml, docs/pango-sections.txt, docs/pango_markup.sgml: oooooh, documentation for the above patch! * docs/tmpl/pango-unused.sgml: Remove from CVS; just causes problems, and was full of checked-in conflict markers. Tue Sep 12 10:21:08 2000 Owen Taylor * pango/modules.c (pango_map_get_entry): Added docs for the publically exported functions in this module, even though they are really only semi-public (for people implementing new types of #PangoFont), not public * pango/pango-utils.c (pango_read_line): Minor bug tweak. Sun Oct 29 01:27:39 2000 Owen Taylor * pango/pangoft2-fontcache.c pango/pangoft2.[ch] pango/pangowin32.h: Fix up doc comments not to have obvious errors that gtk-doc barfs on. Correct parameter descriptions still need to be filled in. * configure.in pango/docs/Makefile.am: upgrade to have a real install rule, etc. * pango/docs/pango-sections.txt: Add various missing functions. Wed Oct 25 15:39:49 2000 Tim Janik * *.c: adapted g_Type_register_*() calls. GLib wants an additional flag field to specify tape flags per node. added 0s all over the place, making the assumption that no pango types are abstract ones. 2000-10-03 Tor Lillqvist * pango/pango.def * pango/pangoft2.def: Add new entry points. * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary loop calling memset() with same parameters 64 times ;-) * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o. Some small changes that have been laying around on my disk. The Win32 and FT2 backends aren't "production quality" yet. For speedup, need to cache at least the coverage info. * pango/pangoft2.c (pango_ft2_get_coverage): New function. * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to be unique. * modules/basic/basic-ft2.c: Add comments explaining what Unicode ranges the table entries covers. Use "BasicScriptEngineLangFT2" to be unique. (basic_engine_get_coverage): Test calling pango_ft2_get_coverage(). (basic_engine_ft2_new): Set corect engine type. Not that this apparently is used for anything, the X11 basic shaper module also sets its type as TYPE_LANG. * examples/viewer-ft2.c (split_paragraphs): Just end the string upon encountering an invalid character. Don't return. 2000-09-29 Martin Baulig * Makefile.am (pkgconfigdir): Set this to `$(libexecdir)/pkgconfig'; this is the directory where pkg-config actually looks. * *.pc.in: Made the pkg-config scripts actually work. 2000-09-28 Havoc Pennington * pango/pango-tabs.c (pango_tab_array_new_with_positions): was pango_tab_array_new_with_defaults; apparently I didn't check in the modified version at work 2000-09-27 Havoc Pennington * pango/pango-tabs.c (pango_tab_array_get_tabs): Change to return allocated array. 2000-09-25 Havoc Pennington * pango/pango-layout.c: Add a tab array field to PangoLayout, and use it when laying out the text (if it's set, otherwise use default tabs-are-8-spaces thing) * pango/pango-tabs.c, pango/pango-tabs.h: tab-related data types Sun Sep 10 03:01:53 2000 Owen Taylor * pango/pango-layout.c (pango_layout_set_attributes): Fix bug where wrong attribute list was unreferenced. * pango/pango-attributes.[ch]: Add function pango_attr_list_splice() to splice contents of one attribute list into another attribute list. * pango/pango-utils.h: Add include of pango-font.h since it now depends on declarations from there. 2000-09-08 Jonathan Blandford * pango/pango-attributes.c (pango_attr_list_change): Minor fixes to Owen's patch below to make it work. * pango/pango-attributes.c (pango_attribute_copy): Copy the start_index/end_index explicitly rather then rely on the copy function doing it for you, as none did so. Thu Sep 7 05:12:09 2000 Owen Taylor * pango/pango-attributes.c (pango_attr_list_change): Fix up to match the docs, correct bugs found by Jonathan Blandford. 2000-09-04 Robert W Brady * modules/basic/tables-big.i: Use iso10646-1 fonts for Georgian, Ethiopic, Cherokee, Canadian, Ogham, Runic. Thu Aug 31 11:29:33 2000 Owen Taylor * tools/maps/tis-620: Check in this file, since it isn't from the Unicode consortium. Wed Aug 30 21:42:42 2000 Owen Taylor * configure.in (QTDIR): Add /usr/lib/qt-2.2.0 to the list. * modules/basic/tables-big.i: Updated using fixed make-table.sh. Added koi8-r and iso8859-1 * modules/basic/tables-small.i: Add note noting non-maintainence. * tools/make-table.sh: Fix for mapping tables with 3 columns provided by KUSANO Takayuki. 2000-08-29 Elliot Lee * pango/pango-context.h, pango/pango-font.h, pango/pango-fontmap.h, pango/pango-layout.h: Utilize G_GNUC_CONST Mon Aug 21 22:02:38 2000 Owen Taylor * pango/pango-context.c (load_font): Don't produce a warning unless loading all fonts fails, if loading all fonts fails, try with "Sans [style]", if that fails, try with "Sans", if that fails, exit - we are completely screwed. * pango/pangox-fontmap.c (pango_x_font_map_load_font): Equate PANGO_STYLE_OBLIQUE and PANGO_STYLE_ITALIC, but with a big penalty. 2000-08-21 Tor Lillqvist * pango/pangoft2-fontmap.c: Get font directory path with pango_config_key_get("PangoFT2/FontPath"). If no such key exists in the pangorc file, use the ft2fonts subdirectory of LIBDIR/pango, and on Windows, also %WinDir%\fonts. * pango/{pango,pangoft2,pangowin32}.rc.in: New files (resource files used when building Win32 DLLs, contain version information). * pango/Makefile.am: Add the new files. * configure.in: Define major and minor version numbers separately. Output also the makefile.mingw and *.rc files. * pango/pangoft2.c (pango_ft2_render): Handle also ft_pixel_mode_mono glyphs. * pango/pangoft2*: Portability enhancements (non-gcc). Sun Aug 20 13:45:08 2000 Owen Taylor * TODO.xml TODO: Move most all of the TODO items here to the XML file. This needs to be built using the Python script gtk+/docs/make-todo. 2000-08-20 Tor Lillqvist * pango/pango-utils.c (pango_parse_*): Add parameter telling whether to print warning or not if string isn't recognised. Use g_strncasecmp(). * pango/pango-utils.h: Change prototype accordingly. * pango/pangox-fontmap.c * pango/pangowin32-fontmap.c: Change calls correspondingly. * pango/pangowin32.h: * pango/pangowin32.c: Cosmetic changes, dead code removal. * pango/pangoft2.h * pango/pangoft2-private.h * pango/pangoft2.c * pango/pangoft2-fontmap.c * pango/pangoft2-fontcache.c: New files implementing a FreeType2 backend. Used only on Win32 so far, but doesn't contain Win32-specific code per se, so if somebody wants to try it out on X11, too, be my guest. It works, more or less, but there are some details still to sort out. Performance needs to be improved. Debugging printouts still present. Font path currently hardcoded to C:\windows\fonts, heh. Owen says he doesn't think it's a good idea to use ths on Win32, but I'll try anyway. If it turns out using the native Win32 GDI backend is better after all, oh well. * pango/makefile.mingw: Delete. Move contents to makefile.mingw.in. * pango/makefile.mingw.in: New file. Add rules for FreeType2 backend. Add FreeType2 CFLAGS and LIBS. * pango/Makefile.am: Generate makefile.mingw. (EXTRA_DIST): Add FreeType2 backend sources, and makefile.mingw{,.in} * pango/module-defs.c.win32 * pango/pangoft2.def: New files. * modules/engine.def: Delete. Was duplicate of module.def. * modules/basic/basic-win32.c: Couple of cosmetic changes. * modules/basic/Makefile.am: Generate makefile.mingw. (EXTRA_DIST): Add basic-ft2.c, and makefile.mingw{,.in} * modules/basic/makefile.mingw: Delete. Move contents to makefile.mingw.in. * modules/basic/makefile.mingw.in: New file. Add rule for basic-ft2. Add FreeType2 CFLAGS and LIBS. * examples/viewer-win32.c: Replace division or multiplication with 1000 (which was the old PANGO_SCALE value) to use PANGO_SCALE and PANGO_PIXELS instead. (read_file): Fix error messages. (draw): Get HDC from GDK once for all paragraphs. * examples/viewer-win32.c: * examples/viewer-ft2.c: New file. The FT_Bitmap (256-level bitmap) produced by the FreeType2 backend is copied to the GtkLayout window using gdk_draw_gray_image from GdkRGB (!). Yes, this is kinda circular dependency between Pango and GTK+. * examples/makefile.mingw: Delete. Move contents to makefile.mingw.in. * examples/makefile.mingw.in: New file. Add rules for viewer-ft2. Add FreeType2 CFLAGS and LIBS. * examples/Makefile.am: Generate makefile.mingw. (EXTRA_DIST): Add viewer-win32.c and viewer-ft2.c, and makefile.mingw{,.in} 2000-08-11 Havoc Pennington * pangox.pc.in (Cflags): remove /usr/include * pango.pc.in (Cflags): remove /usr/include 2000-08-08 Elliot Lee * modules/arabic/arabic.c: #include * pango/modules.c: Fix incorrect list rearrangement. * pango/pango-layout.c (pango_layout_line_x_to_index): Pay attention to shape attributes (not perfect since the layout of chars inside a shape is unknown, but gives start index). 2000-08-07 Elliot Lee * pango/modules.c: If the first pango_skip_space fails, remember to free enginepair before continuing. * pango/pango-layout.c (pango_layout_set_attributes): unref old attr list after reffing new one. * pango/pango-attributes.c (pango_attr_list_insert_internal): Proper fix from Owen for the infinite loop. 2000-08-03 Elliot Lee * pango/modules.c: Fix segfault when tmp_list has no 'prev' pointer. * pango/pango-attributes.c (pango_attr_list_insert_internal): Infinite loops do not fast programs make. * pango/pango-context.c: Set a default font size so that things don't go boom if someone forgets to set it themselves. * pango/pango-layout.c (pango_layout_index_to_pos): Exclude newlines from consideration. (pango_layout_line_index_to_x): Take shape attributes into consideration when determining position. Wed Aug 2 12:00:53 2000 Owen Taylor * pango/pango-layout.c (pango_layout_get_extents): Fix problem with the way extents for the layout lines were summed together in the vertical direction. Sat Jul 29 21:26:30 2000 Owen Taylor * examples/viewer-qt.[ch] (ViewerWindow): Remove hardcoded path to my home directory! Allow specifying the file on the command line. * pango/modules.c (process_module_file): Fix bug in parsing of range strings. 2000-07-31 Havoc Pennington * pango.pc.in, pangox.pc.in: pkg-config info files * Makefile.am: dist/install .pc files * configure.in: output .pc files 2000-07-28 Martin Baulig * pango/pango-layout.c (pango_layout_finalize): Destroy the layout->font_desc to avoid a memory leak. 2000-07-27 Tor Lillqvist * pango/pango.def * pango/pangowin32.def: New files, forgot to commit earlier. Sat Jul 22 10:52:06 2000 Owen Taylor * pango/pango-utils.c: include * configure.in: s/FRIBID_CONFIG/FRIBIDI_CONFIG/. Fri Jul 21 15:17:26 2000 Owen Taylor * pango/pango-context.c (pango_itemize): A bit of code cleanup. * pango/pango-attributes.[ch]: Add a new attribute type PangoAttrShape, for imposing specific shapes on glyphs. This is used for handling embedded pixmaps and similar objects. * pango/pango-layout.c: Hnadle PangoAttrShape. * pango/pango-context.[ch]: Fri Jul 21 09:59:10 2000 Owen Taylor * pango/modules.c (process_module_file): Free buffer strings. * pango/pangox-fontmap.c (pango_x_real_get_coverage_win): Add caching of coverage maps on a persistant subwindow of the root window. This window contains a property for each "lang|xlfd,xlfd" which is the result of pango_coverage_to_bytes. * pango/pango-context.c (pango_context_finalize): Free the font description. * pango/pango-coverage.c (pango_coverage_to/from_bytes): Added functions to covert a PangoCoverage structure too and from a flat block of bytes. * configure.in (X_LIBS): Add a check to detect fribidi being compiled against glib-1.2.x. 2000-07-20 Tor Lillqvist * examples/pangowin32.aliases: Add some more fonts. Document where to get the fonts. * pango/pangowin32.c (subfont_has_glyph): Use 0xFFFE to produce the default glyph. (create_bitmap_dibsection): Zero out the bitmap. * pango/pangowin32-fontmap.c (pango_win32_guess_subranges): Set some additional Unicode subranges for fonts that claim covering the Vietnamese codepage. 2000-07-19 Tor Lillqvist * configure.in: Don't try to use the ! command, not available in all systems. Move the ! inside the test instead. * pango-config.in: Change order of --cflags output, so that we can build with both GLib 1.2 and 1.3 installed. * modules/devanagari/dev-ligatures.h: No C++ comments, thanks. * pango/break.c: Fix gccism, non-constant initailiser. * pango/pango-fontmap.c (pango_font_map_list_fonts, pango_font_map_list_families): Don't return value from void functions. * pango/pango-utils.c: Must have at least empty statement after a label. * examples/pangowin32.aliases: Add Tahoma and Angsana New, these common fonts have Thai characters. * pango/pangowin32-private.h: Rename fonts and n_fonts members to logfonts and n_logfonts, as that is what they are. * pango/pangowin32.c: Bug fixes. Works much better now. (pango_win32_font_get_glyph_extents): Set y offset correctly. (subfont_has_glyph): Call SetTextAlign. Select the font into the HDC before calling GetTextMetrics. 2000-07-18 Tor Lillqvist * pango/Makefile.am (EXTRA_DIST): Add the pangowin32 sources. * pango/pangox.c (lang_texts): Add some non-ASCII to the Finnish and Swedish strings. * modules/module.def: New file. * modules/Makefile.am (EXTRA_DIST): Add it. * modules/basic/Makefile.am (EXTRA_DIST): Add basic-win32.c. * */makefile.mingw: Small updates. * pango/pangowin32.c * pango/pangowin32-fontmap.c * modules/basic/basic-win32.c * examples/viewer-win32.c: Bug fixes. Remove dead code. Now the Win32 implementation seems to work, except for a few glitches. 2000-07-16 Tor Lillqvist * pango/pango-utils.h * pango/pango-utils.c * pango/pangox-fontmap.c * pango/pangowin32-fontmap.c: Move the get_{style,variant, weight,stretch} functions to pango-utils.c, and rename them to pango_parse_*. Would otherwise be duplicated in pangox and angowin32. * pango/pango.def: Export them. * pango/pango-font.h: Add PANGO_WEIGHT_ULTRALIGHT, PANGO_WEIGHT_LIGHT, PANGO_WEIGHT_EXTRABOLD and PANGO_WEIGHT_HEAVY values to PangoWeight. * pango/pango-utils.c: Recognize the new weight strings. * pango/pangowin32.c (pango_win32_list_subfonts): Don't g_free the subfont_list from the subfonts_by_subrange hash table... * pango/pangowin32-fontmap.c (pango_win32_font_map_read_alias_file): Also set the other properties in the LOGFONT, not only the face name. (pango_win32_insert_font): Insert a pointer to a freshly allocated LOGFONT in the hash table, not the one passed in as a parameter, which could be (and in fact, *is*) a pointer to an auto variable. Quantize the description weight values to exact PANGO_WEIGHT_* values. (pango_win32_get_unknown_glyph): Use subfont 1. * examples/viewer-win32.c: (split_paragraphs): Don't include the newline. (draw): Correct 1st parameter to gdk_win32_hdc_{get,release}. 2000-07-15 Tor Lillqvist * pango/pangowin32.h * pango/pangowin32-private.h * pango/pangowin32-fontcache.c * pango/pangowin32-fontmap.c * pango/makefile.mingw * modules/basic/basic-win32.c * modules/basic/makefile.mingw * examples/viewer-win32.c * examples/makefile.mingw * examples/pangowin32.aliases: New files. Start of a Win32 implementation. Does not work yet. * configure.in: Chek for dirent.h and unistd.h. * pango/pango-utils.h * pango/pango-utils.c (pango_get_sysconf_subdirectory, pango_get_lib_subdirectory): New functions, for better portability, to enable installation-time choice of directory (on Windows) instead of compile-time. Use these instead of SYSCONFDIR "/pango" and LIBDIR "/pango". (pango_split_file_list): Fix comment, the function splits on searchpath separators, not commas. Use G_SEARCHPATH_SEPARATOR_S for portability. Don't try to expand '~' as home directory on Windows. (read_config): Use pango_get_sysconf_subdirectory(). * pango/modules.c (read_modules): Use pango_get_sysconf_subdirectory(). Don't crash if a module file cannot be opened. * pango/querymodules.c: Include config.h Conditionalize inclusion of dirent.h and unistd.h. Use platform-specific shared library extension. Use pango_get_lib_subdirectory(). Thu Jul 6 15:24:38 2000 Owen Taylor * Released 0.12 * examples/pangox.aliases: Add clealyu fonts * configure.in: Use AM_PATH_GLIB_2_0() * pango-config.in: Use @FRIBIDI_LIBS@, not -lfribidi * pango-config.in: Fix accidental inclusion -I lib/glib/include/ Mon Jul 10 10:42:42 2000 Owen Taylor * pango/pango-utils.c (pango_split_file_list): Fix bug in home directory substitution. 2000-07-06 Havoc Pennington * pango/break.c (pango_get_log_attrs): Implement this function, to get logical attributes without a PangoAnalysis. (pango_break): Fix bug in word stop location Thu Jul 6 15:24:38 2000 Owen Taylor * gdk/Makefile.am: Fix missing \ which was causing srcdir != builddir builds to fail. Thu Jul 6 15:16:28 2000 Owen Taylor * docs/pango-sections.txt docs/tmpl/*: Update 2000-07-03 Havoc Pennington * pango/pango-layout.c (pango_layout_index_to_pos): Handle the case where the byte offset is outside the layout. Sun Jul 2 18:06:01 2000 Owen Taylor * pango/pango-layout.c (get_tab_pos): Fix up set_font_description() for tab spaces. Sun Jul 2 17:59:56 2000 Owen Taylor * pango/pango-attributes.[ch] (pango_attr_list_insert_before): New function that inserts before other attributes with matching start index. * pango/pango-layout.[ch] (pango_layout_set_font_description): Add the ability to set a default font description on the layout, overriding the font description from the context. Sun Jul 2 17:19:11 2000 Owen Taylor * pango/pango-types.h: Add a PANGO_PIXELS macro to convert from pango units to device units and round. * pango/pango-layout.[ch]: Add convenience functions pango_layout_get_pixel_extents, pango_layout_get_size, pango_layout_get_pixel_size pango_layout_line_get_pixel_extents. Fri Jun 30 16:46:31 2000 Owen Taylor * pango/pango-utils.[ch] Makefile.am: A bunch of simple functions for reading from files, manipulating strings as necessary for config files. Also, a simple gnome-config/win.ini style config file reader. * pango/modules.c: Remove DOTFILES stuff. Instead, read names of modules file from pangorc. (Which can be set from PANGO_RC_FILE). Rewrite parsing code using pango-utils.c. * pango/pangox-fontmap.c: Read list of files from PangoX/AliasFiles key. Rewrite parsing code for alias files using pango-utils.c. * examples/pangox.aliases: Move to new name from pangox_aliases, reformat using new parsing code. * examples/pangorc (AliasFiles) examples/pango-viewer: Add a pangorc file for in-place testing. * pango/querymodules.c (main): Add comment to the top of the output indicating that the file should not be hand-edited. Thu Jun 29 18:13:47 2000 Owen Taylor * pango/pango-coverage.c: Fix various aspects of expanding coverage tables beyond the first 256 blocks. (Based on patch from ChiDeok Hwang.) Thu Jun 29 16:35:41 2000 Owen Taylor * modules/arabic/{*.c,Makefile.am}: New version from Karl Koehler merged with the changes for the GLib unicode functions. Wed Jun 21 12:11:56 2000 Owen Taylor * configure.in: Remove tests for libunicode * pango/utils.[ch]: Removed. The functions from here are now in GLib. * **.[ch]: Removed use of libunicode and utils.c in favor of Unicode functions in GLib. Requires latest GLib from CVS. 2000-06-14 Havoc Pennington * pango/pango-attributes.c (pango_attr_list_copy): Function to copy the attribute list. 2000-06-13 Havoc Pennington * pango/pango-layout.h: Convert PangoLayout to GObject * pango/pango-context.h: Convert to PangoContext to GObject 2000-06-11 Elliot Lee * pango/fonts.c (pango_font_description_compare): g_strcasecmp returns 0 when strings are equal - negate return value. 2000-06-09 Elliot Lee * pango/pango-coverage.[ch]: Return 'coverage' from pango_coverage_ref. 2000-06-08 Elliot Lee * modules/Makefile.am: Add DOTMODULESDIR define to make it easier to change location of .modules files. * pango/modules.c: Likewise. Also scan the config directory for multiple config files instead of pango.modules. Also fclose() opened files. Thu Jun 8 14:43:35 2000 Owen Taylor * pango/pango-modules.h: pango/Makefile.am: Add a new header pango-modules.h to export a few parts of the modules API needed by code for new types of fonts. 2000-06-08 Elliot Lee * pango-config.in: Include X_LIBS in libraries for 'pangox' target. 2000-06-07 Havoc Pennington * pango/pango-attributes.c (pango_attr_iterator_copy): New function to copy a PangoAttrIterator. Mon Jun 5 20:45:12 2000 Owen Taylor * pango/pangox-fontmap.c (pango_x_shutdown_display): Add a function to free cached information for a particular display. (This is basically pango_x_fontmap_destroy()) * pango/pangox.c pango/pangox-private.h pango/pangox-fontmap.c: Make a XFont always keep a pointer to (and ref) a fontmap. Mon Jun 5 15:56:25 2000 Owen Taylor * pango/pangox-fontmap.c (pango_x_font_map_for_display): Remove excessive ref. * pango/pangox-fontcache.c (pango_x_font_cache_unload): Fix problem with unloading fonts. * pango/pangox-fontmap.c pango/pangox-private.h pangox/pangox.c: Add a simple cache for PangoXFonts; get rid of the eternal caching of all fonts. Wed May 31 16:11:46 2000 Owen Taylor * pango/pango-fontmap.h (struct _PangoFontMapClass): Remove unused destroy vfunc. Sat Jun 3 06:01:38 Pablo Saratxaga * modules/thai/thai.c: added other common X11 font encoding names fortis-620 fonts. Thu Jun 1 13:04:06 CEST 2000 Paolo Molaro * configure.in: look for qt also in /usr/lib/qt2. Wed May 31 10:46:53 2000 Owen Taylor * configure.in: Release 0.11 * pango.spec.in: Add missing make command. * modules/basic/Makefile.am (EXTRA_DIST): Fix up extra-dist. * pango/Makefile.am (libpangox_la_SOURCES): Add pangox-private.h Tue May 30 14:30:24 2000 Owen Taylor * pango/fonts.c (pango_font_description_from_string): Use g_strtod(). * pango/fonts.c (pango_font_description_to_string): Fix bug where spaces where not properly inserted into font description string. * pango/fonts.c (pango_font_get_glyph_extents): Fix some 1000 <=> PANGO_SCALE bugs. * pango/pangox-fontcache.c (pango_x_font_cache_load): Fix list manipulation bug. Mon May 29 13:22:36 2000 Owen Taylor * pango/pangox.c pango/pangox.h (pango_x_font_subfont_xlfd): New function to retrieve the XLFD for a given subfont. Mon May 29 11:14:34 2000 Owen Taylor * pango/pangox-fontcache.c (pango_x_font_cache_load): Fix bug in MRU list code. * pango/pango-layout.c (pango_layout_check_lines): Fix infinite loop in the case where the first item doesn't fit, but whitespace follows that must go onto the same line. * examples/viewer-qt.h: Minor changes so it compiles with Qt-2.0. (Though the utf8 codec in Qt-2.0 seems to be slightly buggy.) Sun May 28 16:24:43 2000 Owen Taylor * examples/Makefile.am examples/viewer-qt.cc examples/viewer-qt.h: Since we require GLib-1.3, and thus can no longer build the examples against GTK+-1.2, and since there is a nasty circular dependency if we build examples against GTK+-1.3, rewrite (optional) example program in Qt. (I wasn't going to do it in Xaw or straight Xlib...) * configure.in: Added checks for Qt. * pango/pango-layout.h: Fix constness. Sat May 27 22:05:53 2000 Owen Taylor * pango/Makefile.am (pangoinclude_HEADERS): Install pango-fontmap.h. * pango/pangox-fontcache.c pango/pangox.h: Add a simple cache from XLFD => font struct. * pango/pango-fontmap.c: Use this when loading and unloading fonts. Sat May 27 21:57:03 2000 Owen Taylor * pango/pango-context.c (pango_context_add_font_map): Ref font map. Sat May 27 21:06:13 2000 Owen Taylor * modules/thai/thai.c modules/basic/basic: s/pango_font_set_data/g_object_set_qdata/ * pango/*.c: s/pango_font_[un]ref/g_object_un[ref] * pango/pango-font.h fonts.c: GObject'ify PangoFont. Sat May 27 20:36:56 2000 Owen Taylor * pango/Makefile.am configure.in: Add libgobject. * pango/pango-fontmap.[ch]: GObject'ify PangoFontMap. (Pango now requires GLib-1.3 to compile) * pango/pangox-fontmap.c pango/pangox-private.h: Break the fontmap code in libpangox out into a separate file. Tue May 23 10:32:25 2000 Owen Taylor * pango/pango-layout.c (pango_layout_set_text): Allow -1 for the length. 2000-05-24 Matt Wilson * modules/basic/basic.c (conv_8bit): use size_t for arguments to iconv, not int. Fixes 64 bit platforms. * modules/basic/basic.c (conv_euc): likewise Mon May 22 18:19:32 2000 Owen Taylor * pango/pango-layout.c (process_item): Fix <, <= confusion. Thu May 18 17:30:00 2000 Robert Brady * fonts/devnag18.bdf: Fix advance widths of some glyphs. Tue May 9 22:09:42 2000 Owen Taylor * pango/pango-types.h (PANGO_SCALE): Change PANGO_SCALE from 1000 to 1024. Wee! Optimization! Actual performance increase is ~1-2% probably not worth keeping it 1024, but I'll leave it this way for a little bit. * pango/pango-layout.c (pango_layout_unref): Free the actual layout structure as well. * pango/pangox.c: Various optimizations of the code for looking up characters. (mark a few functions inline, precompute signficiant quantities) Tue May 9 03:22:11 2000 Owen Taylor * pango/pango-layout.c (pango_layout_check_lines): Fix memory leak by freeing correct list. * pango/pango-context.c (pango_context_get_font_description): Change to return a pointer to the context's font description instead of a copy. Not quite 100% kosher but a lot more efficient than the previous. (Should we just refcount font descriptions and get it over with?) Mon May 8 16:39:48 2000 Owen Taylor * pango/pango-layout.c (free_run): Call pango_item_free to free items properly including attributes. Mon May 8 16:19:22 2000 Owen Taylor * modules/thai/* modules/Makefile.am configure.in: Add a simple Thai shaper. (Reasonably complete but intended mostly for an example for the shape docs right now.) * pango/pangox.h (PANGO_X_GLYPH_INDEX): Protect arguments to macros. Sun May 7 06:15:34 2000 Owen Taylor * modules/basic/basic.c (basic_engine_shape): When handling overstrikes, try to guess a bit better how overstrike glyphs are positioned in the font. (Now works with more of glyphs from clearlyu, though not the Hebrew accents in that font) * examples/HELLO.utf8: Insert tab characters to keep the columns in the right order for either global direction. Insert left-to-right marks in a few places to keep leading and trailing punctuation in the right place. * modules/basic/basic.c (basic_engine_shape): Don't show RLM and LRM * pango/glyphstring.c (pango_glyph_string_extents): Use the logical width set in the glyph string rather than that from the font's metrics. * pango/pangox.c (pango_x_render): Treat glyph index 0 as special - representing invisible, 0 size character. We need this sometimes, and it is easier and faster to have this special case than to shape a space. * pango/pango-context.c (pango_itemize): Put tabs into separate items. (Sort of lame hack, we do this to make line breaking with tab handling simpler) * examples/viewer.c (checkbutton_toggled): Notify all the layouts that the context has changed so the RTL base dir change actually takes effect. Fri May 5 18:56:45 2000 Owen Taylor * pango/break.c (pango_break): Add ZWS to hacky break algorithm. * modules/basic/basic.c (basic_engine_shape): Special case zero-width-space as a temporary hack. (What's the right solution?) * modules/basic/tables-big.i: Added support for TIS-620 encoding. * configure.in pango/modules.[ch] pango/Makefile.am modules/**: First stab at support for linking modules directly into Pango. Add a --with-included-modules= flag that causes the specified modules to be built as convenience libraries and linked directly into libpangox. Tue May 2 22:59:52 2000 Owen Taylor * modules/basic/basic.c: Get rid of link list of masks in cache structure in favor of an array. (This is easy to do now since we already have linear indices for the masks from the new table format.) * pango/modules.c pango/pango-context.c pango/pangox.c: Modify _pango_find_map() to take quarks for the engine type and render type instead of strings. Get rid of the map hash table in favor of a GList with the most recently used map at the beginning. * pango/modules.[ch] pango/pango-context.c pango/pangox.c: Add some utility functions for getting the engine for a particular character in a map. Using modules.c knowledge of map structure, this allows us to save a bunch of useless strcmps. * pango/pango-context.c (add_engines): Remove unused lookup of shape mask. * modules/basic/tables-{small,big}.i modules/basic/basic.c tools/compress-table.pl: Reencode mask table to avoid binary searches and save a bit of space. * modules/basic/basic.c (find_converter): Get rid of gratuitous use of hash tables for looking up iconv converters. * modules/basic/tables-{small,big}.i modules/basic/basic.c: Use conv_ucs4 instead of conv_8bit for latin-1. * pango/pango-layout.c: Avoid calling pango_glyph_string_extents() - just add up the widths from shaping. Tue May 2 19:16:17 PDT 2000 Manish Singh * examples/Makefile.am: typo fix Mon May 1 15:04:02 PDT 2000 Manish Singh * configure.in: add support for fribidi-config (needs fribidi v0.1.10 or higher). Also actually use the FOO_CONFIG variable filled by AC_PATH_PROG for --cflags and --libs. * examples/Makefile.am * pango/Makefile.am: use $(FRIBIDI_LIBS) Mon May 1 11:58:55 2000 Owen Taylor * modules/arabic/*: Misc bug fixes from Karl Koehler. Wed Apr 26 19:55:40 2000 Owen Taylor * configure.in: Add checks looking for iconv in libiconv. (Thanks to Ross Campbell for helping me test this out.) Mon Apr 24 22:51:06 2000 Owen Taylor * configure.in: Released 0.10 * modules/arabic/*: Update from Karl Koehler, including support for LangBox fonts Mon Apr 24 20:28:31 2000 Owen Taylor * docs/**: Updates for recent API changes. Mon Apr 24 18:09:29 2000 Owen Taylor * pango/pango-layout.c (pango_layout_line_get_empty_extents): Come up with a reasonable guess for metrics for empty lines based on the font metrics. * modules/devanagari/devanagari.c (devanagari_engine_shape): A couple of trivial fixups to make things compile. Sun Apr 23 23:33:10 2000 Owen Taylor * pango/pango-layout.c (pango_layout_move_cursor_visually): New function for visual (left-right, not forward-back) cursor navigation within a layout. Thu Apr 20 22:16:39 2000 Owen Taylor * pango/pango-layout.c (pango_layout_line_x_to_index): As a hack, for x-positions at the edge of a line, fudge the position to be one before the line end (which is, for programs that don't properly handle the trailing flag), instead of at the end of the line. This works fine for whitespace-broken languages, but won't work right for languages that don't use whitespace to break lines. (GtkText* needs to keep track of whether a cursor is trailing or not) * pango/pango-layout.c (pango_layout_check_lines): Prohibit breaking a line at a non-whitespace -> space transition. (So that we never put wrap single character of whitespace at the beginning of a line) * pango/break.c (pango_break): Always allow a break before the first char. * pango/pango-layout.c (pango_layout_line_x_to_index): Remove the return value from the function, make it return the appropriate index depending on the base direction of the layoutt. Fri Apr 7 03:08:09 2000 Owen Taylor * configure.in (UNICODE_LIBS): Add back in flockfile check which was accidentally removed. 2000-04-21 Robert Brady * modules/devanagari/dev-ligatures.h: Add some more ligature mappings. * modules/devanagari.c: New version, now syllable-based, with proper RA handling. Mon Apr 17 12:04:20 2000 Owen Taylor * pango/pango-layout.[ch]: Add a function pango_layout_line_get_x_ranges(), to allow handling selections not as attributes. Which is necessary, since currently setting the background/foreground results in splitting shaped runs. Fri Apr 14 13:20:05 2000 Owen Taylor * pango/pango-layout.c (pango_layout_check_lines): Fix bug with indent handling. * pango/pango-layout.c (process_item): Never break a line at a non-break position, even if that position ends an item. Fri Apr 14 10:43:09 2000 Owen Taylor * pango/pangox.c (pango_x_render_layout_line): Fix a missing PANGO_SCALE factor for UNDERLINE_SINGLE. * pango/pango-layout.c (pango_layout_get_cursor_pos): New function to determine cursor positions corresponding to a particular index. Wed Apr 12 15:44:22 2000 Owen Taylor * pango/pango-attributes.[ch]: Add PANGO_ATTR_FONT_DESC, which allows an entire font description to be specified as a single attribute, instead of as 6 separate attributes. Wed Apr 12 13:59:22 2000 Owen Taylor * configure.in modules/Makefile.am modules/devanagari/*: Added Devanagari shaper from Robert Brady * examples/HELLO.utf8: Added Hindi from Emacs * examples/dev-example.utf: Some syllable strings for testing the Devanagari shaper. * examples/pangox_aliases: Added -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev * fonts/devnag18.bdf fonts/devnag.README: Devanagari font from http://crl.NMSU.Edu/~mleisher/devnag.html currently required for operation of the devanagari shaper. Tue Apr 4 22:03:42 2000 Owen Taylor * configure.in: Released 0.9 * modules/arabic/arabic.c (find_unic_font): Keep on searching past the first iso-10646 font if the first font doesn't have the required ligatures. Tue Apr 4 20:56:29 2000 Owen Taylor * docs/tmpl/* docs/Makefile.am docs/pango-sections.txt pango/pango-attributes.c pango/pangox.c: Doc updates. Tue Apr 4 20:13:06 2000 Owen Taylor * pango/pango-context.h: Add user data to PangoContext * pango/pangox.[ch] examples/viewer.c: Rework system for create GC's so that the necessary information is stored on the PangoContext instead of being passed to layout_render() * pango/utils.[ch] pango/pango-context.c: fribidi-0.1.9 wants UCS-4 not UCS2; switch accordingly. * pango/fonts.c pango/pango-font.h pango/pangox.c: Add functions to get overall font metrics, possibly per-language. (Right now, just font ascent, descent.) The implementation of this for X is horribly complex. Mon Apr 3 20:30:20 2000 Owen Taylor * pango/mapping.c (pango_glyph_string_x_to_index): Fix handling of positions at character limits. * modules/basic/basic.c (basic_engine_shape): Fix bug that was causing mirrored characters not to mirror. Mon Apr 3 15:16:06 2000 Owen Taylor * pango/glyphstring.c (pango_glyph_string_get_logical_widths): Fix off-by-one error for RTL runs. * configure.in: Add -lglib to AC_CHECK_LIB(fribidi...) (How did this work?) From Matt Wilson. * pango/pango-layout.c (pango_layout_check_lines): Correctly deal with handling character offsets when breaking lines. * modules/arabic/arabic.c (arabic_engine_shape): Fix problem with setting unknown glyph when no arabic-capable font found. Fri Mar 31 11:29:47 2000 Owen Taylor * pango/pangox.[ch] (pango_x_render_layout[_line]) examples/viewer.c: Add capability to render foreground / background colors. The interfaces here are possibly certainly not right, or convenient, but they should be a start. Thu Mar 30 17:06:39 2000 Owen Taylor * modules/arabic/*.[ch]: New version of Arabic module from Karl Koehler, supporting: - More extensive ligatures - Some Hamza handling - Vowel marks - mule-arabic font - LangBox font - Persian (farsi) (needs testing) Thu Mar 30 16:49:06 2000 Owen Taylor * modules/basic/basic.c pango/utils.c (find_converter): Use "UTF-8" with the dash as the charset name for utf-8. (Change suggested by Adrian Havill ) * pango/pango-layout.[ch]: Add function to get logical attributes of the text string. Mon Mar 13 11:47:53 2000 Owen Taylor * pango/pango-layout.c pango/pangox.c (pango_x_render_layout): Handle right alignment for width == -1, align within total width of layout. Mon Mar 13 10:54:48 2000 Owen Taylor * pango/pango-item.[ch]: Memory management functions for PangoItem. * pango/*.[ch]: Random constification. * pango/pangox.c pango/pango-layout.c pango/pango-context.c: Add an extra_attrs field to PangoItem. Use this to handle underlining for PangoLayout. * examples/viewer.c (reload_font): Make paragraphs global to save the complexity of passing it around all over the place. * pango/pango-layout.[ch] (pango_layout_context_changed): Add a function to reset the layout on changes to the layout's context. * pango/pangox.c (pango_x_make_matching_xlfd): Prefer bitmap to scaleable if the discrepancy is < 1 pixel. (Probably not the ideal criterion.) * pango/pangox.c (pango_x_font_map_for_display): Fix resolution computation error. * pango/pango-layout.c (pango_layout_check_lines): Handle text with embedded newlines. * pango/pangox.c (pango_x_render_layout): Fix y to refer to the top of the layout, not the baseline of the first line. * pango/pango-layout.c (process_item): Don't wrap if width is set to -1. * Makefile.am configure.in **/*.[ch]: move libpango/ directory and fix all headers to install under include/pango/ Thu Mar 9 19:55:21 2000 Owen Taylor * Release pango-0.8 * docs/TEXT/coding-style: Added some notes about coding style within Pango. * modules/*.[ch]: New version from Karl Koehler adding support for vowels marks, better ligatures. * docs/tmpl/*: Doc updates * libpango/pango-layout.[ch] libpango/pangox/.[ch]: Add functions for handling paragraphs as 2-D objects, not simple lists of lines, to make things easier for people using pango-layout. * examples/viewer.c: Simplify using the now 2-D layout-capabable PangoLayout. * libpango/fonts.c (pango_font_{get_coverage,find_shaper}): Allow NULL language tag. * libpango/modules.c (_pango_find_map): Fix for allowing NULL language tag. Wed Mar 8 13:34:57 2000 Owen Taylor * libpango/pango-layout.[ch]: First draft of highlevel driver. It currently only handles a paragraph as a list of lines, but it is probably necessary to make it handle 2D layout for a paragraph as well * examples/viewer.c: Move over to new layout driver (much of the code moved into pango-layout.c) * libpango/glyphs.c libpango/pango-glyphs.h: Fixes to get_extents(), add pango_glyph_string_get_logical_widths. * libpango/pango-itemize.c: Handle 0-length text properly. * libpango/pangox.c: When loading particular sized fonts, use the original XLFD, since XFree86 doesn't handle wildcards in aliases properly. * libpango/pangox.[ch] (pango_x_render_layout_line): Add function to render an entire PangoLayoutLine. * libpango/reorder-items.c: Add a note to the effect that pango_reorder_items() is basically replaced by a similar function in PangoLayout. Wed Mar 8 10:58:56 2000 Owen Taylor * modules/arabic/arconv.c (shapecount): Fix from Karl Koehler to joining behavior. * modules/Makefile.am modules/arabic/*: Added arabic shaper from Karl Koehler * modules/basic/tables-{small,big}.i: Remove arabic from the ranges that the basic shaper marks as "exact". * examples/HELLO.utf8: Partially alphabetize, add arabic. Mon Mar 6 21:03:28 2000 Owen Taylor * libpango/pango-layout.[ch]: Started work on highlevel layout driver. Mon Mar 6 20:55:32 2000 Owen Taylor * libpango/mapping.c example/viewer.c: * modules/hangul/hangul.c modules/basic/basic.c modules/tamil/tamil.c: Convert log_clusters[] use from char offsets to byte offset - should make it easier to have all interface deal with stuff in byte offsets. * libpango/mapping.c libpango/pango-glyph.h: Rename x_to_cp and cp_to_x to make them "member functions" of glyph_string. * libpango/pango-types.h: Add a rectangle type for use in storing glyph/glyph-string extents, plus macros for extracting ascent/descent. * libpango/fonts.c libpango/pango-font.h libpango/pangox.c: Virtualize glyph extents function into the font. * libpango/pangox.c modules/*/*.c examples/viewer.c: Convert over to new rationalized unit system - everything in 1000ths of a point or 1000ths of a glyph unit. * libpango/pango-glyph.h libpango/glyphstring.c: Add function to get extents of a glyph string. (We may want to fastpath the width in the future, since getting the width seems to be a very common and time-critical operation) Mon Feb 28 19:46:35 2000 Owen Taylor * libpango/fonts.c libpango/pango-fonts.h: Add functions to convert font descriptions to and from human-readable strings. * examples/viewer.c: Use functions from libpango instead of rolling our own font-description conversion functions. Fri Feb 25 15:04:21 2000 Owen Taylor * libpango/{fonts.c,pango-font.h,pango-context.[ch],pangox.c, pango-attributes.c,examples/viewer.c: Add size to the font description structure instead of continually passing it around as an extra argument. * libpango/pangox.c: Take screen resolution into account when choosing fonts, instead of assumming point == pixel. Fri Feb 25 12:32:01 2000 Owen Taylor * configure.in examples/Makefile.am: If GTK+ test fails, just skip the example program. * pango-config.in pango.spec.in: Add a simple pango-config script to the build. (pango-config --libs pangox really should add the X libraries, but we'll omit that for the moment.) Sat Feb 19 18:51:35 2000 Owen Taylor * libpango/pangox.c (pango_x_make_matching_xlfd): Fix problem where charsets specified in alias files where being ignored and treated as wildcards. Sat Feb 19 17:46:49 2000 Owen Taylor * README: Fix Dov's name. Wed Feb 16 19:55:05 2000 Owen Taylor * configure.in: Release 0.7 * examples/Makefile.am (aliasdir): Install example pangox_aliases file. * examples/Makefile.am (bin_PROGRAMS): Install pango-viewer. * docs/tmpl/*: Updated templates. Wed Feb 16 16:39:46 2000 Owen Taylor * libpango/pango-coverage.c (pango_coverage_get): Make refcounted. * libpango/modules.c (struct _PangoEnginePair): Since we don't currently unload engines, cache loaded engines. (Not really quite satisfactory, but should work OK) * libpango/pango-context.c (pango_context_get_font_description): Added a global font description. * libpango/modules.c (_pango_find_map): Allow NULL language tags. * libpango/pango-context.c (pango_itemize) examples/viewer.c: Switch itemize over to take a PangoAttrList. * examples/viewer.c: Conform to changes in itemization interface * libpango/font.[ch]: Add a compare function for FontDescription * libpango/pango-attributes.[ch]: Change the iteration iterface to be more convenient. * libpango/pango-context.[ch]: Add the ability to set a default font. * libpango/pango-context.[ch]: Take the font for itemization from the attributes on the text. * libpango/pangox.c: Cache currently loaded fonts, and cache coverages. Tue Feb 15 02:35:56 2000 Owen Taylor * docs/**: Add documentation for attributes. * Makefile.am libpango/pango-attributes.[ch]: Finish initial implementation of attributes APIs. Mon Feb 14 22:04:38 2000 Owen Taylor * libpango/pango-attributes.[ch]: Start of attribute lists. Fri Feb 11 16:04:50 2000 Owen Taylor * libpango/Makefile.am: make dist fixups. * Makefile.am pango.spec.in: Add a spec file * examples/HELLO.utf8: Change Maltese to a different phrase to include some unique Maltese characters. (Suggestion from Steven R. Loomis) * libpango/Makefile.am modules/Makefile.am libpango/modules.c: Move pango.modules file to /var Thu Feb 10 23:45:49 2000 Owen Taylor * docs/**: Added recent API changes. * libpango/pango-context.c: Doc comment fixes * configure.in: Add in directories from unicode-config when running AC_CHECK_LIB on libunicode. Thu Feb 10 23:45:27 2000 Owen Taylor * configure.in: Up version to match 0.6 release that was made yesterday. * examples/viewer.c (main): Look for fixed if sans isn't found as an initial font. * modules/Makefile.am: Add an install rule to run pango-querymodules. * modules/*/Makefile.am (module_LTLIBRARIES): Set up appropriate install rules. * libpango/Makefile.am: Break the X code out into a separate library. Thu Feb 10 20:19:39 2000 Owen Taylor * examples/viewer.c: Fix some runtime and compile-time warnings. * modules/hangul/hangul.c (hangul_engine_shape): Shape the string with the unknown glyph rather than giving a warning when the font doesn't have any of the necesary charsets. Thu Feb 10 19:57:27 2000 Owen Taylor * examples/viewer.c: Add style selector, rewrite family selector to use list_families(). * libpango/pango-context.[ch] libpango/pango-font.h libpango/pangox.c libpango/fonts.c: Add calls to list families, modify list_fonts() call to take an optional "family" parameter for the purpose of listing the fonts within a family. Wed Feb 9 14:04:35 2000 Owen Taylor * TODO: updates. * docs/*: Added some docs on font handling, both general and for X. Tue Feb 8 15:05:17 2000 Owen Taylor * libpango/pangox.c: Moved the primary size and charset matching inside of Pango instead of on the font server. This allows us to do better matching, and only scale scaleable fonts, and not scale bitmaps. Also, match size and charset simultaneously, so that we can handle the cases where all sizes are not available in all charsets better. Mon Feb 7 20:27:35 2000 Owen Taylor * libpango/pangox.c (pango_x_names_for_size): Start at reworking code to do size and charset lookups simultaneously. twill compile once I get home. Mon Feb 7 16:49:32 2000 Owen Taylor * examples/viewer.c (make_families_menu): Switch the option menu for a combo box. * examples/pangox_aliases: Add a demo alias file. * libpango/pangox.c: Add a font-alias mechanism allowing. * examples/viewer.c (make_font_selector): Added a spin-button for size. Wed Feb 2 20:49:21 2000 Owen Taylor * libpango/pangox.c (pango_x_get_unknown_glyph): Add a call to get a glyph for unknown an unknown char. * modules/basic/basic.c: use pango_x_get_unknown_glyph. * libpango/utils.[ch] (_pango_guchar4_to_utf8): Added util function for coverting wide chars to utf8. * libpango/pangox.c (pango_x_font_get_coverage pango_x_font_get_shaper): Initial implementations. Wed Feb 2 11:12:12 2000 Owen Taylor * libpango/pango-types.h: Conditionally define G_N_ELEMENTS() when using glib-1.3. * modules/basic/basic.c modules/hangul/hangul.c modules/tamil/tamil.c: Replace MEMBERS() with G_N_ELEMENTS(). * libpango/pango-engine.h: Added a get_coverage() function to the PangoEngineShape vtable. * modules/basic/basic.c modules/hangul/hangul.c modules/tamil/tamil.c: Added get_coverage() functions. The basic.c one is incredibly inefficient (but caching may make that matter that much). The Hangul one needs checking. Wed Feb 2 00:07:13 2000 Owen Taylor * libpango/pango-*.h: The great header file reorganization. Split up roughtly by objects. * libpango/pango-font.h libpango/fonts.h: Add generic font-loading and listing interfaces. * libpango/pangox.c: Implement font-listing/loading interfaces for X. * libpango/pango-context.[ch]: Flesh out context structure. Add appropriate accesors, font loading-methods, etc. * libpango/pango-coverage.[ch]: Coverage map objects. * examples/viewer.c: First stab at adding font-selection. Majorly deficient for the moment until we add font lists and fallbacks based on coverage maps. Thu Jan 27 16:50:51 2000 Owen Taylor * docs/**: Updates to match recent API changes. Mon Jan 17 22:03:24 2000 Owen Taylor * modules/hangul/hangul.c modules/tamil/tamil.c: Updated to use new X font mechanism. * libpango/pangox.[ch]: Misc bugfixes, no longer segfaults. Mon Jan 17 18:29:39 2000 Owen Taylor * libpango/pangox.[ch] modules/basic/basic.c: back away from the strict charset model to having subfonts arbitrarily indexed. The charset-index model didn't allow proper fallbacks. Add a function pango_x_list_subfonts() function that lists subfonts in the proper order for a given list of charsets. (segfaults currently, will fix pronto) Sat Jan 15 03:17:35 2000 Owen Taylor * pango/glyphstring.c pango/mapping.c pango/pangox.c modules/basic.c examples/viewer.c: Switch GlyphStrings to have a single array of PangoGlyphInfo instead of multiple arrays. Rename PangoGlyphIndex to PangoGlyph. Sat Jan 15 01:06:45 2000 Owen Taylor * libpango/pangox.c libpango/pangox.h libpango/fonts.c libpango/glyphstring.c modules/basic/basic.c: Eliminate PangoCFont; For X, encode charset into upper 16 bits of 32 bit glyph IDs. Revise X core <=> module interfaces to support this change. Remove support for X_XLFD_FONT_RANGES, which has been disavowed by its proponents, in favor of checking metrics to figure out if the relevant characters are there. Rework operation of basic module to be faster and simple. * modules/Makefile.am: temporarily comment out Tamil and Hangul modules until I finish mucking with the X font interfaces. Fri Jan 14 12:08:43 2000 Owen Taylor * examples/HELLO.utf8: Add Pango properly spelled. * **/Makefile.am: make dist fixes. Thu Jan 13 17:49:45 2000 Owen Taylor * TODO: Updated. Thu Jan 13 16:57:22 2000 Owen Taylor * examples/viewer.c: reindented. * README: updated Wed Jan 12 16:49:03 2000 Owen Taylor * Huge rename from GScript to Pango. * modules/tamil/* examples/muru.utf fonts/tscakaram.pcf: Tamil module from Sivaraj Doddannan Mon Aug 2 18:32:59 1999 Owen Taylor * configure.in: Check for libunicode. * examples/viewer.c libgscript/break.c libgscript/itemize.c modules/basic/basic.c: Use libunicode functions for conversion. * modules/basic/basic.c: Add support for simple accent composition; fix bidi swapping to correctly swap clusters as a unit. 1999-07-26 * libgscript/mapping.c (g_script_cp_to_x): Fix buggy algorithm. 1999-07-31 Changwoo Ryu * modules/hangul/Makefile.am (EXTRA_DIST): Added tables-*.i files. 1999-07-29 Raja R Harinath * modules/hangul/Makefile.am (INCLUDES): Use -I$(top_srcdir)/libgscript. 1999-07-30 Changwoo Ryu * modules/hangul/*, Makefile.am, configure.in: Added the Hangul shaping module. Wed Jul 28 14:45:00 1999 Owen Taylor * Released version 0.4 Wed Jul 28 14:43:41 1999 Owen Taylor * libgscript/reorder-items.c: Return NULL correctly. * libgscript/mapping.c: Fixed buggy algorithm for cp to x. Fixed reversed interpolation for x to cp. Wed Jul 28 14:42:40 1999 Owen Taylor * libgscript/mapping.c: Fix bugs Thu Jul 22 09:36:08 1999 Owen Taylor * Released version 0.3 Wed Jul 21 18:46:14 1999 Owen Taylor * libgscript/gscriptx.c (g_script_x_extents): Fix same off-by-one bug here too... Wed Jul 21 18:44:55 1999 Owen Taylor * libgscript/gscriptx.c (g_script_x_glyph_extents): Fix an off-by-one error in computing indexes into the per-char information. Tue Jul 20 20:09:09 1999 Owen Taylor * docs/tmpl/engines.sgml: First pass at documenting engine interfaces. Tue Jul 20 16:10:48 1999 Owen Taylor * **: Documentation improvements. Tue Jul 20 15:05:45 1999 Owen Taylor * modules/basic/{basic.c,tables-{big,small}.i}: Rewrote basic module to support subset fonts meaningfully. This meant revising the algorithm used to look up a font for each character independently. Which required aggresive caching here and in the font code to give half-way decent performance. Added support for ISO-10646-1 fonts. * libgscript/fonts.c (g_script_font_[get/set]_data): Add the ability to add user data to a font. * libgscript/gscriptx.[ch]: Add functions to allow: - Querying all XLFD's matching a set of character sets for a font. - Loading a component font with a particular XLFD. - Finding the range of present characters for a given XLFD. Also added tons of caching. Wed Jul 14 19:11:41 1999 Owen Taylor * libgscript/gscriptx.c (g_script_x_glyph_extents): Fixed min/max confusion. Mon Jul 12 17:14:53 1999 Owen Taylor * docs/TEXT/glossary (CFont): Expanded. * libgscript/fonts.c (g_script_cfont_unref): Fixed leak. (Pointed out by Raph) * libgscript/gscriptx.c: Handle the case where fontstruct->per_char == NULL. Sun Jul 11 23:44:42 1999 Owen Taylor * Made version 0.2 * **/Makefile.am: Fixes for srcdir != builddir Sun Jul 11 23:41:19 1999 Owen Taylor * docs/tmpl/glyphs.sgml: SGML fix. Sun Jul 11 22:53:11 1999 Owen Taylor * libgscript/mapping.c: Implemented g_script_cp_to_x() and g_script_x_to_cp(). * examples/viewer.c: Added clicking on a character to identify it as a test of the above. * gscript/gscript.h gscript/gglyphstring.c modules/basic/basic.c: Add another field into the GGlyphString which holds a mapping from glyphs to logical clusters. * libgscript/gscript.h (struct _GScriptLangRange): Make it start-length like everything else, not start-end. Sun Jul 11 00:18:56 1999 Owen Taylor * docs/tmpl/gscript-x.sgml: Fix sgml error. Sat Jul 10 23:40:40 1999 Owen Taylor * modules/basic/basic.c: Added ability to use multibyte character sets. (Right now, they have to be converted by iconv into EUC encoding, but that can easily be extended). Added simply CJK support. This really bloats and slows down the module because the range-based encoding we use to map characters onto character-sets wasn't designed for CJK-style charsets. But it's better than nothing for now. * libgscript/reorder-items.c (reorder_items_recurse): Fix bug with variable initialization. * examples/viewer.c (draw): Compute line increments. * libgscript/gscriptx.c (g_script_x_[glyph]_extents): Added logical_ascent/descent parameters. * examples/viewer.c: Commented Sat Jul 10 04:35:10 1999 Owen Taylor * configure.in Makefile.am: automake'd and libtoolized. Sat Jul 10 00:00:00 1999 Owen Taylor * It renders! Start a ChangeLog