2008-03-16  Wu Yongwei  <wuyongwei@gmail.com>

	Rename init_linebreak_prop_index to init_linebreak for future
	safety; make visible certain functions that are potentially useful.
	* linebreak.c (init_linebreak_prop_index): Rename to init_linebreak.
	(get_next_char_t): Move to linebreakdef.h.
	(get_next_char_utf8): Make non-static.
	(get_next_char_utf16): Ditto.
	(get_next_char_utf32): Ditto.
	(set_linebreaks): Ditto.
	* linebreak.h (init_linebreak_prop_index): Rename to init_linebreak.
	(get_next_char_utf8): Add the function prototype.
	(get_next_char_utf16): Ditto.
	(get_next_char_utf32): Ditto.
	* linebreakdef.h (get_next_char_t): Add the typedef.
	(set_linebreaks): Add the function prototype.

2008-03-16  Wu Yongwei  <wuyongwei@gmail.com>

	* Makefile (OLDGCC): Add support for GCC 2.95.3 (when OLDGCC=Y).

2008-03-15  Wu Yongwei  <wuyongwei@gmail.com>

	* linebreak.c (set_linebreaks): Fix a bug that `==' was wrongly used
	for `='.

2008-03-05  Wu Yongwei  <wuyongwei@gmail.com>

	Improve the performance by reducing the look-ups of the
	language-specific line breaking properties array from the language
	name (thanks to Nikolay Pultsin).
	* linebreak.c (get_lb_prop_lang): New function.
	(get_char_lb_class_lang): Change the second parameter from the
	language name to the line breaking properties array.
	(set_linebreaks): Look up the language-specific line breaking
	properties array from the language name only once in one function
	call.

2008-03-03  Wu Yongwei  <wuyongwei@gmail.com>

	Make minor adjustments in code and comments.
	* linebreak.c: Adjust the doc comments.
	(init_linebreak_prop_index): Modify a conditional to make it more
	robust and consistent.
	* linebreakdef.c (lb_prop_lang_map): Replace the pointer
	lb_prop_default with NULL, since the value is never used.

2008-03-03  Wu Yongwei  <wuyongwei@gmail.com>

	Accelerate get_char_lb_class for invalid Unicode code points.
	* linebreak.c (get_char_lb_class): Adjust the conditionals so that
	getting the line breaking class for an invalid code point is much
	faster, which requires the array of line breaking properties be
	sorted.
	* linebreakdef.h: Adjust a comment that the array of line break
	properties must be sorted.

2008-03-02  Wu Yongwei  <wuyongwei@gmail.com>

	Change the values of enum BreakAction to more complete forms.
	* linebreak.c (INDRCT_BRK): Rename to INDIRECT_BRK.
	(CM_INDRCT_BRK): Rename to CM_INDIRECT_BRK.
	(CM_PROHIBTD_BRK): Rename to CM_PROHIBITED_BRK.
	(PROHIBTD_BRK): Rename to PROHIBITED_BRK.

2008-03-02  Wu Yongwei  <wuyongwei@gmail.com>

	Implement a two-stage search in get_char_lb_class_default to
	accelerate the overall performance, especially for non-Latin
	languages.
	* linebreak.c (LINEBREAK_INDEX_SIZE): New constant macro.
	(struct LineBreakPropertiesIndex): New struct.
	(lb_prop_index): New static variable.
	(init_linebreak_prop_index): New function.
	(get_char_lb_class_default): New function.
	(get_char_lb_class_lang): Use get_char_lb_class_default.
	* linebreak.h: Detect C++ and add extern "C" guard if necessary.
	(init_linebreak_prop_index): Add the prototype declaration.
	* linebreakdef.h: Adjust a comment.

2008-03-02  Wu Yongwei  <wuyongwei@gmail.com>

	Split/refactor the code; add (doc) comments.
	* Makefile (CFILES): Add linebreakdata.c and linebreakdef.c.
	* linebreak.c: Add and adjust comments.
	(linebreakdef.h): Add include file.
	(linebreakdata.c): Remove include file.
	(EOS): Remove (now in linebreakdef.h).
	(enum LineBreakClass): Ditto.
	(struct LineBreakProperties): Ditto.
	(lbpEnglish): Remove (now in linebreakdef.c as lb_prop_English).
	(lbpGerman): Remove (now in linebreakdef.c as lb_prop_German).
	(lbpSpanish): Remove (now in linebreakdef.c as lb_prop_Spanish).
	(lbpFrench): Remove (now in linebreakdef.c as lb_prop_French).
	(lbpRussian): Remove (now in linebreakdef.c as lb_prop_Russian).
	(lbpChinese): Remove (now in linebreakdef.c as lb_prop_Chinese).
	(struct LineBreakPropertiesLang): Remove (now in linebreakdef.h).
	(lbpLangs): Remove (now in linebreakdef.c as lb_prop_lang_map).
	(get_next_char_utf16): Make sure memory access not go beyond len.
	* linebreak.h: Add copyright information and adjust comments.
	(stddef.h): Add include file.
	* linebreakdata.c (linebreak.h): Add include file.
	(linebreakdef.h): Add include file.
	(lbpDefault): Make global and rename to lb_prop_default.
	* linebreakdata2.tmpl: Add two include files, a comment line, and
	remove `static'.
	* linebreakdef.c: New file.
	* linebreakdef.h: New file.

2008-02-26  Wu Yongwei  <wuyongwei@gmail.com>

	* linebreak.c (lbpSpanish): New array for Spanish-specific data.
	(lbpLangs): Update the index array for Spanish.
	(resolve_lb_class): Resolve AmbIguous class to IDeographic in
	Chinese, Japanese, and Korean.

2008-02-26  Wu Yongwei  <wuyongwei@gmail.com>

	* Makefile (LineBreak.txt): Add new rule to retrieve it from the Web
	if it is not already there.

2008-02-23  Wu Yongwei  <wuyongwei@gmail.com>

	Add files for linebreak.
	* LineBreak1.sed: New file.
	* LineBreak2.sed: New file.
	* Makefile: New file.
	* filter_dup.c: New file.
	* linebreak.c: New file.
	* linebreak.h: New file.
	* linebreakdata.c: New file.
	* linebreakdata1.tmpl: New file.
	* linebreakdata2.tmpl: New file.
	* linebreakdata3.tmpl: New file.
