From: samsung Date: Tue, 6 Apr 2010 07:46:50 +0000 (+0530) Subject: Modified control file and MAkefile X-Git-Tag: submit/master/20120920.151126~37 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1a62d9369d9a122853ecfe8595960e173ff3dc63;p=framework%2Fuifw%2Fharfbuzz.git Modified control file and MAkefile --- diff --git a/harfbuzz-0.1/build-stamp b/harfbuzz-0.1/build-stamp old mode 100644 new mode 100755 diff --git a/harfbuzz-0.1/config.guess b/harfbuzz-0.1/config.guess old mode 100644 new mode 100755 diff --git a/harfbuzz-0.1/config.guess11 b/harfbuzz-0.1/config.guess11 old mode 100644 new mode 100755 diff --git a/harfbuzz-0.1/config.sub b/harfbuzz-0.1/config.sub old mode 100644 new mode 100755 diff --git a/harfbuzz-0.1/debian/changelog b/harfbuzz-0.1/debian/changelog index 6fe6ef1..9c6f930 100755 --- a/harfbuzz-0.1/debian/changelog +++ b/harfbuzz-0.1/debian/changelog @@ -1,5 +1,35 @@ -libharfbuzz (0.1) unstable; urgency=low +harfbuzz (0.4.0-1slp2+3) unstable; urgency=low + + * Modified makefile and install file + + -- Janani Tue, 06 Apr 2010 13:11:30 +0530 + +harfbuzz (0.4.0-1slp2+2) unstable; urgency=low + + * Package name changed + + -- Janani Fri, 26 Mar 2010 14:18:04 +0530 + +harfbuzz (0.4.0-1slp2+1) unstable; urgency=low + + * Repackaging + + -- Janani Fri, 26 Mar 2010 10:14:37 +0530 + +harfbuzz (0.3) unstable; urgency=low + + * Email ID corrected + + -- Janani Wed, 17 Mar 2010 16:00:07 +0530 + +harfbuzz (0.2) unstable; urgency=low + + * Owner Changed + + -- Janani Mon, 15 Mar 2010 16:57:26 +0530 + +harfbuzz (0.1) unstable; urgency=low * Initial Release. - -- prameet Fri, 05 Mar 2010 10:49:10 +0530 + -- Janani Fri, 05 Mar 2010 10:49:10 +0530 diff --git a/harfbuzz-0.1/debian/control b/harfbuzz-0.1/debian/control index 8fac55f..6b3a4ab 100755 --- a/harfbuzz-0.1/debian/control +++ b/harfbuzz-0.1/debian/control @@ -1,19 +1,25 @@ -Source: libharfbuzz +Source: harfbuzz Section: libs Priority: optional -Maintainer: prameet , Janani K +Maintainer: janani +Uploaders: Janani , Jihoon Kim Build-Depends: debhelper (>= 5),libfreetype6-dev, pkg-config Standards-Version: 3.7.2 Package: libharfbuzz -Architecture: armel +Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Hindi Reshaping Library Package: libharfbuzz-dev -Architecture: armel -Section: debug +Architecture: any +Section: libdevel Depends: ${misc:Depends}, libharfbuzz (= ${binary:Version}) Description: Hindi reshaping library (unstripped) +Package: libharfbuzz-dbg +Section: debug +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, libharfbuzz (= ${Source-Version}) +Description: Hindi reshaping library (unstripped) diff --git a/harfbuzz-0.1/debian/files b/harfbuzz-0.1/debian/files old mode 100644 new mode 100755 index 1feb97d..25f4372 --- a/harfbuzz-0.1/debian/files +++ b/harfbuzz-0.1/debian/files @@ -1,2 +1,3 @@ -libharfbuzz_0.1_armel.deb libs optional -libharfbuzz-dbg_0.1_armel.deb debug optional +libharfbuzz_0.4.0-1slp2+3_armel.deb libs optional +libharfbuzz-dev_0.4.0-1slp2+3_armel.deb libdevel optional +libharfbuzz-dbg_0.4.0-1slp2+3_armel.deb debug optional diff --git a/harfbuzz-0.1/debian/libharfbuzz-dbg/DEBIAN/control b/harfbuzz-0.1/debian/libharfbuzz-dbg/DEBIAN/control old mode 100644 new mode 100755 index 96e5a72..1f3e7a9 --- a/harfbuzz-0.1/debian/libharfbuzz-dbg/DEBIAN/control +++ b/harfbuzz-0.1/debian/libharfbuzz-dbg/DEBIAN/control @@ -1,9 +1,10 @@ Package: libharfbuzz-dbg -Source: libharfbuzz -Version: 0.1 +Source: harfbuzz +Version: 0.4.0-1slp2+3 Architecture: armel -Maintainer: prameet +Maintainer: janani Installed-Size: 52 +Depends: libharfbuzz (= 0.4.0-1slp2+3) Section: debug Priority: optional Description: Hindi reshaping library (unstripped) diff --git a/harfbuzz-0.1/debian/libharfbuzz-dbg/DEBIAN/md5sums b/harfbuzz-0.1/debian/libharfbuzz-dbg/DEBIAN/md5sums old mode 100644 new mode 100755 index 41efec0..92bc495 --- a/harfbuzz-0.1/debian/libharfbuzz-dbg/DEBIAN/md5sums +++ b/harfbuzz-0.1/debian/libharfbuzz-dbg/DEBIAN/md5sums @@ -1,3 +1,3 @@ -88c5a21ba88009f719bf8bc1a8f45b83 usr/share/doc/libharfbuzz-dbg/copyright -2e52c13d24bea17bfeb558305c5680d9 usr/share/doc/libharfbuzz-dbg/changelog.gz -a493443ed45e75d80aeb2cc40938de79 usr/lib/debug/usr/lib/libharfbuzz.so +93e65ad0ab6ed5807bad917b9f2331ec usr/lib/debug/usr/lib/libharfbuzz.so +0bb889780a7cf71cd4ed473423126967 usr/share/doc/libharfbuzz-dbg/changelog.Debian.gz +df1d54271f4722f7e2b3bcfdf7b69ddd usr/share/doc/libharfbuzz-dbg/copyright diff --git a/harfbuzz-0.1/debian/libharfbuzz-dbg/usr/lib/debug/usr/lib/libharfbuzz.so b/harfbuzz-0.1/debian/libharfbuzz-dbg/usr/lib/debug/usr/lib/libharfbuzz.so new file mode 100755 index 0000000..51602da Binary files /dev/null and b/harfbuzz-0.1/debian/libharfbuzz-dbg/usr/lib/debug/usr/lib/libharfbuzz.so differ diff --git a/harfbuzz-0.1/debian/libharfbuzz-dbg/usr/share/doc/libharfbuzz-dbg/changelog.Debian.gz b/harfbuzz-0.1/debian/libharfbuzz-dbg/usr/share/doc/libharfbuzz-dbg/changelog.Debian.gz new file mode 100755 index 0000000..abee691 Binary files /dev/null and b/harfbuzz-0.1/debian/libharfbuzz-dbg/usr/share/doc/libharfbuzz-dbg/changelog.Debian.gz differ diff --git a/harfbuzz-0.1/debian/libharfbuzz-dbg/usr/share/doc/libharfbuzz-dbg/copyright b/harfbuzz-0.1/debian/libharfbuzz-dbg/usr/share/doc/libharfbuzz-dbg/copyright new file mode 100755 index 0000000..634932c --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz-dbg/usr/share/doc/libharfbuzz-dbg/copyright @@ -0,0 +1,26 @@ +This is harfbuzz library ,maintained by prameet +on Fri, 05 Mar 2010 10:49:10 +0530. + +The original source can always be found at: + ftp://ftp.debian.org/dists/unstable/main/source/ + +Copyright Holder: unknown + +License: + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. diff --git a/harfbuzz-0.1/debian/libharfbuzz-dev/DEBIAN/control b/harfbuzz-0.1/debian/libharfbuzz-dev/DEBIAN/control new file mode 100755 index 0000000..b92bdaa --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz-dev/DEBIAN/control @@ -0,0 +1,10 @@ +Package: libharfbuzz-dev +Source: harfbuzz +Version: 0.4.0-1slp2+3 +Architecture: armel +Maintainer: janani +Installed-Size: 32 +Depends: libharfbuzz (= 0.4.0-1slp2+3) +Section: libdevel +Priority: optional +Description: Hindi reshaping library (unstripped) diff --git a/harfbuzz-0.1/debian/libharfbuzz-dev/DEBIAN/md5sums b/harfbuzz-0.1/debian/libharfbuzz-dev/DEBIAN/md5sums new file mode 100755 index 0000000..d46dfb4 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz-dev/DEBIAN/md5sums @@ -0,0 +1,2 @@ +0bb889780a7cf71cd4ed473423126967 usr/share/doc/libharfbuzz-dev/changelog.Debian.gz +df1d54271f4722f7e2b3bcfdf7b69ddd usr/share/doc/libharfbuzz-dev/copyright diff --git a/harfbuzz-0.1/debian/libharfbuzz-dev/usr/share/doc/libharfbuzz-dev/changelog.Debian.gz b/harfbuzz-0.1/debian/libharfbuzz-dev/usr/share/doc/libharfbuzz-dev/changelog.Debian.gz new file mode 100755 index 0000000..abee691 Binary files /dev/null and b/harfbuzz-0.1/debian/libharfbuzz-dev/usr/share/doc/libharfbuzz-dev/changelog.Debian.gz differ diff --git a/harfbuzz-0.1/debian/libharfbuzz-dev/usr/share/doc/libharfbuzz-dev/copyright b/harfbuzz-0.1/debian/libharfbuzz-dev/usr/share/doc/libharfbuzz-dev/copyright new file mode 100755 index 0000000..634932c --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz-dev/usr/share/doc/libharfbuzz-dev/copyright @@ -0,0 +1,26 @@ +This is harfbuzz library ,maintained by prameet +on Fri, 05 Mar 2010 10:49:10 +0530. + +The original source can always be found at: + ftp://ftp.debian.org/dists/unstable/main/source/ + +Copyright Holder: unknown + +License: + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. diff --git a/harfbuzz-0.1/debian/libharfbuzz.install b/harfbuzz-0.1/debian/libharfbuzz.install index be28e81..9ae9c8b 100755 --- a/harfbuzz-0.1/debian/libharfbuzz.install +++ b/harfbuzz-0.1/debian/libharfbuzz.install @@ -1,2 +1,3 @@ usr/lib/libharfbuzz.so -usr/include/harfbuzz/* +usr/include/* +usr/lib/pkgconfig/* diff --git a/harfbuzz-0.1/debian/libharfbuzz.substvars b/harfbuzz-0.1/debian/libharfbuzz.substvars old mode 100644 new mode 100755 diff --git a/harfbuzz-0.1/debian/libharfbuzz/DEBIAN/control b/harfbuzz-0.1/debian/libharfbuzz/DEBIAN/control old mode 100644 new mode 100755 index 9e33f5a..fd738dc --- a/harfbuzz-0.1/debian/libharfbuzz/DEBIAN/control +++ b/harfbuzz-0.1/debian/libharfbuzz/DEBIAN/control @@ -1,8 +1,9 @@ Package: libharfbuzz -Version: 0.1 +Source: harfbuzz +Version: 0.4.0-1slp2+3 Architecture: armel -Maintainer: prameet -Installed-Size: 304 +Maintainer: janani +Installed-Size: 544 Section: libs Priority: optional -Description: Hindi reshaping library +Description: Hindi Reshaping Library diff --git a/harfbuzz-0.1/debian/libharfbuzz/DEBIAN/md5sums b/harfbuzz-0.1/debian/libharfbuzz/DEBIAN/md5sums old mode 100644 new mode 100755 index b69e5a4..74051c6 --- a/harfbuzz-0.1/debian/libharfbuzz/DEBIAN/md5sums +++ b/harfbuzz-0.1/debian/libharfbuzz/DEBIAN/md5sums @@ -1,3 +1,25 @@ -88c5a21ba88009f719bf8bc1a8f45b83 usr/share/doc/libharfbuzz/copyright -2e52c13d24bea17bfeb558305c5680d9 usr/share/doc/libharfbuzz/changelog.gz -9221bd50ac8b7266e64caa16cd11e100 usr/lib/libharfbuzz.so +9b0bfea1e5ca29ab694bb66e0c7806d5 usr/lib/pkgconfig/harfbuzz.pc +a2cee363d5fe3f089785f3dab5cdece0 usr/lib/libharfbuzz.so +0bb889780a7cf71cd4ed473423126967 usr/share/doc/libharfbuzz/changelog.Debian.gz +df1d54271f4722f7e2b3bcfdf7b69ddd usr/share/doc/libharfbuzz/copyright +f07cf3f8659df2a666184c3c043c57fa usr/include/harfbuzz/harfbuzz-buffer.h +47748f702eb5274fddb2135b2477317f usr/include/harfbuzz/harfbuzz-gsub.h +83721b07d4299f8ab0fe55fa0d976fc3 usr/include/harfbuzz/harfbuzz.h +134cf9413e3fbbc6d0eea62bd4b16682 usr/include/harfbuzz/harfbuzz-gdef-private.h +6e42a9e70afbfa731771b4565152f8cc usr/include/harfbuzz/harfbuzz-shaper-private.h +9df5ea3e3b974f2940595a3adacb5303 usr/include/harfbuzz/harfbuzz-gpos-private.h +32096ebe2fd5d49e37875b0a72f0f4bc usr/include/harfbuzz/harfbuzz-gpos.h +416859ec08a3566b35d457a9a15420ac usr/include/harfbuzz/harfbuzz-stream-private.h +f3febd1da5508f366c7ea622e22525b9 usr/include/harfbuzz/harfbuzz-external.h +6e3ed9f28485fecfe3fd391b65b889e6 usr/include/harfbuzz/harfbuzz-open-private.h +088511a85a252f02d62ae630379bf9e9 usr/include/harfbuzz/harfbuzz-shaper.h +cfc2582df6ae2fa569e7d2aeebc98574 usr/include/harfbuzz/harfbuzz-shape.h +5832347c18af6fd511e4f023ab549098 usr/include/harfbuzz/harfbuzz-open.h +6b2506726da5a95f96a2ea679e2ba609 usr/include/harfbuzz/harfbuzz-stream.h +ad9e0bd699461a9bde278e39327dd07a usr/include/harfbuzz/harfbuzz-global.h +f7e5472b9dd9fa8348e09383f3c44aaf usr/include/harfbuzz/harfbuzz-impl.h +4ca1f40b516f0f5a0fd6a9bf5b0f49a4 usr/include/harfbuzz/harfbuzz-gsub-private.h +c394005fdbe3daa995350f04b4692e35 usr/include/harfbuzz/harfbuzz-gdef.h +4b1e1188405946bfa9627e3ea83779bd usr/include/harfbuzz/hb_unicode_tables.h +52d48ff2e2fc1e33feb94d1749c4f724 usr/include/harfbuzz/harfbuzz-dump.h +88824c157a2d24a43b50e5d4138f54c8 usr/include/harfbuzz/harfbuzz-buffer-private.h diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-buffer-private.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-buffer-private.h new file mode 100755 index 0000000..1b039ba --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-buffer-private.h @@ -0,0 +1,107 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2004,2007 Red Hat, Inc. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor, Behdad Esfahbod + */ + +#ifndef HARFBUZZ_BUFFER_PRIVATE_H +#define HARFBUZZ_BUFFER_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-buffer.h" + +HB_BEGIN_HEADER + +#define HB_GLYPH_PROPERTIES_UNKNOWN 0xFFFF + +HB_INTERNAL void +_hb_buffer_swap( HB_Buffer buffer ); + +HB_INTERNAL void +_hb_buffer_clear_output( HB_Buffer buffer ); + +HB_INTERNAL HB_Error +_hb_buffer_clear_positions( HB_Buffer buffer ); + +HB_INTERNAL HB_Error +_hb_buffer_add_output_glyphs( HB_Buffer buffer, + HB_UShort num_in, + HB_UShort num_out, + HB_UShort *glyph_data, + HB_UShort component, + HB_UShort ligID ); + +HB_INTERNAL HB_Error +_hb_buffer_add_output_glyph ( HB_Buffer buffer, + HB_UInt glyph_index, + HB_UShort component, + HB_UShort ligID ); + +HB_INTERNAL HB_Error +_hb_buffer_copy_output_glyph ( HB_Buffer buffer ); + +HB_INTERNAL HB_Error +_hb_buffer_replace_output_glyph ( HB_Buffer buffer, + HB_UInt glyph_index, + HB_Bool inplace ); + +HB_INTERNAL HB_UShort +_hb_buffer_allocate_ligid( HB_Buffer buffer ); + + +/* convenience macros */ + +#define IN_GLYPH( pos ) (buffer->in_string[(pos)].gindex) +#define IN_ITEM( pos ) (&buffer->in_string[(pos)]) +#define IN_CURGLYPH() (buffer->in_string[buffer->in_pos].gindex) +#define IN_CURITEM() (&buffer->in_string[buffer->in_pos]) +#define IN_PROPERTIES( pos ) (buffer->in_string[(pos)].properties) +#define IN_LIGID( pos ) (buffer->in_string[(pos)].ligID) +#define IN_COMPONENT( pos ) (buffer->in_string[(pos)].component) +#define POSITION( pos ) (&buffer->positions[(pos)]) +#define OUT_GLYPH( pos ) (buffer->out_string[(pos)].gindex) +#define OUT_ITEM( pos ) (&buffer->out_string[(pos)]) + +#define CHECK_Property( gdef, index, flags, property ) \ + ( ( error = _HB_GDEF_Check_Property( (gdef), (index), (flags), \ + (property) ) ) != HB_Err_Ok ) + +#define ADD_String( buffer, num_in, num_out, glyph_data, component, ligID ) \ + ( ( error = _hb_buffer_add_output_glyphs( (buffer), \ + (num_in), (num_out), \ + (glyph_data), (component), (ligID) \ + ) ) != HB_Err_Ok ) +#define ADD_Glyph( buffer, glyph_index, component, ligID ) \ + ( ( error = _hb_buffer_add_output_glyph( (buffer), \ + (glyph_index), (component), (ligID) \ + ) ) != HB_Err_Ok ) +#define REPLACE_Glyph( buffer, glyph_index, nesting_level ) \ + ( ( error = _hb_buffer_replace_output_glyph( (buffer), (glyph_index), \ + (nesting_level) == 1 ) ) != HB_Err_Ok ) +#define COPY_Glyph( buffer ) \ + ( (error = _hb_buffer_copy_output_glyph ( buffer ) ) != HB_Err_Ok ) + +HB_END_HEADER + +#endif /* HARFBUZZ_BUFFER_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-buffer.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-buffer.h new file mode 100755 index 0000000..e215e9f --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-buffer.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2004,2007 Red Hat, Inc. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor, Behdad Esfahbod + */ + +#ifndef HARFBUZZ_BUFFER_H +#define HARFBUZZ_BUFFER_H + +#include "harfbuzz-global.h" + +HB_BEGIN_HEADER + +typedef struct HB_GlyphItemRec_ { + HB_UInt gindex; + HB_UInt properties; + HB_UInt cluster; + HB_UShort component; + HB_UShort ligID; + HB_UShort gproperties; +} HB_GlyphItemRec, *HB_GlyphItem; + +typedef struct HB_PositionRec_ { + HB_Fixed x_pos; + HB_Fixed y_pos; + HB_Fixed x_advance; + HB_Fixed y_advance; + HB_UShort back; /* number of glyphs to go back + for drawing current glyph */ + HB_Bool new_advance; /* if set, the advance width values are + absolute, i.e., they won't be + added to the original glyph's value + but rather replace them. */ + HB_Short cursive_chain; /* character to which this connects, + may be positive or negative; used + only internally */ +} HB_PositionRec, *HB_Position; + + +typedef struct HB_BufferRec_{ + HB_UInt allocated; + + HB_UInt in_length; + HB_UInt out_length; + HB_UInt in_pos; + HB_UInt out_pos; + + HB_Bool separate_out; + HB_GlyphItem in_string; + HB_GlyphItem out_string; + HB_GlyphItem alt_string; + HB_Position positions; + HB_UShort max_ligID; +} HB_BufferRec, *HB_Buffer; + +HB_Error +hb_buffer_new( HB_Buffer *buffer ); + +void +hb_buffer_free( HB_Buffer buffer ); + +void +hb_buffer_clear( HB_Buffer buffer ); + +HB_Error +hb_buffer_add_glyph( HB_Buffer buffer, + HB_UInt glyph_index, + HB_UInt properties, + HB_UInt cluster ); + +HB_END_HEADER + +#endif /* HARFBUZZ_BUFFER_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-dump.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-dump.h new file mode 100755 index 0000000..5d552e7 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-dump.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2000, 2007 Red Hat, Inc. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor, Behdad Esfahbod + */ + +#ifndef HARFBUZZ_DUMP_H +#define HARFBUZZ_DUMP_H + +#include +#include "harfbuzz-gsub.h" +#include "harfbuzz-gpos.h" + +HB_BEGIN_HEADER + +void HB_Dump_GSUB_Table (HB_GSUB gsub, FILE *stream); +void HB_Dump_GPOS_Table (HB_GPOS gpos, FILE *stream); + +HB_END_HEADER + +#endif /* HARFBUZZ_DUMP_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-external.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-external.h new file mode 100755 index 0000000..d2e36d6 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-external.h @@ -0,0 +1,155 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_EXTERNAL_H +#define HARFBUZZ_EXTERNAL_H + +#include "harfbuzz-global.h" + +HB_BEGIN_HEADER + +/* This header contains some methods that are not part of + Harfbuzz itself, but referenced by it. + They need to be provided by the application/library +*/ + + +/* + see http://www.unicode.org/reports/tr14/tr14-19.html + we don't use the XX, AI and CB properties and map them to AL instead. + as we don't support any EBDIC based OS'es, NL is ignored and mapped to AL as well. +*/ +typedef enum { + HB_LineBreak_OP, HB_LineBreak_CL, HB_LineBreak_QU, HB_LineBreak_GL, HB_LineBreak_NS, + HB_LineBreak_EX, HB_LineBreak_SY, HB_LineBreak_IS, HB_LineBreak_PR, HB_LineBreak_PO, + HB_LineBreak_NU, HB_LineBreak_AL, HB_LineBreak_ID, HB_LineBreak_IN, HB_LineBreak_HY, + HB_LineBreak_BA, HB_LineBreak_BB, HB_LineBreak_B2, HB_LineBreak_ZW, HB_LineBreak_CM, + HB_LineBreak_WJ, HB_LineBreak_H2, HB_LineBreak_H3, HB_LineBreak_JL, HB_LineBreak_JV, + HB_LineBreak_JT, HB_LineBreak_SA, HB_LineBreak_SG, + HB_LineBreak_SP, HB_LineBreak_CR, HB_LineBreak_LF, HB_LineBreak_BK +} HB_LineBreakClass; + +typedef enum +{ + HB_NoCategory, + + HB_Mark_NonSpacing, /* Mn */ + HB_Mark_SpacingCombining, /* Mc */ + HB_Mark_Enclosing, /* Me */ + + HB_Number_DecimalDigit, /* Nd */ + HB_Number_Letter, /* Nl */ + HB_Number_Other, /* No */ + + HB_Separator_Space, /* Zs */ + HB_Separator_Line, /* Zl */ + HB_Separator_Paragraph, /* Zp */ + + HB_Other_Control, /* Cc */ + HB_Other_Format, /* Cf */ + HB_Other_Surrogate, /* Cs */ + HB_Other_PrivateUse, /* Co */ + HB_Other_NotAssigned, /* Cn */ + + HB_Letter_Uppercase, /* Lu */ + HB_Letter_Lowercase, /* Ll */ + HB_Letter_Titlecase, /* Lt */ + HB_Letter_Modifier, /* Lm */ + HB_Letter_Other, /* Lo */ + + HB_Punctuation_Connector, /* Pc */ + HB_Punctuation_Dash, /* Pd */ + HB_Punctuation_Open, /* Ps */ + HB_Punctuation_Close, /* Pe */ + HB_Punctuation_InitialQuote, /* Pi */ + HB_Punctuation_FinalQuote, /* Pf */ + HB_Punctuation_Other, /* Po */ + + HB_Symbol_Math, /* Sm */ + HB_Symbol_Currency, /* Sc */ + HB_Symbol_Modifier, /* Sk */ + HB_Symbol_Other /* So */ +} HB_CharCategory; + +typedef enum +{ + HB_Grapheme_Other, + HB_Grapheme_CR, + HB_Grapheme_LF, + HB_Grapheme_Control, + HB_Grapheme_Extend, + HB_Grapheme_L, + HB_Grapheme_V, + HB_Grapheme_T, + HB_Grapheme_LV, + HB_Grapheme_LVT +} HB_GraphemeClass; + + +typedef enum +{ + HB_Word_Other, + HB_Word_Format, + HB_Word_Katakana, + HB_Word_ALetter, + HB_Word_MidLetter, + HB_Word_MidNum, + HB_Word_Numeric, + HB_Word_ExtendNumLet +} HB_WordClass; + + +typedef enum +{ + HB_Sentence_Other, + HB_Sentence_Sep, + HB_Sentence_Format, + HB_Sentence_Sp, + HB_Sentence_Lower, + HB_Sentence_Upper, + HB_Sentence_OLetter, + HB_Sentence_Numeric, + HB_Sentence_ATerm, + HB_Sentence_STerm, + HB_Sentence_Close +} HB_SentenceClass; + +HB_GraphemeClass HB_GetGraphemeClass(HB_UChar32 ch); +HB_WordClass HB_GetWordClass(HB_UChar32 ch); +HB_SentenceClass HB_GetSentenceClass(HB_UChar32 ch); +HB_LineBreakClass HB_GetLineBreakClass(HB_UChar32 ch); + +void HB_GetGraphemeAndLineBreakClass(HB_UChar32 ch, HB_GraphemeClass *grapheme, HB_LineBreakClass *lineBreak); +void HB_GetUnicodeCharProperties(HB_UChar32 ch, HB_CharCategory *category, int *combiningClass); +HB_CharCategory HB_GetUnicodeCharCategory(HB_UChar32 ch); +int HB_GetUnicodeCharCombiningClass(HB_UChar32 ch); +HB_UChar16 HB_GetMirroredChar(HB_UChar16 ch); + +void *HB_Library_Resolve(const char *library, const char *symbol); + +void *HB_TextCodecForMib(int mib); +char *HB_TextCodec_ConvertFromUnicode(void *codec, const HB_UChar16 *unicode, hb_uint32 length, hb_uint32 *outputLength); +void HB_TextCodec_FreeResult(char *); + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gdef-private.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gdef-private.h new file mode 100755 index 0000000..78543cd --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gdef-private.h @@ -0,0 +1,124 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GDEF_PRIVATE_H +#define HARFBUZZ_GDEF_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-stream-private.h" +#include "harfbuzz-buffer-private.h" +#include "harfbuzz-gdef.h" + +HB_BEGIN_HEADER + + +/* Attachment related structures */ + +struct HB_AttachPoint_ +{ + HB_UShort PointCount; /* size of the PointIndex array */ + HB_UShort* PointIndex; /* array of contour points */ +}; + +/* Ligature Caret related structures */ + +struct HB_CaretValueFormat1_ +{ + HB_Short Coordinate; /* x or y value (in design units) */ +}; + +typedef struct HB_CaretValueFormat1_ HB_CaretValueFormat1; + + +struct HB_CaretValueFormat2_ +{ + HB_UShort CaretValuePoint; /* contour point index on glyph */ +}; + +typedef struct HB_CaretValueFormat2_ HB_CaretValueFormat2; + + +struct HB_CaretValueFormat3_ +{ + HB_Short Coordinate; /* x or y value (in design units) */ + HB_Device Device; /* Device table for x or y value */ +}; + +typedef struct HB_CaretValueFormat3_ HB_CaretValueFormat3; + + +struct HB_CaretValueFormat4_ +{ + HB_UShort IdCaretValue; /* metric ID */ +}; + +typedef struct HB_CaretValueFormat4_ HB_CaretValueFormat4; + + +struct HB_CaretValue_ +{ + HB_UShort CaretValueFormat; /* 1, 2, 3, or 4 */ + + union + { + HB_CaretValueFormat1 cvf1; + HB_CaretValueFormat2 cvf2; + HB_CaretValueFormat3 cvf3; + HB_CaretValueFormat4 cvf4; + } cvf; +}; + +typedef struct HB_CaretValue_ HB_CaretValue; + + +struct HB_LigGlyph_ +{ + HB_Bool loaded; + + HB_UShort CaretCount; /* number of caret values */ + HB_CaretValue* CaretValue; /* array of caret values */ +}; + + +HB_INTERNAL HB_Error +_HB_GDEF_Add_Glyph_Property( HB_GDEFHeader* gdef, + HB_UShort glyphID, + HB_UShort property ); + +HB_INTERNAL HB_Error +_HB_GDEF_Check_Property( HB_GDEFHeader* gdef, + HB_GlyphItem item, + HB_UShort flags, + HB_UShort* property ); + +HB_INTERNAL HB_Error +_HB_GDEF_LoadMarkAttachClassDef_From_LookupFlags( HB_GDEFHeader* gdef, + HB_Stream input, + HB_Lookup* lo, + HB_UShort num_lookups ); + +HB_END_HEADER + +#endif /* HARFBUZZ_GDEF_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gdef.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gdef.h new file mode 100755 index 0000000..bf7a70e --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gdef.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GDEF_H +#define HARFBUZZ_GDEF_H + +#include "harfbuzz-open.h" +#include "harfbuzz-stream.h" + +HB_BEGIN_HEADER + +/* GDEF glyph properties. Note that HB_GDEF_COMPONENT has no corresponding + * flag in the LookupFlag field. */ +#define HB_GDEF_BASE_GLYPH 0x0002 +#define HB_GDEF_LIGATURE 0x0004 +#define HB_GDEF_MARK 0x0008 +#define HB_GDEF_COMPONENT 0x0010 + + +typedef struct HB_AttachPoint_ HB_AttachPoint; + + +struct HB_AttachList_ +{ + HB_Bool loaded; + + HB_Coverage Coverage; /* Coverage table */ + HB_UShort GlyphCount; /* number of glyphs with + attachments */ + HB_AttachPoint* AttachPoint; /* array of AttachPoint tables */ +}; + +typedef struct HB_AttachList_ HB_AttachList; + +typedef struct HB_LigGlyph_ HB_LigGlyph; + +struct HB_LigCaretList_ +{ + HB_Bool loaded; + + HB_Coverage Coverage; /* Coverage table */ + HB_UShort LigGlyphCount; /* number of ligature glyphs */ + HB_LigGlyph* LigGlyph; /* array of LigGlyph tables */ +}; + +typedef struct HB_LigCaretList_ HB_LigCaretList; + + + +/* The `NewGlyphClasses' field is not defined in the TTO specification. + We use it for fonts with a constructed `GlyphClassDef' structure + (i.e., which don't have a GDEF table) to collect glyph classes + assigned during the lookup process. The number of arrays in this + pointer array is GlyphClassDef->cd.cd2.ClassRangeCount+1; the nth + array then contains the glyph class values of the glyphs not covered + by the ClassRangeRecords structures with index n-1 and n. We store + glyph class values for four glyphs in a single array element. + + `LastGlyph' is identical to the number of glyphs minus one in the + font; we need it only if `NewGlyphClasses' is not NULL (to have an + upper bound for the last array). + + Note that we first store the file offset to the `MarkAttachClassDef' + field (which has been introduced in OpenType 1.2) -- since the + `Version' field value hasn't been increased to indicate that we have + one more field for some obscure reason, we must parse the GSUB table + to find out whether class values refer to this table. Only then we + can finally load the MarkAttachClassDef structure if necessary. */ + +struct HB_GDEFHeader_ +{ + HB_UInt offset; + + HB_16Dot16 Version; + + HB_ClassDefinition GlyphClassDef; + HB_AttachList AttachList; + HB_LigCaretList LigCaretList; + HB_UInt MarkAttachClassDef_offset; + HB_ClassDefinition MarkAttachClassDef; /* new in OT 1.2 */ + + HB_UShort LastGlyph; + HB_UShort** NewGlyphClasses; +}; + +typedef struct HB_GDEFHeader_ HB_GDEFHeader; +typedef struct HB_GDEFHeader_* HB_GDEF; + + +HB_Error HB_New_GDEF_Table( HB_GDEFHeader** retptr ); + + +HB_Error HB_Load_GDEF_Table( HB_Stream stream, + HB_GDEFHeader** gdef ); + + +HB_Error HB_Done_GDEF_Table ( HB_GDEFHeader* gdef ); + + +HB_Error HB_GDEF_Get_Glyph_Property( HB_GDEFHeader* gdef, + HB_UShort glyphID, + HB_UShort* property ); + +HB_Error HB_GDEF_Build_ClassDefinition( HB_GDEFHeader* gdef, + HB_UShort num_glyphs, + HB_UShort glyph_count, + HB_UShort* glyph_array, + HB_UShort* class_array ); + + +HB_END_HEADER + +#endif /* HARFBUZZ_GDEF_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-global.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-global.h new file mode 100755 index 0000000..9b8bfbf --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-global.h @@ -0,0 +1,123 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + */ + +#ifndef HARFBUZZ_GLOBAL_H +#define HARFBUZZ_GLOBAL_H + +#include +#include + +#ifdef __cplusplus +#define HB_BEGIN_HEADER extern "C" { +#define HB_END_HEADER } +#else +#define HB_BEGIN_HEADER /* nothing */ +#define HB_END_HEADER /* nothing */ +#endif + +HB_BEGIN_HEADER + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef TRUE +#define TRUE (!FALSE) +#endif + +#ifndef false +#define false 0 +#endif + +#ifndef true +#define true (!FALSE) +#endif + +#define HB_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ + ( ( (HB_UInt)_x1 << 24 ) | \ + ( (HB_UInt)_x2 << 16 ) | \ + ( (HB_UInt)_x3 << 8 ) | \ + (HB_UInt)_x4 ) + +typedef char hb_int8; +typedef unsigned char hb_uint8; +typedef short hb_int16; +typedef unsigned short hb_uint16; +typedef int hb_int32; +typedef unsigned int hb_uint32; + +typedef hb_uint8 HB_Bool; +typedef hb_uint8 bool; + +typedef hb_uint8 HB_Byte; +typedef hb_uint16 HB_UShort; +typedef hb_uint32 HB_UInt; +typedef hb_int8 HB_Char; +typedef hb_int16 HB_Short; +typedef hb_int32 HB_Int; + +typedef hb_uint16 HB_UChar16; +typedef hb_uint32 HB_UChar32; +typedef hb_uint32 HB_Glyph; +typedef hb_int32 HB_Fixed; /* 26.6 */ + +#define HB_FIXED_CONSTANT(v) ((v) * 64) +#define HB_FIXED_ROUND(v) (((v)+32) & -64) + +typedef hb_int32 HB_16Dot16; /* 16.16 */ + +typedef void * HB_Pointer; +typedef hb_uint32 HB_Tag; + +typedef enum { + /* no error */ + HB_Err_Ok = 0x0000, + HB_Err_Not_Covered = 0xFFFF, + + /* _hb_err() is called whenever returning the following errors, + * and in a couple places for HB_Err_Not_Covered too. */ + + /* programmer error */ + HB_Err_Invalid_Argument = 0x1A66, + + /* font error */ + HB_Err_Invalid_SubTable_Format = 0x157F, + HB_Err_Invalid_SubTable = 0x1570, + HB_Err_Read_Error = 0x6EAD, + + /* system error */ + HB_Err_Out_Of_Memory = 0xDEAD +} HB_Error; + +typedef struct { + HB_Fixed x; + HB_Fixed y; +} HB_FixedPoint; + +typedef struct HB_Font_ *HB_Font; +typedef struct HB_StreamRec_ *HB_Stream; +typedef struct HB_FaceRec_ *HB_Face; + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gpos-private.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gpos-private.h new file mode 100755 index 0000000..c2865ba --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gpos-private.h @@ -0,0 +1,712 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GPOS_PRIVATE_H +#define HARFBUZZ_GPOS_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-stream-private.h" +#include "harfbuzz-gpos.h" + +HB_BEGIN_HEADER + + +/* shared tables */ + +struct HB_ValueRecord_ +{ + HB_Short XPlacement; /* horizontal adjustment for + placement */ + HB_Short YPlacement; /* vertical adjustment for + placement */ + HB_Short XAdvance; /* horizontal adjustment for + advance */ + HB_Short YAdvance; /* vertical adjustment for + advance */ + HB_Device XPlacementDevice; /* device table for horizontal + placement */ + HB_Device YPlacementDevice; /* device table for vertical + placement */ + HB_Device XAdvanceDevice; /* device table for horizontal + advance */ + HB_Device YAdvanceDevice; /* device table for vertical + advance */ + HB_UShort XIdPlacement; /* horizontal placement metric ID */ + HB_UShort YIdPlacement; /* vertical placement metric ID */ + HB_UShort XIdAdvance; /* horizontal advance metric ID */ + HB_UShort YIdAdvance; /* vertical advance metric ID */ +}; + +typedef struct HB_ValueRecord_ HB_ValueRecord; + + +/* Mask values to scan the value format of the ValueRecord structure. + We always expand compressed ValueRecords of the font. */ + +#define HB_GPOS_FORMAT_HAVE_X_PLACEMENT 0x0001 +#define HB_GPOS_FORMAT_HAVE_Y_PLACEMENT 0x0002 +#define HB_GPOS_FORMAT_HAVE_X_ADVANCE 0x0004 +#define HB_GPOS_FORMAT_HAVE_Y_ADVANCE 0x0008 +#define HB_GPOS_FORMAT_HAVE_X_PLACEMENT_DEVICE 0x0010 +#define HB_GPOS_FORMAT_HAVE_Y_PLACEMENT_DEVICE 0x0020 +#define HB_GPOS_FORMAT_HAVE_X_ADVANCE_DEVICE 0x0040 +#define HB_GPOS_FORMAT_HAVE_Y_ADVANCE_DEVICE 0x0080 +#define HB_GPOS_FORMAT_HAVE_X_ID_PLACEMENT 0x0100 +#define HB_GPOS_FORMAT_HAVE_Y_ID_PLACEMENT 0x0200 +#define HB_GPOS_FORMAT_HAVE_X_ID_ADVANCE 0x0400 +#define HB_GPOS_FORMAT_HAVE_Y_ID_ADVANCE 0x0800 + + +struct HB_AnchorFormat1_ +{ + HB_Short XCoordinate; /* horizontal value */ + HB_Short YCoordinate; /* vertical value */ +}; + +typedef struct HB_AnchorFormat1_ HB_AnchorFormat1; + + +struct HB_AnchorFormat2_ +{ + HB_Short XCoordinate; /* horizontal value */ + HB_Short YCoordinate; /* vertical value */ + HB_UShort AnchorPoint; /* index to glyph contour point */ +}; + +typedef struct HB_AnchorFormat2_ HB_AnchorFormat2; + + +struct HB_AnchorFormat3_ +{ + HB_Short XCoordinate; /* horizontal value */ + HB_Short YCoordinate; /* vertical value */ + HB_Device XDeviceTable; /* device table for X coordinate */ + HB_Device YDeviceTable; /* device table for Y coordinate */ +}; + +typedef struct HB_AnchorFormat3_ HB_AnchorFormat3; + + +struct HB_AnchorFormat4_ +{ + HB_UShort XIdAnchor; /* horizontal metric ID */ + HB_UShort YIdAnchor; /* vertical metric ID */ +}; + +typedef struct HB_AnchorFormat4_ HB_AnchorFormat4; + + +struct HB_Anchor_ +{ + HB_UShort PosFormat; /* 1, 2, 3, or 4 -- 0 indicates + that there is no Anchor table */ + + union + { + HB_AnchorFormat1 af1; + HB_AnchorFormat2 af2; + HB_AnchorFormat3 af3; + HB_AnchorFormat4 af4; + } af; +}; + +typedef struct HB_Anchor_ HB_Anchor; + + +struct HB_MarkRecord_ +{ + HB_UShort Class; /* mark class */ + HB_Anchor MarkAnchor; /* anchor table */ +}; + +typedef struct HB_MarkRecord_ HB_MarkRecord; + + +struct HB_MarkArray_ +{ + HB_UShort MarkCount; /* number of MarkRecord tables */ + HB_MarkRecord* MarkRecord; /* array of MarkRecord tables */ +}; + +typedef struct HB_MarkArray_ HB_MarkArray; + + +/* LookupType 1 */ + +struct HB_SinglePosFormat1_ +{ + HB_ValueRecord Value; /* ValueRecord for all covered + glyphs */ +}; + +typedef struct HB_SinglePosFormat1_ HB_SinglePosFormat1; + + +struct HB_SinglePosFormat2_ +{ + HB_UShort ValueCount; /* number of ValueRecord tables */ + HB_ValueRecord* Value; /* array of ValueRecord tables */ +}; + +typedef struct HB_SinglePosFormat2_ HB_SinglePosFormat2; + + +struct HB_SinglePos_ +{ + HB_UShort PosFormat; /* 1 or 2 */ + HB_Coverage Coverage; /* Coverage table */ + + HB_UShort ValueFormat; /* format of ValueRecord table */ + + union + { + HB_SinglePosFormat1 spf1; + HB_SinglePosFormat2 spf2; + } spf; +}; + +typedef struct HB_SinglePos_ HB_SinglePos; + + +/* LookupType 2 */ + +struct HB_PairValueRecord_ +{ + HB_UShort SecondGlyph; /* glyph ID for second glyph */ + HB_ValueRecord Value1; /* pos. data for first glyph */ + HB_ValueRecord Value2; /* pos. data for second glyph */ +}; + +typedef struct HB_PairValueRecord_ HB_PairValueRecord; + + +struct HB_PairSet_ +{ + HB_UShort PairValueCount; + /* number of PairValueRecord tables */ + HB_PairValueRecord* PairValueRecord; + /* array of PairValueRecord tables */ +}; + +typedef struct HB_PairSet_ HB_PairSet; + + +struct HB_PairPosFormat1_ +{ + HB_UShort PairSetCount; /* number of PairSet tables */ + HB_PairSet* PairSet; /* array of PairSet tables */ +}; + +typedef struct HB_PairPosFormat1_ HB_PairPosFormat1; + + +struct HB_Class2Record_ +{ + HB_ValueRecord Value1; /* pos. data for first glyph */ + HB_ValueRecord Value2; /* pos. data for second glyph */ +}; + +typedef struct HB_Class2Record_ HB_Class2Record; + + +struct HB_Class1Record_ +{ + HB_Class2Record* Class2Record; /* array of Class2Record tables */ +}; + +typedef struct HB_Class1Record_ HB_Class1Record; + + +struct HB_PairPosFormat2_ +{ + HB_ClassDefinition ClassDef1; /* class def. for first glyph */ + HB_ClassDefinition ClassDef2; /* class def. for second glyph */ + HB_UShort Class1Count; /* number of classes in ClassDef1 + table */ + HB_UShort Class2Count; /* number of classes in ClassDef2 + table */ + HB_Class1Record* Class1Record; /* array of Class1Record tables */ +}; + +typedef struct HB_PairPosFormat2_ HB_PairPosFormat2; + + +struct HB_PairPos_ +{ + HB_UShort PosFormat; /* 1 or 2 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort ValueFormat1; /* format of ValueRecord table + for first glyph */ + HB_UShort ValueFormat2; /* format of ValueRecord table + for second glyph */ + + union + { + HB_PairPosFormat1 ppf1; + HB_PairPosFormat2 ppf2; + } ppf; +}; + +typedef struct HB_PairPos_ HB_PairPos; + + +/* LookupType 3 */ + +struct HB_EntryExitRecord_ +{ + HB_Anchor EntryAnchor; /* entry Anchor table */ + HB_Anchor ExitAnchor; /* exit Anchor table */ +}; + + +typedef struct HB_EntryExitRecord_ HB_EntryExitRecord; + +struct HB_CursivePos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort EntryExitCount; + /* number of EntryExitRecord tables */ + HB_EntryExitRecord* EntryExitRecord; + /* array of EntryExitRecord tables */ +}; + +typedef struct HB_CursivePos_ HB_CursivePos; + + +/* LookupType 4 */ + +struct HB_BaseRecord_ +{ + HB_Anchor* BaseAnchor; /* array of base glyph anchor + tables */ +}; + +typedef struct HB_BaseRecord_ HB_BaseRecord; + + +struct HB_BaseArray_ +{ + HB_UShort BaseCount; /* number of BaseRecord tables */ + HB_BaseRecord* BaseRecord; /* array of BaseRecord tables */ +}; + +typedef struct HB_BaseArray_ HB_BaseArray; + + +struct HB_MarkBasePos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_Coverage MarkCoverage; /* mark glyph coverage table */ + HB_Coverage BaseCoverage; /* base glyph coverage table */ + HB_UShort ClassCount; /* number of mark classes */ + HB_MarkArray MarkArray; /* mark array table */ + HB_BaseArray BaseArray; /* base array table */ +}; + +typedef struct HB_MarkBasePos_ HB_MarkBasePos; + + +/* LookupType 5 */ + +struct HB_ComponentRecord_ +{ + HB_Anchor* LigatureAnchor; /* array of ligature glyph anchor + tables */ +}; + +typedef struct HB_ComponentRecord_ HB_ComponentRecord; + + +struct HB_LigatureAttach_ +{ + HB_UShort ComponentCount; + /* number of ComponentRecord tables */ + HB_ComponentRecord* ComponentRecord; + /* array of ComponentRecord tables */ +}; + +typedef struct HB_LigatureAttach_ HB_LigatureAttach; + + +struct HB_LigatureArray_ +{ + HB_UShort LigatureCount; /* number of LigatureAttach tables */ + HB_LigatureAttach* LigatureAttach; + /* array of LigatureAttach tables */ +}; + +typedef struct HB_LigatureArray_ HB_LigatureArray; + + +struct HB_MarkLigPos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_Coverage MarkCoverage; /* mark glyph coverage table */ + HB_Coverage LigatureCoverage; + /* ligature glyph coverage table */ + HB_UShort ClassCount; /* number of mark classes */ + HB_MarkArray MarkArray; /* mark array table */ + HB_LigatureArray LigatureArray; /* ligature array table */ +}; + +typedef struct HB_MarkLigPos_ HB_MarkLigPos; + + +/* LookupType 6 */ + +struct HB_Mark2Record_ +{ + HB_Anchor* Mark2Anchor; /* array of mark glyph anchor + tables */ +}; + +typedef struct HB_Mark2Record_ HB_Mark2Record; + + +struct HB_Mark2Array_ +{ + HB_UShort Mark2Count; /* number of Mark2Record tables */ + HB_Mark2Record* Mark2Record; /* array of Mark2Record tables */ +}; + +typedef struct HB_Mark2Array_ HB_Mark2Array; + + +struct HB_MarkMarkPos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_Coverage Mark1Coverage; /* first mark glyph coverage table */ + HB_Coverage Mark2Coverage; /* second mark glyph coverave table */ + HB_UShort ClassCount; /* number of combining mark classes */ + HB_MarkArray Mark1Array; /* MarkArray table for first mark */ + HB_Mark2Array Mark2Array; /* MarkArray table for second mark */ +}; + +typedef struct HB_MarkMarkPos_ HB_MarkMarkPos; + + +/* needed by both lookup type 7 and 8 */ + +struct HB_PosLookupRecord_ +{ + HB_UShort SequenceIndex; /* index into current + glyph sequence */ + HB_UShort LookupListIndex; /* Lookup to apply to that pos. */ +}; + +typedef struct HB_PosLookupRecord_ HB_PosLookupRecord; + + +/* LookupType 7 */ + +struct HB_PosRule_ +{ + HB_UShort GlyphCount; /* total number of input glyphs */ + HB_UShort PosCount; /* number of PosLookupRecord tables */ + HB_UShort* Input; /* array of input glyph IDs */ + HB_PosLookupRecord* PosLookupRecord; + /* array of PosLookupRecord tables */ +}; + +typedef struct HB_PosRule_ HB_PosRule; + + +struct HB_PosRuleSet_ +{ + HB_UShort PosRuleCount; /* number of PosRule tables */ + HB_PosRule* PosRule; /* array of PosRule tables */ +}; + +typedef struct HB_PosRuleSet_ HB_PosRuleSet; + + +struct HB_ContextPosFormat1_ +{ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort PosRuleSetCount; /* number of PosRuleSet tables */ + HB_PosRuleSet* PosRuleSet; /* array of PosRuleSet tables */ +}; + +typedef struct HB_ContextPosFormat1_ HB_ContextPosFormat1; + + +struct HB_PosClassRule_ +{ + HB_UShort GlyphCount; /* total number of context classes */ + HB_UShort PosCount; /* number of PosLookupRecord tables */ + HB_UShort* Class; /* array of classes */ + HB_PosLookupRecord* PosLookupRecord; + /* array of PosLookupRecord tables */ +}; + +typedef struct HB_PosClassRule_ HB_PosClassRule; + + +struct HB_PosClassSet_ +{ + HB_UShort PosClassRuleCount; + /* number of PosClassRule tables */ + HB_PosClassRule* PosClassRule; /* array of PosClassRule tables */ +}; + +typedef struct HB_PosClassSet_ HB_PosClassSet; + + +/* The `MaxContextLength' field is not defined in the TTO specification + but simplifies the implementation of this format. It holds the + maximal context length used in the context rules. */ + +struct HB_ContextPosFormat2_ +{ + HB_UShort MaxContextLength; + /* maximal context length */ + HB_Coverage Coverage; /* Coverage table */ + HB_ClassDefinition ClassDef; /* ClassDef table */ + HB_UShort PosClassSetCount; + /* number of PosClassSet tables */ + HB_PosClassSet* PosClassSet; /* array of PosClassSet tables */ +}; + +typedef struct HB_ContextPosFormat2_ HB_ContextPosFormat2; + + +struct HB_ContextPosFormat3_ +{ + HB_UShort GlyphCount; /* number of input glyphs */ + HB_UShort PosCount; /* number of PosLookupRecord tables */ + HB_Coverage* Coverage; /* array of Coverage tables */ + HB_PosLookupRecord* PosLookupRecord; + /* array of PosLookupRecord tables */ +}; + +typedef struct HB_ContextPosFormat3_ HB_ContextPosFormat3; + + +struct HB_ContextPos_ +{ + HB_UShort PosFormat; /* 1, 2, or 3 */ + + union + { + HB_ContextPosFormat1 cpf1; + HB_ContextPosFormat2 cpf2; + HB_ContextPosFormat3 cpf3; + } cpf; +}; + +typedef struct HB_ContextPos_ HB_ContextPos; + + +/* LookupType 8 */ + +struct HB_ChainPosRule_ +{ + HB_UShort BacktrackGlyphCount; + /* total number of backtrack glyphs */ + HB_UShort* Backtrack; /* array of backtrack glyph IDs */ + HB_UShort InputGlyphCount; + /* total number of input glyphs */ + HB_UShort* Input; /* array of input glyph IDs */ + HB_UShort LookaheadGlyphCount; + /* total number of lookahead glyphs */ + HB_UShort* Lookahead; /* array of lookahead glyph IDs */ + HB_UShort PosCount; /* number of PosLookupRecords */ + HB_PosLookupRecord* PosLookupRecord; + /* array of PosLookupRecords */ +}; + +typedef struct HB_ChainPosRule_ HB_ChainPosRule; + + +struct HB_ChainPosRuleSet_ +{ + HB_UShort ChainPosRuleCount; + /* number of ChainPosRule tables */ + HB_ChainPosRule* ChainPosRule; /* array of ChainPosRule tables */ +}; + +typedef struct HB_ChainPosRuleSet_ HB_ChainPosRuleSet; + + +struct HB_ChainContextPosFormat1_ +{ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort ChainPosRuleSetCount; + /* number of ChainPosRuleSet tables */ + HB_ChainPosRuleSet* ChainPosRuleSet; + /* array of ChainPosRuleSet tables */ +}; + +typedef struct HB_ChainContextPosFormat1_ HB_ChainContextPosFormat1; + + +struct HB_ChainPosClassRule_ +{ + HB_UShort BacktrackGlyphCount; + /* total number of backtrack + classes */ + HB_UShort* Backtrack; /* array of backtrack classes */ + HB_UShort InputGlyphCount; + /* total number of context classes */ + HB_UShort* Input; /* array of context classes */ + HB_UShort LookaheadGlyphCount; + /* total number of lookahead + classes */ + HB_UShort* Lookahead; /* array of lookahead classes */ + HB_UShort PosCount; /* number of PosLookupRecords */ + HB_PosLookupRecord* PosLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ChainPosClassRule_ HB_ChainPosClassRule; + + +struct HB_ChainPosClassSet_ +{ + HB_UShort ChainPosClassRuleCount; + /* number of ChainPosClassRule + tables */ + HB_ChainPosClassRule* ChainPosClassRule; + /* array of ChainPosClassRule + tables */ +}; + +typedef struct HB_ChainPosClassSet_ HB_ChainPosClassSet; + + +/* The `MaxXXXLength' fields are not defined in the TTO specification + but simplifies the implementation of this format. It holds the + maximal context length used in the specific context rules. */ + +struct HB_ChainContextPosFormat2_ +{ + HB_Coverage Coverage; /* Coverage table */ + + HB_UShort MaxBacktrackLength; + /* maximal backtrack length */ + HB_ClassDefinition BacktrackClassDef; + /* BacktrackClassDef table */ + HB_UShort MaxInputLength; + /* maximal input length */ + HB_ClassDefinition InputClassDef; + /* InputClassDef table */ + HB_UShort MaxLookaheadLength; + /* maximal lookahead length */ + HB_ClassDefinition LookaheadClassDef; + /* LookaheadClassDef table */ + + HB_UShort ChainPosClassSetCount; + /* number of ChainPosClassSet + tables */ + HB_ChainPosClassSet* ChainPosClassSet; + /* array of ChainPosClassSet + tables */ +}; + +typedef struct HB_ChainContextPosFormat2_ HB_ChainContextPosFormat2; + + +struct HB_ChainContextPosFormat3_ +{ + HB_UShort BacktrackGlyphCount; + /* number of backtrack glyphs */ + HB_Coverage* BacktrackCoverage; + /* array of backtrack Coverage + tables */ + HB_UShort InputGlyphCount; + /* number of input glyphs */ + HB_Coverage* InputCoverage; + /* array of input coverage + tables */ + HB_UShort LookaheadGlyphCount; + /* number of lookahead glyphs */ + HB_Coverage* LookaheadCoverage; + /* array of lookahead coverage + tables */ + HB_UShort PosCount; /* number of PosLookupRecords */ + HB_PosLookupRecord* PosLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ChainContextPosFormat3_ HB_ChainContextPosFormat3; + + +struct HB_ChainContextPos_ +{ + HB_UShort PosFormat; /* 1, 2, or 3 */ + + union + { + HB_ChainContextPosFormat1 ccpf1; + HB_ChainContextPosFormat2 ccpf2; + HB_ChainContextPosFormat3 ccpf3; + } ccpf; +}; + +typedef struct HB_ChainContextPos_ HB_ChainContextPos; + + +#if 0 +/* LookupType 10 */ +struct HB_ExtensionPos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_UShort LookuptType; /* lookup-type of referenced subtable */ + HB_GPOS_SubTable *subtable; /* referenced subtable */ +}; + +typedef struct HB_ExtensionPos_ HB_ExtensionPos; +#endif + + +union HB_GPOS_SubTable_ +{ + HB_SinglePos single; + HB_PairPos pair; + HB_CursivePos cursive; + HB_MarkBasePos markbase; + HB_MarkLigPos marklig; + HB_MarkMarkPos markmark; + HB_ContextPos context; + HB_ChainContextPos chain; +}; + +typedef union HB_GPOS_SubTable_ HB_GPOS_SubTable; + + + +HB_INTERNAL HB_Error +_HB_GPOS_Load_SubTable( HB_GPOS_SubTable* st, + HB_Stream stream, + HB_UShort lookup_type ); + +HB_INTERNAL void +_HB_GPOS_Free_SubTable( HB_GPOS_SubTable* st, + HB_UShort lookup_type ); + +HB_END_HEADER + +#endif /* HARFBUZZ_GPOS_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gpos.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gpos.h new file mode 100755 index 0000000..20bb7d9 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gpos.h @@ -0,0 +1,149 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GPOS_H +#define HARFBUZZ_GPOS_H + +#include "harfbuzz-gdef.h" +#include "harfbuzz-buffer.h" + +HB_BEGIN_HEADER + + +/* Lookup types for glyph positioning */ + +#define HB_GPOS_LOOKUP_SINGLE 1 +#define HB_GPOS_LOOKUP_PAIR 2 +#define HB_GPOS_LOOKUP_CURSIVE 3 +#define HB_GPOS_LOOKUP_MARKBASE 4 +#define HB_GPOS_LOOKUP_MARKLIG 5 +#define HB_GPOS_LOOKUP_MARKMARK 6 +#define HB_GPOS_LOOKUP_CONTEXT 7 +#define HB_GPOS_LOOKUP_CHAIN 8 +#define HB_GPOS_LOOKUP_EXTENSION 9 + +/* A pointer to a function which accesses the PostScript interpreter. + Multiple Master fonts need this interface to convert a metric ID + (as stored in an OpenType font version 1.2 or higher) `metric_id' + into a metric value (returned in `metric_value'). + + `data' points to the user-defined structure specified during a + call to HB_GPOS_Register_MM_Function(). + + `metric_value' must be returned as a scaled value (but shouldn't + be rounded). */ + +typedef HB_Error (*HB_MMFunction)(HB_Font font, + HB_UShort metric_id, + HB_Fixed* metric_value, + void* data ); + + +struct HB_GPOSHeader_ +{ + HB_16Dot16 Version; + + HB_ScriptList ScriptList; + HB_FeatureList FeatureList; + HB_LookupList LookupList; + + HB_GDEFHeader* gdef; + + /* this is OpenType 1.2 -- Multiple Master fonts need this + callback function to get various metric values from the + PostScript interpreter. */ + + HB_MMFunction mmfunc; + void* data; +}; + +typedef struct HB_GPOSHeader_ HB_GPOSHeader; +typedef HB_GPOSHeader* HB_GPOS; + + +HB_Error HB_Load_GPOS_Table( HB_Stream stream, + HB_GPOSHeader** gpos, + HB_GDEFHeader* gdef, + HB_Stream gdefStream ); + + +HB_Error HB_Done_GPOS_Table( HB_GPOSHeader* gpos ); + + +HB_Error HB_GPOS_Select_Script( HB_GPOSHeader* gpos, + HB_UInt script_tag, + HB_UShort* script_index ); + +HB_Error HB_GPOS_Select_Language( HB_GPOSHeader* gpos, + HB_UInt language_tag, + HB_UShort script_index, + HB_UShort* language_index, + HB_UShort* req_feature_index ); + +HB_Error HB_GPOS_Select_Feature( HB_GPOSHeader* gpos, + HB_UInt feature_tag, + HB_UShort script_index, + HB_UShort language_index, + HB_UShort* feature_index ); + + +HB_Error HB_GPOS_Query_Scripts( HB_GPOSHeader* gpos, + HB_UInt** script_tag_list ); + +HB_Error HB_GPOS_Query_Languages( HB_GPOSHeader* gpos, + HB_UShort script_index, + HB_UInt** language_tag_list ); + +HB_Error HB_GPOS_Query_Features( HB_GPOSHeader* gpos, + HB_UShort script_index, + HB_UShort language_index, + HB_UInt** feature_tag_list ); + + +HB_Error HB_GPOS_Add_Feature( HB_GPOSHeader* gpos, + HB_UShort feature_index, + HB_UInt property ); + +HB_Error HB_GPOS_Clear_Features( HB_GPOSHeader* gpos ); + + +HB_Error HB_GPOS_Register_MM_Function( HB_GPOSHeader* gpos, + HB_MMFunction mmfunc, + void* data ); + +/* If `dvi' is TRUE, glyph contour points for anchor points and device + tables are ignored -- you will get device independent values. */ + + +HB_Error HB_GPOS_Apply_String( HB_Font font, + HB_GPOSHeader* gpos, + HB_UShort load_flags, + HB_Buffer buffer, + HB_Bool dvi, + HB_Bool r2l ); + +HB_END_HEADER + +#endif /* HARFBUZZ_GPOS_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gsub-private.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gsub-private.h new file mode 100755 index 0000000..f47b46c --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gsub-private.h @@ -0,0 +1,476 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GSUB_PRIVATE_H +#define HARFBUZZ_GSUB_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-stream-private.h" +#include "harfbuzz-gsub.h" + +HB_BEGIN_HEADER + + +typedef union HB_GSUB_SubTable_ HB_GSUB_SubTable; + +/* LookupType 1 */ + +struct HB_SingleSubstFormat1_ +{ + HB_Short DeltaGlyphID; /* constant added to get + substitution glyph index */ +}; + +typedef struct HB_SingleSubstFormat1_ HB_SingleSubstFormat1; + + +struct HB_SingleSubstFormat2_ +{ + HB_UShort GlyphCount; /* number of glyph IDs in + Substitute array */ + HB_UShort* Substitute; /* array of substitute glyph IDs */ +}; + +typedef struct HB_SingleSubstFormat2_ HB_SingleSubstFormat2; + + +struct HB_SingleSubst_ +{ + HB_UShort SubstFormat; /* 1 or 2 */ + HB_Coverage Coverage; /* Coverage table */ + + union + { + HB_SingleSubstFormat1 ssf1; + HB_SingleSubstFormat2 ssf2; + } ssf; +}; + +typedef struct HB_SingleSubst_ HB_SingleSubst; + + +/* LookupType 2 */ + +struct HB_Sequence_ +{ + HB_UShort GlyphCount; /* number of glyph IDs in the + Substitute array */ + HB_UShort* Substitute; /* string of glyph IDs to + substitute */ +}; + +typedef struct HB_Sequence_ HB_Sequence; + + +struct HB_MultipleSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort SequenceCount; /* number of Sequence tables */ + HB_Sequence* Sequence; /* array of Sequence tables */ +}; + +typedef struct HB_MultipleSubst_ HB_MultipleSubst; + + +/* LookupType 3 */ + +struct HB_AlternateSet_ +{ + HB_UShort GlyphCount; /* number of glyph IDs in the + Alternate array */ + HB_UShort* Alternate; /* array of alternate glyph IDs */ +}; + +typedef struct HB_AlternateSet_ HB_AlternateSet; + + +struct HB_AlternateSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort AlternateSetCount; + /* number of AlternateSet tables */ + HB_AlternateSet* AlternateSet; /* array of AlternateSet tables */ +}; + +typedef struct HB_AlternateSubst_ HB_AlternateSubst; + + +/* LookupType 4 */ + +struct HB_Ligature_ +{ + HB_UShort LigGlyph; /* glyphID of ligature + to substitute */ + HB_UShort ComponentCount; /* number of components in ligature */ + HB_UShort* Component; /* array of component glyph IDs */ +}; + +typedef struct HB_Ligature_ HB_Ligature; + + +struct HB_LigatureSet_ +{ + HB_UShort LigatureCount; /* number of Ligature tables */ + HB_Ligature* Ligature; /* array of Ligature tables */ +}; + +typedef struct HB_LigatureSet_ HB_LigatureSet; + + +struct HB_LigatureSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort LigatureSetCount; /* number of LigatureSet tables */ + HB_LigatureSet* LigatureSet; /* array of LigatureSet tables */ +}; + +typedef struct HB_LigatureSubst_ HB_LigatureSubst; + + +/* needed by both lookup type 5 and 6 */ + +struct HB_SubstLookupRecord_ +{ + HB_UShort SequenceIndex; /* index into current + glyph sequence */ + HB_UShort LookupListIndex; /* Lookup to apply to that pos. */ +}; + +typedef struct HB_SubstLookupRecord_ HB_SubstLookupRecord; + + +/* LookupType 5 */ + +struct HB_SubRule_ +{ + HB_UShort GlyphCount; /* total number of input glyphs */ + HB_UShort SubstCount; /* number of SubstLookupRecord + tables */ + HB_UShort* Input; /* array of input glyph IDs */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of SubstLookupRecord + tables */ +}; + +typedef struct HB_SubRule_ HB_SubRule; + + +struct HB_SubRuleSet_ +{ + HB_UShort SubRuleCount; /* number of SubRule tables */ + HB_SubRule* SubRule; /* array of SubRule tables */ +}; + +typedef struct HB_SubRuleSet_ HB_SubRuleSet; + + +struct HB_ContextSubstFormat1_ +{ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort SubRuleSetCount; /* number of SubRuleSet tables */ + HB_SubRuleSet* SubRuleSet; /* array of SubRuleSet tables */ +}; + +typedef struct HB_ContextSubstFormat1_ HB_ContextSubstFormat1; + + +struct HB_SubClassRule_ +{ + HB_UShort GlyphCount; /* total number of context classes */ + HB_UShort SubstCount; /* number of SubstLookupRecord + tables */ + HB_UShort* Class; /* array of classes */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of SubstLookupRecord + tables */ +}; + +typedef struct HB_SubClassRule_ HB_SubClassRule; + + +struct HB_SubClassSet_ +{ + HB_UShort SubClassRuleCount; + /* number of SubClassRule tables */ + HB_SubClassRule* SubClassRule; /* array of SubClassRule tables */ +}; + +typedef struct HB_SubClassSet_ HB_SubClassSet; + + +/* The `MaxContextLength' field is not defined in the TTO specification + but simplifies the implementation of this format. It holds the + maximal context length used in the context rules. */ + +struct HB_ContextSubstFormat2_ +{ + HB_UShort MaxContextLength; + /* maximal context length */ + HB_Coverage Coverage; /* Coverage table */ + HB_ClassDefinition ClassDef; /* ClassDef table */ + HB_UShort SubClassSetCount; + /* number of SubClassSet tables */ + HB_SubClassSet* SubClassSet; /* array of SubClassSet tables */ +}; + +typedef struct HB_ContextSubstFormat2_ HB_ContextSubstFormat2; + + +struct HB_ContextSubstFormat3_ +{ + HB_UShort GlyphCount; /* number of input glyphs */ + HB_UShort SubstCount; /* number of SubstLookupRecords */ + HB_Coverage* Coverage; /* array of Coverage tables */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ContextSubstFormat3_ HB_ContextSubstFormat3; + + +struct HB_ContextSubst_ +{ + HB_UShort SubstFormat; /* 1, 2, or 3 */ + + union + { + HB_ContextSubstFormat1 csf1; + HB_ContextSubstFormat2 csf2; + HB_ContextSubstFormat3 csf3; + } csf; +}; + +typedef struct HB_ContextSubst_ HB_ContextSubst; + + +/* LookupType 6 */ + +struct HB_ChainSubRule_ +{ + HB_UShort BacktrackGlyphCount; + /* total number of backtrack glyphs */ + HB_UShort* Backtrack; /* array of backtrack glyph IDs */ + HB_UShort InputGlyphCount; + /* total number of input glyphs */ + HB_UShort* Input; /* array of input glyph IDs */ + HB_UShort LookaheadGlyphCount; + /* total number of lookahead glyphs */ + HB_UShort* Lookahead; /* array of lookahead glyph IDs */ + HB_UShort SubstCount; /* number of SubstLookupRecords */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of SubstLookupRecords */ +}; + +typedef struct HB_ChainSubRule_ HB_ChainSubRule; + + +struct HB_ChainSubRuleSet_ +{ + HB_UShort ChainSubRuleCount; + /* number of ChainSubRule tables */ + HB_ChainSubRule* ChainSubRule; /* array of ChainSubRule tables */ +}; + +typedef struct HB_ChainSubRuleSet_ HB_ChainSubRuleSet; + + +struct HB_ChainContextSubstFormat1_ +{ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort ChainSubRuleSetCount; + /* number of ChainSubRuleSet tables */ + HB_ChainSubRuleSet* ChainSubRuleSet; + /* array of ChainSubRuleSet tables */ +}; + +typedef struct HB_ChainContextSubstFormat1_ HB_ChainContextSubstFormat1; + + +struct HB_ChainSubClassRule_ +{ + HB_UShort BacktrackGlyphCount; + /* total number of backtrack + classes */ + HB_UShort* Backtrack; /* array of backtrack classes */ + HB_UShort InputGlyphCount; + /* total number of context classes */ + HB_UShort* Input; /* array of context classes */ + HB_UShort LookaheadGlyphCount; + /* total number of lookahead + classes */ + HB_UShort* Lookahead; /* array of lookahead classes */ + HB_UShort SubstCount; /* number of SubstLookupRecords */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ChainSubClassRule_ HB_ChainSubClassRule; + + +struct HB_ChainSubClassSet_ +{ + HB_UShort ChainSubClassRuleCount; + /* number of ChainSubClassRule + tables */ + HB_ChainSubClassRule* ChainSubClassRule; + /* array of ChainSubClassRule + tables */ +}; + +typedef struct HB_ChainSubClassSet_ HB_ChainSubClassSet; + + +/* The `MaxXXXLength' fields are not defined in the TTO specification + but simplifies the implementation of this format. It holds the + maximal context length used in the specific context rules. */ + +struct HB_ChainContextSubstFormat2_ +{ + HB_Coverage Coverage; /* Coverage table */ + + HB_UShort MaxBacktrackLength; + /* maximal backtrack length */ + HB_ClassDefinition BacktrackClassDef; + /* BacktrackClassDef table */ + HB_UShort MaxInputLength; + /* maximal input length */ + HB_ClassDefinition InputClassDef; + /* InputClassDef table */ + HB_UShort MaxLookaheadLength; + /* maximal lookahead length */ + HB_ClassDefinition LookaheadClassDef; + /* LookaheadClassDef table */ + + HB_UShort ChainSubClassSetCount; + /* number of ChainSubClassSet + tables */ + HB_ChainSubClassSet* ChainSubClassSet; + /* array of ChainSubClassSet + tables */ +}; + +typedef struct HB_ChainContextSubstFormat2_ HB_ChainContextSubstFormat2; + + +struct HB_ChainContextSubstFormat3_ +{ + HB_UShort BacktrackGlyphCount; + /* number of backtrack glyphs */ + HB_Coverage* BacktrackCoverage; + /* array of backtrack Coverage + tables */ + HB_UShort InputGlyphCount; + /* number of input glyphs */ + HB_Coverage* InputCoverage; + /* array of input coverage + tables */ + HB_UShort LookaheadGlyphCount; + /* number of lookahead glyphs */ + HB_Coverage* LookaheadCoverage; + /* array of lookahead coverage + tables */ + HB_UShort SubstCount; /* number of SubstLookupRecords */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ChainContextSubstFormat3_ HB_ChainContextSubstFormat3; + + +struct HB_ChainContextSubst_ +{ + HB_UShort SubstFormat; /* 1, 2, or 3 */ + + union + { + HB_ChainContextSubstFormat1 ccsf1; + HB_ChainContextSubstFormat2 ccsf2; + HB_ChainContextSubstFormat3 ccsf3; + } ccsf; +}; + +typedef struct HB_ChainContextSubst_ HB_ChainContextSubst; + + +#if 0 +/* LookupType 7 */ +struct HB_ExtensionSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_UShort LookuptType; /* lookup-type of referenced subtable */ + HB_GSUB_SubTable *subtable; /* referenced subtable */ +}; + +typedef struct HB_ExtensionSubst_ HB_ExtensionSubst; +#endif + + +/* LookupType 8 */ +struct HB_ReverseChainContextSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_Coverage Coverage; /* coverage table for input glyphs */ + HB_UShort BacktrackGlyphCount; /* number of backtrack glyphs */ + HB_Coverage* BacktrackCoverage; /* array of backtrack Coverage + tables */ + HB_UShort LookaheadGlyphCount; /* number of lookahead glyphs */ + HB_Coverage* LookaheadCoverage; /* array of lookahead Coverage + tables */ + HB_UShort GlyphCount; /* number of Glyph IDs */ + HB_UShort* Substitute; /* array of substitute Glyph ID */ +}; + +typedef struct HB_ReverseChainContextSubst_ HB_ReverseChainContextSubst; + + +union HB_GSUB_SubTable_ +{ + HB_SingleSubst single; + HB_MultipleSubst multiple; + HB_AlternateSubst alternate; + HB_LigatureSubst ligature; + HB_ContextSubst context; + HB_ChainContextSubst chain; + HB_ReverseChainContextSubst reverse; +}; + + + + +HB_INTERNAL HB_Error +_HB_GSUB_Load_SubTable( HB_GSUB_SubTable* st, + HB_Stream stream, + HB_UShort lookup_type ); + +HB_INTERNAL void +_HB_GSUB_Free_SubTable( HB_GSUB_SubTable* st, + HB_UShort lookup_type ); + +HB_END_HEADER + +#endif /* HARFBUZZ_GSUB_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gsub.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gsub.h new file mode 100755 index 0000000..4471751 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-gsub.h @@ -0,0 +1,141 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GSUB_H +#define HARFBUZZ_GSUB_H + +#include "harfbuzz-gdef.h" +#include "harfbuzz-buffer.h" + +HB_BEGIN_HEADER + + +/* Lookup types for glyph substitution */ + +#define HB_GSUB_LOOKUP_SINGLE 1 +#define HB_GSUB_LOOKUP_MULTIPLE 2 +#define HB_GSUB_LOOKUP_ALTERNATE 3 +#define HB_GSUB_LOOKUP_LIGATURE 4 +#define HB_GSUB_LOOKUP_CONTEXT 5 +#define HB_GSUB_LOOKUP_CHAIN 6 +#define HB_GSUB_LOOKUP_EXTENSION 7 +#define HB_GSUB_LOOKUP_REVERSE_CHAIN 8 + + +/* A pointer to a function which selects the alternate glyph. `pos' is + the position of the glyph with index `glyphID', `num_alternates' + gives the number of alternates in the `alternates' array. `data' + points to the user-defined structure specified during a call to + HB_GSUB_Register_Alternate_Function(). The function must return an + index into the `alternates' array. */ + +typedef HB_UShort (*HB_AltFunction)(HB_UInt pos, + HB_UShort glyphID, + HB_UShort num_alternates, + HB_UShort* alternates, + void* data ); + + +struct HB_GSUBHeader_ +{ + HB_UInt offset; + + HB_16Dot16 Version; + + HB_ScriptList ScriptList; + HB_FeatureList FeatureList; + HB_LookupList LookupList; + + HB_GDEFHeader* gdef; + + /* the next two fields are used for an alternate substitution callback + function to select the proper alternate glyph. */ + + HB_AltFunction altfunc; + void* data; +}; + +typedef struct HB_GSUBHeader_ HB_GSUBHeader; +typedef HB_GSUBHeader* HB_GSUB; + + +HB_Error HB_Load_GSUB_Table( HB_Stream stream, + HB_GSUBHeader** gsub, + HB_GDEFHeader* gdef, + HB_Stream gdefStream ); + + +HB_Error HB_Done_GSUB_Table( HB_GSUBHeader* gsub ); + + +HB_Error HB_GSUB_Select_Script( HB_GSUBHeader* gsub, + HB_UInt script_tag, + HB_UShort* script_index ); + +HB_Error HB_GSUB_Select_Language( HB_GSUBHeader* gsub, + HB_UInt language_tag, + HB_UShort script_index, + HB_UShort* language_index, + HB_UShort* req_feature_index ); + +HB_Error HB_GSUB_Select_Feature( HB_GSUBHeader* gsub, + HB_UInt feature_tag, + HB_UShort script_index, + HB_UShort language_index, + HB_UShort* feature_index ); + + +HB_Error HB_GSUB_Query_Scripts( HB_GSUBHeader* gsub, + HB_UInt** script_tag_list ); + +HB_Error HB_GSUB_Query_Languages( HB_GSUBHeader* gsub, + HB_UShort script_index, + HB_UInt** language_tag_list ); + +HB_Error HB_GSUB_Query_Features( HB_GSUBHeader* gsub, + HB_UShort script_index, + HB_UShort language_index, + HB_UInt** feature_tag_list ); + + +HB_Error HB_GSUB_Add_Feature( HB_GSUBHeader* gsub, + HB_UShort feature_index, + HB_UInt property ); + +HB_Error HB_GSUB_Clear_Features( HB_GSUBHeader* gsub ); + + +HB_Error HB_GSUB_Register_Alternate_Function( HB_GSUBHeader* gsub, + HB_AltFunction altfunc, + void* data ); + + +HB_Error HB_GSUB_Apply_String( HB_GSUBHeader* gsub, + HB_Buffer buffer ); + + +HB_END_HEADER + +#endif /* HARFBUZZ_GSUB_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-impl.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-impl.h new file mode 100755 index 0000000..358f587 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-impl.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_IMPL_H +#define HARFBUZZ_IMPL_H + +#include "harfbuzz-global.h" + +#include + +HB_BEGIN_HEADER + +#ifndef HB_INTERNAL +# define HB_INTERNAL +#endif + +#ifndef NULL +# define NULL ((void *)0) +#endif + +#ifndef FALSE +# define FALSE 0 +#endif + +#ifndef TRUE +# define TRUE 1 +#endif + +#ifndef TTAG_GDEF +# define TTAG_GDEF HB_MAKE_TAG( 'G', 'D', 'E', 'F' ) +#endif +#ifndef TTAG_GPOS +# define TTAG_GPOS HB_MAKE_TAG( 'G', 'P', 'O', 'S' ) +#endif +#ifndef TTAG_GSUB +# define TTAG_GSUB HB_MAKE_TAG( 'G', 'S', 'U', 'B' ) +#endif + +#ifndef HB_UNUSED +# define HB_UNUSED(arg) ((arg) = (arg)) +#endif + +#define HB_LIKELY(cond) (cond) +#define HB_UNLIKELY(cond) (cond) + +#define ARRAY_LEN(Array) ((int)(sizeof (Array) / sizeof (Array)[0])) + + + +#define HB_IsHighSurrogate(ucs) \ + (((ucs) & 0xfc00) == 0xd800) + +#define HB_IsLowSurrogate(ucs) \ + (((ucs) & 0xfc00) == 0xdc00) + +#define HB_SurrogateToUcs4(high, low) \ + (((HB_UChar32)(high))<<10) + (low) - 0x35fdc00; + + + + + +#define ALLOC(_ptr,_size,_type) \ + ( (_ptr) = (_type)_hb_alloc( _size, &error ), error != 0 ) + +#define REALLOC(_ptr,_newsz,_type) \ + ( (_ptr) = (_type)_hb_realloc( (_ptr), (_newsz), &error ), error != 0 ) + +#define FREE(_ptr) \ + do { \ + if ( (_ptr) ) \ + { \ + _hb_free( _ptr ); \ + _ptr = NULL; \ + } \ + } while (0) + +#define ALLOC_ARRAY(_ptr,_count,_type) \ + ALLOC(_ptr,(_count)*sizeof(_type),_type*) + +#define REALLOC_ARRAY(_ptr,_newcnt,_type) \ + REALLOC(_ptr,(_newcnt)*sizeof(_type),_type*) + +#define MEM_Copy(dest,source,count) memcpy( (char*)(dest), (const char*)(source), (size_t)(count) ) + +#define ERR_HB(err) _hb_err (err) + + +//HB_INTERNAL +HB_Pointer +_hb_alloc( size_t size, + HB_Error *perror_ ); + +//HB_INTERNAL + HB_Pointer +_hb_realloc( HB_Pointer block, + size_t new_size, + HB_Error *perror_ ); + +//HB_INTERNAL + void +_hb_free( HB_Pointer block ); + + +/* helper func to set a breakpoint on */ +//HB_INTERNAL +HB_Error +_hb_err(HB_Error code); + + +HB_END_HEADER + +#endif /* HARFBUZZ_IMPL_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-open-private.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-open-private.h new file mode 100755 index 0000000..02aae80 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-open-private.h @@ -0,0 +1,102 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_OPEN_PRIVATE_H +#define HARFBUZZ_OPEN_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-open.h" +#include "harfbuzz-gsub-private.h" +#include "harfbuzz-gpos-private.h" + +HB_BEGIN_HEADER + + +struct HB_SubTable_ +{ + union + { + HB_GSUB_SubTable gsub; + HB_GPOS_SubTable gpos; + } st; +}; + + +HB_INTERNAL HB_Error +_HB_OPEN_Load_ScriptList( HB_ScriptList* sl, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_FeatureList( HB_FeatureList* fl, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_LookupList( HB_LookupList* ll, + HB_Stream input, + HB_Type type ); + +HB_INTERNAL HB_Error +_HB_OPEN_Load_Coverage( HB_Coverage* c, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_ClassDefinition( HB_ClassDefinition* cd, + HB_UShort limit, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_EmptyOrClassDefinition( HB_ClassDefinition* cd, + HB_UShort limit, + HB_UInt class_offset, + HB_UInt base_offset, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_Device( HB_Device* d, + HB_Stream input ); + +HB_INTERNAL void _HB_OPEN_Free_ScriptList( HB_ScriptList* sl ); +HB_INTERNAL void _HB_OPEN_Free_FeatureList( HB_FeatureList* fl ); +HB_INTERNAL void _HB_OPEN_Free_LookupList( HB_LookupList* ll, + HB_Type type ); + +HB_INTERNAL void _HB_OPEN_Free_Coverage( HB_Coverage* c ); +HB_INTERNAL void _HB_OPEN_Free_ClassDefinition( HB_ClassDefinition* cd ); +HB_INTERNAL void _HB_OPEN_Free_Device( HB_Device* d ); + + + +HB_INTERNAL HB_Error +_HB_OPEN_Coverage_Index( HB_Coverage* c, + HB_UShort glyphID, + HB_UShort* index ); +HB_INTERNAL HB_Error +_HB_OPEN_Get_Class( HB_ClassDefinition* cd, + HB_UShort glyphID, + HB_UShort* klass, + HB_UShort* index ); +HB_INTERNAL HB_Error +_HB_OPEN_Get_Device( HB_Device* d, + HB_UShort size, + HB_Short* value ); + +HB_END_HEADER + +#endif /* HARFBUZZ_OPEN_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-open.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-open.h new file mode 100755 index 0000000..8bc33dc --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-open.h @@ -0,0 +1,282 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_OPEN_H +#define HARFBUZZ_OPEN_H + +#include "harfbuzz-global.h" + +HB_BEGIN_HEADER + +/* Use this if a feature applies to all glyphs */ +#define HB_ALL_GLYPHS 0xFFFF + +#define HB_DEFAULT_LANGUAGE 0xFFFF + +#define HB_MAX_NESTING_LEVEL 100 + + +/* Script list related structures */ + +struct HB_LangSys_ +{ + HB_UShort LookupOrderOffset; /* always 0 for TT Open 1.0 */ + HB_UShort ReqFeatureIndex; /* required FeatureIndex */ + HB_UShort FeatureCount; /* number of Feature indices */ + HB_UShort* FeatureIndex; /* array of Feature indices */ +}; + +typedef struct HB_LangSys_ HB_LangSys; + + +struct HB_LangSysRecord_ +{ + HB_UInt LangSysTag; /* LangSysTag identifier */ + HB_LangSys LangSys; /* LangSys table */ +}; + +typedef struct HB_LangSysRecord_ HB_LangSysRecord; + + +struct HB_ScriptTable_ +{ + HB_LangSys DefaultLangSys; /* DefaultLangSys table */ + HB_UShort LangSysCount; /* number of LangSysRecords */ + HB_LangSysRecord* LangSysRecord; /* array of LangSysRecords */ +}; + +typedef struct HB_ScriptTable_ HB_ScriptTable; + + +struct HB_ScriptRecord_ +{ + HB_UInt ScriptTag; /* ScriptTag identifier */ + HB_ScriptTable Script; /* Script table */ +}; + +typedef struct HB_ScriptRecord_ HB_ScriptRecord; + + +struct HB_ScriptList_ +{ + HB_UShort ScriptCount; /* number of ScriptRecords */ + HB_ScriptRecord* ScriptRecord; /* array of ScriptRecords */ +}; + +typedef struct HB_ScriptList_ HB_ScriptList; + + +/* Feature list related structures */ + +struct HB_Feature_ +{ + HB_UShort FeatureParams; /* always 0 for TT Open 1.0 */ + HB_UShort LookupListCount; /* number of LookupList indices */ + HB_UShort* LookupListIndex; /* array of LookupList indices */ +}; + +typedef struct HB_Feature_ HB_Feature; + + +struct HB_FeatureRecord_ +{ + HB_UInt FeatureTag; /* FeatureTag identifier */ + HB_Feature Feature; /* Feature table */ +}; + +typedef struct HB_FeatureRecord_ HB_FeatureRecord; + + +struct HB_FeatureList_ +{ + HB_UShort FeatureCount; /* number of FeatureRecords */ + HB_FeatureRecord* FeatureRecord; /* array of FeatureRecords */ + HB_UShort* ApplyOrder; /* order to apply features */ + HB_UShort ApplyCount; /* number of elements in ApplyOrder */ +}; + +typedef struct HB_FeatureList_ HB_FeatureList; + + +/* Lookup list related structures */ + +typedef struct HB_SubTable_ HB_SubTable; + + +struct HB_Lookup_ +{ + HB_UShort LookupType; /* Lookup type */ + HB_UShort LookupFlag; /* Lookup qualifiers */ + HB_UShort SubTableCount; /* number of SubTables */ + HB_SubTable* SubTable; /* array of SubTables */ +}; + +typedef struct HB_Lookup_ HB_Lookup; + + +/* The `Properties' field is not defined in the OpenType specification but + is needed for processing lookups. If properties[n] is > 0, the + functions HB_GSUB_Apply_String() resp. HB_GPOS_Apply_String() will + process Lookup[n] for glyphs which have the specific bit not set in + the `properties' field of the input string object. */ + +struct HB_LookupList_ +{ + HB_UShort LookupCount; /* number of Lookups */ + HB_Lookup* Lookup; /* array of Lookup records */ + HB_UInt* Properties; /* array of flags */ +}; + +typedef struct HB_LookupList_ HB_LookupList; + + +/* Possible LookupFlag bit masks. `HB_LOOKUP_FLAG_IGNORE_SPECIAL_MARKS' comes from the + OpenType 1.2 specification; HB_LOOKUP_FLAG_RIGHT_TO_LEFT has been (re)introduced in + OpenType 1.3 -- if set, the last glyph in a cursive attachment + sequence has to be positioned on the baseline -- regardless of the + writing direction. */ + +#define HB_LOOKUP_FLAG_RIGHT_TO_LEFT 0x0001 +#define HB_LOOKUP_FLAG_IGNORE_BASE_GLYPHS 0x0002 +#define HB_LOOKUP_FLAG_IGNORE_LIGATURES 0x0004 +#define HB_LOOKUP_FLAG_IGNORE_MARKS 0x0008 +#define HB_LOOKUP_FLAG_IGNORE_SPECIAL_MARKS 0xFF00 + + +struct HB_CoverageFormat1_ +{ + HB_UShort GlyphCount; /* number of glyphs in GlyphArray */ + HB_UShort* GlyphArray; /* array of glyph IDs */ +}; + +typedef struct HB_CoverageFormat1_ HB_CoverageFormat1; + + +struct HB_RangeRecord_ +{ + HB_UShort Start; /* first glyph ID in the range */ + HB_UShort End; /* last glyph ID in the range */ + HB_UShort StartCoverageIndex; /* coverage index of first + glyph ID in the range */ +}; + +typedef struct HB_RangeRecord_ HB_RangeRecord; + + +struct HB_CoverageFormat2_ +{ + HB_UShort RangeCount; /* number of RangeRecords */ + HB_RangeRecord* RangeRecord; /* array of RangeRecords */ +}; + +typedef struct HB_CoverageFormat2_ HB_CoverageFormat2; + + +struct HB_Coverage_ +{ + HB_UShort CoverageFormat; /* 1 or 2 */ + + union + { + HB_CoverageFormat1 cf1; + HB_CoverageFormat2 cf2; + } cf; +}; + +typedef struct HB_Coverage_ HB_Coverage; + + +struct HB_ClassDefFormat1_ +{ + HB_UShort StartGlyph; /* first glyph ID of the + ClassValueArray */ + HB_UShort GlyphCount; /* size of the ClassValueArray */ + HB_UShort* ClassValueArray; /* array of class values */ +}; + +typedef struct HB_ClassDefFormat1_ HB_ClassDefFormat1; + + +struct HB_ClassRangeRecord_ +{ + HB_UShort Start; /* first glyph ID in the range */ + HB_UShort End; /* last glyph ID in the range */ + HB_UShort Class; /* applied to all glyphs in range */ +}; + +typedef struct HB_ClassRangeRecord_ HB_ClassRangeRecord; + + +struct HB_ClassDefFormat2_ +{ + HB_UShort ClassRangeCount; + /* number of ClassRangeRecords */ + HB_ClassRangeRecord* ClassRangeRecord; + /* array of ClassRangeRecords */ +}; + +typedef struct HB_ClassDefFormat2_ HB_ClassDefFormat2; + + +struct HB_ClassDefinition_ +{ + HB_Bool loaded; + + HB_UShort ClassFormat; /* 1 or 2 */ + + union + { + HB_ClassDefFormat1 cd1; + HB_ClassDefFormat2 cd2; + } cd; +}; + +typedef struct HB_ClassDefinition_ HB_ClassDefinition; + + +struct HB_Device_ +{ + HB_UShort StartSize; /* smallest size to correct */ + HB_UShort EndSize; /* largest size to correct */ + HB_UShort DeltaFormat; /* DeltaValue array data format: + 1, 2, or 3 */ + HB_UShort* DeltaValue; /* array of compressed data */ +}; + +typedef struct HB_Device_ HB_Device; + + +enum HB_Type_ +{ + HB_Type_GSUB, + HB_Type_GPOS +}; + +typedef enum HB_Type_ HB_Type; + + +HB_END_HEADER + +#endif /* HARFBUZZ_OPEN_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-shape.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-shape.h new file mode 100755 index 0000000..82c510a --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-shape.h @@ -0,0 +1,199 @@ +/* + * Copyright (C) 2006 Red Hat, Inc. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor + */ + +#include + +/* Base Types */ + +typedef hb_uint16 HB_CodePoint; /* UTF-16 codepoint (not character ) */ +typedef char HB_Boolean; +typedef hb_uint32 HB_Fixed; /* 26.6 */ +typedef hb_uint32 HB_Glyph; +typedef hb_uint32 HB_Unichar; + +/* Metrics reported by the font backend for use of the shaper */ +typedef struct _HB_GlyphMetrics HB_GlyphMetrics; +struct _HB_GlyphMetrics +{ + HB_Fixed advance; + + /* Do we need ink/logical extents for the glyph here? */ +}; + +/* + * HB_Font: Abstract font interface. + * First pass of this might just have FT_Face *getFace(); + */ +typedef struct _HB_Font HB_Font; +typedef struct _HB_FontClass HB_FontClass; + +struct HB_FontClass { + HB_Glyph (*charToGlyph)(HB_Font *font, HB_Unichar chr); + void (*getMetrics)(HB_Font *font, HB_Glyph glyph, HB_GlyphMetrics *metrics); + HB_Boolean (*getSFontTable)(HB_Font *font, void **cookie, char **start, int *len); + HB_Boolean (*freeSFontTable)(void **cookie); +}; + +struct _HB_Font { + HB_FontClass *clazz; +}; + +/* + * Language tags, of the form en-us; represented as interned, canonicalized + * strings. hb_language_from_string("en_US"), hb_language_from_string("en-us") + * both return the same (pointer-comparable) HB_Language). + */ +typedef struct HB_Language_ *HB_Language; + +HB_Language hb_language_from_string(const char *str); +const char *hb_language_to_string(HB_Language language); + +/* Special treatment for the edges of runs. + */ +typedef enum { + HB_RUN_EDGE_LINE_VISUAL_EDGE = 1 << 0, + HB_RUN_EDGE_LINE_LOGICAL_EDGE = 1 << 1, + HB_RUN_EDGE_LINE_ADD_HYPHEN = 1 << 2 /* ???? */ +} HB_RunEdge; + +/* Defines optional informaiton in HB_ShapeInput; this allows extension + * of HB_ShapeInput while keeping binary compatibility + */ +typedef enum { + HB_SHAPE_START_TYPE = 1 << 0, + HB_SHAPE_END_TYPE = 1 << 1 +} HB_ShapeFlags; + +/* Attributes types are described by "interned strings"; this is a little + * annoying if you want to write a switch statement, but keeps things + * simple. + */ +typedef struct _HB_AttributeType *HB_AttributeType; + +HB_AttributeType hb_attribute_type_from_string(const char *str); +const char *hb_attribute_type_to_string(HB_AttributeType attribute_type); + +struct HB_Attribute { + HB_AttributeType type; + int start; + int end; +}; + + +/** + * You could handle this like HB_Language, but an enum seems a little nicer; + * another approach would be to use OpenType script tags. + */ +typedef enum { + HB_SCRIPT_LATIN + /* ... */ +} HB_ShapeScript; + +/* This is just the subset of direction information needed by the shaper */ +typedef enum { + HB_DIRECTION_LTR, + HB_DIRECTION_RTL, + HB_DIRECTION_TTB +} HB_Direction; + +typedef struct _HB_ShapeInput HB_ShapeInput; +struct _HB_ShapeInput { + /* Defines what fields the caller has initialized - fields not in + * the enum are mandatory. + */ + HB_ShapeFlags flags; + + HB_CodePoint *text; + int length; /* total length of text to shape */ + int shape_offset; /* start of section to shape */ + int shape_length; /* number of code points to shape */ + + HB_Direction direction; + HB_ShapeScript script; + HB_Language language; + + HB_AttributeType *attributes; + int n_attributes; + + HB_RunEdge start_type; + HB_RunEdge end_type; +}; + +struct HB_GlyphItem { + HB_Glyph glyph; + + HB_Fixed x_offset; + HB_Fixed y_offset; + HB_Fixed advance; + + /* Add kashida information, etc, here */ +}; + +typedef enum { + HB_RESULT_SUCCESS, + HB_RESULT_NO_MEMORY, + HB_SHAPE_RESULT_FAILED +} HB_Result; + +/* + * Buffer for output + */ +typedef struct _HB_GlyphBuffer HB_GlyphBuffer; +struct _HB_GlyphBuffer { + int glyph_item_size; + int total_glyphs; + + int *log_clusters; /* Uniscribe style */ + int cluster_space; + + int glyph_space; + void *glyph_buffer; +}; + +/* Making this self-allocating simplifies writing shapers and + * also keeps things easier for caller. item_size passed in + * must be at least sizeof(HB_GlyphItem) but can be bigger, + * to accomodate application structures that extend HB_GlyphItem. + * The allocated items will be zero-initialized. + * + * (Hack: Harfbuzz could choose to use even a *bigger* item size + * and stick internal information before the public item structure. + * This hack could possibly be used to unify this with HB_Buffer) + */ +HB_GlyphBuffer *hb_glyph_buffer_new (size_t item_size); +void hb_glyph_buffer_clear (HB_GlyphBuffer *buf); +HB_Result hb_glyph_buffer_extend_glyphs (HB_GlyphBuffer *buf, int n_items); +HB_Result hb_glyph_buffer_extend_clusters (HB_GlyphBuffer *buf, int n_clusters); +void hb_glyph_buffer_free (HB_GlyphBuffer *buf); + + +/* Accessor for a particular glyph */ +#define HB_GLYPH_BUFFER_ITEM(buffer, index) + +/* + * Main shaping function + */ +HB_Result hb_shape(HB_ShapeInput *input, HB_GlyphBuffer *output); diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-shaper-private.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-shaper-private.h new file mode 100755 index 0000000..bb0ae9f --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-shaper-private.h @@ -0,0 +1,164 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_SHAPER_PRIVATE_H +#define HARFBUZZ_SHAPER_PRIVATE_H + +HB_BEGIN_HEADER +enum { + C_DOTTED_CIRCLE = 0x25CC +}; + +typedef enum +{ + HB_Combining_BelowLeftAttached = 200, + HB_Combining_BelowAttached = 202, + HB_Combining_BelowRightAttached = 204, + HB_Combining_LeftAttached = 208, + HB_Combining_RightAttached = 210, + HB_Combining_AboveLeftAttached = 212, + HB_Combining_AboveAttached = 214, + HB_Combining_AboveRightAttached = 216, + + HB_Combining_BelowLeft = 218, + HB_Combining_Below = 220, + HB_Combining_BelowRight = 222, + HB_Combining_Left = 224, + HB_Combining_Right = 226, + HB_Combining_AboveLeft = 228, + HB_Combining_Above = 230, + HB_Combining_AboveRight = 232, + + HB_Combining_DoubleBelow = 233, + HB_Combining_DoubleAbove = 234, + HB_Combining_IotaSubscript = 240 +} HB_CombiningClass; + +typedef enum { + CcmpProperty = 0x1, + InitProperty = 0x2, + IsolProperty = 0x4, + FinaProperty = 0x8, + MediProperty = 0x10, + RligProperty = 0x20, + CaltProperty = 0x40, + LigaProperty = 0x80, + DligProperty = 0x100, + CswhProperty = 0x200, + MsetProperty = 0x400, + + /* used by indic and myanmar shaper */ + NuktaProperty = 0x4, + AkhantProperty = 0x8, + RephProperty = 0x10, + PreFormProperty = 0x20, + BelowFormProperty = 0x40, + AboveFormProperty = 0x80, + HalfFormProperty = 0x100, + PostFormProperty = 0x200, + VattuProperty = 0x400, + PreSubstProperty = 0x800, + BelowSubstProperty = 0x1000, + AboveSubstProperty = 0x2000, + PostSubstProperty = 0x4000, + HalantProperty = 0x8000, + CligProperty = 0x10000 + +} HB_OpenTypeProperty; + +/* return true if ok. */ +typedef HB_Bool (*HB_ShapeFunction)(HB_ShaperItem *shaper_item); +typedef void (*HB_AttributeFunction)(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +typedef struct { + HB_ShapeFunction shape; + HB_AttributeFunction charAttributes; +} HB_ScriptEngine; + +extern const HB_ScriptEngine HB_ScriptEngines[]; + +extern HB_Bool HB_BasicShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_TibetanShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_HebrewShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_ArabicShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_HangulShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_MyanmarShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_KhmerShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_IndicShape(HB_ShaperItem *shaper_item); + +extern void HB_TibetanAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +extern void HB_MyanmarAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +extern void HB_KhmerAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +extern void HB_IndicAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +extern void HB_ThaiAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +typedef struct { + hb_uint32 tag; + hb_uint32 property; +} HB_OpenTypeFeature; + +#define PositioningProperties 0x80000000 + +HB_Bool HB_SelectScript(HB_ShaperItem *item, const HB_OpenTypeFeature *features); + +HB_Bool HB_OpenTypeShape(HB_ShaperItem *item, const hb_uint32 *properties); +HB_Bool HB_OpenTypePosition(HB_ShaperItem *item, int availableGlyphs, HB_Bool doLogClusters); + +void HB_HeuristicPosition(HB_ShaperItem *item); +void HB_HeuristicSetGlyphAttributes(HB_ShaperItem *item); + +#define HB_IsControlChar(uc) \ + ((uc >= 0x200b && uc <= 0x200f /* ZW Space, ZWNJ, ZWJ, LRM and RLM */) \ + || (uc >= 0x2028 && uc <= 0x202f /* LS, PS, LRE, RLE, PDF, LRO, RLO, NNBSP */) \ + || (uc >= 0x206a && uc <= 0x206f /* ISS, ASS, IAFS, AFS, NADS, NODS */)) + +HB_Bool HB_ConvertStringToGlyphIndices(HB_ShaperItem *shaper_item); + +#define HB_GetGlyphAdvances(shaper_item) \ + shaper_item->font->klass->getGlyphAdvances(shaper_item->font, \ + shaper_item->glyphs, shaper_item->num_glyphs, \ + shaper_item->advances, \ + shaper_item->face->current_flags); + +#define HB_DECLARE_STACKARRAY(Type, Name) \ + Type stack##Name[64]; \ + Type *Name = stack##Name; + +#define HB_INIT_STACKARRAY(Type, Name, Length) \ + if ((Length) >= 64) \ + Name = (Type *)malloc((Length) * sizeof(Type)); + +#define HB_STACKARRAY(Type, Name, Length) \ + HB_DECLARE_STACKARRAY(Type, Name) \ + HB_INIT_STACKARRAY(Type, Name, Length) + +#define HB_FREE_STACKARRAY(Name) \ + if (stack##Name != Name) \ + free(Name); + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-shaper.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-shaper.h new file mode 100755 index 0000000..c74c664 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-shaper.h @@ -0,0 +1,283 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_SHAPER_H +#define HARFBUZZ_SHAPER_H + +#include "harfbuzz-global.h" +#include "harfbuzz-gdef.h" +#include "harfbuzz-gpos.h" +#include "harfbuzz-gsub.h" +#include "harfbuzz-external.h" +#include "harfbuzz-stream-private.h" + +HB_BEGIN_HEADER + +typedef enum { + HB_Script_Common, + HB_Script_Greek, + HB_Script_Cyrillic, + HB_Script_Armenian, + HB_Script_Hebrew, + HB_Script_Arabic, + HB_Script_Syriac, + HB_Script_Thaana, + HB_Script_Devanagari, + HB_Script_Bengali, + HB_Script_Gurmukhi, + HB_Script_Gujarati, + HB_Script_Oriya, + HB_Script_Tamil, + HB_Script_Telugu, + HB_Script_Kannada, + HB_Script_Malayalam, + HB_Script_Sinhala, + HB_Script_Thai, + HB_Script_Lao, + HB_Script_Tibetan, + HB_Script_Myanmar, + HB_Script_Georgian, + HB_Script_Hangul, + HB_Script_Ogham, + HB_Script_Runic, + HB_Script_Khmer, + HB_Script_Nko, + HB_Script_Inherited, + HB_ScriptCount = HB_Script_Inherited + /* + HB_Script_Latin = Common, + HB_Script_Ethiopic = Common, + HB_Script_Cherokee = Common, + HB_Script_CanadianAboriginal = Common, + HB_Script_Mongolian = Common, + HB_Script_Hiragana = Common, + HB_Script_Katakana = Common, + HB_Script_Bopomofo = Common, + HB_Script_Han = Common, + HB_Script_Yi = Common, + HB_Script_OldItalic = Common, + HB_Script_Gothic = Common, + HB_Script_Deseret = Common, + HB_Script_Tagalog = Common, + HB_Script_Hanunoo = Common, + HB_Script_Buhid = Common, + HB_Script_Tagbanwa = Common, + HB_Script_Limbu = Common, + HB_Script_TaiLe = Common, + HB_Script_LinearB = Common, + HB_Script_Ugaritic = Common, + HB_Script_Shavian = Common, + HB_Script_Osmanya = Common, + HB_Script_Cypriot = Common, + HB_Script_Braille = Common, + HB_Script_Buginese = Common, + HB_Script_Coptic = Common, + HB_Script_NewTaiLue = Common, + HB_Script_Glagolitic = Common, + HB_Script_Tifinagh = Common, + HB_Script_SylotiNagri = Common, + HB_Script_OldPersian = Common, + HB_Script_Kharoshthi = Common, + HB_Script_Balinese = Common, + HB_Script_Cuneiform = Common, + HB_Script_Phoenician = Common, + HB_Script_PhagsPa = Common, + */ +} HB_Script; + +typedef struct +{ + hb_uint32 pos; + hb_uint32 length; + HB_Script script; + hb_uint8 bidiLevel; +} HB_ScriptItem; + +typedef enum { + HB_NoBreak, + HB_SoftHyphen, + HB_Break, + HB_ForcedBreak +} HB_LineBreakType; + + +typedef struct { + /*HB_LineBreakType*/ unsigned lineBreakType :2; + /*HB_Bool*/ unsigned whiteSpace :1; /* A unicode whitespace character, except NBSP, ZWNBSP */ + /*HB_Bool*/ unsigned charStop :1; /* Valid cursor position (for left/right arrow) */ + /*HB_Bool*/ unsigned wordBoundary :1; + /*HB_Bool*/ unsigned sentenceBoundary :1; + unsigned unused :2; +} HB_CharAttributes; + +void HB_GetCharAttributes(const HB_UChar16 *string, hb_uint32 stringLength, + const HB_ScriptItem *items, hb_uint32 numItems, + HB_CharAttributes *attributes); + +/* requires HB_GetCharAttributes to be called before */ +void HB_GetWordBoundaries(const HB_UChar16 *string, hb_uint32 stringLength, + const HB_ScriptItem *items, hb_uint32 numItems, + HB_CharAttributes *attributes); + +/* requires HB_GetCharAttributes to be called before */ +void HB_GetSentenceBoundaries(const HB_UChar16 *string, hb_uint32 stringLength, + const HB_ScriptItem *items, hb_uint32 numItems, + HB_CharAttributes *attributes); + + +typedef enum { + HB_LeftToRight = 0, + HB_RightToLeft = 1 +} HB_StringToGlyphsFlags; + +typedef enum { + HB_ShaperFlag_Default = 0, + HB_ShaperFlag_NoKerning = 1, + HB_ShaperFlag_UseDesignMetrics = 2 +} HB_ShaperFlag; + +/* + highest value means highest priority for justification. Justification is done by first inserting kashidas + starting with the highest priority positions, then stretching spaces, afterwards extending inter char + spacing, and last spacing between arabic words. + NoJustification is for example set for arabic where no Kashida can be inserted or for diacritics. +*/ +typedef enum { + HB_NoJustification= 0, /* Justification can't be applied after this glyph */ + HB_Arabic_Space = 1, /* This glyph represents a space inside arabic text */ + HB_Character = 2, /* Inter-character justification point follows this glyph */ + HB_Space = 4, /* This glyph represents a blank outside an Arabic run */ + HB_Arabic_Normal = 7, /* Normal Middle-Of-Word glyph that connects to the right (begin) */ + HB_Arabic_Waw = 8, /* Next character is final form of Waw/Ain/Qaf/Fa */ + HB_Arabic_BaRa = 9, /* Next two chars are Ba + Ra/Ya/AlefMaksura */ + HB_Arabic_Alef = 10, /* Next character is final form of Alef/Tah/Lam/Kaf/Gaf */ + HB_Arabic_HaaDal = 11, /* Next character is final form of Haa/Dal/Taa Marbutah */ + HB_Arabic_Seen = 12, /* Initial or Medial form Of Seen/Sad */ + HB_Arabic_Kashida = 13 /* Kashida(U+640) in middle of word */ +} HB_JustificationClass; + +/* This structure is binary compatible with Uniscribe's SCRIPT_VISATTR. Would be nice to keep + * it like that. If this is a problem please tell Trolltech :) + */ +typedef struct { + unsigned justification :4; /* Justification class */ + unsigned clusterStart :1; /* First glyph of representation of cluster */ + unsigned mark :1; /* needs to be positioned around base char */ + unsigned zeroWidth :1; /* ZWJ, ZWNJ etc, with no width */ + unsigned dontPrint :1; + unsigned combiningClass :8; +} HB_GlyphAttributes; + +typedef struct HB_FaceRec_ { + HB_Bool isSymbolFont; + + HB_GDEF gdef; + HB_GSUB gsub; + HB_GPOS gpos; + HB_Bool supported_scripts[HB_ScriptCount]; + HB_Buffer buffer; + HB_Script current_script; + int current_flags; /* HB_ShaperFlags */ + HB_Bool has_opentype_kerning; + HB_Bool glyphs_substituted; + HB_GlyphAttributes *tmpAttributes; + unsigned int *tmpLogClusters; + int length; + int orig_nglyphs; +} HB_FaceRec; + +typedef HB_Error (*HB_GetFontTableFunc)(void *font, HB_Tag tag, HB_Byte *buffer, HB_UInt *length); + +HB_Face HB_NewFace(void *font, HB_GetFontTableFunc tableFunc); +void HB_FreeFace(HB_Face face); + +typedef struct { + HB_Fixed x, y; + HB_Fixed width, height; + HB_Fixed xOffset, yOffset; +} HB_GlyphMetrics; + +typedef enum { + HB_FontAscent +} HB_FontMetric; + +typedef struct { + HB_Bool (*convertStringToGlyphIndices)(HB_Font font, const HB_UChar16 *string, hb_uint32 length, HB_Glyph *glyphs, hb_uint32 *numGlyphs, HB_Bool rightToLeft); + void (*getGlyphAdvances)(HB_Font font, const HB_Glyph *glyphs, hb_uint32 numGlyphs, HB_Fixed *advances, int flags /*HB_ShaperFlag*/); + HB_Bool (*canRender)(HB_Font font, const HB_UChar16 *string, hb_uint32 length); + /* implementation needs to make sure to load a scaled glyph, so /no/ FT_LOAD_NO_SCALE */ + HB_Error (*getPointInOutline)(HB_Font font, HB_Glyph glyph, int flags /*HB_ShaperFlag*/, hb_uint32 point, HB_Fixed *xpos, HB_Fixed *ypos, hb_uint32 *nPoints); + void (*getGlyphMetrics)(HB_Font font, HB_Glyph glyph, HB_GlyphMetrics *metrics); + HB_Fixed (*getFontMetric)(HB_Font font, HB_FontMetric metric); +} HB_FontClass; + +typedef struct HB_Font_ { + const HB_FontClass *klass; + + /* Metrics */ + HB_UShort x_ppem, y_ppem; + HB_16Dot16 x_scale, y_scale; + + void *userData; +} HB_FontRec; + +typedef struct HB_ShaperItem_ HB_ShaperItem; + +struct HB_ShaperItem_ { + const HB_UChar16 *string; /* input: the Unicode UTF16 text to be shaped */ + hb_uint32 stringLength; /* input: the length of the input in 16-bit words */ + HB_ScriptItem item; /* input: the current run to be shaped: a run of text all in the same script that is a substring of */ + HB_Font font; /* input: the font: scale, units and function pointers supplying glyph indices and metrics */ + HB_Face face; /* input: the shaper state; current script, access to the OpenType tables , etc. */ + int shaperFlags; /* input (unused) should be set to 0; intended to support flags defined in HB_ShaperFlag */ + HB_Bool glyphIndicesPresent; /* input: true if the array contains glyph indices ready to be shaped */ + hb_uint32 initialGlyphCount; /* input: if glyphIndicesPresent is true, the number of glyph indices in the array */ + + hb_uint32 num_glyphs; /* input: capacity of output arrays , , , , and ; */ + /* output: required capacity (may be larger than actual capacity) */ + + HB_Glyph *glyphs; /* output: indices of shaped glyphs */ + HB_GlyphAttributes *attributes; /* output: glyph attributes */ + HB_Fixed *advances; /* output: advances */ + HB_FixedPoint *offsets; /* output: offsets */ + unsigned short *log_clusters; /* output: for each output glyph, the index in the input of the start of its logical cluster */ + + /* internal */ + HB_Bool kerning_applied; /* output: true if kerning was applied by the shaper */ +}; + +HB_Bool HB_ShapeItem(HB_ShaperItem *item); + + +extern int tibetan_nextSyllableBoundary(const HB_UChar16 *s, int start, int end, HB_Bool *invalid) ; +extern int myanmar_nextSyllableBoundary(const HB_UChar16 *s, int start, int end, HB_Bool *invalid) ; +extern int khmer_nextSyllableBoundary(const HB_UChar16 *s, int start, int end, HB_Bool *invalid) ; +//#ifdef __cplusplus +//extern "C" //{ int indic_nextSyllableBoundary(HB_Script script, const HB_UChar16 *s, int start, int end, bool *invalid) ; +//#endif + +extern int indic_nextSyllableBoundary(HB_Script script, const HB_UChar16 *s, int start, int end, HB_Bool *invalid) ; + + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-stream-private.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-stream-private.h new file mode 100755 index 0000000..322cf08 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-stream-private.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_STREAM_PRIVATE_H +#define HARFBUZZ_STREAM_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-stream.h" + +HB_BEGIN_HEADER + +HB_INTERNAL void +_hb_close_stream( HB_Stream stream ); + +HB_INTERNAL HB_Int +_hb_stream_pos( HB_Stream stream ); + +HB_INTERNAL HB_Error +_hb_stream_seek( HB_Stream stream, + HB_UInt pos ); + +HB_INTERNAL HB_Error +_hb_stream_frame_enter( HB_Stream stream, + HB_UInt size ); + +HB_INTERNAL void +_hb_stream_frame_exit( HB_Stream stream ); + +/* convenience macros */ + +#define SET_ERR(c) ( (error = (c)) != 0 ) + +#define GOTO_Table(tag) (0) +#define FILE_Pos() _hb_stream_pos( stream ) +#define FILE_Seek(pos) SET_ERR( _hb_stream_seek( stream, pos ) ) +#define ACCESS_Frame(size) SET_ERR( _hb_stream_frame_enter( stream, size ) ) +#define FORGET_Frame() _hb_stream_frame_exit( stream ) + +#define GET_Byte() (*stream->cursor++) +#define GET_Short() (stream->cursor += 2, (HB_Short)( \ + (*(((HB_Byte*)stream->cursor)-2) << 8) | \ + *(((HB_Byte*)stream->cursor)-1) \ + )) +#define GET_Long() (stream->cursor += 4, (HB_Int)( \ + (*(((HB_Byte*)stream->cursor)-4) << 24) | \ + (*(((HB_Byte*)stream->cursor)-3) << 16) | \ + (*(((HB_Byte*)stream->cursor)-2) << 8) | \ + *(((HB_Byte*)stream->cursor)-1) \ + )) + + +#define GET_Char() ((HB_Char)GET_Byte()) +#define GET_UShort() ((HB_UShort)GET_Short()) +#define GET_ULong() ((HB_UInt)GET_Long()) +#define GET_Tag4() GET_ULong() + +HB_END_HEADER + +#endif /* HARFBUZZ_STREAM_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-stream.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-stream.h new file mode 100755 index 0000000..e49c307 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz-stream.h @@ -0,0 +1,42 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_STREAM_H +#define HARFBUZZ_STREAM_H + +#include "harfbuzz-global.h" + +HB_BEGIN_HEADER + +typedef struct HB_StreamRec_ +{ + HB_Byte* base; + HB_UInt size; + HB_UInt pos; + + HB_Byte* cursor; +} HB_StreamRec; + + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz.h new file mode 100755 index 0000000..d127458 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/harfbuzz.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_H +#define HARFBUZZ_H + +#include "harfbuzz-external.h" +#include "harfbuzz-impl.h" +#include "harfbuzz-global.h" +#include "harfbuzz-buffer.h" +#include "harfbuzz-gdef.h" +#include "harfbuzz-gsub.h" +#include "harfbuzz-gpos.h" +#include "harfbuzz-open.h" +#include "harfbuzz-shaper.h" + +#define HB_DOTTED_CIRCLE 0x25CC /** DottedCircle used with dependent Matras */ +#define HB_ZWJ 0x200D /** Zero Width Joiner */ +#define HB_ZWNJ 0x200C /** Zero Width Non-Joiner */ + +#define HB_INITIAL_NO_OF_GLYPH 64 + +extern HB_Error hb_getScriptID(HB_UShort value, HB_Script *scriptID) ; +extern HB_Error hb_getTextWithScriptID(HB_UShort *text, int textLen, HB_Script *scriptID, int *scriptLen) ; +extern int hb_getSyllableLength(HB_UShort *text, int textLen, HB_Script *scriptID) ; + +#endif /* HARFBUZZ_OPEN_H */ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/hb_unicode_tables.h b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/hb_unicode_tables.h new file mode 100755 index 0000000..20e40e6 --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/include/harfbuzz/hb_unicode_tables.h @@ -0,0 +1,3312 @@ + +/* + * Copyright (C) 2010 Samsung India Software Operations Pvt. Ltd. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef __hb_unicode_tables_h__ +#define __hb_unicode_tables_h__ + +#include "math.h" +#include "harfbuzz-shaper.h" +#include "harfbuzz-shaper-private.h" + +typedef struct +{ + HB_UShort scriptID;//it can be sript id if subtable is null, else size of subtable + HB_Script *pSubTable; + +}unicodeScriptTableStruct; + +HB_Script subTableThanaSyriac[] = +{ + HB_Script_Syriac,//0x00 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac,//0x08 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x10 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x18 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x20 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac,//0x28 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x30 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac,//0x38 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac,//0x40 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x48 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac,//0x4f + + HB_Script_Common,//0x50 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x58 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x60 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x68 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x70 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x78 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Thaana,//0x80 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0x88 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0x90 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0x98 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0xa0 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0xa8 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0xb0 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0xb8 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana,//0xbf +}; + +HB_Script subTableDevaBengali[] = +{ + HB_Script_Devanagari,//0x00 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x08 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x10 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x18 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x20 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x28 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x30 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x38 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x40 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x48 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari,//0x4f + + HB_Script_Devanagari,//0x50 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x58 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x60 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x68 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x70 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x78 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari,//0x7f + + + HB_Script_Bengali,//0x80 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0x88 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0x90 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + + HB_Script_Bengali,//0x98 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xa0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xa8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xb0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + + HB_Script_Bengali,//0xb8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xc0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + + HB_Script_Bengali,//0xc8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xd0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xd8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xe0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + + HB_Script_Bengali,//0xe8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xf0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xf8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali,//0xff + +}; + + +HB_Script subTableGuruGuarati[]= +{ + HB_Script_Gurmukhi,//0x00 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x08 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x10 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x18 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x20 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x28 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x30 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x38 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x40 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x48 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi,//0x4f + + HB_Script_Gurmukhi,//0x50 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x58 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x60 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x68 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x70 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x78 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi,//0x7f + + + HB_Script_Gujarati,//0x80 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0x88 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0x90 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + + HB_Script_Gujarati,//0x98 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xa0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xa8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xb0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + + HB_Script_Gujarati,//0xb8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xc0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + + HB_Script_Gujarati,//0xc8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xd0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xd8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xe0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + + HB_Script_Gujarati,//0xe8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xf0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xf8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati,//0xff + +}; + +HB_Script subTableOriyaTamil[]= +{ + HB_Script_Oriya,//0x00 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x08 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x10 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x18 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x20 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x28 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x30 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x38 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x40 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x48 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya,//0x4f + + HB_Script_Oriya,//0x50 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x58 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x60 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x68 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x70 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x78 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya,//0x7f + + + HB_Script_Tamil,//0x80 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0x88 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0x90 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + + HB_Script_Tamil,//0x98 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xa0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xa8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xb0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + + HB_Script_Tamil,//0xb8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xc0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + + HB_Script_Tamil,//0xc8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xd0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xd8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xe0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + + HB_Script_Tamil,//0xe8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xf0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xf8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil,//0xff + +}; + + +HB_Script subTableTelukannada[]= +{ + HB_Script_Telugu,//0x00 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x08 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x10 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x18 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x20 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x28 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x30 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x38 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x40 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x48 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu,//0x4f + + HB_Script_Telugu,//0x50 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x58 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x60 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x68 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x70 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x78 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu,//0x7f + + + HB_Script_Kannada,//0x80 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0x88 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0x90 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + + HB_Script_Kannada,//0x98 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xa0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xa8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xb0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + + HB_Script_Kannada,//0xb8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xc0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + + HB_Script_Kannada,//0xc8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xd0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xd8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xe0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + + HB_Script_Kannada,//0xe8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xf0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xf8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada,//0xff + +}; + +HB_Script subTableMalSinhala[]= +{ + HB_Script_Malayalam,//0x00 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x08 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x10 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x18 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x20 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x28 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x30 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x38 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x40 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x48 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam,//0x4f + + HB_Script_Malayalam,//0x50 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x58 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x60 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x68 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x70 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x78 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam,//0x7f + + + HB_Script_Sinhala,//0x80 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0x88 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0x90 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + + HB_Script_Sinhala,//0x98 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xa0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xa8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xb0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + + HB_Script_Sinhala,//0xb8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xc0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + + HB_Script_Sinhala,//0xc8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xd0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xd8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xe0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + + HB_Script_Sinhala,//0xe8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xf0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xf8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala,//0xff + +}; + +HB_Script subTableThaiLao[]= +{ + HB_Script_Thai,//0x00 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x08 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x10 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x18 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x20 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x28 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x30 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x38 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x40 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x48 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai,//0x4f + + HB_Script_Thai,//0x50 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x58 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x60 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x68 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x70 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x78 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai,//0x7f + + + HB_Script_Lao,//0x80 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0x88 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0x90 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + + HB_Script_Lao,//0x98 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xa0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xa8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xb0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + + HB_Script_Lao,//0xb8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xc0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + + HB_Script_Lao,//0xc8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xd0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xd8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xe0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + + HB_Script_Lao,//0xe8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xf0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xf8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao,//0xff + +}; + +HB_Script subTableMyanGeorgian[] = +{ + HB_Script_Myanmar,//0x00 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x08 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x10 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x18 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x20 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x28 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x30 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x38 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x40 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x48 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar,//0x4f + + HB_Script_Myanmar,//0x50 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x58 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x60 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x68 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x70 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x78 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar,//0x7f + + + HB_Script_Myanmar,//0x80 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x88 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x90 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x98 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Georgian,//0xa0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xa8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xb0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + + HB_Script_Georgian,//0xb8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xc0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + + HB_Script_Georgian,//0xc8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xd0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xd8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xe0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + + HB_Script_Georgian,//0xe8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xf0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xf8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian,//0xff + +}; + +HB_Script subTableOghamRunic[] = +{ + HB_Script_Ogham,//0x00 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x08 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x10 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x18 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x20 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x28 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x30 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x38 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x40 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x48 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham,//0x4f + + HB_Script_Ogham,//0x50 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x58 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x60 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x68 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x70 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x78 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham,//0x7f + + + HB_Script_Ogham,//0x80 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x88 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x90 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x98 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Runic,//0xa0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xa8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xb0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + + HB_Script_Runic,//0xb8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xc0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + + HB_Script_Runic,//0xc8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xd0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xd8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xe0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + + HB_Script_Runic,//0xe8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xf0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xf8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic,//0xff + +}; + +#define VFE_UNICODE_MAX_SCRIPT 256 + +static const unicodeScriptTableStruct scriptTableStruct[VFE_UNICODE_MAX_SCRIPT]= +{ + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Greek, 0}, + + {HB_Script_Cyrillic, 0},//0x04 + {HB_Script_Armenian, 0}, + {HB_Script_Arabic, 0}, + {0xc0, subTableThanaSyriac}, + + {HB_Script_Common, 0},//0x08 + {0x100, subTableDevaBengali}, + {0x100, subTableGuruGuarati}, + {0x100, subTableOriyaTamil}, + + {0x100, subTableTelukannada},//0x0c + {0x100, subTableMalSinhala}, + {0x100, subTableThaiLao}, + {HB_Script_Tibetan, 0}, + + {0x100, subTableMyanGeorgian},//0x10 + {HB_Script_Hangul, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x14 + {HB_Script_Common, 0}, + {0x100, subTableOghamRunic}, + {HB_Script_Khmer, 0}, + + {HB_Script_Common, 0},//0x18 + {HB_Script_Khmer, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x1c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x20 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x24 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x28 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x2c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x30 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x34 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x38 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x3c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x40 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x44 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x48 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x4c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x50 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x54 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x58 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x5c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x60 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x64 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x68 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x6c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x70 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x74 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x78 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x7c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x80 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x84 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x88 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x8c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x40 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x94 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x98 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x9c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xa0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xa4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xa8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xac + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xb0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xb4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xb8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xbc + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xc0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xc4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xc8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xcc + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xd0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xd4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xd8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xdc + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xe0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xe4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xe8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xec + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xf0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xf4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xf8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xfc + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0},//ff +}; + +#endif /* __hb_unicode_tables_h__ */ + diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/lib/libharfbuzz.so b/harfbuzz-0.1/debian/libharfbuzz/usr/lib/libharfbuzz.so new file mode 100755 index 0000000..78aefd1 Binary files /dev/null and b/harfbuzz-0.1/debian/libharfbuzz/usr/lib/libharfbuzz.so differ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/lib/pkgconfig/harfbuzz.pc b/harfbuzz-0.1/debian/libharfbuzz/usr/lib/pkgconfig/harfbuzz.pc new file mode 100755 index 0000000..603b9ce --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/lib/pkgconfig/harfbuzz.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: harfbuzz +Description: A free, high-quality, and portable shaping engine. +Version: 1 +Requires: +Libs: -L${libdir} -lharfbuzz +Cflags: -I${includedir}/harfbuzz -I${includedir} diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/share/doc/libharfbuzz/changelog.Debian.gz b/harfbuzz-0.1/debian/libharfbuzz/usr/share/doc/libharfbuzz/changelog.Debian.gz new file mode 100755 index 0000000..abee691 Binary files /dev/null and b/harfbuzz-0.1/debian/libharfbuzz/usr/share/doc/libharfbuzz/changelog.Debian.gz differ diff --git a/harfbuzz-0.1/debian/libharfbuzz/usr/share/doc/libharfbuzz/copyright b/harfbuzz-0.1/debian/libharfbuzz/usr/share/doc/libharfbuzz/copyright new file mode 100755 index 0000000..634932c --- /dev/null +++ b/harfbuzz-0.1/debian/libharfbuzz/usr/share/doc/libharfbuzz/copyright @@ -0,0 +1,26 @@ +This is harfbuzz library ,maintained by prameet +on Fri, 05 Mar 2010 10:49:10 +0530. + +The original source can always be found at: + ftp://ftp.debian.org/dists/unstable/main/source/ + +Copyright Holder: unknown + +License: + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-buffer-private.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-buffer-private.h new file mode 100755 index 0000000..1b039ba --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-buffer-private.h @@ -0,0 +1,107 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2004,2007 Red Hat, Inc. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor, Behdad Esfahbod + */ + +#ifndef HARFBUZZ_BUFFER_PRIVATE_H +#define HARFBUZZ_BUFFER_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-buffer.h" + +HB_BEGIN_HEADER + +#define HB_GLYPH_PROPERTIES_UNKNOWN 0xFFFF + +HB_INTERNAL void +_hb_buffer_swap( HB_Buffer buffer ); + +HB_INTERNAL void +_hb_buffer_clear_output( HB_Buffer buffer ); + +HB_INTERNAL HB_Error +_hb_buffer_clear_positions( HB_Buffer buffer ); + +HB_INTERNAL HB_Error +_hb_buffer_add_output_glyphs( HB_Buffer buffer, + HB_UShort num_in, + HB_UShort num_out, + HB_UShort *glyph_data, + HB_UShort component, + HB_UShort ligID ); + +HB_INTERNAL HB_Error +_hb_buffer_add_output_glyph ( HB_Buffer buffer, + HB_UInt glyph_index, + HB_UShort component, + HB_UShort ligID ); + +HB_INTERNAL HB_Error +_hb_buffer_copy_output_glyph ( HB_Buffer buffer ); + +HB_INTERNAL HB_Error +_hb_buffer_replace_output_glyph ( HB_Buffer buffer, + HB_UInt glyph_index, + HB_Bool inplace ); + +HB_INTERNAL HB_UShort +_hb_buffer_allocate_ligid( HB_Buffer buffer ); + + +/* convenience macros */ + +#define IN_GLYPH( pos ) (buffer->in_string[(pos)].gindex) +#define IN_ITEM( pos ) (&buffer->in_string[(pos)]) +#define IN_CURGLYPH() (buffer->in_string[buffer->in_pos].gindex) +#define IN_CURITEM() (&buffer->in_string[buffer->in_pos]) +#define IN_PROPERTIES( pos ) (buffer->in_string[(pos)].properties) +#define IN_LIGID( pos ) (buffer->in_string[(pos)].ligID) +#define IN_COMPONENT( pos ) (buffer->in_string[(pos)].component) +#define POSITION( pos ) (&buffer->positions[(pos)]) +#define OUT_GLYPH( pos ) (buffer->out_string[(pos)].gindex) +#define OUT_ITEM( pos ) (&buffer->out_string[(pos)]) + +#define CHECK_Property( gdef, index, flags, property ) \ + ( ( error = _HB_GDEF_Check_Property( (gdef), (index), (flags), \ + (property) ) ) != HB_Err_Ok ) + +#define ADD_String( buffer, num_in, num_out, glyph_data, component, ligID ) \ + ( ( error = _hb_buffer_add_output_glyphs( (buffer), \ + (num_in), (num_out), \ + (glyph_data), (component), (ligID) \ + ) ) != HB_Err_Ok ) +#define ADD_Glyph( buffer, glyph_index, component, ligID ) \ + ( ( error = _hb_buffer_add_output_glyph( (buffer), \ + (glyph_index), (component), (ligID) \ + ) ) != HB_Err_Ok ) +#define REPLACE_Glyph( buffer, glyph_index, nesting_level ) \ + ( ( error = _hb_buffer_replace_output_glyph( (buffer), (glyph_index), \ + (nesting_level) == 1 ) ) != HB_Err_Ok ) +#define COPY_Glyph( buffer ) \ + ( (error = _hb_buffer_copy_output_glyph ( buffer ) ) != HB_Err_Ok ) + +HB_END_HEADER + +#endif /* HARFBUZZ_BUFFER_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-buffer.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-buffer.h new file mode 100755 index 0000000..e215e9f --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-buffer.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2004,2007 Red Hat, Inc. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor, Behdad Esfahbod + */ + +#ifndef HARFBUZZ_BUFFER_H +#define HARFBUZZ_BUFFER_H + +#include "harfbuzz-global.h" + +HB_BEGIN_HEADER + +typedef struct HB_GlyphItemRec_ { + HB_UInt gindex; + HB_UInt properties; + HB_UInt cluster; + HB_UShort component; + HB_UShort ligID; + HB_UShort gproperties; +} HB_GlyphItemRec, *HB_GlyphItem; + +typedef struct HB_PositionRec_ { + HB_Fixed x_pos; + HB_Fixed y_pos; + HB_Fixed x_advance; + HB_Fixed y_advance; + HB_UShort back; /* number of glyphs to go back + for drawing current glyph */ + HB_Bool new_advance; /* if set, the advance width values are + absolute, i.e., they won't be + added to the original glyph's value + but rather replace them. */ + HB_Short cursive_chain; /* character to which this connects, + may be positive or negative; used + only internally */ +} HB_PositionRec, *HB_Position; + + +typedef struct HB_BufferRec_{ + HB_UInt allocated; + + HB_UInt in_length; + HB_UInt out_length; + HB_UInt in_pos; + HB_UInt out_pos; + + HB_Bool separate_out; + HB_GlyphItem in_string; + HB_GlyphItem out_string; + HB_GlyphItem alt_string; + HB_Position positions; + HB_UShort max_ligID; +} HB_BufferRec, *HB_Buffer; + +HB_Error +hb_buffer_new( HB_Buffer *buffer ); + +void +hb_buffer_free( HB_Buffer buffer ); + +void +hb_buffer_clear( HB_Buffer buffer ); + +HB_Error +hb_buffer_add_glyph( HB_Buffer buffer, + HB_UInt glyph_index, + HB_UInt properties, + HB_UInt cluster ); + +HB_END_HEADER + +#endif /* HARFBUZZ_BUFFER_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-dump.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-dump.h new file mode 100755 index 0000000..5d552e7 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-dump.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2000, 2007 Red Hat, Inc. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor, Behdad Esfahbod + */ + +#ifndef HARFBUZZ_DUMP_H +#define HARFBUZZ_DUMP_H + +#include +#include "harfbuzz-gsub.h" +#include "harfbuzz-gpos.h" + +HB_BEGIN_HEADER + +void HB_Dump_GSUB_Table (HB_GSUB gsub, FILE *stream); +void HB_Dump_GPOS_Table (HB_GPOS gpos, FILE *stream); + +HB_END_HEADER + +#endif /* HARFBUZZ_DUMP_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-external.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-external.h new file mode 100755 index 0000000..d2e36d6 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-external.h @@ -0,0 +1,155 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_EXTERNAL_H +#define HARFBUZZ_EXTERNAL_H + +#include "harfbuzz-global.h" + +HB_BEGIN_HEADER + +/* This header contains some methods that are not part of + Harfbuzz itself, but referenced by it. + They need to be provided by the application/library +*/ + + +/* + see http://www.unicode.org/reports/tr14/tr14-19.html + we don't use the XX, AI and CB properties and map them to AL instead. + as we don't support any EBDIC based OS'es, NL is ignored and mapped to AL as well. +*/ +typedef enum { + HB_LineBreak_OP, HB_LineBreak_CL, HB_LineBreak_QU, HB_LineBreak_GL, HB_LineBreak_NS, + HB_LineBreak_EX, HB_LineBreak_SY, HB_LineBreak_IS, HB_LineBreak_PR, HB_LineBreak_PO, + HB_LineBreak_NU, HB_LineBreak_AL, HB_LineBreak_ID, HB_LineBreak_IN, HB_LineBreak_HY, + HB_LineBreak_BA, HB_LineBreak_BB, HB_LineBreak_B2, HB_LineBreak_ZW, HB_LineBreak_CM, + HB_LineBreak_WJ, HB_LineBreak_H2, HB_LineBreak_H3, HB_LineBreak_JL, HB_LineBreak_JV, + HB_LineBreak_JT, HB_LineBreak_SA, HB_LineBreak_SG, + HB_LineBreak_SP, HB_LineBreak_CR, HB_LineBreak_LF, HB_LineBreak_BK +} HB_LineBreakClass; + +typedef enum +{ + HB_NoCategory, + + HB_Mark_NonSpacing, /* Mn */ + HB_Mark_SpacingCombining, /* Mc */ + HB_Mark_Enclosing, /* Me */ + + HB_Number_DecimalDigit, /* Nd */ + HB_Number_Letter, /* Nl */ + HB_Number_Other, /* No */ + + HB_Separator_Space, /* Zs */ + HB_Separator_Line, /* Zl */ + HB_Separator_Paragraph, /* Zp */ + + HB_Other_Control, /* Cc */ + HB_Other_Format, /* Cf */ + HB_Other_Surrogate, /* Cs */ + HB_Other_PrivateUse, /* Co */ + HB_Other_NotAssigned, /* Cn */ + + HB_Letter_Uppercase, /* Lu */ + HB_Letter_Lowercase, /* Ll */ + HB_Letter_Titlecase, /* Lt */ + HB_Letter_Modifier, /* Lm */ + HB_Letter_Other, /* Lo */ + + HB_Punctuation_Connector, /* Pc */ + HB_Punctuation_Dash, /* Pd */ + HB_Punctuation_Open, /* Ps */ + HB_Punctuation_Close, /* Pe */ + HB_Punctuation_InitialQuote, /* Pi */ + HB_Punctuation_FinalQuote, /* Pf */ + HB_Punctuation_Other, /* Po */ + + HB_Symbol_Math, /* Sm */ + HB_Symbol_Currency, /* Sc */ + HB_Symbol_Modifier, /* Sk */ + HB_Symbol_Other /* So */ +} HB_CharCategory; + +typedef enum +{ + HB_Grapheme_Other, + HB_Grapheme_CR, + HB_Grapheme_LF, + HB_Grapheme_Control, + HB_Grapheme_Extend, + HB_Grapheme_L, + HB_Grapheme_V, + HB_Grapheme_T, + HB_Grapheme_LV, + HB_Grapheme_LVT +} HB_GraphemeClass; + + +typedef enum +{ + HB_Word_Other, + HB_Word_Format, + HB_Word_Katakana, + HB_Word_ALetter, + HB_Word_MidLetter, + HB_Word_MidNum, + HB_Word_Numeric, + HB_Word_ExtendNumLet +} HB_WordClass; + + +typedef enum +{ + HB_Sentence_Other, + HB_Sentence_Sep, + HB_Sentence_Format, + HB_Sentence_Sp, + HB_Sentence_Lower, + HB_Sentence_Upper, + HB_Sentence_OLetter, + HB_Sentence_Numeric, + HB_Sentence_ATerm, + HB_Sentence_STerm, + HB_Sentence_Close +} HB_SentenceClass; + +HB_GraphemeClass HB_GetGraphemeClass(HB_UChar32 ch); +HB_WordClass HB_GetWordClass(HB_UChar32 ch); +HB_SentenceClass HB_GetSentenceClass(HB_UChar32 ch); +HB_LineBreakClass HB_GetLineBreakClass(HB_UChar32 ch); + +void HB_GetGraphemeAndLineBreakClass(HB_UChar32 ch, HB_GraphemeClass *grapheme, HB_LineBreakClass *lineBreak); +void HB_GetUnicodeCharProperties(HB_UChar32 ch, HB_CharCategory *category, int *combiningClass); +HB_CharCategory HB_GetUnicodeCharCategory(HB_UChar32 ch); +int HB_GetUnicodeCharCombiningClass(HB_UChar32 ch); +HB_UChar16 HB_GetMirroredChar(HB_UChar16 ch); + +void *HB_Library_Resolve(const char *library, const char *symbol); + +void *HB_TextCodecForMib(int mib); +char *HB_TextCodec_ConvertFromUnicode(void *codec, const HB_UChar16 *unicode, hb_uint32 length, hb_uint32 *outputLength); +void HB_TextCodec_FreeResult(char *); + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gdef-private.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gdef-private.h new file mode 100755 index 0000000..78543cd --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gdef-private.h @@ -0,0 +1,124 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GDEF_PRIVATE_H +#define HARFBUZZ_GDEF_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-stream-private.h" +#include "harfbuzz-buffer-private.h" +#include "harfbuzz-gdef.h" + +HB_BEGIN_HEADER + + +/* Attachment related structures */ + +struct HB_AttachPoint_ +{ + HB_UShort PointCount; /* size of the PointIndex array */ + HB_UShort* PointIndex; /* array of contour points */ +}; + +/* Ligature Caret related structures */ + +struct HB_CaretValueFormat1_ +{ + HB_Short Coordinate; /* x or y value (in design units) */ +}; + +typedef struct HB_CaretValueFormat1_ HB_CaretValueFormat1; + + +struct HB_CaretValueFormat2_ +{ + HB_UShort CaretValuePoint; /* contour point index on glyph */ +}; + +typedef struct HB_CaretValueFormat2_ HB_CaretValueFormat2; + + +struct HB_CaretValueFormat3_ +{ + HB_Short Coordinate; /* x or y value (in design units) */ + HB_Device Device; /* Device table for x or y value */ +}; + +typedef struct HB_CaretValueFormat3_ HB_CaretValueFormat3; + + +struct HB_CaretValueFormat4_ +{ + HB_UShort IdCaretValue; /* metric ID */ +}; + +typedef struct HB_CaretValueFormat4_ HB_CaretValueFormat4; + + +struct HB_CaretValue_ +{ + HB_UShort CaretValueFormat; /* 1, 2, 3, or 4 */ + + union + { + HB_CaretValueFormat1 cvf1; + HB_CaretValueFormat2 cvf2; + HB_CaretValueFormat3 cvf3; + HB_CaretValueFormat4 cvf4; + } cvf; +}; + +typedef struct HB_CaretValue_ HB_CaretValue; + + +struct HB_LigGlyph_ +{ + HB_Bool loaded; + + HB_UShort CaretCount; /* number of caret values */ + HB_CaretValue* CaretValue; /* array of caret values */ +}; + + +HB_INTERNAL HB_Error +_HB_GDEF_Add_Glyph_Property( HB_GDEFHeader* gdef, + HB_UShort glyphID, + HB_UShort property ); + +HB_INTERNAL HB_Error +_HB_GDEF_Check_Property( HB_GDEFHeader* gdef, + HB_GlyphItem item, + HB_UShort flags, + HB_UShort* property ); + +HB_INTERNAL HB_Error +_HB_GDEF_LoadMarkAttachClassDef_From_LookupFlags( HB_GDEFHeader* gdef, + HB_Stream input, + HB_Lookup* lo, + HB_UShort num_lookups ); + +HB_END_HEADER + +#endif /* HARFBUZZ_GDEF_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gdef.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gdef.h new file mode 100755 index 0000000..bf7a70e --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gdef.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GDEF_H +#define HARFBUZZ_GDEF_H + +#include "harfbuzz-open.h" +#include "harfbuzz-stream.h" + +HB_BEGIN_HEADER + +/* GDEF glyph properties. Note that HB_GDEF_COMPONENT has no corresponding + * flag in the LookupFlag field. */ +#define HB_GDEF_BASE_GLYPH 0x0002 +#define HB_GDEF_LIGATURE 0x0004 +#define HB_GDEF_MARK 0x0008 +#define HB_GDEF_COMPONENT 0x0010 + + +typedef struct HB_AttachPoint_ HB_AttachPoint; + + +struct HB_AttachList_ +{ + HB_Bool loaded; + + HB_Coverage Coverage; /* Coverage table */ + HB_UShort GlyphCount; /* number of glyphs with + attachments */ + HB_AttachPoint* AttachPoint; /* array of AttachPoint tables */ +}; + +typedef struct HB_AttachList_ HB_AttachList; + +typedef struct HB_LigGlyph_ HB_LigGlyph; + +struct HB_LigCaretList_ +{ + HB_Bool loaded; + + HB_Coverage Coverage; /* Coverage table */ + HB_UShort LigGlyphCount; /* number of ligature glyphs */ + HB_LigGlyph* LigGlyph; /* array of LigGlyph tables */ +}; + +typedef struct HB_LigCaretList_ HB_LigCaretList; + + + +/* The `NewGlyphClasses' field is not defined in the TTO specification. + We use it for fonts with a constructed `GlyphClassDef' structure + (i.e., which don't have a GDEF table) to collect glyph classes + assigned during the lookup process. The number of arrays in this + pointer array is GlyphClassDef->cd.cd2.ClassRangeCount+1; the nth + array then contains the glyph class values of the glyphs not covered + by the ClassRangeRecords structures with index n-1 and n. We store + glyph class values for four glyphs in a single array element. + + `LastGlyph' is identical to the number of glyphs minus one in the + font; we need it only if `NewGlyphClasses' is not NULL (to have an + upper bound for the last array). + + Note that we first store the file offset to the `MarkAttachClassDef' + field (which has been introduced in OpenType 1.2) -- since the + `Version' field value hasn't been increased to indicate that we have + one more field for some obscure reason, we must parse the GSUB table + to find out whether class values refer to this table. Only then we + can finally load the MarkAttachClassDef structure if necessary. */ + +struct HB_GDEFHeader_ +{ + HB_UInt offset; + + HB_16Dot16 Version; + + HB_ClassDefinition GlyphClassDef; + HB_AttachList AttachList; + HB_LigCaretList LigCaretList; + HB_UInt MarkAttachClassDef_offset; + HB_ClassDefinition MarkAttachClassDef; /* new in OT 1.2 */ + + HB_UShort LastGlyph; + HB_UShort** NewGlyphClasses; +}; + +typedef struct HB_GDEFHeader_ HB_GDEFHeader; +typedef struct HB_GDEFHeader_* HB_GDEF; + + +HB_Error HB_New_GDEF_Table( HB_GDEFHeader** retptr ); + + +HB_Error HB_Load_GDEF_Table( HB_Stream stream, + HB_GDEFHeader** gdef ); + + +HB_Error HB_Done_GDEF_Table ( HB_GDEFHeader* gdef ); + + +HB_Error HB_GDEF_Get_Glyph_Property( HB_GDEFHeader* gdef, + HB_UShort glyphID, + HB_UShort* property ); + +HB_Error HB_GDEF_Build_ClassDefinition( HB_GDEFHeader* gdef, + HB_UShort num_glyphs, + HB_UShort glyph_count, + HB_UShort* glyph_array, + HB_UShort* class_array ); + + +HB_END_HEADER + +#endif /* HARFBUZZ_GDEF_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-global.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-global.h new file mode 100755 index 0000000..9b8bfbf --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-global.h @@ -0,0 +1,123 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + */ + +#ifndef HARFBUZZ_GLOBAL_H +#define HARFBUZZ_GLOBAL_H + +#include +#include + +#ifdef __cplusplus +#define HB_BEGIN_HEADER extern "C" { +#define HB_END_HEADER } +#else +#define HB_BEGIN_HEADER /* nothing */ +#define HB_END_HEADER /* nothing */ +#endif + +HB_BEGIN_HEADER + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef TRUE +#define TRUE (!FALSE) +#endif + +#ifndef false +#define false 0 +#endif + +#ifndef true +#define true (!FALSE) +#endif + +#define HB_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ + ( ( (HB_UInt)_x1 << 24 ) | \ + ( (HB_UInt)_x2 << 16 ) | \ + ( (HB_UInt)_x3 << 8 ) | \ + (HB_UInt)_x4 ) + +typedef char hb_int8; +typedef unsigned char hb_uint8; +typedef short hb_int16; +typedef unsigned short hb_uint16; +typedef int hb_int32; +typedef unsigned int hb_uint32; + +typedef hb_uint8 HB_Bool; +typedef hb_uint8 bool; + +typedef hb_uint8 HB_Byte; +typedef hb_uint16 HB_UShort; +typedef hb_uint32 HB_UInt; +typedef hb_int8 HB_Char; +typedef hb_int16 HB_Short; +typedef hb_int32 HB_Int; + +typedef hb_uint16 HB_UChar16; +typedef hb_uint32 HB_UChar32; +typedef hb_uint32 HB_Glyph; +typedef hb_int32 HB_Fixed; /* 26.6 */ + +#define HB_FIXED_CONSTANT(v) ((v) * 64) +#define HB_FIXED_ROUND(v) (((v)+32) & -64) + +typedef hb_int32 HB_16Dot16; /* 16.16 */ + +typedef void * HB_Pointer; +typedef hb_uint32 HB_Tag; + +typedef enum { + /* no error */ + HB_Err_Ok = 0x0000, + HB_Err_Not_Covered = 0xFFFF, + + /* _hb_err() is called whenever returning the following errors, + * and in a couple places for HB_Err_Not_Covered too. */ + + /* programmer error */ + HB_Err_Invalid_Argument = 0x1A66, + + /* font error */ + HB_Err_Invalid_SubTable_Format = 0x157F, + HB_Err_Invalid_SubTable = 0x1570, + HB_Err_Read_Error = 0x6EAD, + + /* system error */ + HB_Err_Out_Of_Memory = 0xDEAD +} HB_Error; + +typedef struct { + HB_Fixed x; + HB_Fixed y; +} HB_FixedPoint; + +typedef struct HB_Font_ *HB_Font; +typedef struct HB_StreamRec_ *HB_Stream; +typedef struct HB_FaceRec_ *HB_Face; + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gpos-private.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gpos-private.h new file mode 100755 index 0000000..c2865ba --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gpos-private.h @@ -0,0 +1,712 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GPOS_PRIVATE_H +#define HARFBUZZ_GPOS_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-stream-private.h" +#include "harfbuzz-gpos.h" + +HB_BEGIN_HEADER + + +/* shared tables */ + +struct HB_ValueRecord_ +{ + HB_Short XPlacement; /* horizontal adjustment for + placement */ + HB_Short YPlacement; /* vertical adjustment for + placement */ + HB_Short XAdvance; /* horizontal adjustment for + advance */ + HB_Short YAdvance; /* vertical adjustment for + advance */ + HB_Device XPlacementDevice; /* device table for horizontal + placement */ + HB_Device YPlacementDevice; /* device table for vertical + placement */ + HB_Device XAdvanceDevice; /* device table for horizontal + advance */ + HB_Device YAdvanceDevice; /* device table for vertical + advance */ + HB_UShort XIdPlacement; /* horizontal placement metric ID */ + HB_UShort YIdPlacement; /* vertical placement metric ID */ + HB_UShort XIdAdvance; /* horizontal advance metric ID */ + HB_UShort YIdAdvance; /* vertical advance metric ID */ +}; + +typedef struct HB_ValueRecord_ HB_ValueRecord; + + +/* Mask values to scan the value format of the ValueRecord structure. + We always expand compressed ValueRecords of the font. */ + +#define HB_GPOS_FORMAT_HAVE_X_PLACEMENT 0x0001 +#define HB_GPOS_FORMAT_HAVE_Y_PLACEMENT 0x0002 +#define HB_GPOS_FORMAT_HAVE_X_ADVANCE 0x0004 +#define HB_GPOS_FORMAT_HAVE_Y_ADVANCE 0x0008 +#define HB_GPOS_FORMAT_HAVE_X_PLACEMENT_DEVICE 0x0010 +#define HB_GPOS_FORMAT_HAVE_Y_PLACEMENT_DEVICE 0x0020 +#define HB_GPOS_FORMAT_HAVE_X_ADVANCE_DEVICE 0x0040 +#define HB_GPOS_FORMAT_HAVE_Y_ADVANCE_DEVICE 0x0080 +#define HB_GPOS_FORMAT_HAVE_X_ID_PLACEMENT 0x0100 +#define HB_GPOS_FORMAT_HAVE_Y_ID_PLACEMENT 0x0200 +#define HB_GPOS_FORMAT_HAVE_X_ID_ADVANCE 0x0400 +#define HB_GPOS_FORMAT_HAVE_Y_ID_ADVANCE 0x0800 + + +struct HB_AnchorFormat1_ +{ + HB_Short XCoordinate; /* horizontal value */ + HB_Short YCoordinate; /* vertical value */ +}; + +typedef struct HB_AnchorFormat1_ HB_AnchorFormat1; + + +struct HB_AnchorFormat2_ +{ + HB_Short XCoordinate; /* horizontal value */ + HB_Short YCoordinate; /* vertical value */ + HB_UShort AnchorPoint; /* index to glyph contour point */ +}; + +typedef struct HB_AnchorFormat2_ HB_AnchorFormat2; + + +struct HB_AnchorFormat3_ +{ + HB_Short XCoordinate; /* horizontal value */ + HB_Short YCoordinate; /* vertical value */ + HB_Device XDeviceTable; /* device table for X coordinate */ + HB_Device YDeviceTable; /* device table for Y coordinate */ +}; + +typedef struct HB_AnchorFormat3_ HB_AnchorFormat3; + + +struct HB_AnchorFormat4_ +{ + HB_UShort XIdAnchor; /* horizontal metric ID */ + HB_UShort YIdAnchor; /* vertical metric ID */ +}; + +typedef struct HB_AnchorFormat4_ HB_AnchorFormat4; + + +struct HB_Anchor_ +{ + HB_UShort PosFormat; /* 1, 2, 3, or 4 -- 0 indicates + that there is no Anchor table */ + + union + { + HB_AnchorFormat1 af1; + HB_AnchorFormat2 af2; + HB_AnchorFormat3 af3; + HB_AnchorFormat4 af4; + } af; +}; + +typedef struct HB_Anchor_ HB_Anchor; + + +struct HB_MarkRecord_ +{ + HB_UShort Class; /* mark class */ + HB_Anchor MarkAnchor; /* anchor table */ +}; + +typedef struct HB_MarkRecord_ HB_MarkRecord; + + +struct HB_MarkArray_ +{ + HB_UShort MarkCount; /* number of MarkRecord tables */ + HB_MarkRecord* MarkRecord; /* array of MarkRecord tables */ +}; + +typedef struct HB_MarkArray_ HB_MarkArray; + + +/* LookupType 1 */ + +struct HB_SinglePosFormat1_ +{ + HB_ValueRecord Value; /* ValueRecord for all covered + glyphs */ +}; + +typedef struct HB_SinglePosFormat1_ HB_SinglePosFormat1; + + +struct HB_SinglePosFormat2_ +{ + HB_UShort ValueCount; /* number of ValueRecord tables */ + HB_ValueRecord* Value; /* array of ValueRecord tables */ +}; + +typedef struct HB_SinglePosFormat2_ HB_SinglePosFormat2; + + +struct HB_SinglePos_ +{ + HB_UShort PosFormat; /* 1 or 2 */ + HB_Coverage Coverage; /* Coverage table */ + + HB_UShort ValueFormat; /* format of ValueRecord table */ + + union + { + HB_SinglePosFormat1 spf1; + HB_SinglePosFormat2 spf2; + } spf; +}; + +typedef struct HB_SinglePos_ HB_SinglePos; + + +/* LookupType 2 */ + +struct HB_PairValueRecord_ +{ + HB_UShort SecondGlyph; /* glyph ID for second glyph */ + HB_ValueRecord Value1; /* pos. data for first glyph */ + HB_ValueRecord Value2; /* pos. data for second glyph */ +}; + +typedef struct HB_PairValueRecord_ HB_PairValueRecord; + + +struct HB_PairSet_ +{ + HB_UShort PairValueCount; + /* number of PairValueRecord tables */ + HB_PairValueRecord* PairValueRecord; + /* array of PairValueRecord tables */ +}; + +typedef struct HB_PairSet_ HB_PairSet; + + +struct HB_PairPosFormat1_ +{ + HB_UShort PairSetCount; /* number of PairSet tables */ + HB_PairSet* PairSet; /* array of PairSet tables */ +}; + +typedef struct HB_PairPosFormat1_ HB_PairPosFormat1; + + +struct HB_Class2Record_ +{ + HB_ValueRecord Value1; /* pos. data for first glyph */ + HB_ValueRecord Value2; /* pos. data for second glyph */ +}; + +typedef struct HB_Class2Record_ HB_Class2Record; + + +struct HB_Class1Record_ +{ + HB_Class2Record* Class2Record; /* array of Class2Record tables */ +}; + +typedef struct HB_Class1Record_ HB_Class1Record; + + +struct HB_PairPosFormat2_ +{ + HB_ClassDefinition ClassDef1; /* class def. for first glyph */ + HB_ClassDefinition ClassDef2; /* class def. for second glyph */ + HB_UShort Class1Count; /* number of classes in ClassDef1 + table */ + HB_UShort Class2Count; /* number of classes in ClassDef2 + table */ + HB_Class1Record* Class1Record; /* array of Class1Record tables */ +}; + +typedef struct HB_PairPosFormat2_ HB_PairPosFormat2; + + +struct HB_PairPos_ +{ + HB_UShort PosFormat; /* 1 or 2 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort ValueFormat1; /* format of ValueRecord table + for first glyph */ + HB_UShort ValueFormat2; /* format of ValueRecord table + for second glyph */ + + union + { + HB_PairPosFormat1 ppf1; + HB_PairPosFormat2 ppf2; + } ppf; +}; + +typedef struct HB_PairPos_ HB_PairPos; + + +/* LookupType 3 */ + +struct HB_EntryExitRecord_ +{ + HB_Anchor EntryAnchor; /* entry Anchor table */ + HB_Anchor ExitAnchor; /* exit Anchor table */ +}; + + +typedef struct HB_EntryExitRecord_ HB_EntryExitRecord; + +struct HB_CursivePos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort EntryExitCount; + /* number of EntryExitRecord tables */ + HB_EntryExitRecord* EntryExitRecord; + /* array of EntryExitRecord tables */ +}; + +typedef struct HB_CursivePos_ HB_CursivePos; + + +/* LookupType 4 */ + +struct HB_BaseRecord_ +{ + HB_Anchor* BaseAnchor; /* array of base glyph anchor + tables */ +}; + +typedef struct HB_BaseRecord_ HB_BaseRecord; + + +struct HB_BaseArray_ +{ + HB_UShort BaseCount; /* number of BaseRecord tables */ + HB_BaseRecord* BaseRecord; /* array of BaseRecord tables */ +}; + +typedef struct HB_BaseArray_ HB_BaseArray; + + +struct HB_MarkBasePos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_Coverage MarkCoverage; /* mark glyph coverage table */ + HB_Coverage BaseCoverage; /* base glyph coverage table */ + HB_UShort ClassCount; /* number of mark classes */ + HB_MarkArray MarkArray; /* mark array table */ + HB_BaseArray BaseArray; /* base array table */ +}; + +typedef struct HB_MarkBasePos_ HB_MarkBasePos; + + +/* LookupType 5 */ + +struct HB_ComponentRecord_ +{ + HB_Anchor* LigatureAnchor; /* array of ligature glyph anchor + tables */ +}; + +typedef struct HB_ComponentRecord_ HB_ComponentRecord; + + +struct HB_LigatureAttach_ +{ + HB_UShort ComponentCount; + /* number of ComponentRecord tables */ + HB_ComponentRecord* ComponentRecord; + /* array of ComponentRecord tables */ +}; + +typedef struct HB_LigatureAttach_ HB_LigatureAttach; + + +struct HB_LigatureArray_ +{ + HB_UShort LigatureCount; /* number of LigatureAttach tables */ + HB_LigatureAttach* LigatureAttach; + /* array of LigatureAttach tables */ +}; + +typedef struct HB_LigatureArray_ HB_LigatureArray; + + +struct HB_MarkLigPos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_Coverage MarkCoverage; /* mark glyph coverage table */ + HB_Coverage LigatureCoverage; + /* ligature glyph coverage table */ + HB_UShort ClassCount; /* number of mark classes */ + HB_MarkArray MarkArray; /* mark array table */ + HB_LigatureArray LigatureArray; /* ligature array table */ +}; + +typedef struct HB_MarkLigPos_ HB_MarkLigPos; + + +/* LookupType 6 */ + +struct HB_Mark2Record_ +{ + HB_Anchor* Mark2Anchor; /* array of mark glyph anchor + tables */ +}; + +typedef struct HB_Mark2Record_ HB_Mark2Record; + + +struct HB_Mark2Array_ +{ + HB_UShort Mark2Count; /* number of Mark2Record tables */ + HB_Mark2Record* Mark2Record; /* array of Mark2Record tables */ +}; + +typedef struct HB_Mark2Array_ HB_Mark2Array; + + +struct HB_MarkMarkPos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_Coverage Mark1Coverage; /* first mark glyph coverage table */ + HB_Coverage Mark2Coverage; /* second mark glyph coverave table */ + HB_UShort ClassCount; /* number of combining mark classes */ + HB_MarkArray Mark1Array; /* MarkArray table for first mark */ + HB_Mark2Array Mark2Array; /* MarkArray table for second mark */ +}; + +typedef struct HB_MarkMarkPos_ HB_MarkMarkPos; + + +/* needed by both lookup type 7 and 8 */ + +struct HB_PosLookupRecord_ +{ + HB_UShort SequenceIndex; /* index into current + glyph sequence */ + HB_UShort LookupListIndex; /* Lookup to apply to that pos. */ +}; + +typedef struct HB_PosLookupRecord_ HB_PosLookupRecord; + + +/* LookupType 7 */ + +struct HB_PosRule_ +{ + HB_UShort GlyphCount; /* total number of input glyphs */ + HB_UShort PosCount; /* number of PosLookupRecord tables */ + HB_UShort* Input; /* array of input glyph IDs */ + HB_PosLookupRecord* PosLookupRecord; + /* array of PosLookupRecord tables */ +}; + +typedef struct HB_PosRule_ HB_PosRule; + + +struct HB_PosRuleSet_ +{ + HB_UShort PosRuleCount; /* number of PosRule tables */ + HB_PosRule* PosRule; /* array of PosRule tables */ +}; + +typedef struct HB_PosRuleSet_ HB_PosRuleSet; + + +struct HB_ContextPosFormat1_ +{ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort PosRuleSetCount; /* number of PosRuleSet tables */ + HB_PosRuleSet* PosRuleSet; /* array of PosRuleSet tables */ +}; + +typedef struct HB_ContextPosFormat1_ HB_ContextPosFormat1; + + +struct HB_PosClassRule_ +{ + HB_UShort GlyphCount; /* total number of context classes */ + HB_UShort PosCount; /* number of PosLookupRecord tables */ + HB_UShort* Class; /* array of classes */ + HB_PosLookupRecord* PosLookupRecord; + /* array of PosLookupRecord tables */ +}; + +typedef struct HB_PosClassRule_ HB_PosClassRule; + + +struct HB_PosClassSet_ +{ + HB_UShort PosClassRuleCount; + /* number of PosClassRule tables */ + HB_PosClassRule* PosClassRule; /* array of PosClassRule tables */ +}; + +typedef struct HB_PosClassSet_ HB_PosClassSet; + + +/* The `MaxContextLength' field is not defined in the TTO specification + but simplifies the implementation of this format. It holds the + maximal context length used in the context rules. */ + +struct HB_ContextPosFormat2_ +{ + HB_UShort MaxContextLength; + /* maximal context length */ + HB_Coverage Coverage; /* Coverage table */ + HB_ClassDefinition ClassDef; /* ClassDef table */ + HB_UShort PosClassSetCount; + /* number of PosClassSet tables */ + HB_PosClassSet* PosClassSet; /* array of PosClassSet tables */ +}; + +typedef struct HB_ContextPosFormat2_ HB_ContextPosFormat2; + + +struct HB_ContextPosFormat3_ +{ + HB_UShort GlyphCount; /* number of input glyphs */ + HB_UShort PosCount; /* number of PosLookupRecord tables */ + HB_Coverage* Coverage; /* array of Coverage tables */ + HB_PosLookupRecord* PosLookupRecord; + /* array of PosLookupRecord tables */ +}; + +typedef struct HB_ContextPosFormat3_ HB_ContextPosFormat3; + + +struct HB_ContextPos_ +{ + HB_UShort PosFormat; /* 1, 2, or 3 */ + + union + { + HB_ContextPosFormat1 cpf1; + HB_ContextPosFormat2 cpf2; + HB_ContextPosFormat3 cpf3; + } cpf; +}; + +typedef struct HB_ContextPos_ HB_ContextPos; + + +/* LookupType 8 */ + +struct HB_ChainPosRule_ +{ + HB_UShort BacktrackGlyphCount; + /* total number of backtrack glyphs */ + HB_UShort* Backtrack; /* array of backtrack glyph IDs */ + HB_UShort InputGlyphCount; + /* total number of input glyphs */ + HB_UShort* Input; /* array of input glyph IDs */ + HB_UShort LookaheadGlyphCount; + /* total number of lookahead glyphs */ + HB_UShort* Lookahead; /* array of lookahead glyph IDs */ + HB_UShort PosCount; /* number of PosLookupRecords */ + HB_PosLookupRecord* PosLookupRecord; + /* array of PosLookupRecords */ +}; + +typedef struct HB_ChainPosRule_ HB_ChainPosRule; + + +struct HB_ChainPosRuleSet_ +{ + HB_UShort ChainPosRuleCount; + /* number of ChainPosRule tables */ + HB_ChainPosRule* ChainPosRule; /* array of ChainPosRule tables */ +}; + +typedef struct HB_ChainPosRuleSet_ HB_ChainPosRuleSet; + + +struct HB_ChainContextPosFormat1_ +{ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort ChainPosRuleSetCount; + /* number of ChainPosRuleSet tables */ + HB_ChainPosRuleSet* ChainPosRuleSet; + /* array of ChainPosRuleSet tables */ +}; + +typedef struct HB_ChainContextPosFormat1_ HB_ChainContextPosFormat1; + + +struct HB_ChainPosClassRule_ +{ + HB_UShort BacktrackGlyphCount; + /* total number of backtrack + classes */ + HB_UShort* Backtrack; /* array of backtrack classes */ + HB_UShort InputGlyphCount; + /* total number of context classes */ + HB_UShort* Input; /* array of context classes */ + HB_UShort LookaheadGlyphCount; + /* total number of lookahead + classes */ + HB_UShort* Lookahead; /* array of lookahead classes */ + HB_UShort PosCount; /* number of PosLookupRecords */ + HB_PosLookupRecord* PosLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ChainPosClassRule_ HB_ChainPosClassRule; + + +struct HB_ChainPosClassSet_ +{ + HB_UShort ChainPosClassRuleCount; + /* number of ChainPosClassRule + tables */ + HB_ChainPosClassRule* ChainPosClassRule; + /* array of ChainPosClassRule + tables */ +}; + +typedef struct HB_ChainPosClassSet_ HB_ChainPosClassSet; + + +/* The `MaxXXXLength' fields are not defined in the TTO specification + but simplifies the implementation of this format. It holds the + maximal context length used in the specific context rules. */ + +struct HB_ChainContextPosFormat2_ +{ + HB_Coverage Coverage; /* Coverage table */ + + HB_UShort MaxBacktrackLength; + /* maximal backtrack length */ + HB_ClassDefinition BacktrackClassDef; + /* BacktrackClassDef table */ + HB_UShort MaxInputLength; + /* maximal input length */ + HB_ClassDefinition InputClassDef; + /* InputClassDef table */ + HB_UShort MaxLookaheadLength; + /* maximal lookahead length */ + HB_ClassDefinition LookaheadClassDef; + /* LookaheadClassDef table */ + + HB_UShort ChainPosClassSetCount; + /* number of ChainPosClassSet + tables */ + HB_ChainPosClassSet* ChainPosClassSet; + /* array of ChainPosClassSet + tables */ +}; + +typedef struct HB_ChainContextPosFormat2_ HB_ChainContextPosFormat2; + + +struct HB_ChainContextPosFormat3_ +{ + HB_UShort BacktrackGlyphCount; + /* number of backtrack glyphs */ + HB_Coverage* BacktrackCoverage; + /* array of backtrack Coverage + tables */ + HB_UShort InputGlyphCount; + /* number of input glyphs */ + HB_Coverage* InputCoverage; + /* array of input coverage + tables */ + HB_UShort LookaheadGlyphCount; + /* number of lookahead glyphs */ + HB_Coverage* LookaheadCoverage; + /* array of lookahead coverage + tables */ + HB_UShort PosCount; /* number of PosLookupRecords */ + HB_PosLookupRecord* PosLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ChainContextPosFormat3_ HB_ChainContextPosFormat3; + + +struct HB_ChainContextPos_ +{ + HB_UShort PosFormat; /* 1, 2, or 3 */ + + union + { + HB_ChainContextPosFormat1 ccpf1; + HB_ChainContextPosFormat2 ccpf2; + HB_ChainContextPosFormat3 ccpf3; + } ccpf; +}; + +typedef struct HB_ChainContextPos_ HB_ChainContextPos; + + +#if 0 +/* LookupType 10 */ +struct HB_ExtensionPos_ +{ + HB_UShort PosFormat; /* always 1 */ + HB_UShort LookuptType; /* lookup-type of referenced subtable */ + HB_GPOS_SubTable *subtable; /* referenced subtable */ +}; + +typedef struct HB_ExtensionPos_ HB_ExtensionPos; +#endif + + +union HB_GPOS_SubTable_ +{ + HB_SinglePos single; + HB_PairPos pair; + HB_CursivePos cursive; + HB_MarkBasePos markbase; + HB_MarkLigPos marklig; + HB_MarkMarkPos markmark; + HB_ContextPos context; + HB_ChainContextPos chain; +}; + +typedef union HB_GPOS_SubTable_ HB_GPOS_SubTable; + + + +HB_INTERNAL HB_Error +_HB_GPOS_Load_SubTable( HB_GPOS_SubTable* st, + HB_Stream stream, + HB_UShort lookup_type ); + +HB_INTERNAL void +_HB_GPOS_Free_SubTable( HB_GPOS_SubTable* st, + HB_UShort lookup_type ); + +HB_END_HEADER + +#endif /* HARFBUZZ_GPOS_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gpos.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gpos.h new file mode 100755 index 0000000..20bb7d9 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gpos.h @@ -0,0 +1,149 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GPOS_H +#define HARFBUZZ_GPOS_H + +#include "harfbuzz-gdef.h" +#include "harfbuzz-buffer.h" + +HB_BEGIN_HEADER + + +/* Lookup types for glyph positioning */ + +#define HB_GPOS_LOOKUP_SINGLE 1 +#define HB_GPOS_LOOKUP_PAIR 2 +#define HB_GPOS_LOOKUP_CURSIVE 3 +#define HB_GPOS_LOOKUP_MARKBASE 4 +#define HB_GPOS_LOOKUP_MARKLIG 5 +#define HB_GPOS_LOOKUP_MARKMARK 6 +#define HB_GPOS_LOOKUP_CONTEXT 7 +#define HB_GPOS_LOOKUP_CHAIN 8 +#define HB_GPOS_LOOKUP_EXTENSION 9 + +/* A pointer to a function which accesses the PostScript interpreter. + Multiple Master fonts need this interface to convert a metric ID + (as stored in an OpenType font version 1.2 or higher) `metric_id' + into a metric value (returned in `metric_value'). + + `data' points to the user-defined structure specified during a + call to HB_GPOS_Register_MM_Function(). + + `metric_value' must be returned as a scaled value (but shouldn't + be rounded). */ + +typedef HB_Error (*HB_MMFunction)(HB_Font font, + HB_UShort metric_id, + HB_Fixed* metric_value, + void* data ); + + +struct HB_GPOSHeader_ +{ + HB_16Dot16 Version; + + HB_ScriptList ScriptList; + HB_FeatureList FeatureList; + HB_LookupList LookupList; + + HB_GDEFHeader* gdef; + + /* this is OpenType 1.2 -- Multiple Master fonts need this + callback function to get various metric values from the + PostScript interpreter. */ + + HB_MMFunction mmfunc; + void* data; +}; + +typedef struct HB_GPOSHeader_ HB_GPOSHeader; +typedef HB_GPOSHeader* HB_GPOS; + + +HB_Error HB_Load_GPOS_Table( HB_Stream stream, + HB_GPOSHeader** gpos, + HB_GDEFHeader* gdef, + HB_Stream gdefStream ); + + +HB_Error HB_Done_GPOS_Table( HB_GPOSHeader* gpos ); + + +HB_Error HB_GPOS_Select_Script( HB_GPOSHeader* gpos, + HB_UInt script_tag, + HB_UShort* script_index ); + +HB_Error HB_GPOS_Select_Language( HB_GPOSHeader* gpos, + HB_UInt language_tag, + HB_UShort script_index, + HB_UShort* language_index, + HB_UShort* req_feature_index ); + +HB_Error HB_GPOS_Select_Feature( HB_GPOSHeader* gpos, + HB_UInt feature_tag, + HB_UShort script_index, + HB_UShort language_index, + HB_UShort* feature_index ); + + +HB_Error HB_GPOS_Query_Scripts( HB_GPOSHeader* gpos, + HB_UInt** script_tag_list ); + +HB_Error HB_GPOS_Query_Languages( HB_GPOSHeader* gpos, + HB_UShort script_index, + HB_UInt** language_tag_list ); + +HB_Error HB_GPOS_Query_Features( HB_GPOSHeader* gpos, + HB_UShort script_index, + HB_UShort language_index, + HB_UInt** feature_tag_list ); + + +HB_Error HB_GPOS_Add_Feature( HB_GPOSHeader* gpos, + HB_UShort feature_index, + HB_UInt property ); + +HB_Error HB_GPOS_Clear_Features( HB_GPOSHeader* gpos ); + + +HB_Error HB_GPOS_Register_MM_Function( HB_GPOSHeader* gpos, + HB_MMFunction mmfunc, + void* data ); + +/* If `dvi' is TRUE, glyph contour points for anchor points and device + tables are ignored -- you will get device independent values. */ + + +HB_Error HB_GPOS_Apply_String( HB_Font font, + HB_GPOSHeader* gpos, + HB_UShort load_flags, + HB_Buffer buffer, + HB_Bool dvi, + HB_Bool r2l ); + +HB_END_HEADER + +#endif /* HARFBUZZ_GPOS_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gsub-private.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gsub-private.h new file mode 100755 index 0000000..f47b46c --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gsub-private.h @@ -0,0 +1,476 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GSUB_PRIVATE_H +#define HARFBUZZ_GSUB_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-stream-private.h" +#include "harfbuzz-gsub.h" + +HB_BEGIN_HEADER + + +typedef union HB_GSUB_SubTable_ HB_GSUB_SubTable; + +/* LookupType 1 */ + +struct HB_SingleSubstFormat1_ +{ + HB_Short DeltaGlyphID; /* constant added to get + substitution glyph index */ +}; + +typedef struct HB_SingleSubstFormat1_ HB_SingleSubstFormat1; + + +struct HB_SingleSubstFormat2_ +{ + HB_UShort GlyphCount; /* number of glyph IDs in + Substitute array */ + HB_UShort* Substitute; /* array of substitute glyph IDs */ +}; + +typedef struct HB_SingleSubstFormat2_ HB_SingleSubstFormat2; + + +struct HB_SingleSubst_ +{ + HB_UShort SubstFormat; /* 1 or 2 */ + HB_Coverage Coverage; /* Coverage table */ + + union + { + HB_SingleSubstFormat1 ssf1; + HB_SingleSubstFormat2 ssf2; + } ssf; +}; + +typedef struct HB_SingleSubst_ HB_SingleSubst; + + +/* LookupType 2 */ + +struct HB_Sequence_ +{ + HB_UShort GlyphCount; /* number of glyph IDs in the + Substitute array */ + HB_UShort* Substitute; /* string of glyph IDs to + substitute */ +}; + +typedef struct HB_Sequence_ HB_Sequence; + + +struct HB_MultipleSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort SequenceCount; /* number of Sequence tables */ + HB_Sequence* Sequence; /* array of Sequence tables */ +}; + +typedef struct HB_MultipleSubst_ HB_MultipleSubst; + + +/* LookupType 3 */ + +struct HB_AlternateSet_ +{ + HB_UShort GlyphCount; /* number of glyph IDs in the + Alternate array */ + HB_UShort* Alternate; /* array of alternate glyph IDs */ +}; + +typedef struct HB_AlternateSet_ HB_AlternateSet; + + +struct HB_AlternateSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort AlternateSetCount; + /* number of AlternateSet tables */ + HB_AlternateSet* AlternateSet; /* array of AlternateSet tables */ +}; + +typedef struct HB_AlternateSubst_ HB_AlternateSubst; + + +/* LookupType 4 */ + +struct HB_Ligature_ +{ + HB_UShort LigGlyph; /* glyphID of ligature + to substitute */ + HB_UShort ComponentCount; /* number of components in ligature */ + HB_UShort* Component; /* array of component glyph IDs */ +}; + +typedef struct HB_Ligature_ HB_Ligature; + + +struct HB_LigatureSet_ +{ + HB_UShort LigatureCount; /* number of Ligature tables */ + HB_Ligature* Ligature; /* array of Ligature tables */ +}; + +typedef struct HB_LigatureSet_ HB_LigatureSet; + + +struct HB_LigatureSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort LigatureSetCount; /* number of LigatureSet tables */ + HB_LigatureSet* LigatureSet; /* array of LigatureSet tables */ +}; + +typedef struct HB_LigatureSubst_ HB_LigatureSubst; + + +/* needed by both lookup type 5 and 6 */ + +struct HB_SubstLookupRecord_ +{ + HB_UShort SequenceIndex; /* index into current + glyph sequence */ + HB_UShort LookupListIndex; /* Lookup to apply to that pos. */ +}; + +typedef struct HB_SubstLookupRecord_ HB_SubstLookupRecord; + + +/* LookupType 5 */ + +struct HB_SubRule_ +{ + HB_UShort GlyphCount; /* total number of input glyphs */ + HB_UShort SubstCount; /* number of SubstLookupRecord + tables */ + HB_UShort* Input; /* array of input glyph IDs */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of SubstLookupRecord + tables */ +}; + +typedef struct HB_SubRule_ HB_SubRule; + + +struct HB_SubRuleSet_ +{ + HB_UShort SubRuleCount; /* number of SubRule tables */ + HB_SubRule* SubRule; /* array of SubRule tables */ +}; + +typedef struct HB_SubRuleSet_ HB_SubRuleSet; + + +struct HB_ContextSubstFormat1_ +{ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort SubRuleSetCount; /* number of SubRuleSet tables */ + HB_SubRuleSet* SubRuleSet; /* array of SubRuleSet tables */ +}; + +typedef struct HB_ContextSubstFormat1_ HB_ContextSubstFormat1; + + +struct HB_SubClassRule_ +{ + HB_UShort GlyphCount; /* total number of context classes */ + HB_UShort SubstCount; /* number of SubstLookupRecord + tables */ + HB_UShort* Class; /* array of classes */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of SubstLookupRecord + tables */ +}; + +typedef struct HB_SubClassRule_ HB_SubClassRule; + + +struct HB_SubClassSet_ +{ + HB_UShort SubClassRuleCount; + /* number of SubClassRule tables */ + HB_SubClassRule* SubClassRule; /* array of SubClassRule tables */ +}; + +typedef struct HB_SubClassSet_ HB_SubClassSet; + + +/* The `MaxContextLength' field is not defined in the TTO specification + but simplifies the implementation of this format. It holds the + maximal context length used in the context rules. */ + +struct HB_ContextSubstFormat2_ +{ + HB_UShort MaxContextLength; + /* maximal context length */ + HB_Coverage Coverage; /* Coverage table */ + HB_ClassDefinition ClassDef; /* ClassDef table */ + HB_UShort SubClassSetCount; + /* number of SubClassSet tables */ + HB_SubClassSet* SubClassSet; /* array of SubClassSet tables */ +}; + +typedef struct HB_ContextSubstFormat2_ HB_ContextSubstFormat2; + + +struct HB_ContextSubstFormat3_ +{ + HB_UShort GlyphCount; /* number of input glyphs */ + HB_UShort SubstCount; /* number of SubstLookupRecords */ + HB_Coverage* Coverage; /* array of Coverage tables */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ContextSubstFormat3_ HB_ContextSubstFormat3; + + +struct HB_ContextSubst_ +{ + HB_UShort SubstFormat; /* 1, 2, or 3 */ + + union + { + HB_ContextSubstFormat1 csf1; + HB_ContextSubstFormat2 csf2; + HB_ContextSubstFormat3 csf3; + } csf; +}; + +typedef struct HB_ContextSubst_ HB_ContextSubst; + + +/* LookupType 6 */ + +struct HB_ChainSubRule_ +{ + HB_UShort BacktrackGlyphCount; + /* total number of backtrack glyphs */ + HB_UShort* Backtrack; /* array of backtrack glyph IDs */ + HB_UShort InputGlyphCount; + /* total number of input glyphs */ + HB_UShort* Input; /* array of input glyph IDs */ + HB_UShort LookaheadGlyphCount; + /* total number of lookahead glyphs */ + HB_UShort* Lookahead; /* array of lookahead glyph IDs */ + HB_UShort SubstCount; /* number of SubstLookupRecords */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of SubstLookupRecords */ +}; + +typedef struct HB_ChainSubRule_ HB_ChainSubRule; + + +struct HB_ChainSubRuleSet_ +{ + HB_UShort ChainSubRuleCount; + /* number of ChainSubRule tables */ + HB_ChainSubRule* ChainSubRule; /* array of ChainSubRule tables */ +}; + +typedef struct HB_ChainSubRuleSet_ HB_ChainSubRuleSet; + + +struct HB_ChainContextSubstFormat1_ +{ + HB_Coverage Coverage; /* Coverage table */ + HB_UShort ChainSubRuleSetCount; + /* number of ChainSubRuleSet tables */ + HB_ChainSubRuleSet* ChainSubRuleSet; + /* array of ChainSubRuleSet tables */ +}; + +typedef struct HB_ChainContextSubstFormat1_ HB_ChainContextSubstFormat1; + + +struct HB_ChainSubClassRule_ +{ + HB_UShort BacktrackGlyphCount; + /* total number of backtrack + classes */ + HB_UShort* Backtrack; /* array of backtrack classes */ + HB_UShort InputGlyphCount; + /* total number of context classes */ + HB_UShort* Input; /* array of context classes */ + HB_UShort LookaheadGlyphCount; + /* total number of lookahead + classes */ + HB_UShort* Lookahead; /* array of lookahead classes */ + HB_UShort SubstCount; /* number of SubstLookupRecords */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ChainSubClassRule_ HB_ChainSubClassRule; + + +struct HB_ChainSubClassSet_ +{ + HB_UShort ChainSubClassRuleCount; + /* number of ChainSubClassRule + tables */ + HB_ChainSubClassRule* ChainSubClassRule; + /* array of ChainSubClassRule + tables */ +}; + +typedef struct HB_ChainSubClassSet_ HB_ChainSubClassSet; + + +/* The `MaxXXXLength' fields are not defined in the TTO specification + but simplifies the implementation of this format. It holds the + maximal context length used in the specific context rules. */ + +struct HB_ChainContextSubstFormat2_ +{ + HB_Coverage Coverage; /* Coverage table */ + + HB_UShort MaxBacktrackLength; + /* maximal backtrack length */ + HB_ClassDefinition BacktrackClassDef; + /* BacktrackClassDef table */ + HB_UShort MaxInputLength; + /* maximal input length */ + HB_ClassDefinition InputClassDef; + /* InputClassDef table */ + HB_UShort MaxLookaheadLength; + /* maximal lookahead length */ + HB_ClassDefinition LookaheadClassDef; + /* LookaheadClassDef table */ + + HB_UShort ChainSubClassSetCount; + /* number of ChainSubClassSet + tables */ + HB_ChainSubClassSet* ChainSubClassSet; + /* array of ChainSubClassSet + tables */ +}; + +typedef struct HB_ChainContextSubstFormat2_ HB_ChainContextSubstFormat2; + + +struct HB_ChainContextSubstFormat3_ +{ + HB_UShort BacktrackGlyphCount; + /* number of backtrack glyphs */ + HB_Coverage* BacktrackCoverage; + /* array of backtrack Coverage + tables */ + HB_UShort InputGlyphCount; + /* number of input glyphs */ + HB_Coverage* InputCoverage; + /* array of input coverage + tables */ + HB_UShort LookaheadGlyphCount; + /* number of lookahead glyphs */ + HB_Coverage* LookaheadCoverage; + /* array of lookahead coverage + tables */ + HB_UShort SubstCount; /* number of SubstLookupRecords */ + HB_SubstLookupRecord* SubstLookupRecord; + /* array of substitution lookups */ +}; + +typedef struct HB_ChainContextSubstFormat3_ HB_ChainContextSubstFormat3; + + +struct HB_ChainContextSubst_ +{ + HB_UShort SubstFormat; /* 1, 2, or 3 */ + + union + { + HB_ChainContextSubstFormat1 ccsf1; + HB_ChainContextSubstFormat2 ccsf2; + HB_ChainContextSubstFormat3 ccsf3; + } ccsf; +}; + +typedef struct HB_ChainContextSubst_ HB_ChainContextSubst; + + +#if 0 +/* LookupType 7 */ +struct HB_ExtensionSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_UShort LookuptType; /* lookup-type of referenced subtable */ + HB_GSUB_SubTable *subtable; /* referenced subtable */ +}; + +typedef struct HB_ExtensionSubst_ HB_ExtensionSubst; +#endif + + +/* LookupType 8 */ +struct HB_ReverseChainContextSubst_ +{ + HB_UShort SubstFormat; /* always 1 */ + HB_Coverage Coverage; /* coverage table for input glyphs */ + HB_UShort BacktrackGlyphCount; /* number of backtrack glyphs */ + HB_Coverage* BacktrackCoverage; /* array of backtrack Coverage + tables */ + HB_UShort LookaheadGlyphCount; /* number of lookahead glyphs */ + HB_Coverage* LookaheadCoverage; /* array of lookahead Coverage + tables */ + HB_UShort GlyphCount; /* number of Glyph IDs */ + HB_UShort* Substitute; /* array of substitute Glyph ID */ +}; + +typedef struct HB_ReverseChainContextSubst_ HB_ReverseChainContextSubst; + + +union HB_GSUB_SubTable_ +{ + HB_SingleSubst single; + HB_MultipleSubst multiple; + HB_AlternateSubst alternate; + HB_LigatureSubst ligature; + HB_ContextSubst context; + HB_ChainContextSubst chain; + HB_ReverseChainContextSubst reverse; +}; + + + + +HB_INTERNAL HB_Error +_HB_GSUB_Load_SubTable( HB_GSUB_SubTable* st, + HB_Stream stream, + HB_UShort lookup_type ); + +HB_INTERNAL void +_HB_GSUB_Free_SubTable( HB_GSUB_SubTable* st, + HB_UShort lookup_type ); + +HB_END_HEADER + +#endif /* HARFBUZZ_GSUB_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gsub.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gsub.h new file mode 100755 index 0000000..4471751 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-gsub.h @@ -0,0 +1,141 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_GSUB_H +#define HARFBUZZ_GSUB_H + +#include "harfbuzz-gdef.h" +#include "harfbuzz-buffer.h" + +HB_BEGIN_HEADER + + +/* Lookup types for glyph substitution */ + +#define HB_GSUB_LOOKUP_SINGLE 1 +#define HB_GSUB_LOOKUP_MULTIPLE 2 +#define HB_GSUB_LOOKUP_ALTERNATE 3 +#define HB_GSUB_LOOKUP_LIGATURE 4 +#define HB_GSUB_LOOKUP_CONTEXT 5 +#define HB_GSUB_LOOKUP_CHAIN 6 +#define HB_GSUB_LOOKUP_EXTENSION 7 +#define HB_GSUB_LOOKUP_REVERSE_CHAIN 8 + + +/* A pointer to a function which selects the alternate glyph. `pos' is + the position of the glyph with index `glyphID', `num_alternates' + gives the number of alternates in the `alternates' array. `data' + points to the user-defined structure specified during a call to + HB_GSUB_Register_Alternate_Function(). The function must return an + index into the `alternates' array. */ + +typedef HB_UShort (*HB_AltFunction)(HB_UInt pos, + HB_UShort glyphID, + HB_UShort num_alternates, + HB_UShort* alternates, + void* data ); + + +struct HB_GSUBHeader_ +{ + HB_UInt offset; + + HB_16Dot16 Version; + + HB_ScriptList ScriptList; + HB_FeatureList FeatureList; + HB_LookupList LookupList; + + HB_GDEFHeader* gdef; + + /* the next two fields are used for an alternate substitution callback + function to select the proper alternate glyph. */ + + HB_AltFunction altfunc; + void* data; +}; + +typedef struct HB_GSUBHeader_ HB_GSUBHeader; +typedef HB_GSUBHeader* HB_GSUB; + + +HB_Error HB_Load_GSUB_Table( HB_Stream stream, + HB_GSUBHeader** gsub, + HB_GDEFHeader* gdef, + HB_Stream gdefStream ); + + +HB_Error HB_Done_GSUB_Table( HB_GSUBHeader* gsub ); + + +HB_Error HB_GSUB_Select_Script( HB_GSUBHeader* gsub, + HB_UInt script_tag, + HB_UShort* script_index ); + +HB_Error HB_GSUB_Select_Language( HB_GSUBHeader* gsub, + HB_UInt language_tag, + HB_UShort script_index, + HB_UShort* language_index, + HB_UShort* req_feature_index ); + +HB_Error HB_GSUB_Select_Feature( HB_GSUBHeader* gsub, + HB_UInt feature_tag, + HB_UShort script_index, + HB_UShort language_index, + HB_UShort* feature_index ); + + +HB_Error HB_GSUB_Query_Scripts( HB_GSUBHeader* gsub, + HB_UInt** script_tag_list ); + +HB_Error HB_GSUB_Query_Languages( HB_GSUBHeader* gsub, + HB_UShort script_index, + HB_UInt** language_tag_list ); + +HB_Error HB_GSUB_Query_Features( HB_GSUBHeader* gsub, + HB_UShort script_index, + HB_UShort language_index, + HB_UInt** feature_tag_list ); + + +HB_Error HB_GSUB_Add_Feature( HB_GSUBHeader* gsub, + HB_UShort feature_index, + HB_UInt property ); + +HB_Error HB_GSUB_Clear_Features( HB_GSUBHeader* gsub ); + + +HB_Error HB_GSUB_Register_Alternate_Function( HB_GSUBHeader* gsub, + HB_AltFunction altfunc, + void* data ); + + +HB_Error HB_GSUB_Apply_String( HB_GSUBHeader* gsub, + HB_Buffer buffer ); + + +HB_END_HEADER + +#endif /* HARFBUZZ_GSUB_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-impl.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-impl.h new file mode 100755 index 0000000..358f587 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-impl.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_IMPL_H +#define HARFBUZZ_IMPL_H + +#include "harfbuzz-global.h" + +#include + +HB_BEGIN_HEADER + +#ifndef HB_INTERNAL +# define HB_INTERNAL +#endif + +#ifndef NULL +# define NULL ((void *)0) +#endif + +#ifndef FALSE +# define FALSE 0 +#endif + +#ifndef TRUE +# define TRUE 1 +#endif + +#ifndef TTAG_GDEF +# define TTAG_GDEF HB_MAKE_TAG( 'G', 'D', 'E', 'F' ) +#endif +#ifndef TTAG_GPOS +# define TTAG_GPOS HB_MAKE_TAG( 'G', 'P', 'O', 'S' ) +#endif +#ifndef TTAG_GSUB +# define TTAG_GSUB HB_MAKE_TAG( 'G', 'S', 'U', 'B' ) +#endif + +#ifndef HB_UNUSED +# define HB_UNUSED(arg) ((arg) = (arg)) +#endif + +#define HB_LIKELY(cond) (cond) +#define HB_UNLIKELY(cond) (cond) + +#define ARRAY_LEN(Array) ((int)(sizeof (Array) / sizeof (Array)[0])) + + + +#define HB_IsHighSurrogate(ucs) \ + (((ucs) & 0xfc00) == 0xd800) + +#define HB_IsLowSurrogate(ucs) \ + (((ucs) & 0xfc00) == 0xdc00) + +#define HB_SurrogateToUcs4(high, low) \ + (((HB_UChar32)(high))<<10) + (low) - 0x35fdc00; + + + + + +#define ALLOC(_ptr,_size,_type) \ + ( (_ptr) = (_type)_hb_alloc( _size, &error ), error != 0 ) + +#define REALLOC(_ptr,_newsz,_type) \ + ( (_ptr) = (_type)_hb_realloc( (_ptr), (_newsz), &error ), error != 0 ) + +#define FREE(_ptr) \ + do { \ + if ( (_ptr) ) \ + { \ + _hb_free( _ptr ); \ + _ptr = NULL; \ + } \ + } while (0) + +#define ALLOC_ARRAY(_ptr,_count,_type) \ + ALLOC(_ptr,(_count)*sizeof(_type),_type*) + +#define REALLOC_ARRAY(_ptr,_newcnt,_type) \ + REALLOC(_ptr,(_newcnt)*sizeof(_type),_type*) + +#define MEM_Copy(dest,source,count) memcpy( (char*)(dest), (const char*)(source), (size_t)(count) ) + +#define ERR_HB(err) _hb_err (err) + + +//HB_INTERNAL +HB_Pointer +_hb_alloc( size_t size, + HB_Error *perror_ ); + +//HB_INTERNAL + HB_Pointer +_hb_realloc( HB_Pointer block, + size_t new_size, + HB_Error *perror_ ); + +//HB_INTERNAL + void +_hb_free( HB_Pointer block ); + + +/* helper func to set a breakpoint on */ +//HB_INTERNAL +HB_Error +_hb_err(HB_Error code); + + +HB_END_HEADER + +#endif /* HARFBUZZ_IMPL_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-open-private.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-open-private.h new file mode 100755 index 0000000..02aae80 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-open-private.h @@ -0,0 +1,102 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_OPEN_PRIVATE_H +#define HARFBUZZ_OPEN_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-open.h" +#include "harfbuzz-gsub-private.h" +#include "harfbuzz-gpos-private.h" + +HB_BEGIN_HEADER + + +struct HB_SubTable_ +{ + union + { + HB_GSUB_SubTable gsub; + HB_GPOS_SubTable gpos; + } st; +}; + + +HB_INTERNAL HB_Error +_HB_OPEN_Load_ScriptList( HB_ScriptList* sl, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_FeatureList( HB_FeatureList* fl, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_LookupList( HB_LookupList* ll, + HB_Stream input, + HB_Type type ); + +HB_INTERNAL HB_Error +_HB_OPEN_Load_Coverage( HB_Coverage* c, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_ClassDefinition( HB_ClassDefinition* cd, + HB_UShort limit, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_EmptyOrClassDefinition( HB_ClassDefinition* cd, + HB_UShort limit, + HB_UInt class_offset, + HB_UInt base_offset, + HB_Stream input ); +HB_INTERNAL HB_Error +_HB_OPEN_Load_Device( HB_Device* d, + HB_Stream input ); + +HB_INTERNAL void _HB_OPEN_Free_ScriptList( HB_ScriptList* sl ); +HB_INTERNAL void _HB_OPEN_Free_FeatureList( HB_FeatureList* fl ); +HB_INTERNAL void _HB_OPEN_Free_LookupList( HB_LookupList* ll, + HB_Type type ); + +HB_INTERNAL void _HB_OPEN_Free_Coverage( HB_Coverage* c ); +HB_INTERNAL void _HB_OPEN_Free_ClassDefinition( HB_ClassDefinition* cd ); +HB_INTERNAL void _HB_OPEN_Free_Device( HB_Device* d ); + + + +HB_INTERNAL HB_Error +_HB_OPEN_Coverage_Index( HB_Coverage* c, + HB_UShort glyphID, + HB_UShort* index ); +HB_INTERNAL HB_Error +_HB_OPEN_Get_Class( HB_ClassDefinition* cd, + HB_UShort glyphID, + HB_UShort* klass, + HB_UShort* index ); +HB_INTERNAL HB_Error +_HB_OPEN_Get_Device( HB_Device* d, + HB_UShort size, + HB_Short* value ); + +HB_END_HEADER + +#endif /* HARFBUZZ_OPEN_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-open.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-open.h new file mode 100755 index 0000000..8bc33dc --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-open.h @@ -0,0 +1,282 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_OPEN_H +#define HARFBUZZ_OPEN_H + +#include "harfbuzz-global.h" + +HB_BEGIN_HEADER + +/* Use this if a feature applies to all glyphs */ +#define HB_ALL_GLYPHS 0xFFFF + +#define HB_DEFAULT_LANGUAGE 0xFFFF + +#define HB_MAX_NESTING_LEVEL 100 + + +/* Script list related structures */ + +struct HB_LangSys_ +{ + HB_UShort LookupOrderOffset; /* always 0 for TT Open 1.0 */ + HB_UShort ReqFeatureIndex; /* required FeatureIndex */ + HB_UShort FeatureCount; /* number of Feature indices */ + HB_UShort* FeatureIndex; /* array of Feature indices */ +}; + +typedef struct HB_LangSys_ HB_LangSys; + + +struct HB_LangSysRecord_ +{ + HB_UInt LangSysTag; /* LangSysTag identifier */ + HB_LangSys LangSys; /* LangSys table */ +}; + +typedef struct HB_LangSysRecord_ HB_LangSysRecord; + + +struct HB_ScriptTable_ +{ + HB_LangSys DefaultLangSys; /* DefaultLangSys table */ + HB_UShort LangSysCount; /* number of LangSysRecords */ + HB_LangSysRecord* LangSysRecord; /* array of LangSysRecords */ +}; + +typedef struct HB_ScriptTable_ HB_ScriptTable; + + +struct HB_ScriptRecord_ +{ + HB_UInt ScriptTag; /* ScriptTag identifier */ + HB_ScriptTable Script; /* Script table */ +}; + +typedef struct HB_ScriptRecord_ HB_ScriptRecord; + + +struct HB_ScriptList_ +{ + HB_UShort ScriptCount; /* number of ScriptRecords */ + HB_ScriptRecord* ScriptRecord; /* array of ScriptRecords */ +}; + +typedef struct HB_ScriptList_ HB_ScriptList; + + +/* Feature list related structures */ + +struct HB_Feature_ +{ + HB_UShort FeatureParams; /* always 0 for TT Open 1.0 */ + HB_UShort LookupListCount; /* number of LookupList indices */ + HB_UShort* LookupListIndex; /* array of LookupList indices */ +}; + +typedef struct HB_Feature_ HB_Feature; + + +struct HB_FeatureRecord_ +{ + HB_UInt FeatureTag; /* FeatureTag identifier */ + HB_Feature Feature; /* Feature table */ +}; + +typedef struct HB_FeatureRecord_ HB_FeatureRecord; + + +struct HB_FeatureList_ +{ + HB_UShort FeatureCount; /* number of FeatureRecords */ + HB_FeatureRecord* FeatureRecord; /* array of FeatureRecords */ + HB_UShort* ApplyOrder; /* order to apply features */ + HB_UShort ApplyCount; /* number of elements in ApplyOrder */ +}; + +typedef struct HB_FeatureList_ HB_FeatureList; + + +/* Lookup list related structures */ + +typedef struct HB_SubTable_ HB_SubTable; + + +struct HB_Lookup_ +{ + HB_UShort LookupType; /* Lookup type */ + HB_UShort LookupFlag; /* Lookup qualifiers */ + HB_UShort SubTableCount; /* number of SubTables */ + HB_SubTable* SubTable; /* array of SubTables */ +}; + +typedef struct HB_Lookup_ HB_Lookup; + + +/* The `Properties' field is not defined in the OpenType specification but + is needed for processing lookups. If properties[n] is > 0, the + functions HB_GSUB_Apply_String() resp. HB_GPOS_Apply_String() will + process Lookup[n] for glyphs which have the specific bit not set in + the `properties' field of the input string object. */ + +struct HB_LookupList_ +{ + HB_UShort LookupCount; /* number of Lookups */ + HB_Lookup* Lookup; /* array of Lookup records */ + HB_UInt* Properties; /* array of flags */ +}; + +typedef struct HB_LookupList_ HB_LookupList; + + +/* Possible LookupFlag bit masks. `HB_LOOKUP_FLAG_IGNORE_SPECIAL_MARKS' comes from the + OpenType 1.2 specification; HB_LOOKUP_FLAG_RIGHT_TO_LEFT has been (re)introduced in + OpenType 1.3 -- if set, the last glyph in a cursive attachment + sequence has to be positioned on the baseline -- regardless of the + writing direction. */ + +#define HB_LOOKUP_FLAG_RIGHT_TO_LEFT 0x0001 +#define HB_LOOKUP_FLAG_IGNORE_BASE_GLYPHS 0x0002 +#define HB_LOOKUP_FLAG_IGNORE_LIGATURES 0x0004 +#define HB_LOOKUP_FLAG_IGNORE_MARKS 0x0008 +#define HB_LOOKUP_FLAG_IGNORE_SPECIAL_MARKS 0xFF00 + + +struct HB_CoverageFormat1_ +{ + HB_UShort GlyphCount; /* number of glyphs in GlyphArray */ + HB_UShort* GlyphArray; /* array of glyph IDs */ +}; + +typedef struct HB_CoverageFormat1_ HB_CoverageFormat1; + + +struct HB_RangeRecord_ +{ + HB_UShort Start; /* first glyph ID in the range */ + HB_UShort End; /* last glyph ID in the range */ + HB_UShort StartCoverageIndex; /* coverage index of first + glyph ID in the range */ +}; + +typedef struct HB_RangeRecord_ HB_RangeRecord; + + +struct HB_CoverageFormat2_ +{ + HB_UShort RangeCount; /* number of RangeRecords */ + HB_RangeRecord* RangeRecord; /* array of RangeRecords */ +}; + +typedef struct HB_CoverageFormat2_ HB_CoverageFormat2; + + +struct HB_Coverage_ +{ + HB_UShort CoverageFormat; /* 1 or 2 */ + + union + { + HB_CoverageFormat1 cf1; + HB_CoverageFormat2 cf2; + } cf; +}; + +typedef struct HB_Coverage_ HB_Coverage; + + +struct HB_ClassDefFormat1_ +{ + HB_UShort StartGlyph; /* first glyph ID of the + ClassValueArray */ + HB_UShort GlyphCount; /* size of the ClassValueArray */ + HB_UShort* ClassValueArray; /* array of class values */ +}; + +typedef struct HB_ClassDefFormat1_ HB_ClassDefFormat1; + + +struct HB_ClassRangeRecord_ +{ + HB_UShort Start; /* first glyph ID in the range */ + HB_UShort End; /* last glyph ID in the range */ + HB_UShort Class; /* applied to all glyphs in range */ +}; + +typedef struct HB_ClassRangeRecord_ HB_ClassRangeRecord; + + +struct HB_ClassDefFormat2_ +{ + HB_UShort ClassRangeCount; + /* number of ClassRangeRecords */ + HB_ClassRangeRecord* ClassRangeRecord; + /* array of ClassRangeRecords */ +}; + +typedef struct HB_ClassDefFormat2_ HB_ClassDefFormat2; + + +struct HB_ClassDefinition_ +{ + HB_Bool loaded; + + HB_UShort ClassFormat; /* 1 or 2 */ + + union + { + HB_ClassDefFormat1 cd1; + HB_ClassDefFormat2 cd2; + } cd; +}; + +typedef struct HB_ClassDefinition_ HB_ClassDefinition; + + +struct HB_Device_ +{ + HB_UShort StartSize; /* smallest size to correct */ + HB_UShort EndSize; /* largest size to correct */ + HB_UShort DeltaFormat; /* DeltaValue array data format: + 1, 2, or 3 */ + HB_UShort* DeltaValue; /* array of compressed data */ +}; + +typedef struct HB_Device_ HB_Device; + + +enum HB_Type_ +{ + HB_Type_GSUB, + HB_Type_GPOS +}; + +typedef enum HB_Type_ HB_Type; + + +HB_END_HEADER + +#endif /* HARFBUZZ_OPEN_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-shape.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-shape.h new file mode 100755 index 0000000..82c510a --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-shape.h @@ -0,0 +1,199 @@ +/* + * Copyright (C) 2006 Red Hat, Inc. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor + */ + +#include + +/* Base Types */ + +typedef hb_uint16 HB_CodePoint; /* UTF-16 codepoint (not character ) */ +typedef char HB_Boolean; +typedef hb_uint32 HB_Fixed; /* 26.6 */ +typedef hb_uint32 HB_Glyph; +typedef hb_uint32 HB_Unichar; + +/* Metrics reported by the font backend for use of the shaper */ +typedef struct _HB_GlyphMetrics HB_GlyphMetrics; +struct _HB_GlyphMetrics +{ + HB_Fixed advance; + + /* Do we need ink/logical extents for the glyph here? */ +}; + +/* + * HB_Font: Abstract font interface. + * First pass of this might just have FT_Face *getFace(); + */ +typedef struct _HB_Font HB_Font; +typedef struct _HB_FontClass HB_FontClass; + +struct HB_FontClass { + HB_Glyph (*charToGlyph)(HB_Font *font, HB_Unichar chr); + void (*getMetrics)(HB_Font *font, HB_Glyph glyph, HB_GlyphMetrics *metrics); + HB_Boolean (*getSFontTable)(HB_Font *font, void **cookie, char **start, int *len); + HB_Boolean (*freeSFontTable)(void **cookie); +}; + +struct _HB_Font { + HB_FontClass *clazz; +}; + +/* + * Language tags, of the form en-us; represented as interned, canonicalized + * strings. hb_language_from_string("en_US"), hb_language_from_string("en-us") + * both return the same (pointer-comparable) HB_Language). + */ +typedef struct HB_Language_ *HB_Language; + +HB_Language hb_language_from_string(const char *str); +const char *hb_language_to_string(HB_Language language); + +/* Special treatment for the edges of runs. + */ +typedef enum { + HB_RUN_EDGE_LINE_VISUAL_EDGE = 1 << 0, + HB_RUN_EDGE_LINE_LOGICAL_EDGE = 1 << 1, + HB_RUN_EDGE_LINE_ADD_HYPHEN = 1 << 2 /* ???? */ +} HB_RunEdge; + +/* Defines optional informaiton in HB_ShapeInput; this allows extension + * of HB_ShapeInput while keeping binary compatibility + */ +typedef enum { + HB_SHAPE_START_TYPE = 1 << 0, + HB_SHAPE_END_TYPE = 1 << 1 +} HB_ShapeFlags; + +/* Attributes types are described by "interned strings"; this is a little + * annoying if you want to write a switch statement, but keeps things + * simple. + */ +typedef struct _HB_AttributeType *HB_AttributeType; + +HB_AttributeType hb_attribute_type_from_string(const char *str); +const char *hb_attribute_type_to_string(HB_AttributeType attribute_type); + +struct HB_Attribute { + HB_AttributeType type; + int start; + int end; +}; + + +/** + * You could handle this like HB_Language, but an enum seems a little nicer; + * another approach would be to use OpenType script tags. + */ +typedef enum { + HB_SCRIPT_LATIN + /* ... */ +} HB_ShapeScript; + +/* This is just the subset of direction information needed by the shaper */ +typedef enum { + HB_DIRECTION_LTR, + HB_DIRECTION_RTL, + HB_DIRECTION_TTB +} HB_Direction; + +typedef struct _HB_ShapeInput HB_ShapeInput; +struct _HB_ShapeInput { + /* Defines what fields the caller has initialized - fields not in + * the enum are mandatory. + */ + HB_ShapeFlags flags; + + HB_CodePoint *text; + int length; /* total length of text to shape */ + int shape_offset; /* start of section to shape */ + int shape_length; /* number of code points to shape */ + + HB_Direction direction; + HB_ShapeScript script; + HB_Language language; + + HB_AttributeType *attributes; + int n_attributes; + + HB_RunEdge start_type; + HB_RunEdge end_type; +}; + +struct HB_GlyphItem { + HB_Glyph glyph; + + HB_Fixed x_offset; + HB_Fixed y_offset; + HB_Fixed advance; + + /* Add kashida information, etc, here */ +}; + +typedef enum { + HB_RESULT_SUCCESS, + HB_RESULT_NO_MEMORY, + HB_SHAPE_RESULT_FAILED +} HB_Result; + +/* + * Buffer for output + */ +typedef struct _HB_GlyphBuffer HB_GlyphBuffer; +struct _HB_GlyphBuffer { + int glyph_item_size; + int total_glyphs; + + int *log_clusters; /* Uniscribe style */ + int cluster_space; + + int glyph_space; + void *glyph_buffer; +}; + +/* Making this self-allocating simplifies writing shapers and + * also keeps things easier for caller. item_size passed in + * must be at least sizeof(HB_GlyphItem) but can be bigger, + * to accomodate application structures that extend HB_GlyphItem. + * The allocated items will be zero-initialized. + * + * (Hack: Harfbuzz could choose to use even a *bigger* item size + * and stick internal information before the public item structure. + * This hack could possibly be used to unify this with HB_Buffer) + */ +HB_GlyphBuffer *hb_glyph_buffer_new (size_t item_size); +void hb_glyph_buffer_clear (HB_GlyphBuffer *buf); +HB_Result hb_glyph_buffer_extend_glyphs (HB_GlyphBuffer *buf, int n_items); +HB_Result hb_glyph_buffer_extend_clusters (HB_GlyphBuffer *buf, int n_clusters); +void hb_glyph_buffer_free (HB_GlyphBuffer *buf); + + +/* Accessor for a particular glyph */ +#define HB_GLYPH_BUFFER_ITEM(buffer, index) + +/* + * Main shaping function + */ +HB_Result hb_shape(HB_ShapeInput *input, HB_GlyphBuffer *output); diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-shaper-private.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-shaper-private.h new file mode 100755 index 0000000..bb0ae9f --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-shaper-private.h @@ -0,0 +1,164 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_SHAPER_PRIVATE_H +#define HARFBUZZ_SHAPER_PRIVATE_H + +HB_BEGIN_HEADER +enum { + C_DOTTED_CIRCLE = 0x25CC +}; + +typedef enum +{ + HB_Combining_BelowLeftAttached = 200, + HB_Combining_BelowAttached = 202, + HB_Combining_BelowRightAttached = 204, + HB_Combining_LeftAttached = 208, + HB_Combining_RightAttached = 210, + HB_Combining_AboveLeftAttached = 212, + HB_Combining_AboveAttached = 214, + HB_Combining_AboveRightAttached = 216, + + HB_Combining_BelowLeft = 218, + HB_Combining_Below = 220, + HB_Combining_BelowRight = 222, + HB_Combining_Left = 224, + HB_Combining_Right = 226, + HB_Combining_AboveLeft = 228, + HB_Combining_Above = 230, + HB_Combining_AboveRight = 232, + + HB_Combining_DoubleBelow = 233, + HB_Combining_DoubleAbove = 234, + HB_Combining_IotaSubscript = 240 +} HB_CombiningClass; + +typedef enum { + CcmpProperty = 0x1, + InitProperty = 0x2, + IsolProperty = 0x4, + FinaProperty = 0x8, + MediProperty = 0x10, + RligProperty = 0x20, + CaltProperty = 0x40, + LigaProperty = 0x80, + DligProperty = 0x100, + CswhProperty = 0x200, + MsetProperty = 0x400, + + /* used by indic and myanmar shaper */ + NuktaProperty = 0x4, + AkhantProperty = 0x8, + RephProperty = 0x10, + PreFormProperty = 0x20, + BelowFormProperty = 0x40, + AboveFormProperty = 0x80, + HalfFormProperty = 0x100, + PostFormProperty = 0x200, + VattuProperty = 0x400, + PreSubstProperty = 0x800, + BelowSubstProperty = 0x1000, + AboveSubstProperty = 0x2000, + PostSubstProperty = 0x4000, + HalantProperty = 0x8000, + CligProperty = 0x10000 + +} HB_OpenTypeProperty; + +/* return true if ok. */ +typedef HB_Bool (*HB_ShapeFunction)(HB_ShaperItem *shaper_item); +typedef void (*HB_AttributeFunction)(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +typedef struct { + HB_ShapeFunction shape; + HB_AttributeFunction charAttributes; +} HB_ScriptEngine; + +extern const HB_ScriptEngine HB_ScriptEngines[]; + +extern HB_Bool HB_BasicShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_TibetanShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_HebrewShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_ArabicShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_HangulShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_MyanmarShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_KhmerShape(HB_ShaperItem *shaper_item); +extern HB_Bool HB_IndicShape(HB_ShaperItem *shaper_item); + +extern void HB_TibetanAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +extern void HB_MyanmarAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +extern void HB_KhmerAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +extern void HB_IndicAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +extern void HB_ThaiAttributes(HB_Script script, const HB_UChar16 *string, hb_uint32 from, hb_uint32 len, HB_CharAttributes *attributes); + +typedef struct { + hb_uint32 tag; + hb_uint32 property; +} HB_OpenTypeFeature; + +#define PositioningProperties 0x80000000 + +HB_Bool HB_SelectScript(HB_ShaperItem *item, const HB_OpenTypeFeature *features); + +HB_Bool HB_OpenTypeShape(HB_ShaperItem *item, const hb_uint32 *properties); +HB_Bool HB_OpenTypePosition(HB_ShaperItem *item, int availableGlyphs, HB_Bool doLogClusters); + +void HB_HeuristicPosition(HB_ShaperItem *item); +void HB_HeuristicSetGlyphAttributes(HB_ShaperItem *item); + +#define HB_IsControlChar(uc) \ + ((uc >= 0x200b && uc <= 0x200f /* ZW Space, ZWNJ, ZWJ, LRM and RLM */) \ + || (uc >= 0x2028 && uc <= 0x202f /* LS, PS, LRE, RLE, PDF, LRO, RLO, NNBSP */) \ + || (uc >= 0x206a && uc <= 0x206f /* ISS, ASS, IAFS, AFS, NADS, NODS */)) + +HB_Bool HB_ConvertStringToGlyphIndices(HB_ShaperItem *shaper_item); + +#define HB_GetGlyphAdvances(shaper_item) \ + shaper_item->font->klass->getGlyphAdvances(shaper_item->font, \ + shaper_item->glyphs, shaper_item->num_glyphs, \ + shaper_item->advances, \ + shaper_item->face->current_flags); + +#define HB_DECLARE_STACKARRAY(Type, Name) \ + Type stack##Name[64]; \ + Type *Name = stack##Name; + +#define HB_INIT_STACKARRAY(Type, Name, Length) \ + if ((Length) >= 64) \ + Name = (Type *)malloc((Length) * sizeof(Type)); + +#define HB_STACKARRAY(Type, Name, Length) \ + HB_DECLARE_STACKARRAY(Type, Name) \ + HB_INIT_STACKARRAY(Type, Name, Length) + +#define HB_FREE_STACKARRAY(Name) \ + if (stack##Name != Name) \ + free(Name); + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-shaper.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-shaper.h new file mode 100755 index 0000000..c74c664 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-shaper.h @@ -0,0 +1,283 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_SHAPER_H +#define HARFBUZZ_SHAPER_H + +#include "harfbuzz-global.h" +#include "harfbuzz-gdef.h" +#include "harfbuzz-gpos.h" +#include "harfbuzz-gsub.h" +#include "harfbuzz-external.h" +#include "harfbuzz-stream-private.h" + +HB_BEGIN_HEADER + +typedef enum { + HB_Script_Common, + HB_Script_Greek, + HB_Script_Cyrillic, + HB_Script_Armenian, + HB_Script_Hebrew, + HB_Script_Arabic, + HB_Script_Syriac, + HB_Script_Thaana, + HB_Script_Devanagari, + HB_Script_Bengali, + HB_Script_Gurmukhi, + HB_Script_Gujarati, + HB_Script_Oriya, + HB_Script_Tamil, + HB_Script_Telugu, + HB_Script_Kannada, + HB_Script_Malayalam, + HB_Script_Sinhala, + HB_Script_Thai, + HB_Script_Lao, + HB_Script_Tibetan, + HB_Script_Myanmar, + HB_Script_Georgian, + HB_Script_Hangul, + HB_Script_Ogham, + HB_Script_Runic, + HB_Script_Khmer, + HB_Script_Nko, + HB_Script_Inherited, + HB_ScriptCount = HB_Script_Inherited + /* + HB_Script_Latin = Common, + HB_Script_Ethiopic = Common, + HB_Script_Cherokee = Common, + HB_Script_CanadianAboriginal = Common, + HB_Script_Mongolian = Common, + HB_Script_Hiragana = Common, + HB_Script_Katakana = Common, + HB_Script_Bopomofo = Common, + HB_Script_Han = Common, + HB_Script_Yi = Common, + HB_Script_OldItalic = Common, + HB_Script_Gothic = Common, + HB_Script_Deseret = Common, + HB_Script_Tagalog = Common, + HB_Script_Hanunoo = Common, + HB_Script_Buhid = Common, + HB_Script_Tagbanwa = Common, + HB_Script_Limbu = Common, + HB_Script_TaiLe = Common, + HB_Script_LinearB = Common, + HB_Script_Ugaritic = Common, + HB_Script_Shavian = Common, + HB_Script_Osmanya = Common, + HB_Script_Cypriot = Common, + HB_Script_Braille = Common, + HB_Script_Buginese = Common, + HB_Script_Coptic = Common, + HB_Script_NewTaiLue = Common, + HB_Script_Glagolitic = Common, + HB_Script_Tifinagh = Common, + HB_Script_SylotiNagri = Common, + HB_Script_OldPersian = Common, + HB_Script_Kharoshthi = Common, + HB_Script_Balinese = Common, + HB_Script_Cuneiform = Common, + HB_Script_Phoenician = Common, + HB_Script_PhagsPa = Common, + */ +} HB_Script; + +typedef struct +{ + hb_uint32 pos; + hb_uint32 length; + HB_Script script; + hb_uint8 bidiLevel; +} HB_ScriptItem; + +typedef enum { + HB_NoBreak, + HB_SoftHyphen, + HB_Break, + HB_ForcedBreak +} HB_LineBreakType; + + +typedef struct { + /*HB_LineBreakType*/ unsigned lineBreakType :2; + /*HB_Bool*/ unsigned whiteSpace :1; /* A unicode whitespace character, except NBSP, ZWNBSP */ + /*HB_Bool*/ unsigned charStop :1; /* Valid cursor position (for left/right arrow) */ + /*HB_Bool*/ unsigned wordBoundary :1; + /*HB_Bool*/ unsigned sentenceBoundary :1; + unsigned unused :2; +} HB_CharAttributes; + +void HB_GetCharAttributes(const HB_UChar16 *string, hb_uint32 stringLength, + const HB_ScriptItem *items, hb_uint32 numItems, + HB_CharAttributes *attributes); + +/* requires HB_GetCharAttributes to be called before */ +void HB_GetWordBoundaries(const HB_UChar16 *string, hb_uint32 stringLength, + const HB_ScriptItem *items, hb_uint32 numItems, + HB_CharAttributes *attributes); + +/* requires HB_GetCharAttributes to be called before */ +void HB_GetSentenceBoundaries(const HB_UChar16 *string, hb_uint32 stringLength, + const HB_ScriptItem *items, hb_uint32 numItems, + HB_CharAttributes *attributes); + + +typedef enum { + HB_LeftToRight = 0, + HB_RightToLeft = 1 +} HB_StringToGlyphsFlags; + +typedef enum { + HB_ShaperFlag_Default = 0, + HB_ShaperFlag_NoKerning = 1, + HB_ShaperFlag_UseDesignMetrics = 2 +} HB_ShaperFlag; + +/* + highest value means highest priority for justification. Justification is done by first inserting kashidas + starting with the highest priority positions, then stretching spaces, afterwards extending inter char + spacing, and last spacing between arabic words. + NoJustification is for example set for arabic where no Kashida can be inserted or for diacritics. +*/ +typedef enum { + HB_NoJustification= 0, /* Justification can't be applied after this glyph */ + HB_Arabic_Space = 1, /* This glyph represents a space inside arabic text */ + HB_Character = 2, /* Inter-character justification point follows this glyph */ + HB_Space = 4, /* This glyph represents a blank outside an Arabic run */ + HB_Arabic_Normal = 7, /* Normal Middle-Of-Word glyph that connects to the right (begin) */ + HB_Arabic_Waw = 8, /* Next character is final form of Waw/Ain/Qaf/Fa */ + HB_Arabic_BaRa = 9, /* Next two chars are Ba + Ra/Ya/AlefMaksura */ + HB_Arabic_Alef = 10, /* Next character is final form of Alef/Tah/Lam/Kaf/Gaf */ + HB_Arabic_HaaDal = 11, /* Next character is final form of Haa/Dal/Taa Marbutah */ + HB_Arabic_Seen = 12, /* Initial or Medial form Of Seen/Sad */ + HB_Arabic_Kashida = 13 /* Kashida(U+640) in middle of word */ +} HB_JustificationClass; + +/* This structure is binary compatible with Uniscribe's SCRIPT_VISATTR. Would be nice to keep + * it like that. If this is a problem please tell Trolltech :) + */ +typedef struct { + unsigned justification :4; /* Justification class */ + unsigned clusterStart :1; /* First glyph of representation of cluster */ + unsigned mark :1; /* needs to be positioned around base char */ + unsigned zeroWidth :1; /* ZWJ, ZWNJ etc, with no width */ + unsigned dontPrint :1; + unsigned combiningClass :8; +} HB_GlyphAttributes; + +typedef struct HB_FaceRec_ { + HB_Bool isSymbolFont; + + HB_GDEF gdef; + HB_GSUB gsub; + HB_GPOS gpos; + HB_Bool supported_scripts[HB_ScriptCount]; + HB_Buffer buffer; + HB_Script current_script; + int current_flags; /* HB_ShaperFlags */ + HB_Bool has_opentype_kerning; + HB_Bool glyphs_substituted; + HB_GlyphAttributes *tmpAttributes; + unsigned int *tmpLogClusters; + int length; + int orig_nglyphs; +} HB_FaceRec; + +typedef HB_Error (*HB_GetFontTableFunc)(void *font, HB_Tag tag, HB_Byte *buffer, HB_UInt *length); + +HB_Face HB_NewFace(void *font, HB_GetFontTableFunc tableFunc); +void HB_FreeFace(HB_Face face); + +typedef struct { + HB_Fixed x, y; + HB_Fixed width, height; + HB_Fixed xOffset, yOffset; +} HB_GlyphMetrics; + +typedef enum { + HB_FontAscent +} HB_FontMetric; + +typedef struct { + HB_Bool (*convertStringToGlyphIndices)(HB_Font font, const HB_UChar16 *string, hb_uint32 length, HB_Glyph *glyphs, hb_uint32 *numGlyphs, HB_Bool rightToLeft); + void (*getGlyphAdvances)(HB_Font font, const HB_Glyph *glyphs, hb_uint32 numGlyphs, HB_Fixed *advances, int flags /*HB_ShaperFlag*/); + HB_Bool (*canRender)(HB_Font font, const HB_UChar16 *string, hb_uint32 length); + /* implementation needs to make sure to load a scaled glyph, so /no/ FT_LOAD_NO_SCALE */ + HB_Error (*getPointInOutline)(HB_Font font, HB_Glyph glyph, int flags /*HB_ShaperFlag*/, hb_uint32 point, HB_Fixed *xpos, HB_Fixed *ypos, hb_uint32 *nPoints); + void (*getGlyphMetrics)(HB_Font font, HB_Glyph glyph, HB_GlyphMetrics *metrics); + HB_Fixed (*getFontMetric)(HB_Font font, HB_FontMetric metric); +} HB_FontClass; + +typedef struct HB_Font_ { + const HB_FontClass *klass; + + /* Metrics */ + HB_UShort x_ppem, y_ppem; + HB_16Dot16 x_scale, y_scale; + + void *userData; +} HB_FontRec; + +typedef struct HB_ShaperItem_ HB_ShaperItem; + +struct HB_ShaperItem_ { + const HB_UChar16 *string; /* input: the Unicode UTF16 text to be shaped */ + hb_uint32 stringLength; /* input: the length of the input in 16-bit words */ + HB_ScriptItem item; /* input: the current run to be shaped: a run of text all in the same script that is a substring of */ + HB_Font font; /* input: the font: scale, units and function pointers supplying glyph indices and metrics */ + HB_Face face; /* input: the shaper state; current script, access to the OpenType tables , etc. */ + int shaperFlags; /* input (unused) should be set to 0; intended to support flags defined in HB_ShaperFlag */ + HB_Bool glyphIndicesPresent; /* input: true if the array contains glyph indices ready to be shaped */ + hb_uint32 initialGlyphCount; /* input: if glyphIndicesPresent is true, the number of glyph indices in the array */ + + hb_uint32 num_glyphs; /* input: capacity of output arrays , , , , and ; */ + /* output: required capacity (may be larger than actual capacity) */ + + HB_Glyph *glyphs; /* output: indices of shaped glyphs */ + HB_GlyphAttributes *attributes; /* output: glyph attributes */ + HB_Fixed *advances; /* output: advances */ + HB_FixedPoint *offsets; /* output: offsets */ + unsigned short *log_clusters; /* output: for each output glyph, the index in the input of the start of its logical cluster */ + + /* internal */ + HB_Bool kerning_applied; /* output: true if kerning was applied by the shaper */ +}; + +HB_Bool HB_ShapeItem(HB_ShaperItem *item); + + +extern int tibetan_nextSyllableBoundary(const HB_UChar16 *s, int start, int end, HB_Bool *invalid) ; +extern int myanmar_nextSyllableBoundary(const HB_UChar16 *s, int start, int end, HB_Bool *invalid) ; +extern int khmer_nextSyllableBoundary(const HB_UChar16 *s, int start, int end, HB_Bool *invalid) ; +//#ifdef __cplusplus +//extern "C" //{ int indic_nextSyllableBoundary(HB_Script script, const HB_UChar16 *s, int start, int end, bool *invalid) ; +//#endif + +extern int indic_nextSyllableBoundary(HB_Script script, const HB_UChar16 *s, int start, int end, HB_Bool *invalid) ; + + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-stream-private.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-stream-private.h new file mode 100755 index 0000000..322cf08 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-stream-private.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_STREAM_PRIVATE_H +#define HARFBUZZ_STREAM_PRIVATE_H + +#include "harfbuzz-impl.h" +#include "harfbuzz-stream.h" + +HB_BEGIN_HEADER + +HB_INTERNAL void +_hb_close_stream( HB_Stream stream ); + +HB_INTERNAL HB_Int +_hb_stream_pos( HB_Stream stream ); + +HB_INTERNAL HB_Error +_hb_stream_seek( HB_Stream stream, + HB_UInt pos ); + +HB_INTERNAL HB_Error +_hb_stream_frame_enter( HB_Stream stream, + HB_UInt size ); + +HB_INTERNAL void +_hb_stream_frame_exit( HB_Stream stream ); + +/* convenience macros */ + +#define SET_ERR(c) ( (error = (c)) != 0 ) + +#define GOTO_Table(tag) (0) +#define FILE_Pos() _hb_stream_pos( stream ) +#define FILE_Seek(pos) SET_ERR( _hb_stream_seek( stream, pos ) ) +#define ACCESS_Frame(size) SET_ERR( _hb_stream_frame_enter( stream, size ) ) +#define FORGET_Frame() _hb_stream_frame_exit( stream ) + +#define GET_Byte() (*stream->cursor++) +#define GET_Short() (stream->cursor += 2, (HB_Short)( \ + (*(((HB_Byte*)stream->cursor)-2) << 8) | \ + *(((HB_Byte*)stream->cursor)-1) \ + )) +#define GET_Long() (stream->cursor += 4, (HB_Int)( \ + (*(((HB_Byte*)stream->cursor)-4) << 24) | \ + (*(((HB_Byte*)stream->cursor)-3) << 16) | \ + (*(((HB_Byte*)stream->cursor)-2) << 8) | \ + *(((HB_Byte*)stream->cursor)-1) \ + )) + + +#define GET_Char() ((HB_Char)GET_Byte()) +#define GET_UShort() ((HB_UShort)GET_Short()) +#define GET_ULong() ((HB_UInt)GET_Long()) +#define GET_Tag4() GET_ULong() + +HB_END_HEADER + +#endif /* HARFBUZZ_STREAM_PRIVATE_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-stream.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-stream.h new file mode 100755 index 0000000..e49c307 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz-stream.h @@ -0,0 +1,42 @@ +/* + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_STREAM_H +#define HARFBUZZ_STREAM_H + +#include "harfbuzz-global.h" + +HB_BEGIN_HEADER + +typedef struct HB_StreamRec_ +{ + HB_Byte* base; + HB_UInt size; + HB_UInt pos; + + HB_Byte* cursor; +} HB_StreamRec; + + +HB_END_HEADER + +#endif diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz.h new file mode 100755 index 0000000..d127458 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/harfbuzz.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2006 Behdad Esfahbod + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HARFBUZZ_H +#define HARFBUZZ_H + +#include "harfbuzz-external.h" +#include "harfbuzz-impl.h" +#include "harfbuzz-global.h" +#include "harfbuzz-buffer.h" +#include "harfbuzz-gdef.h" +#include "harfbuzz-gsub.h" +#include "harfbuzz-gpos.h" +#include "harfbuzz-open.h" +#include "harfbuzz-shaper.h" + +#define HB_DOTTED_CIRCLE 0x25CC /** DottedCircle used with dependent Matras */ +#define HB_ZWJ 0x200D /** Zero Width Joiner */ +#define HB_ZWNJ 0x200C /** Zero Width Non-Joiner */ + +#define HB_INITIAL_NO_OF_GLYPH 64 + +extern HB_Error hb_getScriptID(HB_UShort value, HB_Script *scriptID) ; +extern HB_Error hb_getTextWithScriptID(HB_UShort *text, int textLen, HB_Script *scriptID, int *scriptLen) ; +extern int hb_getSyllableLength(HB_UShort *text, int textLen, HB_Script *scriptID) ; + +#endif /* HARFBUZZ_OPEN_H */ diff --git a/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/hb_unicode_tables.h b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/hb_unicode_tables.h new file mode 100755 index 0000000..20e40e6 --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/include/harfbuzz/hb_unicode_tables.h @@ -0,0 +1,3312 @@ + +/* + * Copyright (C) 2010 Samsung India Software Operations Pvt. Ltd. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef __hb_unicode_tables_h__ +#define __hb_unicode_tables_h__ + +#include "math.h" +#include "harfbuzz-shaper.h" +#include "harfbuzz-shaper-private.h" + +typedef struct +{ + HB_UShort scriptID;//it can be sript id if subtable is null, else size of subtable + HB_Script *pSubTable; + +}unicodeScriptTableStruct; + +HB_Script subTableThanaSyriac[] = +{ + HB_Script_Syriac,//0x00 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac,//0x08 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x10 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x18 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x20 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac,//0x28 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x30 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac,//0x38 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac,//0x40 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + + HB_Script_Syriac,//0x48 + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac, + HB_Script_Syriac,//0x4f + + HB_Script_Common,//0x50 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x58 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x60 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x68 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x70 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common,//0x78 + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + HB_Script_Common, + + HB_Script_Thaana,//0x80 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0x88 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0x90 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0x98 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0xa0 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0xa8 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0xb0 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana,//0xb8 + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana, + HB_Script_Thaana,//0xbf +}; + +HB_Script subTableDevaBengali[] = +{ + HB_Script_Devanagari,//0x00 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x08 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x10 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x18 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x20 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x28 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x30 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x38 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x40 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x48 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari,//0x4f + + HB_Script_Devanagari,//0x50 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x58 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x60 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x68 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + + HB_Script_Devanagari,//0x70 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari,//0x78 + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari, + HB_Script_Devanagari,//0x7f + + + HB_Script_Bengali,//0x80 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0x88 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0x90 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + + HB_Script_Bengali,//0x98 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xa0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xa8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xb0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + + HB_Script_Bengali,//0xb8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xc0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + + HB_Script_Bengali,//0xc8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xd0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xd8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xe0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + + HB_Script_Bengali,//0xe8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xf0 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali,//0xf8 + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali, + HB_Script_Bengali,//0xff + +}; + + +HB_Script subTableGuruGuarati[]= +{ + HB_Script_Gurmukhi,//0x00 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x08 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x10 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x18 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x20 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x28 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x30 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x38 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x40 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x48 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi,//0x4f + + HB_Script_Gurmukhi,//0x50 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x58 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x60 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x68 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + + HB_Script_Gurmukhi,//0x70 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi,//0x78 + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi, + HB_Script_Gurmukhi,//0x7f + + + HB_Script_Gujarati,//0x80 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0x88 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0x90 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + + HB_Script_Gujarati,//0x98 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xa0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xa8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xb0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + + HB_Script_Gujarati,//0xb8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xc0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + + HB_Script_Gujarati,//0xc8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xd0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xd8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xe0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + + HB_Script_Gujarati,//0xe8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xf0 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati,//0xf8 + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati, + HB_Script_Gujarati,//0xff + +}; + +HB_Script subTableOriyaTamil[]= +{ + HB_Script_Oriya,//0x00 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x08 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x10 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x18 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x20 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x28 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x30 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x38 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x40 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x48 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya,//0x4f + + HB_Script_Oriya,//0x50 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x58 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x60 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x68 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + + HB_Script_Oriya,//0x70 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya,//0x78 + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya, + HB_Script_Oriya,//0x7f + + + HB_Script_Tamil,//0x80 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0x88 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0x90 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + + HB_Script_Tamil,//0x98 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xa0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xa8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xb0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + + HB_Script_Tamil,//0xb8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xc0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + + HB_Script_Tamil,//0xc8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xd0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xd8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xe0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + + HB_Script_Tamil,//0xe8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xf0 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil,//0xf8 + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil, + HB_Script_Tamil,//0xff + +}; + + +HB_Script subTableTelukannada[]= +{ + HB_Script_Telugu,//0x00 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x08 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x10 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x18 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x20 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x28 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x30 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x38 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x40 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x48 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu,//0x4f + + HB_Script_Telugu,//0x50 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x58 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x60 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x68 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + + HB_Script_Telugu,//0x70 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu,//0x78 + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu, + HB_Script_Telugu,//0x7f + + + HB_Script_Kannada,//0x80 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0x88 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0x90 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + + HB_Script_Kannada,//0x98 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xa0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xa8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xb0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + + HB_Script_Kannada,//0xb8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xc0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + + HB_Script_Kannada,//0xc8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xd0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xd8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xe0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + + HB_Script_Kannada,//0xe8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xf0 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada,//0xf8 + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada, + HB_Script_Kannada,//0xff + +}; + +HB_Script subTableMalSinhala[]= +{ + HB_Script_Malayalam,//0x00 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x08 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x10 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x18 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x20 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x28 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x30 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x38 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x40 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x48 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam,//0x4f + + HB_Script_Malayalam,//0x50 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x58 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x60 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x68 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + + HB_Script_Malayalam,//0x70 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam,//0x78 + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam, + HB_Script_Malayalam,//0x7f + + + HB_Script_Sinhala,//0x80 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0x88 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0x90 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + + HB_Script_Sinhala,//0x98 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xa0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xa8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xb0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + + HB_Script_Sinhala,//0xb8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xc0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + + HB_Script_Sinhala,//0xc8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xd0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xd8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xe0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + + HB_Script_Sinhala,//0xe8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xf0 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala,//0xf8 + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala, + HB_Script_Sinhala,//0xff + +}; + +HB_Script subTableThaiLao[]= +{ + HB_Script_Thai,//0x00 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x08 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x10 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x18 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x20 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x28 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x30 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x38 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x40 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x48 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai,//0x4f + + HB_Script_Thai,//0x50 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x58 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x60 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x68 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + + HB_Script_Thai,//0x70 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai,//0x78 + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai, + HB_Script_Thai,//0x7f + + + HB_Script_Lao,//0x80 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0x88 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0x90 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + + HB_Script_Lao,//0x98 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xa0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xa8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xb0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + + HB_Script_Lao,//0xb8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xc0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + + HB_Script_Lao,//0xc8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xd0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xd8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xe0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + + HB_Script_Lao,//0xe8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xf0 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao,//0xf8 + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao, + HB_Script_Lao,//0xff + +}; + +HB_Script subTableMyanGeorgian[] = +{ + HB_Script_Myanmar,//0x00 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x08 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x10 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x18 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x20 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x28 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x30 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x38 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x40 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x48 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar,//0x4f + + HB_Script_Myanmar,//0x50 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x58 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x60 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x68 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x70 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x78 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar,//0x7f + + + HB_Script_Myanmar,//0x80 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x88 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar,//0x90 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + + HB_Script_Myanmar,//0x98 + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + HB_Script_Myanmar, + + HB_Script_Georgian,//0xa0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xa8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xb0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + + HB_Script_Georgian,//0xb8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xc0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + + HB_Script_Georgian,//0xc8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xd0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xd8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xe0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + + HB_Script_Georgian,//0xe8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xf0 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian,//0xf8 + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian, + HB_Script_Georgian,//0xff + +}; + +HB_Script subTableOghamRunic[] = +{ + HB_Script_Ogham,//0x00 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x08 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x10 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x18 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x20 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x28 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x30 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x38 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x40 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x48 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham,//0x4f + + HB_Script_Ogham,//0x50 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x58 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x60 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x68 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x70 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x78 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham,//0x7f + + + HB_Script_Ogham,//0x80 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x88 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham,//0x90 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + + HB_Script_Ogham,//0x98 + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + HB_Script_Ogham, + + HB_Script_Runic,//0xa0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xa8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xb0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + + HB_Script_Runic,//0xb8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xc0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + + HB_Script_Runic,//0xc8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xd0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xd8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xe0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + + HB_Script_Runic,//0xe8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xf0 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic,//0xf8 + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic, + HB_Script_Runic,//0xff + +}; + +#define VFE_UNICODE_MAX_SCRIPT 256 + +static const unicodeScriptTableStruct scriptTableStruct[VFE_UNICODE_MAX_SCRIPT]= +{ + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Greek, 0}, + + {HB_Script_Cyrillic, 0},//0x04 + {HB_Script_Armenian, 0}, + {HB_Script_Arabic, 0}, + {0xc0, subTableThanaSyriac}, + + {HB_Script_Common, 0},//0x08 + {0x100, subTableDevaBengali}, + {0x100, subTableGuruGuarati}, + {0x100, subTableOriyaTamil}, + + {0x100, subTableTelukannada},//0x0c + {0x100, subTableMalSinhala}, + {0x100, subTableThaiLao}, + {HB_Script_Tibetan, 0}, + + {0x100, subTableMyanGeorgian},//0x10 + {HB_Script_Hangul, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x14 + {HB_Script_Common, 0}, + {0x100, subTableOghamRunic}, + {HB_Script_Khmer, 0}, + + {HB_Script_Common, 0},//0x18 + {HB_Script_Khmer, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x1c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x20 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x24 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x28 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x2c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x30 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x34 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x38 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x3c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x40 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x44 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x48 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x4c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x50 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x54 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x58 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x5c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x60 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x64 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x68 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x6c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x70 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x74 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x78 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x7c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x80 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x84 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x88 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x8c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x40 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x94 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x98 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0x9c + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xa0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xa4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xa8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xac + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xb0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xb4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xb8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xbc + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xc0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xc4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xc8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xcc + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xd0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xd4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xd8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xdc + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xe0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xe4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xe8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xec + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xf0 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xf4 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xf8 + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + + {HB_Script_Common, 0},//0xfc + {HB_Script_Common, 0}, + {HB_Script_Common, 0}, + {HB_Script_Common, 0},//ff +}; + +#endif /* __hb_unicode_tables_h__ */ + diff --git a/harfbuzz-0.1/debian/tmp/usr/lib/libharfbuzz.so b/harfbuzz-0.1/debian/tmp/usr/lib/libharfbuzz.so new file mode 100755 index 0000000..6409936 Binary files /dev/null and b/harfbuzz-0.1/debian/tmp/usr/lib/libharfbuzz.so differ diff --git a/harfbuzz-0.1/debian/tmp/usr/lib/pkgconfig/harfbuzz.pc b/harfbuzz-0.1/debian/tmp/usr/lib/pkgconfig/harfbuzz.pc new file mode 100755 index 0000000..603b9ce --- /dev/null +++ b/harfbuzz-0.1/debian/tmp/usr/lib/pkgconfig/harfbuzz.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: harfbuzz +Description: A free, high-quality, and portable shaping engine. +Version: 1 +Requires: +Libs: -L${libdir} -lharfbuzz +Cflags: -I${includedir}/harfbuzz -I${includedir} diff --git a/harfbuzz-0.1/harfbuzz-dump.o b/harfbuzz-0.1/harfbuzz-dump.o new file mode 100755 index 0000000..fe0fb0f Binary files /dev/null and b/harfbuzz-0.1/harfbuzz-dump.o differ diff --git a/harfbuzz-0.1/harfbuzz-external.o b/harfbuzz-0.1/harfbuzz-external.o new file mode 100755 index 0000000..21142a3 Binary files /dev/null and b/harfbuzz-0.1/harfbuzz-external.o differ diff --git a/harfbuzz-0.1/harfbuzz-shaper-all.o b/harfbuzz-0.1/harfbuzz-shaper-all.o new file mode 100755 index 0000000..f7d5533 Binary files /dev/null and b/harfbuzz-0.1/harfbuzz-shaper-all.o differ diff --git a/harfbuzz-0.1/harfbuzz.o b/harfbuzz-0.1/harfbuzz.o new file mode 100755 index 0000000..e22122c Binary files /dev/null and b/harfbuzz-0.1/harfbuzz.o differ