summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorbehdad <behdad>2004-04-25 18:47:56 +0000
committerbehdad <behdad>2004-04-25 18:47:56 +0000
commit63d12e574eb5cfe95290b303bac0950c25afe397 (patch)
tree2757438976050621d3b23a75d3405303594c2d54 /README
Initial revision
Diffstat (limited to 'README')
-rw-r--r--README152
1 files changed, 152 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..d3b8554
--- /dev/null
+++ b/README
@@ -0,0 +1,152 @@
+This is GNU FriBidi
+The Free Implementation of the Unicode Bidirectional Algorithm.
+
+Background
+==========
+
+One of the missing links stopping the penetration of free software in Middle
+East is the lack of support for the Arabic and Hebrew alphabets. In order to
+have proper Arabic and Hebrew support, the BiDi algorithm should have been
+implemented. It is our hope that this library will stimulate more free
+software in the Middle Eastern countries.
+
+Audience
+========
+
+It is our hope that this library will stimulate the implementation of Hebrew
+and Arabic in lots of free software. Here is a small list of projects that
+would benefit from the use of the GNU FriBidi library, but of course there are
+many more: Wine, Mozilla, Qt, KDE, lynx, OpenOffice.
+
+GNU FriBidi is already being used in projects like Pango (resulting in GTK+
+and GNOME using GNU FriBidi), AbiWord, MLTerm, MPlayer, and BiCon.
+
+Dependencies
+============
+
+Currently GNU FriBidi does not depend on any other library. It uses GNU Build
+System for build and installation on POSIX systems. There are some files to
+assist you creating a w32 DLL in the w32/ folder.
+
+Downloading
+===========
+
+The latest version of GNU FriBidi may be found at:
+
+ http://www.freedesktop.org/Software/FriBidi
+
+Building
+========
+
+See INSTALL for a description of how to build and install this library.
+
+License
+=========
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this library, in a file named COPYING; if not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA 02111-1307 USA
+
+Implementation
+==============
+
+The library implements the algorithm described in the "Unicode Standard
+Annex #9, The Bidirectional Algorithm", available at
+http://www.unicode.org/unicode/reports/tr9/. GNU Fribidi has been tested
+exhaustively against the Unicode Reference Code, and to the best of our
+knowledge, it completely conforms to the specification, always producing
+the same result as the Reference Code.
+
+The library uses Unicode (UTF32) entirely. The character properties are
+automatically extracted from the Unicode data files, available from:
+
+ http://www.unicode.org/Public/UNIDATA/
+
+This means that every Unicode character is treated in strict accordance
+with the Unicode specification.
+
+There is a limited support for character set conversion from/to the UTF32
+encoding. Data in these character sets must be converted into UTF32 before
+the library may be used. iconv(3) can always do a better job on that, so you
+may find that the character sets conversion code is typically turned off on
+POSIX machines.
+
+The reordering of characters is typically done through the function:
+
+ fribidi_boolean
+ fribidi_log2vis(/* input */
+ FriBidiChar *str,
+ FriBidiStrIndex len,
+ FriBidiCharType *pbase_dir,
+ /* output */
+ FriBidiChar *visual_str,
+ FriBidiStrIndex *position_L_to_V_list,
+ FriBidiStrIndex *position_V_to_L_list,
+ FriBidiLevel *embedding_level_list
+ )
+
+
+where
+ str is the Unicode input string
+ len is the length of the unicode string
+ pbase_dir is the input and output base direction. If
+ base == FRIBIDI_TYPE_ON then fribidi_log2vis
+ calculates the base direction on its own
+ according to the BiDi algorithm.
+ visual_str The reordered output unicode string.
+ position_L_to_V_list Maps the positions in the logical string to
+ positions in the visual string.
+ position_V_to_L_list Maps the positions in the visual string to
+ the positions in the logical string.
+ embedding_level_list Returns the classification of each character. Even
+ levels indicate LTR characters, and odd levels
+ indicate RTL characters. The main use of this
+ list is in interactive applications when the
+ embedding e.g. level determines cursor display.
+
+In any of the output pointers == NULL, then that information is not
+calculated.
+
+How it looks like
+=================
+
+Have a look at tests directory, to see some input and outputs, which
+CapRTL charset means that CAPITAL letters are right to left, and digits
+6, 7, 8, 9 are Arabic digits, try 'fribidi --charsetdesc CapRTL' for the
+full description.
+
+Executable
+==========
+
+There is also a command-line utilitity called fribidi that loops over
+the text of a file and performs the BiDi algorithm on each line, also
+used for testing the algorithm. Run fribidi with the --help option to
+learn about usage. The command-line utility is known to have problems
+with line-breaking and ltov/vtol lists.
+
+Bugs and comments
+=================
+
+Report GNU FriBidi bugs at:
+
+ http://freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi?product=FriBidi
+
+And send your comments to:
+
+ fribidi-discuss@lists.sourceforge.net
+
+
+Behdad Esfahbod
+behdad@gnu.org
+10 April 2004