2001-03-28 Roozbeh Pournader * bootstrap: swapped 'aclocal' and 'autoheader'. do not warn for missing COPYING. * COPYING: removed. * COPYING.LIB: added. * README, *.h, *.c, unidata/CreateGetType.pl: changes to reflect LGPL. * Makefile.am: added 'bootstrap' to distribution. 2001-03-28 Behdad Esfahbod * Makefile.am: New target "fribidi_tables.i" defined to download "unidata/BidiMirroring.txt" and "unidata/PropList.txt" if not available, and call "unidata/CreateGetType.pl" if needed to update "fribidi_tables.i". * fribidi_types.h, fribidi_types.c, fribidi_get_type.c, unidata/CreateGetType.pl: Define symbol MEM_OPTIMIZED added to make Dov happy :-), if MEM_OPTIMIZED defined, fribidi_tables.i entries will be guint8 instead of gint to free 27KB extra memory that was used to make fribidi use bitmasks, the overhead will be three array lookups instead of two, in fribidi_get_type(). * fribidi_main.c: Options --verbose and --basedir added. Options --test and --caprtl updated. * conformance/test_gen.c: File name changed to conformance/test_gen_explicit.c * run.tests: Make to work with "make test" and "make check" when making from other directories. * fribidi.c: Rule L1 ("Reset the embedding levels") moved from fribidi_log2vis() to fribidi_analyse_string(), to affect fribidi_log2vis_get_embedding_levels() too. New functions fribidi_mirroring_status() and fribidi_set_mirroring() added to turn on or off mirroring (Rule L3). Changed to warn about too long strings only if at least one of position_L_to_V_list or position_V_to_L_list is asked. * fribidi.h: Updated to reflect new functions in fribidi.c, #include "config.h" removed, and added to each .c file that use it, because config.h should not be included by other apps/libs. * fribidi.c, fribidi_main.c, fribidi_benchmark.c: #included "config.h", Now, --version options shows the options that library is compiled with (DEBUG, MEM_OPTIMIZED, USE_SIMPLE_MALLOC, FRIBIDI_USE_MINI_GLIB). * fribidi_types.h, fribidi.c, fribidi.h, fribidi_utils.c: TypeDefined FriBidiStrIndex as guint16 and used for the type of position_L_to_V_list and postition_V_to_L_list arrays. 2001-03-27 Roozbeh Pournader * fribidi.h: Removed definition of PACKAGE and VERSION. #included "config.h" * Makefile.am: Make "make dist" work. 2001-03-27 Behdad Esfahbod * fribidi.c, fribidi_types.h: Some bugs introduced in the last changes removed, "Resolving weak types" rewritten, no known conformance bugs. Defined macros for external use, changed their name to have a prefix of FRIBIDI_. * fribidi.c, fribidi.h: Function fribidi_remove_explicits() added to remove the explicit marks from a fribidi string. * fribidi.c: Fixed a bug that caused position_l_to_v and position_v_to_l not to calculated correctly. * fribidi.h: Defined symbols PACKAGE and VERSION manually, autoconf should set them, but I don't know how to. * fribidi_char_sets.c, fribidi_char_sets.h, fribidi_char_sets_*: Each charset moved to a pair of .c/.h file. CapRTL defined as a character set for testing with the reference implementation, with explicit marks escape strings, beware that it differs from the old capital rtl, it is a character set, only for test, with the property that contains all character types in ascii characters. Some functions defined to make charset conversion easy. An interface designed for adding new charsets. * fribidi_main.c: API revised, many new options added, Default charset changed to UTF-8 Option --caprtl simulates the old style (same as --charset CapRTL) Option --test simulates the old test_fribidi (same as --fill --showinput --clean) Option --clean now works for all charsets. Option --fill implementated. Options --version, --showinput, --ltov, --vtol, --levels, --changes, --novisual, --charsetdesc added. Now use the charset conventions, lots of code removed. * test_fribidi.c: Got removed! `fribidi --test' should be used instead. * fribidi_benchmark: Explicit support added, now benchmarks with two strings, one without explicit marks and one with them. * run.tests, tests/test-CapRTL, tests/test-CapRTL.reference, tests/test-explicit, tests/test-explicit.reference, tests/test-hebrew, tests/test-hebrew.reference: New test datas added, for better testing of weak types and explicit support. Test outputs updated for the new CapRTL character set. Test output for test-hebrew added. * Makefile.in, Makefile.am: Updated to use fribidi instead of test_fribidi for test targets. New files added. * TODO: Some done tasks removed, some new tasks added! 2001-03-09 Dov Grobgeld * fribidi_mini_glib.c, fribidi_mini_glib.h: Applied patch received from Dan Kenigsberg that allows compiling fribidi without glib if the flag FRIBIDI_USE_MINI_GLIB is turned on. This option is currently turned on when compiling through Makefile.noglib . * TODO: Added the task of making autoconf automatically turn on FRIBIDI_USE_MINI_GLIB if glib isn't found. 2001-03-07 Behdad Esfahbod * fribidi.c: Removed dead codes, many parts rewritten more efficient, including Resolving Neutrals, Resolving Implicit Levels and .... * fribidi_types.h: Almost redefined, to use bitfields for char types, and many macros defined for efficient querying about char types. Some unused char types removed, also char types L, R, N converted to LTR, RTL and ON everywhere. * CreateGetType.pl: Changed to define tables as arrays of FriBidiCharType instead of guchar. * conformance/: Updated some scripts for automatic testing with reference implementation. 2001-02-19 Behdad Esfahbod * fribidi.c: Added support for all explicit marks (embeddings and overrides), it means rules X1 .. X10 of specification. * fribidi.c: Added support for L1 rule of specification, it's resetting the char type of some characters, just before reordering. * fribidi.c: Added 'AL' to types that change the paragraph embedding level, it previously only checked for 'R'. * fribidi.c: Define symbol NO_STDIO changed to DEBUG, to turn on or off all debug codes compile time, also a function fribidi_set_debug, turns on and off the debug output generations in run time. * fribidi.c: Added some more debug information, all debug informations revised and go to stderr now. * fribidi.c: Fixed a bug in rule W5, that is when some european terminators are between some arabic letters and some european numbers. * fribidi_main.c: Added support for inputting explicit marks, in CapRTL charset mode. * fribidi_main.c: Added command line option for debug mode. * fribidi_main.c: Fixed a small bug that would annoy when the size of original string may be different to the derived one. * fribidi_main.c: Fixed a small bug in padding when the size of the out string was more than the page width. * fribidi_types.h: Added some types needed for debug info. 2001-02-19 Roozbeh Pournader * CreateGetType.pl: changed to use BidiMirroring.txt instead of UnicodeData.txt. 2000-11-12 Dov Grobgeld * Released fribidi-0.1.15. * fribidi.c: [OZ] Applied Owen Taylor's patch from 2000-07-19 to fribidi.c. The patch affects pp->prev rules for the last element in cases W3 and W7. * fribidi.c: [OZ] fribidi_log2vis() and fribidi_log2vis_get_embedding_levels() now check for len==0 and if so, they return immediately (instead of getting stuck). * fribidi.c: [OZ] new_type_link() is now declared as new_type_link(void) to prevent a compiler error message. * fribidi.c: [OZ] The positions of the is_v2l_map and len arguments in fribidi_map_range() prototype were switched around, to conform to actual use in the source code file. * fribidi.c: [OZ] The first argument to fribidi_is_char_rtl() was changed from gint8 to guint8, to conform to data type returned by fribidi_log2vis(). * fribidi.c: [OZ] bidi_string_strlen() now uses gint rather than int. * fribidi.c: [OZ] bidi_string_reverse() now uses gint rather than int. * fribidi.c: [OZ] int16_array_reverse() is now guint16_array_reverse(). * fribidi.c: Added define symbols NO_STDIO, FRIBIDI_MAX_STRING_LENGTH, USE_SIMPLE_MALLOC that may be used to effect what code is being generated. * fribidi_char_sets.h, fribidi_char_sets.c: Added Omer Zaks more general ut8 to unicode and unicode to ut8 functions. * fribidi.c: [OZ] Replaced int to gint to better support embedded libraries. * Applied lots of code contributed by Omer Zak detailed above. 2000-10-14 Dov Grobgeld * Released fribidi-0.1.14. * CreateGetType.pl, fribidi_tables.i: Applied a patch received from Roozbeh Pournader (who has got quite some courage sending an email from Iran to Israel) which updates the character tables according to UnicodeData-3.0.1.txt . * fribidi_char_sets.c: Cleaned up the mess and made it compile! 2000-10-09 Dov Grobgeld * Released fribidi-0.1.13 . * acinclude.m4: Added file including a m4 macro for glib-2.0 as suggested by Owen Taylor. * Makefile.am: Added acinclude.m4 to extra sources. * configure.in: Changed it to use new macro. 2000-05-19 Dov Grobgeld * fribidi_char_sets.c: Added support for the LRM and RLM characters for the iso-8859-8 converts at unused positions 0xFE and 0xFF . * CreateGetType.pl, fribidi.c, fribidi_tables.i, fribidi_types.h: Updated the algorithms to be consistance with the latest Unicode Technical Report #9 release. Still no explicit overrides, but hopefully the implicit algorithm now works according to the specification. * CreateGetType.pl, fribidi_tables.i: Overwrote the character bidi-assignment of all non-assigned characters within blocks with the property of the previous character in order to create a few more reused secondary lookup character tables. * CreateGetType.pl, fribidi.c, fribidi_tables.i: Added Owen Taylor's speed patch that speeds up fribidi by a factor of 4! Owen's patch consists of two parts. The first part is a double table lookup scheme for accessing the character properties, replacing the old binary search. The second part is a reuse of the links in the character properties linked list in order to minimize mallocs. 2000-05-02 Dov Grobgeld * Released fribidi-0.1.11 . * Fixed one remaining bug in Makefile.am. 2000-04-27 Dov Grobgeld * Released fribidi-0.1.10 . * Added libtool configuration added by Manish Singh. * Added sevaral arabic charset converts contributed by Pablo Saratxaga. 2000-03-20 Dov Grobgeld * Released fribidi-0.1.9 . 2000-02-22 Dov Grobgeld * fribidi_types.h: Changed basic type FriBidiChar to guint32 which corresponds to UCS4, which is more reasonable to use. 2000-02-21 Dov Grobgeld * tests/test-capital-rtl: Added new tests to check percentage signs and updated tests.reference to reflect this. * fribidi.c(fribidi_analyse_string): Added the rule EN,ET=>EN,EN which takes care of the problem of percentage signs were put in the wrong place. 2000-02-20 Dov Grobgeld * fribidi.c: Fixed several memory leaks found by Owen Taylor. 2000-01-01 Dov Grobgeld * Added documentation of the utility functions to fribidi.h . 1999-12-24 Dov Grobgeld * Added new function fribidi_is_char_rtl() that uses the embedding levels or the base dir to determine the resolved direction of a character. * Added new function fribidi_xpos_resolve() to fribidi_utils that is needed in an gui interaction to resolve a mouse event to the proper logical and visual positions. 1999-12-21 Dov Grobgeld * Added patches for UTF8 support contributed by raphael@cs.uky.edu. 1999-12-05 Dov Grobgeld * Added two new types FRIBIDI_TYPE_WL and FRIBIDI_TYPE_WR that indicate weak directions. These directions are used if no strong direction is found in the string. * Changed analyse_string() to return base_type FRIBIDI_TYPE_N if the base direction cannot be determined. It is then up to a higher level protocol to determine the base direction. 1999-11-22 Dov Grobgeld * Released version 0.1.7. * Added arabic support contributed by Pablo Saratxaga. 1999-06-20 Dov Grobgeld * Created file fribidi_utils.c which will be used for common patterns that are common in Bidi supported programs. 1999-04-28 Dov Grobgeld * Fixed bug in fribidi_log2vis which occured if only the v2l array was requested and not the l2v array. * Fixed bug in test_fribidi when using option test_vtol . * Changed types in call to fribidi_log2vis to be more memory conservative. * Added single character translation functions to fribidi_char_sets. 1999-04-10 Dov Grobgeld * Changed building to use glib-config as glib-1.2 is now released. * Added some short cut optimizations. * Cleaned up the TYPE_RULE_C macro and used in in lots of places. 1999-02-09 Dov Grobgeld * Added ./ to the execution of test_fribidi in run.tests. 1999-02-08 Dov Grobgeld * Released 0.1.3 to match the perl module FriBidi. * Added length paramater to fribidi_unicode_to_iso8859_8(). * Fixed bug in fribidi.c related to zero length strings. * Released 0.1.2. * Added options -ltr and -rtl to fribidi to force LTR and RTL directions. * Added function fribidi_log2vis_get_embedding_levels() which just returns an array of embedding levels. * Added benchmark program. * Added new check in test_fribidi that checks the changes calculation. * Changed interface to fribidi_log2vis() to include length of string on input and the embedding level of output. * Added function fribidi_find_string_changes() which finds the bounding box of the changes between two FriBidiStrings. 1999-01-19 Dov Grobgeld * Added the option -bol to fribidi_main.c to print out stuff in the beginning of a line. 1999-01-14 Dov Grobgeld * Released version 0.1.1 * Added program fribidi as a command line interface to the library. 1999-01-13 Dov Grobgeld * Added flag -nopad to test_fribidi to make it not insert spaces. * Make P1 rules (ES and CS) work only if the span of the ES or the CS is 1. This is the same as in Hebrew Windoze. * Replaced all the ET rules with the simpler ET,EN=>EN,EN * Added `gtk-config --cflags` and `gtk-config -ldflags` to Makefile.am. * Made test_fribidi read from stdin if no file given. * Added options -outputonly to test_fribidi . 1999-01-11 Dov Grobgeld * First Release!