Skip to content

Commit

Permalink
Added Unicode 6.3 support (and beyond)
Browse files Browse the repository at this point in the history
- N0 support
- Isolate character support (LRI, RLI, FSI)
- Added test program test.c by Behdad that tests BidiTest.txt
  compliance.
- Added test program test-character.c that tests BidiCharacterTest.txt
  compliance.
  • Loading branch information
dov committed Aug 1, 2017
1 parent 654e3f3 commit f20b648
Show file tree
Hide file tree
Showing 71 changed files with 2,494 additions and 212 deletions.
5 changes: 5 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
Overview of changes between 0.19.6 and 0.19.8
=============================================
* Full isolate and parenthesis support as per Unicode 6.3
* This version is not backwards compatible.

This comment has been minimized.

Copy link
@orivej

orivej Dec 16, 2017

Typo: 0.19.6 should be 0.19.7.

Is the current master only binary incompatible with 0.19.7 (and it is enough to recompile dependent projects), or there are source level incompatibilities (and the source code of dependent projects has to be changed)?


Overview of changes between 0.19.6 and 0.19.7
=============================================
* Disable thread-unsafe memory pool by default. (bug #79385)
Expand Down
2 changes: 1 addition & 1 deletion README
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ along with GNU FriBidi, in a file named COPYING; if not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301 USA

For licensing issues, contact <license@farsiweb.info>.
For licensing issues, contact <fribidi.license@gmail.com>.

Implementation
==============
Expand Down
12 changes: 8 additions & 4 deletions THANKS
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,20 @@ Thanks to:
Behnam Esfahbod <behnam@esfahbod.info>
* Testing and auditing code.

Dov Grobgeld <dov.grobgeld@gmail.com>
* Initial author, maintainer before the 0.9 releases. Implementation
of the BiDi algorithms changes in Unicode 6.3.

Behdad Esfahbod <behdad@behdad.org>
* Maintainer. Author of the entire 0.9 release series up to Unicode 6.3
support.

And for the previous versions of FriBidi (pre 2002), thanks to:

And for the previous versions of FriBidi (pre 2002), thanks to:

Tomas Frydrych <tomas@frydrych.uklinux.net>
* Contirbuted patches for compiling GNU FriBidi under other OSes.

Dov Grobgeld <dov.grobgeld@gmail.com>
* Initial author, and maintainer before the 0.9 releases.

Franck Portaneri
* For the Mozilla BiDi languges support document;

Expand Down
2 changes: 1 addition & 1 deletion bin/fribidi-benchmark.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#include <common.h>
Expand Down
2 changes: 1 addition & 1 deletion bin/fribidi-main.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#include <common.h>
Expand Down
38 changes: 33 additions & 5 deletions charset/fribidi-char-sets-cap-rtl.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#include <common.h>
Expand Down Expand Up @@ -64,7 +64,7 @@ enum
static FriBidiCharType CapRTLCharTypes[] = {
/* *INDENT-OFF* */
ON, ON, ON, ON, LTR,RTL,ON, ON, ON, ON, ON, ON, ON, BS, RLO,RLE, /* 00-0f */
LRO,LRE,PDF,WS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, /* 10-1f */
LRO,LRE,PDF,WS, LRI, RLI, FSI, PDI, ON, ON, ON, ON, ON, ON, ON, ON, /* 10-1f */
WS, ON, ON, ON, ET, ON, ON, ON, ON, ON, ON, ET, CS, ON, ES, ES, /* 20-2f */
EN, EN, EN, EN, EN, EN, AN, AN, AN, AN, CS, ON, ON, ON, ON, ON, /* 30-3f */
RTL,AL, AL, AL, AL, AL, AL, RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL, /* 40-4f */
Expand Down Expand Up @@ -216,6 +216,18 @@ fribidi_cap_rtl_to_unicode (
case 'R':
us[j++] = FRIBIDI_CHAR_RLO;
break;
case 'i':
us[j++] = FRIBIDI_CHAR_LRI;
break;
case 'y':
us[j++] = FRIBIDI_CHAR_RLI;
break;
case 'f':
us[j++] = FRIBIDI_CHAR_FSI;
break;
case 'I':
us[j++] = FRIBIDI_CHAR_PDI;
break;
case '_':
us[j++] = '_';
break;
Expand Down Expand Up @@ -248,8 +260,9 @@ fribidi_unicode_to_cap_rtl (
for (i = 0; i < len; i++)
{
FriBidiChar ch = us[i];
if (!FRIBIDI_IS_EXPLICIT (fribidi_get_bidi_type (ch)) && ch != '_'
&& ch != FRIBIDI_CHAR_LRM && ch != FRIBIDI_CHAR_RLM)
if (!FRIBIDI_IS_EXPLICIT (fribidi_get_bidi_type (ch))
&& !FRIBIDI_IS_ISOLATE (fribidi_get_bidi_type (ch))
&& ch != '_' && ch != FRIBIDI_CHAR_LRM && ch != FRIBIDI_CHAR_RLM)
s[j++] = fribidi_unicode_to_cap_rtl_c (ch);
else
{
Expand Down Expand Up @@ -277,6 +290,18 @@ fribidi_unicode_to_cap_rtl (
case FRIBIDI_CHAR_RLO:
s[j++] = 'R';
break;
case FRIBIDI_CHAR_LRI:
s[j++] = 'i';
break;
case FRIBIDI_CHAR_RLI:
s[j++] = 'y';
break;
case FRIBIDI_CHAR_FSI:
s[j++] = 'f';
break;
case FRIBIDI_CHAR_PDI:
s[j++] = 'I';
break;
case '_':
s[j++] = '_';
break;
Expand Down Expand Up @@ -333,7 +358,10 @@ fribidi_char_set_desc_cap_rtl (
" * _> LRM\n" " * _< RLM\n"
" * _l LRE\n" " * _r RLE\n"
" * _L LRO\n" " * _R RLO\n"
" * _o PDF\n" " * __ `_' itself\n" "\n");
" * _o PDF\n" " * _i LRI\n"
" * _y RLI\n" " * _f FSI\n"
" * _I PDI\n" " * __ `_' itself\n"
"\n");
return s;
}

Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-cap-rtl.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#ifndef _FRIBIDI_CHAR_SETS_CAP_RTL_H
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-cp1255.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#include <common.h>
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-cp1255.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#ifndef _FRIBIDI_CHAR_SETS_CP1255_H
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-cp1256.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#include <common.h>
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-cp1256.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#ifndef _FRIBIDI_CHAR_SETS_CP1256_H
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-iso8859-6.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#include <common.h>
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-iso8859-6.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#ifndef _FRIBIDI_CHAR_SETS_ISO8859_6_H
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-iso8859-8.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#include <common.h>
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-iso8859-8.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#ifndef _FRIBIDI_CHAR_SETS_ISO8859_8_H
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-list.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/
/* *INDENT-OFF* */

Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-utf8.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#include <common.h>
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets-utf8.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#ifndef _FRIBIDI_CHAR_SETS_UTF8_H
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/

#include <common.h>
Expand Down
2 changes: 1 addition & 1 deletion charset/fribidi-char-sets.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA
*
* For licensing issues, contact <license@farsiweb.info>.
* For licensing issues, contact <fribidi.license@gmail.com>.
*/
#ifndef _FRIBIDI_CHAR_SETS_H
#define _FRIBIDI_CHAR_SETS_H
Expand Down
11 changes: 6 additions & 5 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ dnl FRIBIDI_BINARY_AGE = FRIBIDI_INTERFACE_AGE = 0;
dnl
m4_define(fribidi_major_version, 0)dnl
m4_define(fribidi_minor_version, 19)dnl
m4_define(fribidi_micro_version, 7)dnl
m4_define(fribidi_interface_version, 3)dnl
m4_define(fribidi_interface_age, 6)dnl
m4_define(fribidi_binary_age, 3)dnl
m4_define(fribidi_micro_version, 8)dnl
m4_define(fribidi_interface_version, 4)dnl
m4_define(fribidi_interface_age, 0)dnl
m4_define(fribidi_binary_age, 0)dnl
dnl
m4_define(fribidi_version,
m4_if(m4_eval(fribidi_micro_version()),0,
Expand Down Expand Up @@ -213,5 +213,6 @@ AC_CONFIG_FILES([fribidi.pc
lib/Makefile
bin/Makefile
doc/Makefile
test/Makefile])
test/Makefile
fribidi-vs-unicode/Makefile])
AC_OUTPUT
3 changes: 1 addition & 2 deletions doc/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,7 @@ man3 = $(dist_man_MANS) $(dist_noinst_MANS)
C2MANFLAGS = $(includepath) \
-D__FRIBIDI_DOC \
-DDONT_HAVE_FRIBIDI_CONFIG_H \
-M "Programmer's Manual" \
-m "$(PACKAGE_NAME) $(PACKAGE_VERSION)"
-M "Programmer's Manual"

VPATH += $(includevpath)

Expand Down
27 changes: 27 additions & 0 deletions fribidi-vs-unicode/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@

TESTS_ENVIRONMENT = \
srcdir=${srcdir}; export srcdir; \
top_builddir=${top_builddir}; export top_builddir; \
EXEEXT=${EXEEXT}; export EXEEXT;

AM_TESTS_ENVIRONMENT = $(TESTS_ENVIRONMENT)

AM_CPPFLAGS = \
-I$(top_builddir)/lib \
-I$(top_srcdir)/lib \
-I$(top_srcdir)/charset \
$(MISC_CFLAGS)
LDADD = $(top_builddir)/lib/libfribidi.la $(MISC_LIBS)

if FRIBIDI_USE_GLIB
check_PROGRAMS = test test-character
bin_PROGRAMS = $(check_PROGRAMS)
#TESTS = \
# test \
# test-character
endif

test_SOURCES = test.c
test_character_SOURCES = test-character.c

-include $(top_srcdir)/git.mk
Loading

0 comments on commit f20b648

Please sign in to comment.