Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/dox


Modified Files:
        dox.h ttfont.c 


Log Message:
Freetype stuff is now only in ttfont.c.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/dox/dox.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- dox.h       16 Nov 2003 19:44:01 -0000      1.20
+++ dox.h       12 Dec 2003 18:42:15 -0000      1.21
@@ -51,13 +51,6 @@
 #include <sys/resource.h>
 #include <sys/ipc.h>
 #include <sys/shm.h>
-#ifdef HAVE_FREETYPE1_FREETYPE_FREETYPE_H
-#include <freetype1/freetype/freetype.h>
-#elif defined(HAVE_FREETYPE_FREETYPE_H)
-#include <freetype/freetype.h>
-#else
-#include <freetype.h>
-#endif
 
 #define ESetColor(pxc, r, g, b) \
        ({ (pxc)->red = ((r)<<8)|r; (pxc)->green = ((g)<<8)|g; (pxc)->blue = 
((b)<<8)|b; })
@@ -189,6 +182,8 @@
 #define ENCOING_ISO_8859_3 2
 #define ENCOING_ISO_8859_4 3
 
+typedef struct _efont Efont;
+
 #define Esetenv(var, val, overwrite) \
 { \
   static char envvar[1024]; \
@@ -208,21 +203,6 @@
 }
 Root;
 
