summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2013-03-21 09:16:59 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2013-03-21 09:16:59 +0000
commit388463b9fa865c3b2311508c41647b0f3c532031 (patch)
tree1cdfbf5552d0783ecbcc52017e49567e5042af33 /Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge
parentabd0b00a4e8c1ac6f5b20c7474d70ef579129991 (diff)
Import MetaPost 1.800 and LuaTeX beta-0.75.0 from LuaTeX repository r4604
git-svn-id: svn://tug.org/texlive/trunk@29453 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge')
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c202
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/libffstamp.h3
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/libstamp.pre103
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/lookups.c132
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macenc.c48
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/namelist.c4
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c148
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c21
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c23
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/pfaedit.h19
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.c4
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.h2
12 files changed, 122 insertions, 587 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c
index b4be6b5b5fe..acaf51264b9 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c
@@ -504,67 +504,6 @@ int MaxCID(struct cidmap *map) {
return( map->cidmax );
}
-static char *SearchDirForCidMap(char *dir,char *registry,char *ordering,
- int supplement,char **maybefile) {
- char maybe[FILENAME_MAX+1];
- struct dirent *ent;
- DIR *d;
- int len, rlen = strlen(registry), olen=strlen(ordering);
- char *pt, *end, *ret;
- int test, best = -1;
-
- if ( dir==NULL )
-return( NULL );
-
- if ( *maybefile!=NULL ) {
- char *pt = strrchr(*maybefile,'.');
- while ( pt>*maybefile && isdigit(pt[-1]))
- --pt;
- best = strtol(pt,NULL,10);
- }
-
- d = opendir(dir);
- if ( d==NULL )
-return( NULL );
- while ( (ent = readdir(d))!=NULL ) {
- if ( (len = strlen(ent->d_name))<8 )
- continue;
- if ( strcmp(ent->d_name+len-7,".cidmap")!=0 )
- continue;
- if ( strncmp(ent->d_name,registry,rlen)!=0 || ent->d_name[rlen]!='-' )
- continue;
- pt = ent->d_name+rlen+1;
- if ( strncmp(pt,ordering,olen)!=0 || pt[olen]!='-' )
- continue;
- pt += olen+1;
- if ( !isdigit(*pt))
- continue;
- test = strtol(pt,&end,10);
- if ( *end!='.' )
- continue;
- if ( test>=supplement ) {
- ret = galloc(strlen(dir)+1+len+1);
- strcpy(ret,dir);
- strcat(ret,"/");
- strcat(ret,ent->d_name);
- closedir(d);
-return( ret );
- } else if ( test>best ) {
- best = test;
- strcpy(maybe,ent->d_name);
- }
- }
- closedir(d);
- if ( best>-1 ) {
- ret = galloc(strlen(dir)+1+strlen(maybe)+1);
- strcpy(ret,dir);
- strcat(ret,"/");
- strcat(ret,maybe);
- *maybefile = ret;
- }
-return( NULL );
-}
-
static struct cidmap *MakeDummyMap(char *registry,char *ordering,int supplement) {
struct cidmap *ret = galloc(sizeof(struct cidmap));
@@ -578,148 +517,7 @@ static struct cidmap *MakeDummyMap(char *registry,char *ordering,int supplement)
return( ret );
}
-struct cidmap *LoadMapFromFile(char *file,char *registry,char *ordering,
- int supplement) {
- struct cidmap *ret = galloc(sizeof(struct cidmap));
- char *pt = strrchr(file,'.');
- FILE *f;
- int cid1, cid2, uni, cnt, i;
- char name[100];
-
- while ( pt>file && isdigit(pt[-1]))
- --pt;
- ret->supplement = ret->maxsupple = strtol(pt,NULL,10);
- if ( supplement>ret->maxsupple )
- ret->maxsupple = supplement;
- ret->registry = copy(registry);
- ret->ordering = copy(ordering);
- ret->next = cidmaps;
- cidmaps = ret;
-
- f = fopen( file,"r" );
- if ( f==NULL ) {
- ff_post_error(_("Missing cidmap file"),_("Couldn't open cidmap file: %s"), file );
- ret->cidmax = ret->namemax = 0;
- ret->unicode = NULL; ret->name = NULL;
- } else if ( fscanf( f, "%d %d", &ret->cidmax, &ret->namemax )!=2 ) {
- ff_post_error(_("Bad cidmap file"),_("%s is not a cidmap file, please download\nhttp://fontforge.sourceforge.net/cidmaps.tgz"), file );
- fprintf( stderr, _("%s is not a cidmap file, please download\nhttp://fontforge.sourceforge.net/cidmaps.tgz"), file );
- ret->cidmax = ret->namemax = 0;
- ret->unicode = NULL; ret->name = NULL;
- } else {
- ret->unicode = gcalloc(ret->namemax+1,sizeof(uint32));
- ret->name = gcalloc(ret->namemax+1,sizeof(char *));
- while ( 1 ) {
- cnt=fscanf( f, "%d..%d %x", &cid1, &cid2, (unsigned *) &uni );
- if ( cnt<=0 )
- break;
- if ( cid1>ret->namemax )
- continue;
- if ( cnt==3 ) {
- if ( cid2>ret->namemax ) cid2 = ret->namemax;
- for ( i=cid1; i<=cid2; ++i )
- ret->unicode[i] = uni++;
- } else if ( cnt==1 ) {
- if ( fscanf(f,"%x", (unsigned *) &uni )==1 )
- ret->unicode[cid1] = uni;
- else if ( fscanf(f," /%s", name )==1 )
- ret->name[cid1] = copy(name);
- }
- }
- fclose(f);
- }
- free(file);
-return( ret );
-}
-
struct cidmap *FindCidMap(char *registry,char *ordering,int supplement,SplineFont *sf) {
- struct cidmap *map, *maybe=NULL;
- char *file, *maybefile=NULL;
- int maybe_sup = -1;
- char *buts[3], *buts2[3];
- char buf[100];
- int ret;
-
- if ( sf!=NULL && sf->cidmaster ) sf = sf->cidmaster;
- if ( sf!=NULL && sf->loading_cid_map )
-return( NULL );
-
- for ( map = cidmaps; map!=NULL; map = map->next ) {
- if ( strcmp(map->registry,registry)==0 && strcmp(map->ordering,ordering)==0 ) {
- if ( supplement<=map->supplement )
-return( map );
- else if ( maybe==NULL || maybe->supplement<map->supplement )
- maybe = map;
- }
- }
- if ( maybe!=NULL && supplement<=maybe->maxsupple )
-return( maybe ); /* User has said it's ok to use maybe at this supplement level */
-
- file = SearchDirForCidMap(".",registry,ordering,supplement,&maybefile);
- if ( file==NULL )
- file = SearchDirForCidMap(getFontForgeShareDir(),registry,ordering,supplement,&maybefile);
-
- if ( file==NULL && (maybe!=NULL || maybefile!=NULL)) {
- if ( maybefile!=NULL ) {
- char *pt = strrchr(maybefile,'.');
- while ( pt>maybefile && isdigit(pt[-1]))
- --pt;
- maybe_sup = strtol(pt,NULL,10);
- if ( maybe!=NULL && maybe->supplement >= maybe_sup ) {
- free(maybefile); maybefile = NULL;
- maybe_sup = maybe->supplement;
- } else
- maybe = NULL;
- }
- if ( maybe!=NULL )
- maybe_sup = maybe->supplement;
- if ( sf!=NULL ) sf->loading_cid_map = true;
- buts[0] = _("_Use It"); buts[1] = _("_Search"); buts[2] = NULL;
- ret = ff_ask(_("Use CID Map"),(const char **) buts,0,1,_("This font is based on the charset %1$.20s-%2$.20s-%3$d, but the best I've been able to find is %1$.20s-%2$.20s-%4$d.\nShall I use that or let you search?"),
- registry,ordering,supplement,maybe_sup);
- if ( sf!=NULL ) sf->loading_cid_map = false;
- if ( ret==0 ) {
- if ( maybe!=NULL ) {
- maybe->maxsupple = supplement;
-return( maybe );
- } else {
- file = maybefile;
- maybefile = NULL;
- }
- }
- }
-
- if ( file==NULL ) {
- char *uret;
-#if defined( _NO_SNPRINTF ) || defined( __VMS )
- sprintf(buf,"%s-%s-*.cidmap", registry, ordering );
-#else
- snprintf(buf,sizeof(buf),"%s-%s-*.cidmap", registry, ordering );
-#endif
- if ( maybe==NULL && maybefile==NULL ) {
- buf[0] = '\0';
- }
- uret = NULL;
- if ( uret==NULL ) {
- buts2[0] = "_Use It"; buts2[1] = "_Search"; buts2[2] = NULL;
- if ( maybe==NULL && maybefile==NULL )
- /* No luck */;
- else if ( maybe!=NULL ) {
- maybe->maxsupple = supplement;
-return( maybe );
- } else {
- file = maybefile;
- maybefile = NULL;
- }
- } else {
- file = uret; /* no utf82def() call for luatex */
- }
- }
-
- free(maybefile);
- if ( file!=NULL )
-return( LoadMapFromFile(file,registry,ordering,supplement));
-
return( MakeDummyMap(registry,ordering,supplement));
}
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/libffstamp.h b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/libffstamp.h
deleted file mode 100644
index b6b19bde1f0..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/libffstamp.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#define LibFF_ModTime 1226720169L /* Seconds since 1970 (standard unix time) */
-#define LibFF_ModTime_Str "03:36 GMT 15-Nov-2008"
-#define LibFF_VersionDate 20081115 /* Year, month, day */
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/libstamp.pre b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/libstamp.pre
deleted file mode 100644
index 4670c8b403d..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/libstamp.pre
+++ /dev/null
@@ -1,103 +0,0 @@
-#include "pfaedit.h"
-#include "baseviews.h"
-#include "libffstamp.h"
-#include "uiinterface.h"
-
-struct library_version_configuration library_version_configuration = {
- REPLACE_ME_WITH_MAJOR_VERSION,
- REPLACE_ME_WITH_MINOR_VERSION,
- LibFF_ModTime,
- LibFF_ModTime_Str,
- LibFF_VersionDate,
- sizeof(struct library_version_configuration),
- sizeof(struct splinefont),
- sizeof(struct splinechar),
- sizeof(struct fontviewbase),
- sizeof(struct charviewbase),
- sizeof(struct cvcontainer),
-
-#ifdef FONTFORGE_CONFIG_DEVICETABLES
- 1,
-#else
- 0,
-#endif
-
-#ifdef FONTFORGE_CONFIG_TYPE3
- 1,
-#else
- 0,
-#endif
-
-#ifdef _NO_PYTHON
- 0,
-#else
- 1,
-#endif
- 0xff /* Not currently defined */
-};
-
-/* Returns 0 on success, -1 for a fatal error, 1 for a dangerous condition */
-int check_library_version(Library_Version_Configuration *exe_lib_version, int fatal, int quiet) {
- if ( exe_lib_version->major > library_version_configuration.major ||
- ( exe_lib_version->major == library_version_configuration.major &&
- exe_lib_version->minor > library_version_configuration.minor ) ||
- exe_lib_version->sizeof_me != library_version_configuration.sizeof_me ||
- exe_lib_version->sizeof_splinefont != library_version_configuration.sizeof_splinefont ||
- exe_lib_version->sizeof_splinechar != library_version_configuration.sizeof_splinechar ||
- exe_lib_version->sizeof_fvbase != library_version_configuration.sizeof_fvbase ||
- exe_lib_version->sizeof_cvbase != library_version_configuration.sizeof_cvbase ||
- exe_lib_version->sizeof_cvcontainer != library_version_configuration.sizeof_cvcontainer ||
- exe_lib_version->config_had_devicetables != library_version_configuration.config_had_devicetables ||
- exe_lib_version->config_had_multilayer != library_version_configuration.config_had_multilayer ||
- exe_lib_version->config_had_python != library_version_configuration.config_had_python ||
- exe_lib_version->mba1 != 0xff ) {
- if ( !quiet ) {
- IError("This executable will not work with this version of libfontforge\nSee the console log for more details." );
- if ( exe_lib_version->major > library_version_configuration.major ||
- ( exe_lib_version->major == library_version_configuration.major &&
- exe_lib_version->minor > library_version_configuration.minor ))
- fprintf( stderr, "Library version number is too small for executable.\n" );
- if ( exe_lib_version->sizeof_me != library_version_configuration.sizeof_me )
- fprintf( stderr, "Configuration info in the executable has a different size than that\n expected by the library and is not to be trusted.\n" );
- if ( exe_lib_version->sizeof_splinefont != library_version_configuration.sizeof_splinefont )
- fprintf( stderr, "The internal data structure, SplineFont, has a different expected size\n in library and executable. So they will not work together.\n" );
- if ( exe_lib_version->sizeof_splinechar != library_version_configuration.sizeof_splinechar )
- fprintf( stderr, "The internal data structure, SplineChar, has a different expected size\n in library and executable. So they will not work together.\n" );
- if ( exe_lib_version->sizeof_fvbase != library_version_configuration.sizeof_fvbase )
- fprintf( stderr, "The internal data structure, FontViewBase, has a different expected size\n in library and executable. So they will not work together.\n" );
- if ( exe_lib_version->sizeof_cvbase != library_version_configuration.sizeof_cvbase )
- fprintf( stderr, "The internal data structure, CharViewBase, has a different expected size\n in library and executable. So they will not work together.\n" );
- if ( exe_lib_version->sizeof_cvcontainer != library_version_configuration.sizeof_cvcontainer )
- fprintf( stderr, "The internal data structure, CVContainer, has a different expected size\n in library and executable. So they will not work together.\n" );
- if ( exe_lib_version->config_had_devicetables != library_version_configuration.config_had_devicetables ) {
- if ( !exe_lib_version->config_had_devicetables )
- fprintf( stderr, "The library is configured to support device tables, but the executable is\n not. This may explain why data structures are of different sizes.\n" );
- else
- fprintf( stderr, "The executable is configured to support device tables, but the library is\n not. This may explain why data structures are of different sizes.\n" );
- }
- if ( exe_lib_version->config_had_multilayer != library_version_configuration.config_had_multilayer ) {
- if ( !exe_lib_version->config_had_multilayer )
- fprintf( stderr, "The library is configured to support type3 font editing, but the executable is\n not. This may explain why data structures are of different sizes.\n" );
- else
- fprintf( stderr, "The executable is configured to support type3 font editing, but the library is\n not. This may explain why data structures are of different sizes.\n" );
- }
- if ( exe_lib_version->config_had_python != library_version_configuration.config_had_python ) {
- if ( !exe_lib_version->config_had_python )
- fprintf( stderr, "The library is configured to support python scripts, but the executable is\n not. This may explain why data structures are of different sizes.\n" );
- else
- fprintf( stderr, "The executable is configured to support python scripts, but the library is\n not. This may explain why data structures are of different sizes.\n" );
- }
- if ( exe_lib_version->mba1 != 0xff )
- fprintf( stderr, "The executable specifies a configuration value the library does not expect.\n" );
- }
- if ( fatal )
-exit( 1 );
- else
-return( -1 );
- } else if ( exe_lib_version->library_source_modtime > library_version_configuration.library_source_modtime ) {
- if ( !quiet )
- ff_post_notice(_("Library may be too old"),_("The library is older than the executable expects.\n This might be ok.\nOr it may crash on you.\nYou have been warned." ));
-return( 1 );
- } else
-return( 0 );
-}
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/lookups.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/lookups.c
index 9fbb67d5fd5..6a565526a7b 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/lookups.c
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/lookups.c
@@ -1194,35 +1194,33 @@ static struct {
char *text;
uint32 tag;
} localscripts[] = {
-/* GT: See the long comment at "Property|New" */
-/* GT: The msgstr should contain a translation of "Arabic", ignore "Script|" */
- { N_("Script|Arabic"), CHR('a','r','a','b') },
- { N_("Script|Aramaic"), CHR('a','r','a','m') },
- { N_("Script|Armenian"), CHR('a','r','m','n') },
- { N_("Script|Avestan"), CHR('a','v','e','s') },
- { N_("Script|Balinese"), CHR('b','a','l','i') },
- { N_("Script|Batak"), CHR('b','a','t','k') },
- { N_("Script|Bengali"), CHR('b','e','n','g') },
- { N_("Script|Bengali2"), CHR('b','n','g','2') },
+ { N_("Arabic"), CHR('a','r','a','b') },
+ { N_("Aramaic"), CHR('a','r','a','m') },
+ { N_("Armenian"), CHR('a','r','m','n') },
+ { N_("Avestan"), CHR('a','v','e','s') },
+ { N_("Balinese"), CHR('b','a','l','i') },
+ { N_("Batak"), CHR('b','a','t','k') },
+ { N_("Bengali"), CHR('b','e','n','g') },
+ { N_("Bengali2"), CHR('b','n','g','2') },
{ N_("Bliss Symbolics"), CHR('b','l','i','s') },
{ N_("Bopomofo"), CHR('b','o','p','o') },
- { NU_("Brāhmī"), CHR('b','r','a','h') },
+ { N_("Brāhmī"), CHR('b','r','a','h') },
{ N_("Braille"), CHR('b','r','a','i') },
- { N_("Script|Buginese"), CHR('b','u','g','i') },
- { N_("Script|Buhid"), CHR('b','u','h','d') },
+ { N_("Buginese"), CHR('b','u','g','i') },
+ { N_("Buhid"), CHR('b','u','h','d') },
{ N_("Byzantine Music"), CHR('b','y','z','m') },
{ N_("Canadian Syllabics"), CHR('c','a','n','s') },
{ N_("Carian"), CHR('c','a','r','i') },
{ N_("Cherokee"), CHR('c','h','a','m') },
- { N_("Script|Cham"), CHR('c','h','a','m') },
- { N_("Script|Cherokee"), CHR('c','h','e','r') },
+ { N_("Cham"), CHR('c','h','a','m') },
+ { N_("Cherokee"), CHR('c','h','e','r') },
{ N_("Cirth"), CHR('c','i','r','t') },
{ N_("CJK Ideographic"), CHR('h','a','n','i') },
- { N_("Script|Coptic"), CHR('c','o','p','t') },
+ { N_("Coptic"), CHR('c','o','p','t') },
{ N_("Cypro-Minoan"), CHR('c','p','r','t') },
{ N_("Cypriot syllabary"), CHR('c','p','m','n') },
{ N_("Cyrillic"), CHR('c','y','r','l') },
- { N_("Script|Default"), CHR('D','F','L','T') },
+ { N_("Default"), CHR('D','F','L','T') },
{ N_("Deseret (Mormon)"), CHR('d','s','r','t') },
{ N_("Devanagari"), CHR('d','e','v','a') },
{ N_("Devanagari2"), CHR('d','e','v','2') },
@@ -1233,58 +1231,58 @@ static struct {
/* GT: dealing with these scripts against the day someone wants to use them. So */
/* GT: FontForge must be prepared to deal with those placeholders if nothing else. */
/* { N_("Egyptian hieroglyphs"), CHR('e','g','y','p') }, */
- { N_("Script|Ethiopic"), CHR('e','t','h','i') },
- { N_("Script|Georgian"), CHR('g','e','o','r') },
+ { N_("Ethiopic"), CHR('e','t','h','i') },
+ { N_("Georgian"), CHR('g','e','o','r') },
{ N_("Glagolitic"), CHR('g','l','a','g') },
{ N_("Gothic"), CHR('g','o','t','h') },
- { N_("Script|Greek"), CHR('g','r','e','k') },
- { N_("Script|Gujarati"), CHR('g','u','j','r') },
- { N_("Script|Gujarati2"), CHR('g','j','r','2') },
+ { N_("Greek"), CHR('g','r','e','k') },
+ { N_("Gujarati"), CHR('g','u','j','r') },
+ { N_("Gujarati2"), CHR('g','j','r','2') },
{ N_("Gurmukhi"), CHR('g','u','r','u') },
{ N_("Gurmukhi2"), CHR('g','u','r','2') },
{ N_("Hangul Jamo"), CHR('j','a','m','o') },
{ N_("Hangul"), CHR('h','a','n','g') },
- { NU_("Script|Hanunóo"), CHR('h','a','n','o') },
- { N_("Script|Hebrew"), CHR('h','e','b','r') },
+ { N_("Hanunóo"), CHR('h','a','n','o') },
+ { N_("Hebrew"), CHR('h','e','b','r') },
/* { N_("Pahawh Hmong"), CHR('h','m','n','g') },*/
/* { N_("Indus (Harappan)"), CHR('i','n','d','s') },*/
- { N_("Script|Javanese"), CHR('j','a','v','a') },
+ { N_("Javanese"), CHR('j','a','v','a') },
{ N_("Kayah Li"), CHR('k','a','l','i') },
{ N_("Hiragana & Katakana"), CHR('k','a','n','a') },
- { NU_("Kharoṣṭhī"), CHR('k','h','a','r') },
- { N_("Script|Kannada"), CHR('k','n','d','a') },
- { N_("Script|Kannada2"), CHR('k','n','d','2') },
- { N_("Script|Khmer"), CHR('k','h','m','r') },
- { N_("Script|Kharosthi"), CHR('k','h','a','r') },
- { N_("Script|Lao") , CHR('l','a','o',' ') },
- { N_("Script|Latin"), CHR('l','a','t','n') },
- { NU_("Lepcha (Róng)"), CHR('l','e','p','c') },
- { N_("Script|Limbu"), CHR('l','i','m','b') }, /* Not in ISO 15924 !!!!!, just guessing */
+ { N_("Kharoṣṭhī"), CHR('k','h','a','r') },
+ { N_("Kannada"), CHR('k','n','d','a') },
+ { N_("Kannada2"), CHR('k','n','d','2') },
+ { N_("Khmer"), CHR('k','h','m','r') },
+ { N_("Kharosthi"), CHR('k','h','a','r') },
+ { N_("Lao") , CHR('l','a','o',' ') },
+ { N_("Latin"), CHR('l','a','t','n') },
+ { N_("Lepcha (Róng)"), CHR('l','e','p','c') },
+ { N_("Limbu"), CHR('l','i','m','b') }, /* Not in ISO 15924 !!!!!, just guessing */
{ N_("Linear A"), CHR('l','i','n','a') },
{ N_("Linear B"), CHR('l','i','n','b') },
{ N_("Lycian"), CHR('l','y','c','i') },
{ N_("Lydian"), CHR('l','y','d','i') },
- { N_("Script|Mandaean"), CHR('m','a','n','d') },
+ { N_("Mandaean"), CHR('m','a','n','d') },
/* { N_("Mayan hieroglyphs"), CHR('m','a','y','a') },*/
- { NU_("Script|Malayālam"), CHR('m','l','y','m') },
- { NU_("Script|Malayālam2"), CHR('m','l','y','2') },
- { NU_("Mathematical Alphanumeric Symbols"), CHR('m','a','t','h') },
- { N_("Script|Mongolian"), CHR('m','o','n','g') },
+ { N_("Malayālam"), CHR('m','l','y','m') },
+ { N_("Malayālam2"), CHR('m','l','y','2') },
+ { N_("Mathematical Alphanumeric Symbols"), CHR('m','a','t','h') },
+ { N_("Mongolian"), CHR('m','o','n','g') },
{ N_("Musical"), CHR('m','u','s','i') },
- { N_("Script|Myanmar"), CHR('m','y','m','r') },
+ { N_("Myanmar"), CHR('m','y','m','r') },
{ N_("New Tai Lue"), CHR('t','a','l','u') },
{ N_("N'Ko"), CHR('n','k','o',' ') },
{ N_("Ogham"), CHR('o','g','a','m') },
{ N_("Ol Chiki"), CHR('o','l','c','k') },
{ N_("Old Italic (Etruscan, Oscan, etc.)"), CHR('i','t','a','l') },
- { N_("Script|Old Permic"), CHR('p','e','r','m') },
+ { N_("Old Permic"), CHR('p','e','r','m') },
{ N_("Old Persian cuneiform"), CHR('x','p','e','o') },
- { N_("Script|Oriya"), CHR('o','r','y','a') },
- { N_("Script|Oriya2"), CHR('o','r','y','2') },
+ { N_("Oriya"), CHR('o','r','y','a') },
+ { N_("Oriya2"), CHR('o','r','y','2') },
{ N_("Osmanya"), CHR('o','s','m','a') },
- { N_("Script|Pahlavi"), CHR('p','a','l','v') },
- { N_("Script|Phags-pa"), CHR('p','h','a','g') },
- { N_("Script|Phoenician"), CHR('p','h','n','x') },
+ { N_("Pahlavi"), CHR('p','a','l','v') },
+ { N_("Phags-pa"), CHR('p','h','a','g') },
+ { N_("Phoenician"), CHR('p','h','n','x') },
{ N_("Phaistos"), CHR('p','h','s','t') },
{ N_("Pollard Phonetic"), CHR('p','l','r','d') },
{ N_("Rejang"), CHR('r','j','n','g') },
@@ -1292,29 +1290,29 @@ static struct {
{ N_("Runic"), CHR('r','u','n','r') },
{ N_("Saurashtra"), CHR('s','a','u','r') },
{ N_("Shavian"), CHR('s','h','a','w') },
- { N_("Script|Sinhala"), CHR('s','i','n','h') },
- { N_("Script|Sumero-Akkadian Cuneiform"), CHR('x','s','u','x') },
- { N_("Script|Sundanese"), CHR('s','u','n','d') },
- { N_("Script|Syloti Nagri"), CHR('s','y','l','o') },
- { N_("Script|Syriac"), CHR('s','y','r','c') },
- { N_("Script|Tagalog"), CHR('t','g','l','g') },
- { N_("Script|Tagbanwa"), CHR('t','a','g','b') },
+ { N_("Sinhala"), CHR('s','i','n','h') },
+ { N_("Sumero-Akkadian Cuneiform"), CHR('x','s','u','x') },
+ { N_("Sundanese"), CHR('s','u','n','d') },
+ { N_("Syloti Nagri"), CHR('s','y','l','o') },
+ { N_("Syriac"), CHR('s','y','r','c') },
+ { N_("Tagalog"), CHR('t','g','l','g') },
+ { N_("Tagbanwa"), CHR('t','a','g','b') },
{ N_("Tai Le"), CHR('t','a','l','e') }, /* Not in ISO 15924 !!!!!, just guessing */
{ N_("Tai Lu"), CHR('t','a','l','a') }, /* Not in ISO 15924 !!!!!, just guessing */
- { N_("Script|Tamil"), CHR('t','a','m','l') },
- { N_("Script|Tamil2"), CHR('t','m','l','2') },
- { N_("Script|Telugu"), CHR('t','e','l','u') },
- { N_("Script|Telugu2"), CHR('t','e','l','2') },
+ { N_("Tamil"), CHR('t','a','m','l') },
+ { N_("Tamil2"), CHR('t','m','l','2') },
+ { N_("Telugu"), CHR('t','e','l','u') },
+ { N_("Telugu2"), CHR('t','e','l','2') },
{ N_("Tengwar"), CHR('t','e','n','g') },
{ N_("Thaana"), CHR('t','h','a','a') },
- { N_("Script|Thai"), CHR('t','h','a','i') },
- { N_("Script|Tibetan"), CHR('t','i','b','t') },
+ { N_("Thai"), CHR('t','h','a','i') },
+ { N_("Tibetan"), CHR('t','i','b','t') },
{ N_("Tifinagh (Berber)"), CHR('t','f','n','g') },
- { N_("Script|Ugaritic"), CHR('u','g','r','t') }, /* Not in ISO 15924 !!!!!, just guessing */
- { N_("Script|Vai"), CHR('v','a','i',' ') },
+ { N_("Ugaritic"), CHR('u','g','r','t') }, /* Not in ISO 15924 !!!!!, just guessing */
+ { N_("Vai"), CHR('v','a','i',' ') },
/* { N_("Visible Speech"), CHR('v','i','s','p') },*/
{ N_("Cuneiform, Ugaritic"), CHR('x','u','g','a') },
- { N_("Script|Yi") , CHR('y','i',' ',' ') },
+ { N_("Yi") , CHR('y','i',' ',' ') },
/* { N_("Private Use Script 1"), CHR('q','a','a','a') },*/
/* { N_("Private Use Script 2"), CHR('q','a','a','b') },*/
/* { N_("Undetermined Script"), CHR('z','y','y','y') },*/
@@ -1332,12 +1330,12 @@ return;
for ( j=0; j<2; ++j ) {
for ( i=0; i<10; ++i )
if ( lookup_type_names[j][i]!=NULL )
- lookup_type_names[j][i] = S_((char *) lookup_type_names[j][i]);
+ lookup_type_names[j][i] = _((char *) lookup_type_names[j][i]);
}
for ( i=0; localscripts[i].text!=NULL; ++i )
- localscripts[i].text = S_(localscripts[i].text);
+ localscripts[i].text = _(localscripts[i].text);
for ( i=0; friendlies[i].friendlyname!=NULL; ++i )
- friendlies[i].friendlyname = S_(friendlies[i].friendlyname);
+ friendlies[i].friendlyname = _(friendlies[i].friendlyname);
}
char *TagFullName(SplineFont *sf,uint32 tag, int ismac, int onlyifknown) {
@@ -1424,7 +1422,7 @@ void NameOTLookup(OTLookup *otl,SplineFont *sf) {
#ifdef LUA_FF_LIB
lookuptype = "un";
#else
- lookuptype = S_("LookupType|Unknown");
+ lookuptype = _("Unknown");
#endif
for ( fl=otl->features; fl!=NULL && !fl->ismac; fl=fl->next );
if ( fl==NULL )
@@ -1488,7 +1486,7 @@ void NameOTLookup(OTLookup *otl,SplineFont *sf) {
script = copy(buf);
#else
if ( localscripts[j].text!=NULL )
- script = copy( S_((char *) localscripts[j].text) );
+ script = copy( _((char *) localscripts[j].text) );
else {
buf[0] = '\'';
buf[1] = fl->scripts->script>>24;
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macenc.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macenc.c
index a44fc3ab5a6..4bab70632cb 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macenc.c
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macenc.c
@@ -2118,11 +2118,11 @@ static struct { char *name; int code; } localmaclang[] = {
{N_("Danish"), 7},
{N_("Portuguese"), 8},
{N_("Norwegian"), 9},
- {N_("Lang|Hebrew"), 10},
+ {N_("Hebrew"), 10},
{N_("Japanese"), 11},
- {N_("Lang|Arabic"), 12},
+ {N_("Arabic"), 12},
{N_("Finnish"), 13},
- {N_("Lang|Greek"), 14},
+ {N_("Greek"), 14},
{N_("Icelandic"), 15},
{N_("Maltese"), 16},
{N_("Turkish"), 17},
@@ -2130,7 +2130,7 @@ static struct { char *name; int code; } localmaclang[] = {
{N_("Traditional Chinese"), 19},
{N_("Urdu"), 20},
{N_("Hindi"), 21},
- {N_("Lang|Thai"), 22},
+ {N_("Thai"), 22},
{N_("Korean"), 23},
{N_("Lithuanian"), 24},
{N_("Polish"), 25},
@@ -2140,8 +2140,8 @@ static struct { char *name; int code; } localmaclang[] = {
{N_("Sami (Lappish)"), 29},
{N_("Faroese (Icelandic)"), 30},
/* GT: See the long comment at "Property|New" */
-/* GT: The msgstr should contain a translation of "Farsi/Persian"), ignore "Lang|" */
- {N_("Lang|Farsi/Persian"), 31},
+/* GT: The msgstr should contain a translation of "Farsi/Persian"), ignore "" */
+ {N_("Farsi/Persian"), 31},
{N_("Russian"), 32},
{N_("Simplified Chinese"), 33},
{N_("Flemish"), 34},
@@ -2161,8 +2161,8 @@ static struct { char *name; int code; } localmaclang[] = {
{N_("Kazakh"), 48},
{N_("Axerbaijani (Cyrillic)"), 49},
{N_("Axerbaijani (Arabic)"), 50},
- {N_("Lang|Armenian"), 51},
- {N_("Lang|Georgian"), 52},
+ {N_("Armenian"), 51},
+ {N_("Georgian"), 52},
{N_("Moldavian"), 53},
{N_("Kirghiz"), 54},
{N_("Tajiki"), 55},
@@ -2173,29 +2173,29 @@ static struct { char *name; int code; } localmaclang[] = {
{N_("Kurdish"), 60},
{N_("Kashmiri"), 61},
{N_("Sindhi"), 62},
- {N_("Lang|Tibetan"), 63},
+ {N_("Tibetan"), 63},
{N_("Nepali"), 64},
{N_("Sanskrit"), 65},
{N_("Marathi"), 66},
- {N_("Lang|Bengali"), 67},
+ {N_("Bengali"), 67},
{N_("Assamese"), 68},
- {N_("Lang|Gujarati"), 69},
+ {N_("Gujarati"), 69},
{N_("Punjabi"), 70},
- {N_("Lang|Oriya"), 71},
- {N_("Lang|Malayalam"), 72},
- {N_("Lang|Kannada"), 73},
- {N_("Lang|Tamil"), 74},
- {N_("Lang|Telugu"), 75},
- {N_("Lang|Sinhalese"), 76},
+ {N_("Oriya"), 71},
+ {N_("Malayalam"), 72},
+ {N_("Kannada"), 73},
+ {N_("Tamil"), 74},
+ {N_("Telugu"), 75},
+ {N_("Sinhalese"), 76},
{N_("Burmese"), 77},
- {N_("Lang|Khmer"), 78},
- {N_("Lang|Lao"), 79},
+ {N_("Khmer"), 78},
+ {N_("Lao"), 79},
{N_("Vietnamese"), 80},
{N_("Indonesian"), 81},
- {N_("Lang|Tagalog"), 82},
+ {N_("Tagalog"), 82},
{N_("Malay (roman)"), 83},
{N_("Malay (arabic)"), 84},
- {N_("Lang|Amharic"), 85},
+ {N_("Amharic"), 85},
{N_("Tigrinya"), 86},
{N_("Galla"), 87},
{N_("Somali"), 88},
@@ -2208,12 +2208,12 @@ static struct { char *name; int code; } localmaclang[] = {
{N_("Welsh"), 128},
{N_("Basque"), 129},
{N_("Catalan"), 130},
- {N_("Lang|Latin"), 131},
+ {N_("Latin"), 131},
{N_("Quechua"), 132},
{N_("Guarani"), 133},
{N_("Aymara"), 134},
{N_("Tatar"), 135},
- {N_("Lang|Uighur"), 136},
+ {N_("Uighur"), 136},
{N_("Dzongkha"), 137},
{N_("Javanese (roman)"), 138},
{N_("Sundanese (roman)"), 139},
@@ -2238,7 +2238,7 @@ return( _("Unspecified Language") );
for ( i=0; localmaclang[i].name!=NULL; ++i )
if ( code == localmaclang[i].code )
-return( S_(localmaclang[i].name) );
+return( _(localmaclang[i].name) );
return( _("Unknown Language"));
}
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/namelist.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/namelist.c
index cb64f790b83..d2795bc9600 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/namelist.c
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/namelist.c
@@ -551,7 +551,7 @@ return( NULL );
nl = chunkalloc(sizeof(NameList));
pt = strrchr(filename,'/');
if ( pt==NULL ) pt = filename; else ++pt;
- nl->title = def2utf8_copy(pt);
+ nl->title = copy(pt);
pt = strrchr(nl->title,'.');
if ( pt!=NULL ) *pt = '\0';
@@ -10925,7 +10925,7 @@ static const char **tex_p0[] = {
static NameList tex = {
&agl,
- NU_("ΤεΧ Names"),
+ N_("ΤεΧ Names"),
{ tex_p0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
NULL, 0, 0, NULL
};
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c
index bc23f7d23c4..ba1f9ca5bfc 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c
@@ -406,152 +406,6 @@ return( NULL );
#endif
}
-# include <charset.h> /* we still need the charsets & encoding to set local_encoding */
-static int encmatch(const char *enc,int subok) {
- static struct { char *name; int enc; } encs[] = {
- { "US-ASCII", e_usascii },
- { "ASCII", e_usascii },
- { "ISO646-NO", e_iso646_no },
- { "ISO646-SE", e_iso646_se },
- { "LATIN1", e_iso8859_1 },
- { "ISO-8859-1", e_iso8859_1 },
- { "ISO-8859-2", e_iso8859_2 },
- { "ISO-8859-3", e_iso8859_3 },
- { "ISO-8859-4", e_iso8859_4 },
- { "ISO-8859-5", e_iso8859_4 },
- { "ISO-8859-6", e_iso8859_4 },
- { "ISO-8859-7", e_iso8859_4 },
- { "ISO-8859-8", e_iso8859_4 },
- { "ISO-8859-9", e_iso8859_4 },
- { "ISO-8859-10", e_iso8859_10 },
- { "ISO-8859-11", e_iso8859_11 },
- { "ISO-8859-13", e_iso8859_13 },
- { "ISO-8859-14", e_iso8859_14 },
- { "ISO-8859-15", e_iso8859_15 },
- { "ISO_8859-1", e_iso8859_1 },
- { "ISO_8859-2", e_iso8859_2 },
- { "ISO_8859-3", e_iso8859_3 },
- { "ISO_8859-4", e_iso8859_4 },
- { "ISO_8859-5", e_iso8859_4 },
- { "ISO_8859-6", e_iso8859_4 },
- { "ISO_8859-7", e_iso8859_4 },
- { "ISO_8859-8", e_iso8859_4 },
- { "ISO_8859-9", e_iso8859_4 },
- { "ISO_8859-10", e_iso8859_10 },
- { "ISO_8859-11", e_iso8859_11 },
- { "ISO_8859-13", e_iso8859_13 },
- { "ISO_8859-14", e_iso8859_14 },
- { "ISO_8859-15", e_iso8859_15 },
- { "ISO8859-1", e_iso8859_1 },
- { "ISO8859-2", e_iso8859_2 },
- { "ISO8859-3", e_iso8859_3 },
- { "ISO8859-4", e_iso8859_4 },
- { "ISO8859-5", e_iso8859_4 },
- { "ISO8859-6", e_iso8859_4 },
- { "ISO8859-7", e_iso8859_4 },
- { "ISO8859-8", e_iso8859_4 },
- { "ISO8859-9", e_iso8859_4 },
- { "ISO8859-10", e_iso8859_10 },
- { "ISO8859-11", e_iso8859_11 },
- { "ISO8859-13", e_iso8859_13 },
- { "ISO8859-14", e_iso8859_14 },
- { "ISO8859-15", e_iso8859_15 },
- { "ISO88591", e_iso8859_1 },
- { "ISO88592", e_iso8859_2 },
- { "ISO88593", e_iso8859_3 },
- { "ISO88594", e_iso8859_4 },
- { "ISO88595", e_iso8859_4 },
- { "ISO88596", e_iso8859_4 },
- { "ISO88597", e_iso8859_4 },
- { "ISO88598", e_iso8859_4 },
- { "ISO88599", e_iso8859_4 },
- { "ISO885910", e_iso8859_10 },
- { "ISO885911", e_iso8859_11 },
- { "ISO885913", e_iso8859_13 },
- { "ISO885914", e_iso8859_14 },
- { "ISO885915", e_iso8859_15 },
- { "8859_1", e_iso8859_1 },
- { "8859_2", e_iso8859_2 },
- { "8859_3", e_iso8859_3 },
- { "8859_4", e_iso8859_4 },
- { "8859_5", e_iso8859_4 },
- { "8859_6", e_iso8859_4 },
- { "8859_7", e_iso8859_4 },
- { "8859_8", e_iso8859_4 },
- { "8859_9", e_iso8859_4 },
- { "8859_10", e_iso8859_10 },
- { "8859_11", e_iso8859_11 },
- { "8859_13", e_iso8859_13 },
- { "8859_14", e_iso8859_14 },
- { "8859_15", e_iso8859_15 },
- { "KOI8-R", e_koi8_r },
- { "KOI8R", e_koi8_r },
- { "WINDOWS-1252", e_win },
- { "CP1252", e_win },
- { "Big5", e_big5 },
- { "Big-5", e_big5 },
- { "BigFive", e_big5 },
- { "Big-Five", e_big5 },
- { "Big5HKSCS", e_big5hkscs },
- { "Big5-HKSCS", e_big5hkscs },
- { "UTF-8", e_utf8 },
- { "ISO-10646/UTF-8", e_utf8 },
- { "ISO_10646/UTF-8", e_utf8 },
- { "UCS2", e_unicode },
- { "UCS-2", e_unicode },
- { "UCS-2-INTERNAL", e_unicode },
- { "ISO-10646", e_unicode },
- { "ISO_10646", e_unicode },
- { NULL, 0 }};
- int i;
- char buffer[80];
-
- if ( strchr(enc,'@')!=NULL && strlen(enc)<sizeof(buffer)-1 ) {
- strcpy(buffer,enc);
- *strchr(buffer,'@') = '\0';
- enc = buffer;
- }
-
- for ( i=0; encs[i].name!=NULL; ++i )
- if ( strmatch(enc,encs[i].name)==0 )
-return( encs[i].enc );
-
- if ( subok ) {
- for ( i=0; encs[i].name!=NULL; ++i )
- if ( strstrmatch(enc,encs[i].name)!=NULL )
-return( encs[i].enc );
-
- fprintf( stderr, "FontForge does not support your encoding (%s), it will pretend the local encoding is latin1\n", enc );
-
-return( e_iso8859_1 );
- }
-return( e_unknown );
-}
-
-static int DefaultEncoding(void) {
- const char *loc;
- int enc;
-
- loc = getenv("LC_ALL");
- if ( loc==NULL ) loc = getenv("LC_CTYPE");
- if ( loc==NULL ) loc = getenv("LANG");
-
- if ( loc==NULL )
-return( e_iso8859_1 );
-
- enc = encmatch(loc,false);
- if ( enc==e_unknown ) {
- loc = strrchr(loc,'.');
- if ( loc==NULL )
-return( e_iso8859_1 );
- enc = encmatch(loc+1,true);
- }
- if ( enc==e_unknown )
-return( e_iso8859_1 );
-
-return( enc );
-}
-
static void DefaultXUID(void) {
/* Adobe has assigned PfaEdit a base XUID of 1021. Each new user is going */
/* to get a couple of random numbers appended to that, hoping that will */
@@ -574,9 +428,7 @@ static void DefaultXUID(void) {
}
static void NOUI_SetDefaults(void) {
-
DefaultXUID();
- local_encoding = DefaultEncoding();
}
static void NOUI_LoadPrefs(void) {
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c
index 7b82ce775fc..259682f61b4 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c
@@ -4429,15 +4429,15 @@ static int PickCMap(struct cmap_encs *cmap_encs,int enccnt,int def) {
char buffer[500];
char **choices, *encname;
int i, ret;
- static char *macscripts[]= { N_("Script|Roman"), N_("Script|Japanese"), N_("Script|Traditional Chinese"), N_("Script|Korean"),
- N_("Script|Arabic"), N_("Script|Hebrew"), N_("Script|Greek"),
+ static char *macscripts[]= { N_("Roman"), N_("Japanese"), N_("Traditional Chinese"), N_("Korean"),
+ N_("Arabic"), N_("Hebrew"), N_("Greek"),
/* GT: Don't ask me what RSymbol means, I don't know either. It's in apple's */
/* GT: docs though */
- N_("Script|Cyrillic"), N_("Script|RSymbol"), N_("Script|Devanagari"),
-/* 10*/ N_("Script|Gurmukhi"), N_("Script|Gujarati"), NULL, NULL, NULL,
+ N_("Cyrillic"), N_("RSymbol"), N_("Devanagari"),
+/* 10*/ N_("Gurmukhi"), N_("Gujarati"), NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
-/* 20*/ NULL, N_("Script|Thai"), NULL, NULL, NULL, N_("Script|Simplified Chinese"),
- NULL, NULL, NULL, N_("Script|Central European"),
+/* 20*/ NULL, N_("Thai"), NULL, NULL, NULL, N_("Simplified Chinese"),
+ NULL, NULL, NULL, N_("Central European"),
/* 30*/ NULL, NULL, NULL };
choices = galloc(enccnt*sizeof(char *));
@@ -4446,7 +4446,7 @@ static int PickCMap(struct cmap_encs *cmap_encs,int enccnt,int def) {
if ( cmap_encs[i].platform==1 && cmap_encs[i].specific<32 ) {
encname = macscripts[cmap_encs[i].specific];
if ( encname!=NULL )
- encname = S_(encname);
+ encname = _(encname);
} else if ( cmap_encs[i].platform==0 ) {
switch ( cmap_encs[i].specific ) {
case 0:
@@ -5569,7 +5569,12 @@ return( 0 );
readttfvwidths(ttf,info);
/* 'cmap' is not meaningful for cid keyed fonts, and not supplied for */
/* type42 fonts */
- if ( info->cidregistry==NULL && info->encoding_start!=0 )
+ /* Oops. It is meaningful for cid fonts. It just seemed redundant to me */
+ /* but that was my ignorance. Adobe complains that FF doesn't read it */
+ /* (We've already (probably) set the unicodeencs of the glyphs according */
+ /* to the cidmap files, but we can override that here. Mmm. what about a*/
+ /* glyph in cidmap but not in cmap???? */
+ if ( /* info->cidregistry==NULL && */ info->encoding_start!=0 )
readttfencodings(ttf,info,git_normal);
if ( info->os2_start!=0 )
readttfos2metrics(ttf,info);
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c
index ce91a44571e..b6c45fe956f 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c
@@ -4688,8 +4688,22 @@ void readttfkerns(FILE *ttf,struct ttfinfo *info) {
left = getushort(ttf);
right = getushort(ttf);
offset = (short) getushort(ttf);
- if ( left<info->glyph_cnt && right<info->glyph_cnt &&
- chars[left]!=NULL && chars[right]!=NULL ) {
+ if ( left<0 || right<0 ) {
+ /* We've seen such buggy fonts... */
+ LogError( _("Bad kern pair: glyphs %d & %d mustn't be negative\n"),
+ left, right );
+ info->bad_gx = true;
+ } else if ( left>=info->glyph_cnt || right>=info->glyph_cnt ) {
+ /* Holes happen when reading ttc files. They are probably ok */
+ LogError( _("Bad kern pair: glyphs %d & %d must be less than %d\n"),
+ left, right, info->glyph_cnt );
+ info->bad_gx = true;
+ } else if (chars[left]==NULL || chars[right]==NULL ) {
+ /* Shouldn't happen. */
+ LogError( _("Bad kern pair: glyphs at %d & %d are null\n"),
+ left, right);
+ info->bad_gx = true;
+ } else {
kp = chunkalloc(sizeof(KernPair));
kp->sc = chars[right];
kp->off = offset;
@@ -4703,11 +4717,6 @@ void readttfkerns(FILE *ttf,struct ttfinfo *info) {
kp->next = chars[left]->kerns;
chars[left]->kerns = kp;
}
- } else if ( left>=info->glyph_cnt || right>=info->glyph_cnt ) {
- /* Holes happen when reading ttc files. They are probably ok */
- LogError( _("Bad kern pair: glyphs %d & %d must be less than %d\n"),
- left, right, info->glyph_cnt );
- info->bad_gx = true;
}
}
InfoNameOTLookup(otl,info);
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/pfaedit.h b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/pfaedit.h
index ac10e80f070..2a638d1dcf3 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/pfaedit.h
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/pfaedit.h
@@ -81,23 +81,4 @@ extern Encoding *enclist;
extern MacFeat *default_mac_feature_map;
-typedef struct library_version_configuration {
- uint16 major, minor;
- long library_source_modtime;
- char *library_source_modtime_string;
- int library_source_versiondate;
- uint16 sizeof_me;
- uint16 sizeof_splinefont;
- uint16 sizeof_splinechar;
- uint16 sizeof_fvbase;
- uint16 sizeof_cvbase;
- uint16 sizeof_cvcontainer;
- uint8 config_had_devicetables;
- uint8 config_had_multilayer;
- uint8 config_had_python;
- uint8 mba1; /* Must be all ones (0xff), config values are 0,1 need to distinquish from both */
-} Library_Version_Configuration;
-extern Library_Version_Configuration library_version_configuration;
-
-extern int check_library_version(Library_Version_Configuration *exe_lib_version, int fatal, int quiet);
#endif
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.c
index 9f0ed92305f..2e80ebccead 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.c
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.c
@@ -351,9 +351,9 @@ return( NULL );
strcpy(ubuf,_("Loading font from "));
len = strlen(ubuf);
if ( !wasurl || i==-1 ) /* If it wasn't compressed, or it wasn't an url, then the fullname is reasonable, else use the original name */
- strncat(ubuf,temp = def2utf8_copy(GFileNameTail(fullname)),100);
+ strncat(ubuf,temp = copy(GFileNameTail(fullname)),100);
else
- strncat(ubuf,temp = def2utf8_copy(GFileNameTail(filename)),100);
+ strncat(ubuf,temp = copy(GFileNameTail(filename)),100);
free(temp);
ubuf[100+len] = '\0';
ff_progress_start_indicator(FontViewFirst()==NULL?0:10,_("Loading..."),ubuf,_("Reading Glyphs"),0,1);
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.h b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.h
index d777f530f44..658d66ed5a8 100644
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.h
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinefont.h
@@ -2658,8 +2658,6 @@ extern int CID2Uni(struct cidmap *map,int cid);
extern int CID2NameUni(struct cidmap *map,int cid, char *buffer, int len);
extern int NameUni2CID(struct cidmap *map,int uni, const char *name);
extern int MaxCID(struct cidmap *map);
-extern struct cidmap *LoadMapFromFile(char *file,char *registry,char *ordering,
- int supplement);
extern struct cidmap *FindCidMap(char *registry,char *ordering,int supplement,
SplineFont *sf);
extern void SFEncodeToMap(SplineFont *sf,struct cidmap *map);