diff options
Diffstat (limited to 'nx-X11/lib/font/FreeType/fttools.c')
-rw-r--r-- | nx-X11/lib/font/FreeType/fttools.c | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/nx-X11/lib/font/FreeType/fttools.c b/nx-X11/lib/font/FreeType/fttools.c deleted file mode 100644 index 9251838a9..000000000 --- a/nx-X11/lib/font/FreeType/fttools.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - Copyright (c) 1997 by Mark Leisher - Copyright (c) 1998-2002 by Juliusz Chroboczek - - 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 or substantial portions of the Software. - - 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 OR COPYRIGHT HOLDERS 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. -*/ - -/* $XFree86: xc/lib/font/FreeType/fttools.c,v 1.6 2003/06/08 15:41:13 herrb Exp $ */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif -#include <X11/fonts/fontmisc.h> -#ifndef FONTMODULE -#include <ctype.h> -#include <string.h> -#else -#include "Xmd.h" -#include "Xdefs.h" -#include "xf86_ansic.h" -#endif - -#include <X11/fonts/font.h> -#include <ft2build.h> -#include FT_FREETYPE_H -#include FT_SFNT_NAMES_H -#include FT_TRUETYPE_IDS_H -#include "ft.h" - -/* backward compatibility hack */ -#if (FREETYPE_VERSION < 2001008) -# ifndef ft_isdigit -# define ft_isdigit isdigit -# endif -#endif - -#ifndef LSBFirst -#define LSBFirst 0 -#define MSBFirst 1 -#endif - -#define LOBYTE(s,byte) ((byte)==LSBFirst?*(char*)(s):*((char*)(s)+1)) -#define HIBYTE(s,byte) ((byte)==LSBFirst?*((char*)(s)+1):*(char*)(s)) - -int FTtoXReturnCode(int rc) -{ - if(rc == 0x40) - return AllocError; - /* Anything else stops the font matching mechanism */ - else return BadFontName; - -} - -/* Convert slen bytes from UCS-2 to ISO 8859-1. Byte specifies the - endianness of the string, max the maximum number of bytes written into - to. */ -static int -FTu2a(int slen, FT_Byte *from, char *to, int byte, int max) -{ - int i, n; - - n = 0; - for (i = 0; i < slen; i += 2) { - if(n >= max) - break; - if(HIBYTE(from+i, byte)!=0) - *to++='?'; - else - *to++ = LOBYTE(from+i,byte); - n++; - } - *to = 0; - return n; -} - -static int -FTGetName(FT_Face face, int nid, int pid, int eid, FT_SfntName *name_return) -{ - FT_SfntName name; - int n, i; - - n = FT_Get_Sfnt_Name_Count(face); - if(n <= 0) - return 0; - - for(i = 0; i < n; i++) { - if(FT_Get_Sfnt_Name(face, i, &name)) - continue; - if(name.name_id == nid && - name.platform_id == pid && - (eid < 0 || name.encoding_id == eid)) { - switch(name.platform_id) { - case TT_PLATFORM_APPLE_UNICODE: - case TT_PLATFORM_MACINTOSH: - if(name.language_id != TT_MAC_LANGID_ENGLISH) - continue; - break; - case TT_PLATFORM_MICROSOFT: - if(name.language_id != TT_MS_LANGID_ENGLISH_UNITED_STATES && - name.language_id != TT_MS_LANGID_ENGLISH_UNITED_KINGDOM) - break; - continue; - break; - default: - break; - } - *name_return = name; - return 1; - } - } - return 0; -} - -int -FTGetEnglishName(FT_Face face, int nid, char *name_return, int name_len) -{ - FT_SfntName name; - int len; - - if(FTGetName(face, nid, - TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS, &name) || - FTGetName(face, nid, - TT_PLATFORM_APPLE_UNICODE, -1, &name)) - return FTu2a(name.string_len, name.string, name_return, - MSBFirst, name_len); - - /* Pretend that Apple Roman is ISO 8859-1. */ - if(FTGetName(face, nid, TT_PLATFORM_MACINTOSH, TT_MAC_ID_ROMAN, &name)) { - len = name.string_len; - if(len > name_len) - len = name_len; - memcpy(name_return, name.string, len); - return len; - } - - /* Must be some font that can only be named in Polish or something. */ - return -1; -} - -int -FTcheckForTTCName(char *fileName, char **realFileName, int *faceNumber) -{ - int length; - int fn; - int i, j; - char *start, *realName; - - length = strlen(fileName); - if(length < 4) - return 0; - - if(strcasecmp(fileName + (length-4), ".ttc") != 0 && - strcasecmp(fileName + (length-4), ".otc") != 0) - return 0; - - realName = xalloc(length + 1); - if(realName == NULL) - return 0; - - strcpy(realName, fileName); - *realFileName=realName; - start = strchr(realName, ':'); - if(start) { - fn=0; - i=1; - while(ft_isdigit(start[i])) { - fn *= 10; - fn += start[i]-'0'; - i++; - } - if(start[i]==':') { - *faceNumber = fn; - i++; - j = 0; - while(start[i]) { - start[j++] = start[i++]; - } - start[j] = '\0'; - return 1; - } - } - - *faceNumber = 0; - return 1; -} |