-typedef struct _efont
-  {
-     TT_Engine           engine;
-     TT_Face             face;
-     TT_Instance         instance;
-     TT_Face_Properties  properties;
-     int                 num_glyph;
-     TT_Glyph           *glyphs;
-     TT_Raster_Map     **glyphs_cached;
-     TT_CharMap          char_map;
-     int                 max_descent;
-     int                 max_ascent;
-  }
-Efont;
-
 typedef struct _textstate
   {
      char               *fontname;
@@ -377,3 +357,6 @@
 extern FnlibData   *pFnlibData;
 #endif
 extern char        *docdir;
+
+#define Emalloc malloc
+#define Efree   free
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/dox/ttfont.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- ttfont.c    5 Nov 2003 17:24:39 -0000       1.7
+++ ttfont.c    12 Dec 2003 18:42:15 -0000      1.8
@@ -1,46 +1,72 @@
 /*
- Copyright (C) 2000-2003 Carsten Haitzler, Geoff Harrison and various contributors
- 
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to
- deal in the Software without restriction, including without limitation the
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies of the Software, its documentation and marketing & publicity
- materials, and acknowledgment shall be given in the documentation, materials
- and software packages that this Software was used.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * Copyright (C) 2000-2003 Carsten Haitzler, Geoff Harrison and various contributors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of the Software, its documentation and marketing & publicity
+ * materials, and acknowledgment shall be given in the documentation, materials
+ * and software packages that this Software was used.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
-
 #include "dox.h"
 
+#if TEST_TTFONT
+#undef XSync
+#undef IC_RenderDepth
+#define IC_RenderDepth() DefaultDepth(disp, DefaultScreen(disp))
+#define EGetGeometry XGetGeometry
+#endif
+
+#ifdef HAVE_FREETYPE1_FREETYPE_FREETYPE_H
+#include <freetype1/freetype/freetype.h>
+#elif defined(HAVE_FREETYPE_FREETYPE_H)
+#include <freetype/freetype.h>
+#else
+#include <freetype.h>
+#endif
+
+struct _efont
+{
+   TT_Engine           engine;
+   TT_Face             face;
+   TT_Instance         instance;
+   TT_Face_Properties  properties;
+   int                 num_glyph;
+   TT_Glyph           *glyphs;
+   TT_Raster_Map     **glyphs_cached;
+   TT_CharMap          char_map;
+   int                 max_descent;
+   int                 max_ascent;
+};
+
 typedef struct _efont_color_tab EfontColorTable;
 
 struct _efont_color_tab
-  {
-     Colormap            cmap;
+{
+   Colormap            cmap;
 
-     XColor              list[256];
-     unsigned char       match[8][8][8];
-  };
+   XColor              list[256];
+   unsigned char       match[8][8][8];
+};
 
 /*static EfontColorTable *color_tab = NULL; */
-static unsigned char alpha_lut[5] =
-{0, 64, 128, 192, 255};
-static unsigned char bounded_palette[9] =
-{0, 1, 2, 3, 4, 4, 4, 4, 4};
-
+static unsigned char alpha_lut[5] = { 0, 64, 128, 192, 255 };
+static unsigned char bounded_palette[9] = { 0, 1, 2, 3, 4, 4, 4, 4, 4 };
 
-struct _imlib_encoding_map {
+struct _imlib_encoding_map
+{
    unsigned short      char_map[98];
 };
 
@@ -48,140 +74,146 @@
 
 /* Encoding maps */
 static const ImlibEncodingMap iso1 = {
-    {
-        /* ISO-8859-1 encoding (conversion to UTF-8) */
-        0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8,
-        0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, 0x00B0, 0x00B1,
-        0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA,
-        0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3,
-        0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC,
-        0x00CD, 0x00CE, 0x00CF, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5,
-        0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE,
-        0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
-        0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x00F0,
-        0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9,
-        0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
-    }
+   {
+    /* ISO-8859-1 encoding (conversion to UTF-8) */
+    0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8,
+    0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, 0x00B0, 0x00B1,
+    0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA,
+    0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3,
+    0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC,
+    0x00CD, 0x00CE, 0x00CF, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5,
+    0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE,
+    0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
+    0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x00F0,
+    0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9,
+    0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF}
 };
 
 static const ImlibEncodingMap iso2 = {
-    {
-        /* ISO-8859-2 encoding (conversion to UTF-8) */
-        0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, 0x00A8,
-        0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, 0x00B0, 0x0105,
-        0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, 0x00B8, 0x0161, 0x015F,
-        0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, 0x0154, 0x00C1, 0x00C2, 0x0102,
-        0x00C4, 0x0139, 0x0106, 0x00C7, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A,
-        0x00CD, 0x00CE, 0x010E, 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150,
-        0x00D6, 0x00D7, 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162,
-        0x00DF, 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
-        0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, 0x0111,
-        0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F,
-        0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9
-    }
+   {
+    /* ISO-8859-2 encoding (conversion to UTF-8) */
+    0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, 0x00A8,
+    0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, 0x00B0, 0x0105,
+    0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, 0x00B8, 0x0161, 0x015F,
+    0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, 0x0154, 0x00C1, 0x00C2, 0x0102,
+    0x00C4, 0x0139, 0x0106, 0x00C7, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A,
+    0x00CD, 0x00CE, 0x010E, 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150,
+    0x00D6, 0x00D7, 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162,
+    0x00DF, 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
+    0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, 0x0111,
+    0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F,
+    0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9}
 };
 
 static const ImlibEncodingMap iso3 = {
-    {
-        /* ISO-8859-3 encoding (conversion to UTF-8) */
-        0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0x0124, 0x00A7, 0x00A8, 0x0130,
-        0x015E, 0x011E, 0x0134, 0x00AD, 0x017B, 0x00B0, 0x0127, 0x00B2, 0x00B3,
-        0x00B4, 0x00B5, 0x0125, 0x00B7, 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135,
-        0x00BD, 0x017C, 0x00C0, 0x00C1, 0x00C2, 0x00C4, 0x010A, 0x0108, 0x00C7,
-        0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x00D1,
-        0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, 0x011C, 0x00D9, 0x00DA,
-        0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E4,
-        0x010B, 0x0109, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED,
-        0x00EE, 0x00EF, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7,
-        0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9
-    }
+   {
+    /* ISO-8859-3 encoding (conversion to UTF-8) */
+    0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0x0124, 0x00A7, 0x00A8, 0x0130,
+    0x015E, 0x011E, 0x0134, 0x00AD, 0x017B, 0x00B0, 0x0127, 0x00B2, 0x00B3,
+    0x00B4, 0x00B5, 0x0125, 0x00B7, 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135,
+    0x00BD, 0x017C, 0x00C0, 0x00C1, 0x00C2, 0x00C4, 0x010A, 0x0108, 0x00C7,
+    0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x00D1,
+    0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, 0x011C, 0x00D9, 0x00DA,
+    0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E4,
+    0x010B, 0x0109, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED,
+    0x00EE, 0x00EF, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7,
+    0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9}
 };
 
 static const ImlibEncodingMap iso4 = {
-    {
-        /* ISO-8859-4 encoding (conversion to UTF-8) */
-        0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, 0x00A8,
-        0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, 0x00B0, 0x0105,
-        0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, 0x00B8, 0x0161, 0x0113,
-        0x0123, 0x0167, 0x014A, 0x017E, 0x014B, 0x0100, 0x00C1, 0x00C2, 0x00C3,
-        0x00C4, 0x00C5, 0x00C6, 0x012E, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116,
-        0x00CD, 0x00CE, 0x012A, 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5,
-        0x00D6, 0x00D7, 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A,
-        0x00DF, 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F,
-        0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, 0x0111,
-        0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x0173,
-        0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9
-    }
+   {
+    /* ISO-8859-4 encoding (conversion to UTF-8) */
+    0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, 0x00A8,
+    0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, 0x00B0, 0x0105,
+    0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, 0x00B8, 0x0161, 0x0113,
+    0x0123, 0x0167, 0x014A, 0x017E, 0x014B, 0x0100, 0x00C1, 0x00C2, 0x00C3,
+    0x00C4, 0x00C5, 0x00C6, 0x012E, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116,
+    0x00CD, 0x00CE, 0x012A, 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5,
+    0x00D6, 0x00D7, 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A,
+    0x00DF, 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F,
+    0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, 0x0111,
+    0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x0173,
+    0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9}
 };
 
 static const ImlibEncodingMap iso5 = {
-    {
-        /* ISO-8859-5 encoding (conversion to UTF-8) */
-        0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408,
-        0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, 0x0410, 0x0411,
-        0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A,
-        0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423,
-        0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C,
-        0x042D, 0x042E, 0x042F, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435,
-        0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
-        0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-        0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x2116,
-        0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459,
-        0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F
-    }
+   {
+    /* ISO-8859-5 encoding (conversion to UTF-8) */
+    0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408,
+    0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, 0x0410, 0x0411,
+    0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A,
+    0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423,
+    0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C,
+    0x042D, 0x042E, 0x042F, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435,
+    0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
+    0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+    0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x2116,
+    0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459,
+    0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F}
 };
 
-static const ImlibEncodingMap* _imlib_encodings[5] = { &iso1, &iso2, &iso3, &iso4, 
&iso5 };
-int IsoEncoding = ENCOING_ISO_8859_1;
-char encoding_initialized = 0;
+static const ImlibEncodingMap *_imlib_encodings[5] =
+   { &iso1, &iso2, &iso3, &iso4, &iso5 };
+int                 IsoEncoding = ENCOING_ISO_8859_1;
+char                encoding_initialized = 0;
 
-static void          
+static void
 __init_iso_encoding()
 {
-  /* Set the current ISO encoding based on (in that order):
-   * the "IMLIB_ENCODING" environment variable,
-   * the "LANG" variable,
-   * the ISO-8859-1 default */
-   
-  char *s, *enc_num, *lang;
-  char iso2lang[21] = "cs hu pl ro hr sk sl";
-  char iso3lang[6] = "eo mt";
-  char iso4lang[12] = "et lv lt kl";
-  char iso5lang[18] = "bg be mk ru sr uk";
-
-  /* Check if we already initialized the encoding */
-  if (!encoding_initialized) 
-    {
-      IsoEncoding = 255;
-      /* First check if we have IMLIB_ENCODING variable set */
-      if ((s = getenv("IMLIB_ENCODING")) != NULL) 
-       {
-         if ((enc_num = strstr(s, "8859-")) != NULL) 
-           {
-             if (!strcmp((enc_num+5), "1")) IsoEncoding = 0;
-             else if (!strcmp((enc_num+5), "2")) IsoEncoding = 1;
-             else if (!strcmp((enc_num+5), "3")) IsoEncoding = 2;
-             else if (!strcmp((enc_num+5), "4")) IsoEncoding = 3;              
-             else if (!strcmp((enc_num+5), "5")) IsoEncoding = 4;              
-           }
-       }
-      if (IsoEncoding == 255)
-       {
-         /* Still not initialized - try to guess from LANG variable */
-         if ((lang = getenv("LANG")) != NULL)
-           {
-             if (strstr(iso2lang, lang) != NULL) IsoEncoding = 1;
-             else if (strstr(iso3lang, lang) != NULL) IsoEncoding = 2;
-             else if (strstr(iso4lang, lang) != NULL) IsoEncoding = 3;
-             else if (strstr(iso5lang, lang) != NULL) IsoEncoding = 4;
-           }
-       }
-      if (IsoEncoding == 255) { 
-       /* Still not initialized - default to ISO8859-1 */
-       IsoEncoding = 0;
-      }
-     encoding_initialized = 1;
-    }  
+   /* Set the current ISO encoding based on (in that order):
+    * the "IMLIB_ENCODING" environment variable,
+    * the "LANG" variable,
+    * the ISO-8859-1 default */
+
+   char               *s, *enc_num, *lang;
+   char                iso2lang[21] = "cs hu pl ro hr sk sl";
+   char                iso3lang[6] = "eo mt";
+   char                iso4lang[12] = "et lv lt kl";
+   char                iso5lang[18] = "bg be mk ru sr uk";
+
+   /* Check if we already initialized the encoding */
+   if (!encoding_initialized)
+     {
+       IsoEncoding = 255;
+       /* First check if we have IMLIB_ENCODING variable set */
+       if ((s = getenv("IMLIB_ENCODING")) != NULL)
+         {
+            if ((enc_num = strstr(s, "8859-")) != NULL)
+              {
+                 if (!strcmp((enc_num + 5), "1"))
+                    IsoEncoding = 0;
+                 else if (!strcmp((enc_num + 5), "2"))
+                    IsoEncoding = 1;
+                 else if (!strcmp((enc_num + 5), "3"))
+                    IsoEncoding = 2;
+                 else if (!strcmp((enc_num + 5), "4"))
+                    IsoEncoding = 3;
+                 else if (!strcmp((enc_num + 5), "5"))
+                    IsoEncoding = 4;
+              }
+         }
+       if (IsoEncoding == 255)
+         {
+            /* Still not initialized - try to guess from LANG variable */
+            if ((lang = getenv("LANG")) != NULL)
+              {
+                 if (strstr(iso2lang, lang) != NULL)
+                    IsoEncoding = 1;
+                 else if (strstr(iso3lang, lang) != NULL)
+                    IsoEncoding = 2;
+                 else if (strstr(iso4lang, lang) != NULL)
+                    IsoEncoding = 3;
+                 else if (strstr(iso5lang, lang) != NULL)
+                    IsoEncoding = 4;
+              }
+         }
+       if (IsoEncoding == 255)
+         {
+            /* Still not initialized - default to ISO8859-1 */
+            IsoEncoding = 0;
+         }
+       encoding_initialized = 1;
+     }
 }
 
 static TT_Raster_Map *
@@ -189,14 +221,19 @@
 {
    TT_Raster_Map      *rmap;
 
-   rmap = malloc(sizeof(TT_Raster_Map));
+   rmap = Emalloc(sizeof(TT_Raster_Map));
    rmap->width = (width + 3) & -4;
    rmap->rows = height;
    rmap->flow = TT_Flow_Down;
    rmap->cols = rmap->width;
    rmap->size = rmap->rows * rmap->width;
-   rmap->bitmap = malloc(rmap->size);
-   memset(rmap->bitmap, 0, rmap->size);
+   if (rmap->size > 0)
+     {
+       rmap->bitmap = Emalloc(rmap->size);
+       memset(rmap->bitmap, 0, rmap->size);
+     }
+   else
+      rmap->bitmap = NULL;
    return rmap;
 }
 
@@ -205,10 +242,15 @@
 {
    TT_Raster_Map      *new_rmap;
 
-   new_rmap = malloc(sizeof(TT_Raster_Map));
+   new_rmap = Emalloc(sizeof(TT_Raster_Map));
    *new_rmap = *rmap;
-   new_rmap->bitmap = malloc(new_rmap->size);
-   memcpy(new_rmap->bitmap, rmap->bitmap, new_rmap->size);
+   if (new_rmap->size > 0)
+     {
+       new_rmap->bitmap = Emalloc(new_rmap->size);
+       memcpy(new_rmap->bitmap, rmap->bitmap, new_rmap->size);
+     }
+   else
+      new_rmap->bitmap = NULL;
    return new_rmap;
 }
 
@@ -221,8 +263,11 @@
 static void
 destroy_font_raster(TT_Raster_Map * rmap)
 {
-   free(rmap->bitmap);
-   free(rmap);
+   if (!rmap)
+      return;
+   if (rmap->bitmap)
+      Efree(rmap->bitmap);
+   Efree(rmap);
 }
 
 static TT_Raster_Map *
@@ -244,7 +289,7 @@
 
    for (i = 0; text[i]; i++)
      {
-       unsigned char j = text[i];
+       unsigned char       j = text[i];
 
        if (!TT_VALID(f->glyphs[j]))
           continue;
@@ -278,7 +323,7 @@
    int                 i, ioff, iread;
    char               *off, *read, *_off, *_read;
    int                 x_offset, y_offset;
-   unsigned char      j;
+   unsigned char       j;
    TT_Raster_Map      *rtmp;
 
    TT_Get_Instance_Metrics(f->instance, &imetrics);
@@ -295,7 +340,7 @@
    rtmp = NULL;
    for (i = 0; text[i]; i++)
      {
-       j = text[i];
+       j = text[i];
        if (!TT_VALID(f->glyphs[j]))
           continue;
 
@@ -327,10 +372,8 @@
        /* This was the cause of strange misplacements when Bit.rows */
        /* was unsigned.                                             */
 
-       if (xmin >= (int)rmap->width ||
-           ymin >= (int)rmap->rows ||
-           xmax < 0 ||
-           ymax < 0)
+       if (xmin >= (int)rmap->width || ymin >= (int)rmap->rows ||
+           xmax < 0 || ymax < 0)
           continue;
 
        /* Note that the clipping check is performed _after_ rendering */
@@ -407,7 +450,8 @@
    cb = (col << 3) & 0xf8;
    for (y = 0; y < xim->height; y++)
      {
-       ptr = (unsigned char *)rmap->bitmap + offset_x + ((y + offset_y) * rmap->cols);
+       ptr = (unsigned char *)rmap->bitmap + offset_x +
+          ((y + offset_y) * rmap->cols);
        for (x = 0; x < xim->width; x++)
          {
             if ((a = alpha_lut[*ptr]) > 0)
@@ -425,7 +469,8 @@
                       ng = g + ((tmp + (tmp >> 8) + 0x80) >> 8);
                       tmp = (cb - b) * a;
                       nb = b + ((tmp + (tmp >> 8) + 0x80) >> 8);
-                      pixel = ((nr & 0xf8) << 8) | ((ng & 0xfc) << 3) | ((nb & 0xf8) 
>> 3);
+                      pixel = ((nr & 0xf8) << 8) | ((ng & 0xfc) << 3) |
+                         ((nb & 0xf8) >> 3);
                       XPutPixel(xim, x, y, pixel);
                    }
                  else
@@ -450,7 +495,8 @@
    cb = (col << 3) & 0xf8;
    for (y = 0; y < xim->height; y++)
      {
-       ptr = (unsigned char *)rmap->bitmap + offset_x + ((y + offset_y) * rmap->cols);
+       ptr = (unsigned char *)rmap->bitmap + offset_x +
+          ((y + offset_y) * rmap->cols);
        for (x = 0; x < xim->width; x++)
          {
             if ((a = alpha_lut[*ptr]) > 0)
@@ -468,7 +514,8 @@
                       ng = g + ((tmp + (tmp >> 8) + 0x80) >> 8);
                       tmp = (cb - b) * a;
                       nb = b + ((tmp + (tmp >> 8) + 0x80) >> 8);
-                      pixel = ((nr & 0xf8) << 7) | ((ng & 0xf8) << 2) | ((nb & 0xf8) 
>> 3);
+                      pixel = ((nr & 0xf8) << 7) | ((ng & 0xf8) << 2) |
+                         ((nb & 0xf8) >> 3);
                       XPutPixel(xim, x, y, pixel);
                    }
                  else
@@ -493,7 +540,8 @@
    cb = col & 0xff;
    for (y = 0; y < xim->height; y++)
      {
-       ptr = (unsigned char *)rmap->bitmap + offset_x + ((y + offset_y) * rmap->cols);
+       ptr = (unsigned char *)rmap->bitmap + offset_x +
+          ((y + offset_y) * rmap->cols);
        for (x = 0; x < xim->width; x++)
          {
             if ((a = alpha_lut[*ptr]) > 0)
@@ -570,7 +618,8 @@
 
    for (y = 0; y < xim->height; y++)
      {
-       ptr = (unsigned char *)rmap->bitmap + offset_x + ((y + offset_y) * rmap->cols);
+       ptr = (unsigned char *)rmap->bitmap + offset_x +
+          ((y + offset_y) * rmap->cols);
        for (x = 0; x < xim->width; x++)
          {
             if (alpha_lut[*ptr] > 2)
@@ -641,8 +690,7 @@
      {
        XGetWindowAttributes(disp, xatt.root, &ratt);
        XTranslateCoordinates(disp, win, xatt.root, 0, 0, &rx, &ry, &chld);
-       if ((xatt.map_state != IsViewable) &&
-           (xatt.backing_store == NotUseful))
+       if ((xatt.map_state != IsViewable) && (xatt.backing_store == NotUseful))
          {
             destroy_font_raster(rmap);
             destroy_font_raster(rtmp);
@@ -724,7 +772,8 @@
               {
                  shm = 0;
                  XDestroyImage(xim);
-                 xim = XGetImage(disp, win, x, y, width, height, 0xffffffff, ZPixmap);
+                 xim = XGetImage(disp, win, x, y, width, height,
+                                 0xffffffff, ZPixmap);
                  XSetErrorHandler((XErrorHandler) erh);
                  shm_checked = 1;
               }
@@ -736,7 +785,8 @@
                    {
                       shm = 0;
                       XDestroyImage(xim);
-                      xim = XGetImage(disp, win, x, y, width, height, 0xffffffff, 
ZPixmap);
+                      xim = XGetImage(disp, win, x, y, width, height,
+                                      0xffffffff, ZPixmap);
                       XSetErrorHandler((XErrorHandler) erh);
                       shm_checked = 1;
                    }
@@ -756,7 +806,8 @@
               {
                  shm = 0;
                  XDestroyImage(xim);
-                 xim = XGetImage(disp, win, x, y, width, height, 0xffffffff, ZPixmap);
+                 xim = XGetImage(disp, win, x, y, width, height,
+                                 0xffffffff, ZPixmap);
                  XSetErrorHandler((XErrorHandler) erh);
                  shm_checked = 1;
               }
@@ -774,7 +825,8 @@
               {
                  shm = 0;
                  XDestroyImage(xim);
-                 xim = XGetImage(disp, win, x, y, width, height, 0xffffffff, ZPixmap);
+                 xim = XGetImage(disp, win, x, y, width, height,
+                                 0xffffffff, ZPixmap);
                  shm_checked = 1;
               }
             XSetErrorHandler((XErrorHandler) erh);
@@ -814,8 +866,7 @@
       merge_text_1(xim, rmap, clipx, clipy, col);
 
    if (shm)
-      XShmPutImage(disp, win, gc, xim, 0, 0, x, y,
-                  width, height, False);
+      XShmPutImage(disp, win, gc, xim, 0, 0, x, y, width, height, False);
    else
       XPutImage(disp, win, gc, xim, 0, 0, x, y, width, height);
    destroy_font_raster(rmap);
@@ -847,9 +898,11 @@
        if (!TT_VALID(f->glyphs[i]))
           TT_Done_Glyph(f->glyphs[i]);
      }
-   free(f->glyphs);
-   free(f->glyphs_cached);
-   free(f);
+   if (f->glyphs)
+      Efree(f->glyphs);
+   if (f->glyphs_cached)
+      Efree(f->glyphs_cached);
+   Efree(f);
 }
 
 Efont              *
@@ -873,12 +926,12 @@
           return NULL;
        have_engine = 1;
      }
-   f = malloc(sizeof(Efont));
+   f = Emalloc(sizeof(Efont));
    f->engine = engine;
    error = TT_Open_Face(f->engine, file, &f->face);
    if (error)
      {
-       free(f);
+       Efree(f);
 /*      fprintf(stderr, "Unable to open font\n"); */
        return NULL;
      }
@@ -886,7 +939,7 @@
    if (error)
      {
        TT_Close_Face(f->face);
-       free(f);
+       Efree(f);
 /*      fprintf(stderr, "Unable to get face properties\n"); */
        return NULL;
      }
@@ -894,7 +947,7 @@
    if (error)
      {
        TT_Close_Face(f->face);
-       free(f);
+       Efree(f);
 /*      fprintf(stderr, "Unable to create instance\n"); */
        return NULL;
      }
@@ -909,8 +962,8 @@
        if ((platform == 3 && encoding == 1) ||
            (platform == 0 && encoding == 0))
          {
-           /* TT_Get_CharMap(f->face, i, &char_map); */
-           TT_Get_CharMap(f->face, i, &(f->char_map));
+            /* TT_Get_CharMap(f->face, i, &char_map); */
+            TT_Get_CharMap(f->face, i, &(f->char_map));
             break;
          }
      }
@@ -920,14 +973,14 @@
        num_glyphs = f->properties.num_Glyphs;
        TT_Done_Instance(f->instance);
        TT_Close_Face(f->face);
-       free(f);
+       Efree(f);
 /*      fprintf(stderr, "Sorry, but this font doesn't contain any Unicode mapping 
table\n"); */
        return NULL;
      }
    f->num_glyph = 256;
-   f->glyphs = (TT_Glyph *) malloc(256 * sizeof(TT_Glyph));
+   f->glyphs = (TT_Glyph *) Emalloc(256 * sizeof(TT_Glyph));
    memset(f->glyphs, 0, 256 * sizeof(TT_Glyph));
-   f->glyphs_cached = (TT_Raster_Map **) malloc(256 * sizeof(TT_Raster_Map *));
+   f->glyphs_cached = (TT_Raster_Map **) Emalloc(256 * sizeof(TT_Raster_Map *));
    memset(f->glyphs_cached, 0, 256 * sizeof(TT_Raster_Map *));
 
    load_flags = TTLOAD_SCALE_GLYPH | TTLOAD_HINT_GLYPH;
@@ -946,11 +999,13 @@
             if (index >= num_glyphs)
                index = 0;
          }
+       else if (i < 0xA0)
+          index = TT_Char_Index(f->char_map, i);
        else
-         if (i < 0xA0 )
-           index = TT_Char_Index(f->char_map, i);
-         else
-           index = TT_Char_Index(f->char_map, 
_imlib_encodings[IsoEncoding]->char_map[(i - 0xA0)]);
+          index =
+             TT_Char_Index(f->char_map,
+                           _imlib_encodings[IsoEncoding]->
+                           char_map[(i - 0xA0)]);
 
        TT_New_Glyph(f->face, &f->glyphs[i]);
        TT_Load_Glyph(f->instance, f->glyphs[i], index, load_flags);
@@ -989,7 +1044,7 @@
 
    for (i = 0; text[i]; i++)
      {
-       unsigned char j = text[i];
+       unsigned char       j = text[i];
 
        if (!TT_VALID(f->glyphs[j]))
           continue;
@@ -1002,7 +1057,8 @@
        if (text[i + 1] == 0)
          {
             if (rbearing_return)
-               *rbearing_return = ((gmetrics.bbox.xMax - gmetrics.advance) / 64);
+               *rbearing_return =
+                  ((gmetrics.bbox.xMax - gmetrics.advance) / 64);
          }
        pw += gmetrics.advance / 64;
      }
@@ -1018,42 +1074,43 @@
       *max_descent_return = f->max_descent;
 }
 
-/*
- * int
- * main( int argc, char **argv)
- * {
- * Display            *disp;
- * Efont              *f;
- * GC                  gc;
- * XGCValues           gcv;
- * Window              win;
- * int                 i;
- * 
- * disp=XOpenDisplay(NULL);
- * XSync(disp, False);
- * srand(time(NULL));
- * win = XCreateSimpleWindow(disp, DefaultRootWindow(disp), 0, 0, 640, 480, 0, 
- * 0, 0);
- * XMapWindow(disp, win);
- * XSync(disp, False);
- * 
- * gcv.subwindow_mode = IncludeInferiors;
- * gc = XCreateGC(disp, win, GCSubwindowMode, &gcv);
- * for (;;)
- * {
- * for (i = 3; i < argc; i++)
- * {
- * XSetForeground(disp, gc, rand()<<16 | rand());
- * f = Efont_load(argv[i], atoi(argv[1]));
- * if (f)
- * EFont_draw_string(disp, win, gc, 20, (atoi(argv[1])/10) * (i-2), argv[2], 
- * f,
- * DefaultVisual(disp, DefaultScreen(disp)),
- * DefaultColormap(disp, DefaultScreen(disp)));
- * Efont_free(f);
- * f = NULL;
- * }
- * }
- * return 0;
- * }
- */
+#if TEST_TTFONT
+Display            *disp;
+
+int
+main(int argc, char **argv)
+{
+   Efont              *f;
+   GC                  gc;
+   XGCValues           gcv;
+   Window              win;
+   int                 i, j;
+
+   disp = XOpenDisplay(NULL);
+   XSync(disp, False);
+   srand(time(NULL));
+   win = XCreateSimpleWindow(disp, DefaultRootWindow(disp), 0, 0, 640, 480, 0,
+                            0, 0);
+   XMapWindow(disp, win);
+   XSync(disp, False);
+
+   gcv.subwindow_mode = IncludeInferiors;
+   gc = XCreateGC(disp, win, GCSubwindowMode, &gcv);
+   for (;; j++)
+     {
+       for (i = 3; i < argc; i++)
+         {
+            XSetForeground(disp, gc, rand() << 16 | rand());
+            f = Efont_load(argv[i], atoi(argv[1]));
+            if (f)
+               EFont_draw_string(disp, win, gc, 20,
+                                 atoi(argv[1]) * (i - 2), argv[2], f,
+                                 DefaultVisual(disp, DefaultScreen(disp)),
+                                 DefaultColormap(disp, DefaultScreen(disp)));
+            Efont_free(f);
+            f = NULL;
+         }
+     }
+   return 0;
+}
+#endif




-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to