Browse code

Fix entity list generator to support more entities, including & (bb #391) Include new entitylist generated using contrib/entitynorm/generate_entitylist (bb #391) Fix bug in growing hash tables (must use hash on new table)

git-svn: trunk@2920

Török Edvin authored on 2007/03/09 05:30:49
Showing 9 changed files
... ...
@@ -1,3 +1,12 @@
1
+Thu Mar  8 20:34:36 EET 2007 (edwin)
2
+---------------------------------
3
+  * contrib/entitynorm/: fix entity list generator to support more entities,
4
+  including & (bb #391)
5
+  * libclamav/entitylist.h: new entitylist generated using
6
+  contrib/entitynorm/generate_entitylist (bb #391)
7
+  * libclamav/hashtab.c: fix bug in growing hash tables (must use hash on new
8
+  table) 
9
+
1 10
 Thu Mar  8 12:22:36 CET 2007 (tk)
2 11
 ---------------------------------
3 12
   * libclamav/readdb.c: call cli_dconf_print() from cl_build()
... ...
@@ -45,7 +54,7 @@ Mon Mar  5 19:10:11 CET 2007 (tk)
45 45
 ---------------------------------
46 46
   * configure: add GNU/Hurd support (bb#363)
47 47
 
48
-Fri Mar  2 19:36:00 CEST 2007 (edwin)
48
+Fri Mar  2 19:36:00 EET 2007 (edwin)
49 49
 -------------------------------------
50 50
    * libclamav/htmlnorm.c: ampersands were missed in URLs. (bb #377)
51 51
 
... ...
@@ -33,7 +33,8 @@ POST_UNINSTALL = :
33 33
 build_triplet = x86_64-unknown-linux-gnu
34 34
 host_triplet = x86_64-unknown-linux-gnu
35 35
 noinst_PROGRAMS = fixdb$(EXEEXT) postprocessdb$(EXEEXT) \
36
-	generate_entitylist$(EXEEXT)
36
+	generate_entitylist$(EXEEXT) \
37
+	generate_encoding_aliases$(EXEEXT)
37 38
 subdir = .
38 39
 DIST_COMMON = README $(am__configure_deps) \
39 40
 	$(srcdir)/../../config.guess $(srcdir)/../../config.sub \
... ...
@@ -55,6 +56,12 @@ PROGRAMS = $(noinst_PROGRAMS)
55 55
 am_fixdb_OBJECTS = fixdb.$(OBJEXT)
56 56
 fixdb_OBJECTS = $(am_fixdb_OBJECTS)
57 57
 fixdb_DEPENDENCIES = $(clam_builddir)/libclamav/libclamav.la
58
+am_generate_encoding_aliases_OBJECTS =  \
59
+	generate_encoding_aliases.$(OBJEXT)
60
+generate_encoding_aliases_OBJECTS =  \
61
+	$(am_generate_encoding_aliases_OBJECTS)
62
+generate_encoding_aliases_DEPENDENCIES =  \
63
+	$(clam_builddir)/libclamav/libclamav.la
58 64
 am_generate_entitylist_OBJECTS = generate_entitylist.$(OBJEXT)
59 65
 generate_entitylist_OBJECTS = $(am_generate_entitylist_OBJECTS)
60 66
 generate_entitylist_DEPENDENCIES =  \
... ...
@@ -74,10 +81,10 @@ CCLD = $(CC)
74 74
 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
75 75
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
76 76
 	$(LDFLAGS) -o $@
77
-SOURCES = $(fixdb_SOURCES) $(generate_entitylist_SOURCES) \
78
-	$(postprocessdb_SOURCES)
79
-DIST_SOURCES = $(fixdb_SOURCES) $(generate_entitylist_SOURCES) \
80
-	$(postprocessdb_SOURCES)
77
+SOURCES = $(fixdb_SOURCES) $(generate_encoding_aliases_SOURCES) \
78
+	$(generate_entitylist_SOURCES) $(postprocessdb_SOURCES)
79
+DIST_SOURCES = $(fixdb_SOURCES) $(generate_encoding_aliases_SOURCES) \
80
+	$(generate_entitylist_SOURCES) $(postprocessdb_SOURCES)
81 81
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
82 82
 	html-recursive info-recursive install-data-recursive \
83 83
 	install-dvi-recursive install-exec-recursive \
... ...
@@ -101,16 +108,16 @@ DIST_ARCHIVES = $(distdir).tar.gz
101 101
 GZIP_ENV = --best
102 102
 distuninstallcheck_listfiles = find . -type f -print
103 103
 distcleancheck_listfiles = find . -type f -print
104
-ACLOCAL = ${SHELL} /home/edwin/clam/clamav-devel/missing --run aclocal-1.10
105
-AMTAR = ${SHELL} /home/edwin/clam/clamav-devel/missing --run tar
104
+ACLOCAL = ${SHELL} /home/edwin/clam/svn2/trunk/missing --run aclocal-1.10
105
+AMTAR = ${SHELL} /home/edwin/clam/svn2/trunk/missing --run tar
106 106
 AR = ar
107
-AUTOCONF = ${SHELL} /home/edwin/clam/clamav-devel/missing --run autoconf
108
-AUTOHEADER = ${SHELL} /home/edwin/clam/clamav-devel/missing --run autoheader
109
-AUTOMAKE = ${SHELL} /home/edwin/clam/clamav-devel/missing --run automake-1.10
107
+AUTOCONF = ${SHELL} /home/edwin/clam/svn2/trunk/missing --run autoconf
108
+AUTOHEADER = ${SHELL} /home/edwin/clam/svn2/trunk/missing --run autoheader
109
+AUTOMAKE = ${SHELL} /home/edwin/clam/svn2/trunk/missing --run automake-1.10
110 110
 AWK = gawk
111 111
 CC = gcc
112 112
 CCDEPMODE = depmode=gcc3
113
-CFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -g3 -march=k8 -pedantic -W -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat=2 -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-unused-parameter -Wpointer-arith -Wshadow -Wstack-protector -Wstrict-prototypes -Wswitch -Wundef -Wwrite-strings 
113
+CFLAGS = -mfpmath=sse -msse -msse2 -m3dnow -mmmx -D_FORTIFY_SOURCE=2 -fstack-protector -march=k8 -pedantic -g3 -Wextra -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat=2 -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-unused-parameter -Wpointer-arith -Wshadow -Wstack-protector -Wstrict-prototypes -Wswitch -Wundef -Wwrite-strings
114 114
 CPP = gcc -E
115 115
 CPPFLAGS = 
116 116
 CXX = g++
... ...
@@ -140,7 +147,7 @@ LIBS =
140 140
 LIBTOOL = $(SHELL) $(top_builddir)/libtool
141 141
 LN_S = ln -s
142 142
 LTLIBOBJS = 
143
-MAKEINFO = ${SHELL} /home/edwin/clam/clamav-devel/missing --run makeinfo
143
+MAKEINFO = ${SHELL} /home/edwin/clam/svn2/trunk/missing --run makeinfo
144 144
 MKDIR_P = /bin/mkdir -p
145 145
 OBJEXT = o
146 146
 PACKAGE = fixdb
... ...
@@ -154,11 +161,11 @@ RANLIB = ranlib
154 154
 SET_MAKE = 
155 155
 SHELL = /bin/sh
156 156
 STRIP = strip
157
-VERSION = 20061119
158
-abs_builddir = /home/edwin/clam/clamav-devel/contrib/entitynorm
159
-abs_srcdir = /home/edwin/clam/clamav-devel/contrib/entitynorm
160
-abs_top_builddir = /home/edwin/clam/clamav-devel/contrib/entitynorm
161
-abs_top_srcdir = /home/edwin/clam/clamav-devel/contrib/entitynorm
157
+VERSION = 20070308
158
+abs_builddir = /home/edwin/clam/svn2/trunk/contrib/entitynorm
159
+abs_srcdir = /home/edwin/clam/svn2/trunk/contrib/entitynorm
160
+abs_top_builddir = /home/edwin/clam/svn2/trunk/contrib/entitynorm
161
+abs_top_srcdir = /home/edwin/clam/svn2/trunk/contrib/entitynorm
162 162
 ac_ct_CC = gcc
163 163
 ac_ct_CXX = g++
164 164
 ac_ct_F77 = 
... ...
@@ -187,7 +194,7 @@ host_vendor = unknown
187 187
 htmldir = ${docdir}
188 188
 includedir = ${prefix}/include
189 189
 infodir = ${datarootdir}/info
190
-install_sh = $(SHELL) /home/edwin/clam/clamav-devel/install-sh
190
+install_sh = $(SHELL) /home/edwin/clam/svn2/trunk/install-sh
191 191
 libdir = ${exec_prefix}/lib
192 192
 libexecdir = ${exec_prefix}/libexec
193 193
 localedir = ${datarootdir}/locale
... ...
@@ -218,6 +225,9 @@ postprocessdb_LDADD = $(clam_builddir)/libclamav/libclamav.la
218 218
 generate_entitylist_SOURCES = generate_entitylist.c
219 219
 generate_entitylist_INCLUDES = 
220 220
 generate_entitylist_LDADD = $(clam_builddir)/libclamav/libclamav.la
221
+generate_encoding_aliases_SOURCES = generate_encoding_aliases.c
222
+generate_encoding_aliases_INCLUDES = 
223
+generate_encoding_aliases_LDADD = $(clam_builddir)/libclamav/libclamav.la
221 224
 INCLUDES = -I$(top_srcdir) -I$(clam_builddir) -I$(clam_builddir)/shared -I$(clam_builddir)/libclamav
222 225
 all: test-config.h
223 226
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
... ...
@@ -284,6 +294,9 @@ clean-noinstPROGRAMS:
284 284
 fixdb$(EXEEXT): $(fixdb_OBJECTS) $(fixdb_DEPENDENCIES) 
285 285
 	@rm -f fixdb$(EXEEXT)
286 286
 	$(LINK) $(fixdb_OBJECTS) $(fixdb_LDADD) $(LIBS)
287
+generate_encoding_aliases$(EXEEXT): $(generate_encoding_aliases_OBJECTS) $(generate_encoding_aliases_DEPENDENCIES) 
288
+	@rm -f generate_encoding_aliases$(EXEEXT)
289
+	$(LINK) $(generate_encoding_aliases_OBJECTS) $(generate_encoding_aliases_LDADD) $(LIBS)
287 290
 generate_entitylist$(EXEEXT): $(generate_entitylist_OBJECTS) $(generate_entitylist_DEPENDENCIES) 
288 291
 	@rm -f generate_entitylist$(EXEEXT)
289 292
 	$(LINK) $(generate_entitylist_OBJECTS) $(generate_entitylist_LDADD) $(LIBS)
... ...
@@ -298,6 +311,7 @@ distclean-compile:
298 298
 	-rm -f *.tab.c
299 299
 
300 300
 include ./$(DEPDIR)/fixdb.Po
301
+include ./$(DEPDIR)/generate_encoding_aliases.Po
301 302
 include ./$(DEPDIR)/generate_entitylist.Po
302 303
 include ./$(DEPDIR)/postprocess.Po
303 304
 
304 305
deleted file mode 100644
... ...
@@ -1,122 +0,0 @@
1
-
2
-<!--
3
-     File isopub.ent produced by the XSL script entities.xsl
4
-     from input data in unicode.xml.
5
-
6
-     Please report any errors to David Carlisle
7
-     via the public W3C list www-math@w3.org.
8
-
9
-     The numeric character values assigned to each entity
10
-     (should) match the Unicode assignments in Unicode 4.0.
11
-
12
-     (C) International Organization for Standardization 2003
13
-     Permission to copy in any form is granted for use with
14
-     conforming SGML systems and applications as defined in
15
-     ISO 8879, provided this notice is included in all copies.
16
-
17
-
18
-
19
-<!-- 
20
-     Version: $Id: isopub(2).ent,v 1.1 2006/12/26 16:17:01 tkojm Exp $
21
-
22
-       Public identifier: ISO 9573-13:2003//ENTITIES Publishing//EN//XML
23
-       System identifier: http://www.w3.org/2003/entities/iso9573-2003/isopub.ent
24
-
25
-     The public identifier should always be used verbatim.
26
-     The system identifier may be changed to suit local requirements.
27
-
28
-     Typical invocation:
29
-
30
-       <!ENTITY % isopub PUBLIC
31
-         "ISO 9573-13:2003//ENTITIES Publishing//EN//XML"
32
-         "http://www.w3.org/2003/entities/iso9573-2003/isopub.ent"
33
-       >
34
-       %isopub;
35
-
36
-
37
-<!ENTITY blank            "&#x02423;" ><!--OPEN BOX -->
38
-<!ENTITY blk12            "&#x02592;" ><!--MEDIUM SHADE -->
39
-<!ENTITY blk14            "&#x02591;" ><!--LIGHT SHADE -->
40
-<!ENTITY blk34            "&#x02593;" ><!--DARK SHADE -->
41
-<!ENTITY block            "&#x02588;" ><!--FULL BLOCK -->
42
-<!ENTITY bull             "&#x02022;" ><!--BULLET -->
43
-<!ENTITY caret            "&#x02041;" ><!--CARET INSERTION POINT -->
44
-<!ENTITY check            "&#x02713;" ><!--CHECK MARK -->
45
-<!ENTITY cir              "&#x025CB;" ><!--WHITE CIRCLE -->
46
-<!ENTITY clubs            "&#x02663;" ><!--BLACK CLUB SUIT -->
47
-<!ENTITY copysr           "&#x02117;" ><!--SOUND RECORDING COPYRIGHT -->
48
-<!ENTITY cross            "&#x02717;" ><!--BALLOT X -->
49
-<!ENTITY Dagger           "&#x02021;" ><!--DOUBLE DAGGER -->
50
-<!ENTITY dagger           "&#x02020;" ><!--DAGGER -->
51
-<!ENTITY dash             "&#x02010;" ><!--HYPHEN -->
52
-<!ENTITY diams            "&#x02666;" ><!--BLACK DIAMOND SUIT -->
53
-<!ENTITY dlcrop           "&#x0230D;" ><!--BOTTOM LEFT CROP -->
54
-<!ENTITY drcrop           "&#x0230C;" ><!--BOTTOM RIGHT CROP -->
55
-<!ENTITY dtri             "&#x025BF;" ><!--WHITE DOWN-POINTING SMALL TRIANGLE -->
56
-<!ENTITY dtrif            "&#x025BE;" ><!--BLACK DOWN-POINTING SMALL TRIANGLE -->
57
-<!ENTITY emsp             "&#x02003;" ><!--EM SPACE -->
58
-<!ENTITY emsp13           "&#x02004;" ><!--THREE-PER-EM SPACE -->
59
-<!ENTITY emsp14           "&#x02005;" ><!--FOUR-PER-EM SPACE -->
60
-<!ENTITY ensp             "&#x02002;" ><!--EN SPACE -->
61
-<!ENTITY female           "&#x02640;" ><!--FEMALE SIGN -->
62
-<!ENTITY ffilig           "&#x0FB03;" ><!--LATIN SMALL LIGATURE FFI -->
63
-<!ENTITY fflig            "&#x0FB00;" ><!--LATIN SMALL LIGATURE FF -->
64
-<!ENTITY ffllig           "&#x0FB04;" ><!--LATIN SMALL LIGATURE FFL -->
65
-<!ENTITY filig            "&#x0FB01;" ><!--LATIN SMALL LIGATURE FI -->
66
-<!ENTITY flat             "&#x0266D;" ><!--MUSIC FLAT SIGN -->
67
-<!ENTITY fllig            "&#x0FB02;" ><!--LATIN SMALL LIGATURE FL -->
68
-<!ENTITY frac13           "&#x02153;" ><!--VULGAR FRACTION ONE THIRD -->
69
-<!ENTITY frac15           "&#x02155;" ><!--VULGAR FRACTION ONE FIFTH -->
70
-<!ENTITY frac16           "&#x02159;" ><!--VULGAR FRACTION ONE SIXTH -->
71
-<!ENTITY frac23           "&#x02154;" ><!--VULGAR FRACTION TWO THIRDS -->
72
-<!ENTITY frac25           "&#x02156;" ><!--VULGAR FRACTION TWO FIFTHS -->
73
-<!ENTITY frac35           "&#x02157;" ><!--VULGAR FRACTION THREE FIFTHS -->
74
-<!ENTITY frac45           "&#x02158;" ><!--VULGAR FRACTION FOUR FIFTHS -->
75
-<!ENTITY frac56           "&#x0215A;" ><!--VULGAR FRACTION FIVE SIXTHS -->
76
-<!ENTITY hairsp           "&#x0200A;" ><!--HAIR SPACE -->
77
-<!ENTITY hearts           "&#x02665;" ><!--BLACK HEART SUIT -->
78
-<!ENTITY hellip           "&#x02026;" ><!--HORIZONTAL ELLIPSIS -->
79
-<!ENTITY hybull           "&#x02043;" ><!--HYPHEN BULLET -->
80
-<!ENTITY incare           "&#x02105;" ><!--CARE OF -->
81
-<!ENTITY ldquor           "&#x0201E;" ><!--DOUBLE LOW-9 QUOTATION MARK -->
82
-<!ENTITY lhblk            "&#x02584;" ><!--LOWER HALF BLOCK -->
83
-<!ENTITY loz              "&#x025CA;" ><!--LOZENGE -->
84
-<!ENTITY lozf             "&#x029EB;" ><!--BLACK LOZENGE -->
85
-<!ENTITY lsquor           "&#x0201A;" ><!--SINGLE LOW-9 QUOTATION MARK -->
86
-<!ENTITY ltri             "&#x025C3;" ><!--WHITE LEFT-POINTING SMALL TRIANGLE -->
87
-<!ENTITY ltrif            "&#x025C2;" ><!--BLACK LEFT-POINTING SMALL TRIANGLE -->
88
-<!ENTITY male             "&#x02642;" ><!--MALE SIGN -->
89
-<!ENTITY malt             "&#x02720;" ><!--MALTESE CROSS -->
90
-<!ENTITY marker           "&#x025AE;" ><!--BLACK VERTICAL RECTANGLE -->
91
-<!ENTITY mdash            "&#x02014;" ><!--EM DASH -->
92
-<!ENTITY mldr             "&#x02026;" ><!--HORIZONTAL ELLIPSIS -->
93
-<!ENTITY natur            "&#x0266E;" ><!--MUSIC NATURAL SIGN -->
94
-<!ENTITY ndash            "&#x02013;" ><!--EN DASH -->
95
-<!ENTITY nldr             "&#x02025;" ><!--TWO DOT LEADER -->
96
-<!ENTITY numsp            "&#x02007;" ><!--FIGURE SPACE -->
97
-<!ENTITY phone            "&#x0260E;" ><!--BLACK TELEPHONE -->
98
-<!ENTITY puncsp           "&#x02008;" ><!--PUNCTUATION SPACE -->
99
-<!ENTITY rdquor           "&#x0201D;" ><!--RIGHT DOUBLE QUOTATION MARK -->
100
-<!ENTITY rect             "&#x025AD;" ><!--WHITE RECTANGLE -->
101
-<!ENTITY rsquor           "&#x02019;" ><!--RIGHT SINGLE QUOTATION MARK -->
102
-<!ENTITY rtri             "&#x025B9;" ><!--WHITE RIGHT-POINTING SMALL TRIANGLE -->
103
-<!ENTITY rtrif            "&#x025B8;" ><!--BLACK RIGHT-POINTING SMALL TRIANGLE -->
104
-<!ENTITY rx               "&#x0211E;" ><!--PRESCRIPTION TAKE -->
105
-<!ENTITY sext             "&#x02736;" ><!--SIX POINTED BLACK STAR -->
106
-<!ENTITY sharp            "&#x0266F;" ><!--MUSIC SHARP SIGN -->
107
-<!ENTITY spades           "&#x02660;" ><!--BLACK SPADE SUIT -->
108
-<!ENTITY squ              "&#x025A1;" ><!--WHITE SQUARE -->
109
-<!ENTITY squf             "&#x025AA;" ><!--BLACK SMALL SQUARE -->
110
-<!ENTITY star             "&#x02606;" ><!--WHITE STAR -->
111
-<!ENTITY starf            "&#x02605;" ><!--BLACK STAR -->
112
-<!ENTITY target           "&#x02316;" ><!--POSITION INDICATOR -->
113
-<!ENTITY telrec           "&#x02315;" ><!--TELEPHONE RECORDER -->
114
-<!ENTITY thinsp           "&#x02009;" ><!--THIN SPACE -->
115
-<!ENTITY uhblk            "&#x02580;" ><!--UPPER HALF BLOCK -->
116
-<!ENTITY ulcrop           "&#x0230F;" ><!--TOP LEFT CROP -->
117
-<!ENTITY urcrop           "&#x0230E;" ><!--TOP RIGHT CROP -->
118
-<!ENTITY utri             "&#x025B5;" ><!--WHITE UP-POINTING SMALL TRIANGLE -->
119
-<!ENTITY utrif            "&#x025B4;" ><!--BLACK UP-POINTING SMALL TRIANGLE -->
120
-<!ENTITY vellip           "&#x022EE;" ><!--VERTICAL ELLIPSIS -->
... ...
@@ -22,7 +22,7 @@
22 22
 #include <others.h>
23 23
 #include <htmlnorm.h>
24 24
 #include <hashtab.h>
25
-#include <entitiesConverter.h>
25
+#include <entconv.h>
26 26
 #include <string.h>
27 27
 
28 28
 static const struct {
... ...
@@ -23,7 +23,7 @@
23 23
 #include <others.h>
24 24
 #include <htmlnorm.h>
25 25
 #include <hashtab.h>
26
-#include <entitiesConverter.h>
26
+#include <entconv.h>
27 27
 #include <regex.h>
28 28
 #include <sys/types.h>
29 29
 #include <dirent.h>
... ...
@@ -46,19 +46,36 @@ static char* extract_str(const char* l,const regmatch_t* pmatch)
46 46
 }
47 47
 
48 48
 static regex_t entity_regex;
49
+static const char ent_head[]="<!ENTITY";
50
+static const size_t ent_head_size = sizeof(ent_head);
49 51
 static int entity_extract(const char* line,char* entity_name,int* entity_value)
50 52
 {
51
-	regmatch_t pmatch[3];
53
+	regmatch_t pmatch[5];
52 54
 
53
-	if(regexec(&entity_regex,line,3,pmatch,0)==0) {
55
+	if(regexec(&entity_regex,line,5,pmatch,0)==0) {
54 56
 		const char* entity_val;
55
-		strncpy(entity_name,extract_str(line,&pmatch[1]),MAX_LINE); 
56
-		entity_val  = extract_str(line,&pmatch[2]);
57
-		if(sscanf( entity_val,"%d",entity_value)!=1)
58
-			return -2;
57
+		strncpy(entity_name,extract_str(line,&pmatch[1]),MAX_LINE);
58
+		entity_val  = extract_str(line,&pmatch[3]);
59
+		if(entity_val[0] == 'x') {
60
+			if(sscanf(entity_val+1,"%x",entity_value)!=1)
61
+				return -2;
62
+		}
63
+		else {
64
+			if(sscanf( entity_val,"%d",entity_value)!=1)
65
+				return -2;
66
+		}
67
+		if(*entity_value > 65535) {
68
+			fprintf(stderr,"Entity value outside of utf-16 range:%u; %s\n",*entity_value,line);
69
+			return 0;
70
+		}
59 71
 		return 1;
60 72
 	}
61
-	else return 0;	
73
+	else {
74
+		if(strncmp(line,ent_head,ent_head_size-1)==0) {
75
+			fprintf(stderr,"Unable to interpret entity decl:%s\n",line);
76
+		}
77
+		return 0;	
78
+	}
62 79
 }
63 80
 static void loadEntitiesFromFile(const char* file,struct hashtable* s,char* xt[])
64 81
 {
... ...
@@ -89,8 +106,10 @@ static void loadEntitiesFromFile(const char* file,struct hashtable* s,char* xt[]
89 89
 			}
90 90
 			if(xt[val] && strcmp(xt[val],name))
91 91
 				cli_dbgmsg("Duplicate entity reference to same code:%s->%d<-%s\n",name,val,xt[val]);
92
-			else if(xt[val])
93
-				printf("%s:%d\n",xt[val],val);
92
+			else if(xt[val]) {
93
+				fprintf(stderr,"Impossible: element not found in hashtable, but we did add it!! %s:%d:%s:%p\n",xt[val],val,name,elem);
94
+				abort();
95
+			}
94 96
 			xt[val] = strdup(name);
95 97
 			hashtab_insert(s,name,strlen(name),val);
96 98
 		}
... ...
@@ -103,7 +122,7 @@ static void init_entity_parser(void)
103 103
 {
104 104
 	int rc;
105 105
 	char errbuff[MAX_LINE];
106
-	if(( rc = regcomp(&entity_regex,".*<!ENTITY +([^ ]+) +\"&#([0-9]+);\">.*",REG_EXTENDED) )) {
106
+	if(( rc = regcomp(&entity_regex,".*<!ENTITY +([^ \t]+) +\" *&(#38;)?#(([0-9]+)|x([0-9a-fA-F])+); *\" *>.*",REG_EXTENDED) )) {
107 107
 		regerror(rc,&entity_regex,errbuff,MAX_LINE);
108 108
 		fprintf(stderr,"Error compiling regex:%s\n",errbuff);
109 109
 		exit(1);
... ...
@@ -1,7 +1,7 @@
1 1
 #! /bin/sh
2 2
 
3 3
 # libtoolT - Provide generalized library-building support services.
4
-# Generated automatically by  (GNU fixdb 20061119)
4
+# Generated automatically by  (GNU fixdb 20070308)
5 5
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
6 6
 #
7 7
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
... ...
@@ -85,7 +85,7 @@ AR_FLAGS="cru"
85 85
 LTCC="gcc"
86 86
 
87 87
 # LTCC compiler flags.
88
-LTCFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector -g3 -march=k8 -pedantic -W -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat=2 -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-unused-parameter -Wpointer-arith -Wshadow -Wstack-protector -Wstrict-prototypes -Wswitch -Wundef -Wwrite-strings "
88
+LTCFLAGS="-mfpmath=sse -msse -msse2 -m3dnow -mmmx -D_FORTIFY_SOURCE=2 -fstack-protector -march=k8 -pedantic -g3 -Wextra -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat=2 -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-unused-parameter -Wpointer-arith -Wshadow -Wstack-protector -Wstrict-prototypes -Wswitch -Wundef -Wwrite-strings"
89 89
 
90 90
 # A language-specific compiler.
91 91
 CC="gcc"
... ...
@@ -328,7 +328,7 @@ link_all_deplibs=no
328 328
 sys_lib_search_path_spec=" /usr/lib/gcc/x86_64-linux-gnu/4.1.2/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/4.1.2/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../x86_64-linux-gnu/lib/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../x86_64-linux-gnu/4.1.2/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../ /lib/x86_64-linux-gnu/4.1.2/ /lib/ /usr/lib/x86_64-linux-gnu/4.1.2/ /usr/lib/"
329 329
 
330 330
 # Run-time system search path for libraries
331
-sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib "
331
+sys_lib_dlsearch_path_spec="/lib /usr/lib "
332 332
 
333 333
 # Fix the shell variable $srcfile for the compiler.
334 334
 fix_srcfile_path=""
... ...
@@ -353,7 +353,7 @@ include_expsyms=""
353 353
 # ltmain.sh - Provide generalized library-building support services.
354 354
 # NOTE: Changing this file will not affect anything until you rerun configure.
355 355
 #
356
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
356
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
357 357
 # Free Software Foundation, Inc.
358 358
 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
359 359
 #
... ...
@@ -369,13 +369,41 @@ include_expsyms=""
369 369
 #
370 370
 # You should have received a copy of the GNU General Public License
371 371
 # along with this program; if not, write to the Free Software
372
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
372
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
373 373
 #
374 374
 # As a special exception to the GNU General Public License, if you
375 375
 # distribute this file as part of a program that contains a
376 376
 # configuration script generated by Autoconf, you may include it under
377 377
 # the same distribution terms that you use for the rest of that program.
378 378
 
379
+basename="s,^.*/,,g"
380
+
381
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
382
+# is ksh but when the shell is invoked as "sh" and the current value of
383
+# the _XPG environment variable is not equal to 1 (one), the special
384
+# positional parameter $0, within a function call, is the name of the
385
+# function.
386
+progpath="$0"
387
+
388
+# The name of this program:
389
+progname=`echo "$progpath" | $SED $basename`
390
+modename="$progname"
391
+
392
+# Global variables:
393
+EXIT_SUCCESS=0
394
+EXIT_FAILURE=1
395
+
396
+PROGRAM=ltmain.sh
397
+PACKAGE=libtool
398
+VERSION="1.5.22 Debian 1.5.22-4"
399
+TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
400
+
401
+# See if we are running on zsh, and set the options which allow our
402
+# commands through without removal of \ escapes.
403
+if test -n "${ZSH_VERSION+set}" ; then
404
+  setopt NO_GLOB_SUBST
405
+fi
406
+
379 407
 # Check that we have a working $echo.
380 408
 if test "X$1" = X--no-reexec; then
381 409
   # Discard the --no-reexec flag, and continue.
... ...
@@ -388,7 +416,7 @@ elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
388 388
   :
389 389
 else
390 390
   # Restart under the correct shell, and then maybe $echo will work.
391
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
391
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
392 392
 fi
393 393
 
394 394
 if test "X$1" = X--fallback-echo; then
... ...
@@ -397,19 +425,9 @@ if test "X$1" = X--fallback-echo; then
397 397
   cat <<EOF
398 398
 $*
399 399
 EOF
400
-  exit 0
400
+  exit $EXIT_SUCCESS
401 401
 fi
402 402
 
403
-# The name of this program.
404
-progname=`$echo "$0" | sed 's%^.*/%%'`
405
-modename="$progname"
406
-
407
-# Constants.
408
-PROGRAM=ltmain.sh
409
-PACKAGE=libtool
410
-VERSION=1.4.2a
411
-TIMESTAMP=" (1.922.2.79 2001/11/28 21:50:31)"
412
-
413 403
 default_mode=
414 404
 help="Try \`$progname --help' for more information."
415 405
 magic="%%%MAGIC variable%%%"
... ...
@@ -419,10 +437,20 @@ rm="rm -f"
419 419
 
420 420
 # Sed substitution that helps us do robust quoting.  It backslashifies
421 421
 # metacharacters that are still active within double-quoted strings.
422
-Xsed='sed -e 1s/^X//'
422
+Xsed="${SED}"' -e 1s/^X//'
423 423
 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
424
-SP2NL='tr \040 \012'
425
-NL2SP='tr \015\012 \040\040'
424
+# test EBCDIC or ASCII
425
+case `echo X|tr X '\101'` in
426
+ A) # ASCII based system
427
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
428
+  SP2NL='tr \040 \012'
429
+  NL2SP='tr \015\012 \040\040'
430
+  ;;
431
+ *) # EBCDIC based system
432
+  SP2NL='tr \100 \n'
433
+  NL2SP='tr \r\n \100\100'
434
+  ;;
435
+esac
426 436
 
427 437
 # NLS nuisances.
428 438
 # Only set LANG and LC_ALL to C if already set.
... ...
@@ -437,12 +465,14 @@ if test "${LANG+set}" = set; then
437 437
 fi
438 438
 
439 439
 # Make sure IFS has a sensible default
440
-: ${IFS=" 	"}
440
+lt_nl='
441
+'
442
+IFS=" 	$lt_nl"
441 443
 
442 444
 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
443
-  echo "$modename: not configured to build any kind of library" 1>&2
444
-  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
445
-  exit 1
445
+  $echo "$modename: not configured to build any kind of library" 1>&2
446
+  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
447
+  exit $EXIT_FAILURE
446 448
 fi
447 449
 
448 450
 # Global variables.
... ...
@@ -454,11 +484,268 @@ run=
454 454
 show="$echo"
455 455
 show_help=
456 456
 execute_dlfiles=
457
+duplicate_deps=no
458
+preserve_args=
457 459
 lo2o="s/\\.lo\$/.${objext}/"
458 460
 o2lo="s/\\.${objext}\$/.lo/"
459 461
 
462
+#####################################
463
+# Shell function definitions:
464
+# This seems to be the best place for them
465
+
466
+# func_mktempdir [string]
467
+# Make a temporary directory that won't clash with other running
468
+# libtool processes, and avoids race conditions if possible.  If
469
+# given, STRING is the basename for that directory.
470
+func_mktempdir ()
471
+{
472
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
473
+
474
+    if test "$run" = ":"; then
475
+      # Return a directory name, but don't create it in dry-run mode
476
+      my_tmpdir="${my_template}-$$"
477
+    else
478
+
479
+      # If mktemp works, use that first and foremost
480
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
481
+
482
+      if test ! -d "$my_tmpdir"; then
483
+	# Failing that, at least try and use $RANDOM to avoid a race
484
+	my_tmpdir="${my_template}-${RANDOM-0}$$"
485
+
486
+	save_mktempdir_umask=`umask`
487
+	umask 0077
488
+	$mkdir "$my_tmpdir"
489
+	umask $save_mktempdir_umask
490
+      fi
491
+
492
+      # If we're not in dry-run mode, bomb out on failure
493
+      test -d "$my_tmpdir" || {
494
+        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
495
+	exit $EXIT_FAILURE
496
+      }
497
+    fi
498
+
499
+    $echo "X$my_tmpdir" | $Xsed
500
+}
501
+
502
+
503
+# func_win32_libid arg
504
+# return the library type of file 'arg'
505
+#
506
+# Need a lot of goo to handle *both* DLLs and import libs
507
+# Has to be a shell function in order to 'eat' the argument
508
+# that is supplied when $file_magic_command is called.
509
+func_win32_libid ()
510
+{
511
+  win32_libid_type="unknown"
512
+  win32_fileres=`file -L $1 2>/dev/null`
513
+  case $win32_fileres in
514
+  *ar\ archive\ import\ library*) # definitely import
515
+    win32_libid_type="x86 archive import"
516
+    ;;
517
+  *ar\ archive*) # could be an import, or static
518
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
519
+      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
520
+      win32_nmres=`eval $NM -f posix -A $1 | \
521
+	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
522
+      case $win32_nmres in
523
+      import*)  win32_libid_type="x86 archive import";;
524
+      *)        win32_libid_type="x86 archive static";;
525
+      esac
526
+    fi
527
+    ;;
528
+  *DLL*)
529
+    win32_libid_type="x86 DLL"
530
+    ;;
531
+  *executable*) # but shell scripts are "executable" too...
532
+    case $win32_fileres in
533
+    *MS\ Windows\ PE\ Intel*)
534
+      win32_libid_type="x86 DLL"
535
+      ;;
536
+    esac
537
+    ;;
538
+  esac
539
+  $echo $win32_libid_type
540
+}
541
+
542
+
543
+# func_infer_tag arg
544
+# Infer tagged configuration to use if any are available and
545
+# if one wasn't chosen via the "--tag" command line option.
546
+# Only attempt this if the compiler in the base compile
547
+# command doesn't match the default compiler.
548
+# arg is usually of the form 'gcc ...'
549
+func_infer_tag ()
550
+{
551
+    if test -n "$available_tags" && test -z "$tagname"; then
552
+      CC_quoted=
553
+      for arg in $CC; do
554
+	case $arg in
555
+	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
556
+	  arg="\"$arg\""
557
+	  ;;
558
+	esac
559
+	CC_quoted="$CC_quoted $arg"
560
+      done
561
+      case $@ in
562
+      # Blanks in the command may have been stripped by the calling shell,
563
+      # but not from the CC environment variable when configure was run.
564
+      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
565
+      # Blanks at the start of $base_compile will cause this to fail
566
+      # if we don't check for them as well.
567
+      *)
568
+	for z in $available_tags; do
569
+	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
570
+	    # Evaluate the configuration.
571
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
572
+	    CC_quoted=
573
+	    for arg in $CC; do
574
+	    # Double-quote args containing other shell metacharacters.
575
+	    case $arg in
576
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
577
+	      arg="\"$arg\""
578
+	      ;;
579
+	    esac
580
+	    CC_quoted="$CC_quoted $arg"
581
+	  done
582
+	    case "$@ " in
583
+	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
584
+	      # The compiler in the base compile command matches
585
+	      # the one in the tagged configuration.
586
+	      # Assume this is the tagged configuration we want.
587
+	      tagname=$z
588
+	      break
589
+	      ;;
590
+	    esac
591
+	  fi
592
+	done
593
+	# If $tagname still isn't set, then no tagged configuration
594
+	# was found and let the user know that the "--tag" command
595
+	# line option must be used.
596
+	if test -z "$tagname"; then
597
+	  $echo "$modename: unable to infer tagged configuration"
598
+	  $echo "$modename: specify a tag with \`--tag'" 1>&2
599
+	  exit $EXIT_FAILURE
600
+#        else
601
+#          $echo "$modename: using $tagname tagged configuration"
602
+	fi
603
+	;;
604
+      esac
605
+    fi
606
+}
607
+
608
+
609
+# func_extract_an_archive dir oldlib
610
+func_extract_an_archive ()
611
+{
612
+    f_ex_an_ar_dir="$1"; shift
613
+    f_ex_an_ar_oldlib="$1"
614
+
615
+    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
616
+    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
617
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
618
+     :
619
+    else
620
+      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
621
+      exit $EXIT_FAILURE
622
+    fi
623
+}
624
+
625
+# func_extract_archives gentop oldlib ...
626
+func_extract_archives ()
627
+{
628
+    my_gentop="$1"; shift
629
+    my_oldlibs=${1+"$@"}
630
+    my_oldobjs=""
631
+    my_xlib=""
632
+    my_xabs=""
633
+    my_xdir=""
634
+    my_status=""
635
+
636
+    $show "${rm}r $my_gentop"
637
+    $run ${rm}r "$my_gentop"
638
+    $show "$mkdir $my_gentop"
639
+    $run $mkdir "$my_gentop"
640
+    my_status=$?
641
+    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
642
+      exit $my_status
643
+    fi
644
+
645
+    for my_xlib in $my_oldlibs; do
646
+      # Extract the objects.
647
+      case $my_xlib in
648
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
649
+	*) my_xabs=`pwd`"/$my_xlib" ;;
650
+      esac
651
+      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
652
+      my_xdir="$my_gentop/$my_xlib"
653
+
654
+      $show "${rm}r $my_xdir"
655
+      $run ${rm}r "$my_xdir"
656
+      $show "$mkdir $my_xdir"
657
+      $run $mkdir "$my_xdir"
658
+      exit_status=$?
659
+      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
660
+	exit $exit_status
661
+      fi
662
+      case $host in
663
+      *-darwin*)
664
+	$show "Extracting $my_xabs"
665
+	# Do not bother doing anything if just a dry run
666
+	if test -z "$run"; then
667
+	  darwin_orig_dir=`pwd`
668
+	  cd $my_xdir || exit $?
669
+	  darwin_archive=$my_xabs
670
+	  darwin_curdir=`pwd`
671
+	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
672
+	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
673
+	  if test -n "$darwin_arches"; then 
674
+	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
675
+	    darwin_arch=
676
+	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
677
+	    for darwin_arch in  $darwin_arches ; do
678
+	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
679
+	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
680
+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
681
+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
682
+	      cd "$darwin_curdir"
683
+	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
684
+	    done # $darwin_arches
685
+      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
686
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
687
+	    darwin_file=
688
+	    darwin_files=
689
+	    for darwin_file in $darwin_filelist; do
690
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
691
+	      lipo -create -output "$darwin_file" $darwin_files
692
+	    done # $darwin_filelist
693
+	    ${rm}r unfat-$$
694
+	    cd "$darwin_orig_dir"
695
+	  else
696
+	    cd "$darwin_orig_dir"
697
+ 	    func_extract_an_archive "$my_xdir" "$my_xabs"
698
+	  fi # $darwin_arches
699
+	fi # $run
700
+	;;
701
+      *)
702
+        func_extract_an_archive "$my_xdir" "$my_xabs"
703
+        ;;
704
+      esac
705
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
706
+    done
707
+    func_extract_archives_result="$my_oldobjs"
708
+}
709
+# End of Shell function definitions
710
+#####################################
711
+
712
+# Darwin sucks
713
+eval std_shrext=\"$shrext_cmds\"
714
+
715
+disable_libs=no
716
+
460 717
 # Parse our command line options once, thoroughly.
461
-while test $# -gt 0
718
+while test "$#" -gt 0
462 719
 do
463 720
   arg="$1"
464 721
   shift
... ...
@@ -474,6 +761,34 @@ do
474 474
     execute_dlfiles)
475 475
       execute_dlfiles="$execute_dlfiles $arg"
476 476
       ;;
477
+    tag)
478
+      tagname="$arg"
479
+      preserve_args="${preserve_args}=$arg"
480
+
481
+      # Check whether tagname contains only valid characters
482
+      case $tagname in
483
+      *[!-_A-Za-z0-9,/]*)
484
+	$echo "$progname: invalid tag name: $tagname" 1>&2
485
+	exit $EXIT_FAILURE
486
+	;;
487
+      esac
488
+
489
+      case $tagname in
490
+      CC)
491
+	# Don't test for the "default" C tag, as we know, it's there, but
492
+	# not specially marked.
493
+	;;
494
+      *)
495
+	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
496
+	  taglist="$taglist $tagname"
497
+	  # Evaluate the configuration.
498
+	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
499
+	else
500
+	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
501
+	fi
502
+	;;
503
+      esac
504
+      ;;
477 505
     *)
478 506
       eval "$prev=\$arg"
479 507
       ;;
... ...
@@ -491,18 +806,27 @@ do
491 491
     ;;
492 492
 
493 493
   --version)
494
-    echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
495
-    exit 0
494
+    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
495
+    $echo
496
+    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
497
+    $echo "This is free software; see the source for copying conditions.  There is NO"
498
+    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
499
+    exit $?
496 500
     ;;
497 501
 
498 502
   --config)
499
-    sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
500
-    exit 0
503
+    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
504
+    # Now print the configurations for the tags.
505
+    for tagname in $taglist; do
506
+      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
507
+    done
508
+    exit $?
501 509
     ;;
502 510
 
503 511
   --debug)
504
-    echo "$progname: enabling shell trace mode"
512
+    $echo "$progname: enabling shell trace mode"
505 513
     set -x
514
+    preserve_args="$preserve_args $arg"
506 515
     ;;
507 516
 
508 517
   --dry-run | -n)
... ...
@@ -510,18 +834,18 @@ do
510 510
     ;;
511 511
 
512 512
   --features)
513
-    echo "host: $host"
513
+    $echo "host: $host"
514 514
     if test "$build_libtool_libs" = yes; then
515
-      echo "enable shared libraries"
515
+      $echo "enable shared libraries"
516 516
     else
517
-      echo "disable shared libraries"
517
+      $echo "disable shared libraries"
518 518
     fi
519 519
     if test "$build_old_libs" = yes; then
520
-      echo "enable static libraries"
520
+      $echo "enable static libraries"
521 521
     else
522
-      echo "disable static libraries"
522
+      $echo "disable static libraries"
523 523
     fi
524
-    exit 0
524
+    exit $?
525 525
     ;;
526 526
 
527 527
   --finish) mode="finish" ;;
... ...
@@ -533,6 +857,19 @@ do
533 533
 
534 534
   --quiet | --silent)
535 535
     show=:
536
+    preserve_args="$preserve_args $arg"
537
+    ;;
538
+
539
+  --tag)
540
+    prevopt="--tag"
541
+    prev=tag
542
+    preserve_args="$preserve_args --tag"
543
+    ;;
544
+  --tag=*)
545
+    set tag "$optarg" ${1+"$@"}
546
+    shift
547
+    prev=tag
548
+    preserve_args="$preserve_args --tag"
536 549
     ;;
537 550
 
538 551
   -dlopen)
... ...
@@ -543,7 +880,7 @@ do
543 543
   -*)
544 544
     $echo "$modename: unrecognized option \`$arg'" 1>&2
545 545
     $echo "$help" 1>&2
546
-    exit 1
546
+    exit $EXIT_FAILURE
547 547
     ;;
548 548
 
549 549
   *)
... ...
@@ -556,9 +893,21 @@ done
556 556
 if test -n "$prevopt"; then
557 557
   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
558 558
   $echo "$help" 1>&2
559
-  exit 1
559
+  exit $EXIT_FAILURE
560 560
 fi
561 561
 
562
+case $disable_libs in
563
+no) 
564
+  ;;
565
+shared)
566
+  build_libtool_libs=no
567
+  build_old_libs=yes
568
+  ;;
569
+static)
570
+  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
571
+  ;;
572
+esac
573
+
562 574
 # If this variable is set in any of the actions, the command in it
563 575
 # will be execed at the end.  This prevents here-documents from being
564 576
 # left over by shells.
... ...
@@ -568,8 +917,10 @@ if test -z "$show_help"; then
568 568
 
569 569
   # Infer the operation mode.
570 570
   if test -z "$mode"; then
571
+    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
572
+    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
571 573
     case $nonopt in
572
-    *cc | *++ | gcc* | *-gcc*)
574
+    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
573 575
       mode=link
574 576
       for arg
575 577
       do
... ...
@@ -610,7 +961,7 @@ if test -z "$show_help"; then
610 610
   if test -n "$execute_dlfiles" && test "$mode" != execute; then
611 611
     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
612 612
     $echo "$help" 1>&2
613
-    exit 1
613
+    exit $EXIT_FAILURE
614 614
   fi
615 615
 
616 616
   # Change the help message to a mode-specific one.
... ...
@@ -624,158 +975,127 @@ if test -z "$show_help"; then
624 624
     modename="$modename: compile"
625 625
     # Get the compilation command and the source file.
626 626
     base_compile=
627
-    prev=
628
-    lastarg=
629
-    srcfile="$nonopt"
627
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
628
+    suppress_opt=yes
630 629
     suppress_output=
630
+    arg_mode=normal
631
+    libobj=
632
+    later=
631 633
 
632
-    user_target=no
633 634
     for arg
634 635
     do
635
-      case $prev in
636
-      "") ;;
637
-      xcompiler)
638
-	# Aesthetically quote the previous argument.
639
-	prev=
640
-	lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
641
-
642
-	case $arg in
643
-	# Double-quote args containing other shell metacharacters.
644
-	# Many Bourne shells cannot handle close brackets correctly
645
-	# in scan sets, so we specify it separately.
646
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
647
-	  arg="\"$arg\""
648
-	  ;;
649
-	esac
636
+      case $arg_mode in
637
+      arg  )
638
+	# do not "continue".  Instead, add this to base_compile
639
+	lastarg="$arg"
640
+	arg_mode=normal
641
+	;;
650 642
 
651
-	# Add the previous argument to base_compile.
652
-	if test -z "$base_compile"; then
653
-	  base_compile="$lastarg"
654
-	else
655
-	  base_compile="$base_compile $lastarg"
656
-	fi
643
+      target )
644
+	libobj="$arg"
645
+	arg_mode=normal
657 646
 	continue
658 647
 	;;
659
-      esac
660 648
 
661
-      # Accept any command-line options.
662
-      case $arg in
663
-      -o)
664
-	if test "$user_target" != "no"; then
665
-	  $echo "$modename: you cannot specify \`-o' more than once" 1>&2
666
-	  exit 1
667
-	fi
668
-	user_target=next
669
-	;;
649
+      normal )
650
+	# Accept any command-line options.
651
+	case $arg in
652
+	-o)
653
+	  if test -n "$libobj" ; then
654
+	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
655
+	    exit $EXIT_FAILURE
656
+	  fi
657
+	  arg_mode=target
658
+	  continue
659
+	  ;;
670 660
 
671
-      -static)
672
-	build_old_libs=yes
673
-	continue
674
-	;;
661
+	-static | -prefer-pic | -prefer-non-pic)
662
+	  later="$later $arg"
663
+	  continue
664
+	  ;;
675 665
 
676
-      -prefer-pic)
677
-	pic_mode=yes
678
-	continue
679
-	;;
666
+	-no-suppress)
667
+	  suppress_opt=no
668
+	  continue
669
+	  ;;
680 670
 
681
-      -prefer-non-pic)
682
-	pic_mode=no
683
-	continue
684
-	;;
671
+	-Xcompiler)
672
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
673
+	  continue      #  The current "srcfile" will either be retained or
674
+	  ;;            #  replaced later.  I would guess that would be a bug.
685 675
 
686
-      -Xcompiler)
687
-	prev=xcompiler
688
-	continue
689
-	;;
676
+	-Wc,*)
677
+	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
678
+	  lastarg=
679
+	  save_ifs="$IFS"; IFS=','
680
+ 	  for arg in $args; do
681
+	    IFS="$save_ifs"
690 682
 
691
-      -Wc,*)
692
-	args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
693
-	lastarg=
694
-	save_ifs="$IFS"; IFS=','
695
-	for arg in $args; do
683
+	    # Double-quote args containing other shell metacharacters.
684
+	    # Many Bourne shells cannot handle close brackets correctly
685
+	    # in scan sets, so we specify it separately.
686
+	    case $arg in
687
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
688
+	      arg="\"$arg\""
689
+	      ;;
690
+	    esac
691
+	    lastarg="$lastarg $arg"
692
+	  done
696 693
 	  IFS="$save_ifs"
694
+	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
697 695
 
698
-	  # Double-quote args containing other shell metacharacters.
699
-	  # Many Bourne shells cannot handle close brackets correctly
700
-	  # in scan sets, so we specify it separately.
701
-	  case $arg in
702
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
703
-	    arg="\"$arg\""
704
-	    ;;
705
-	  esac
706
-	  lastarg="$lastarg $arg"
707
-	done
708
-	IFS="$save_ifs"
709
-	lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
710
-
711
-	# Add the arguments to base_compile.
712
-	if test -z "$base_compile"; then
713
-	  base_compile="$lastarg"
714
-	else
696
+	  # Add the arguments to base_compile.
715 697
 	  base_compile="$base_compile $lastarg"
716
-	fi
717
-	continue
718
-	;;
719
-      esac
698
+	  continue
699
+	  ;;
720 700
 
721
-      case $user_target in
722
-      next)
723
-	# The next one is the -o target name
724
-	user_target=yes
725
-	continue
726
-	;;
727
-      yes)
728
-	# We got the output file
729
-	user_target=set
730
-	libobj="$arg"
731
-	continue
701
+	* )
702
+	  # Accept the current argument as the source file.
703
+	  # The previous "srcfile" becomes the current argument.
704
+	  #
705
+	  lastarg="$srcfile"
706
+	  srcfile="$arg"
707
+	  ;;
708
+	esac  #  case $arg
732 709
 	;;
733
-      esac
734
-
735
-      # Accept the current argument as the source file.
736
-      lastarg="$srcfile"
737
-      srcfile="$arg"
710
+      esac    #  case $arg_mode
738 711
 
739 712
       # Aesthetically quote the previous argument.
740
-
741
-      # Backslashify any backslashes, double quotes, and dollar signs.
742
-      # These are the only characters that are still specially
743
-      # interpreted inside of double-quoted scrings.
744 713
       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
745 714
 
715
+      case $lastarg in
746 716
       # Double-quote args containing other shell metacharacters.
747 717
       # Many Bourne shells cannot handle close brackets correctly
748
-      # in scan sets, so we specify it separately.
749
-      case $lastarg in
718
+      # in scan sets, and some SunOS ksh mistreat backslash-escaping
719
+      # in scan sets (worked around with variable expansion),
720
+      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
721
+      # at all, so we specify them separately.
750 722
       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
751 723
 	lastarg="\"$lastarg\""
752 724
 	;;
753 725
       esac
754 726
 
755
-      # Add the previous argument to base_compile.
756
-      if test -z "$base_compile"; then
757
-	base_compile="$lastarg"
758
-      else
759
-	base_compile="$base_compile $lastarg"
760
-      fi
761
-    done
727
+      base_compile="$base_compile $lastarg"
728
+    done # for arg
762 729
 
763
-    case $user_target in
764
-    set)
730
+    case $arg_mode in
731
+    arg)
732
+      $echo "$modename: you must specify an argument for -Xcompile"
733
+      exit $EXIT_FAILURE
765 734
       ;;
766
-    no)
767
-      # Get the name of the library object.
768
-      libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
735
+    target)
736
+      $echo "$modename: you must specify a target with \`-o'" 1>&2
737
+      exit $EXIT_FAILURE
769 738
       ;;
770 739
     *)
771
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
772
-      exit 1
740
+      # Get the name of the library object.
741
+      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
773 742
       ;;
774 743
     esac
775 744
 
776 745
     # Recognize several different file suffixes.
777 746
     # If the user specifies -o file.o, it is replaced with file.lo
778
-    xform='[cCFSfmso]'
747
+    xform='[cCFSifmso]'
779 748
     case $libobj in
780 749
     *.ada) xform=ada ;;
781 750
     *.adb) xform=adb ;;
... ...
@@ -783,10 +1103,13 @@ if test -z "$show_help"; then
783 783
     *.asm) xform=asm ;;
784 784
     *.c++) xform=c++ ;;
785 785
     *.cc) xform=cc ;;
786
+    *.ii) xform=ii ;;
787
+    *.class) xform=class ;;
786 788
     *.cpp) xform=cpp ;;
787 789
     *.cxx) xform=cxx ;;
788 790
     *.f90) xform=f90 ;;
789 791
     *.for) xform=for ;;
792
+    *.java) xform=java ;;
790 793
     esac
791 794
 
792 795
     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
... ...
@@ -795,25 +1118,63 @@ if test -z "$show_help"; then
795 795
     *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
796 796
     *)
797 797
       $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
798
-      exit 1
798
+      exit $EXIT_FAILURE
799 799
       ;;
800 800
     esac
801 801
 
802
+    func_infer_tag $base_compile
803
+
804
+    for arg in $later; do
805
+      case $arg in
806
+      -static)
807
+	build_old_libs=yes
808
+	continue
809
+	;;
810
+
811
+      -prefer-pic)
812
+	pic_mode=yes
813
+	continue
814
+	;;
815
+
816
+      -prefer-non-pic)
817
+	pic_mode=no
818
+	continue
819
+	;;
820
+      esac
821
+    done
822
+
823
+    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
824
+    case $qlibobj in
825
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
826
+	qlibobj="\"$qlibobj\"" ;;
827
+    esac
828
+    test "X$libobj" != "X$qlibobj" \
829
+	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
830
+	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
831
+    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
832
+    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
833
+    if test "X$xdir" = "X$obj"; then
834
+      xdir=
835
+    else
836
+      xdir=$xdir/
837
+    fi
838
+    lobj=${xdir}$objdir/$objname
839
+
802 840
     if test -z "$base_compile"; then
803 841
       $echo "$modename: you must specify a compilation command" 1>&2
804 842
       $echo "$help" 1>&2
805
-      exit 1
843
+      exit $EXIT_FAILURE
806 844
     fi
807 845
 
808 846
     # Delete any leftover library objects.
809 847
     if test "$build_old_libs" = yes; then
810
-      removelist="$obj $libobj"
848
+      removelist="$obj $lobj $libobj ${libobj}T"
811 849
     else
812
-      removelist="$libobj"
850
+      removelist="$lobj $libobj ${libobj}T"
813 851
     fi
814 852
 
815 853
     $run $rm $removelist
816
-    trap "$run $rm $removelist; exit 1" 1 2 15
854
+    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
817 855
 
818 856
     # On Cygwin there's no "real" PIC flag so we must build both object types
819 857
     case $host_os in
... ...
@@ -821,7 +1182,7 @@ if test -z "$show_help"; then
821 821
       pic_mode=default
822 822
       ;;
823 823
     esac
824
-    if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
824
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
825 825
       # non-PIC code in shared libraries is not supported
826 826
       pic_mode=default
827 827
     fi
... ...
@@ -832,8 +1193,9 @@ if test -z "$show_help"; then
832 832
       output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
833 833
       lockfile="$output_obj.lock"
834 834
       removelist="$removelist $output_obj $lockfile"
835
-      trap "$run $rm $removelist; exit 1" 1 2 15
835
+      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
836 836
     else
837
+      output_obj=
837 838
       need_locks=no
838 839
       lockfile=
839 840
     fi
... ...
@@ -841,13 +1203,13 @@ if test -z "$show_help"; then
841 841
     # Lock this critical section if it is needed
842 842
     # We use this script file to make the link, it avoids creating a new file
843 843
     if test "$need_locks" = yes; then
844
-      until $run ln "$0" "$lockfile" 2>/dev/null; do
844
+      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
845 845
 	$show "Waiting for $lockfile to be removed"
846 846
 	sleep 2
847 847
       done
848 848
     elif test "$need_locks" = warn; then
849 849
       if test -f "$lockfile"; then
850
-	echo "\
850
+	$echo "\
851 851
 *** ERROR, $lockfile exists and contains:
852 852
 `cat $lockfile 2>/dev/null`
853 853
 
... ...
@@ -859,14 +1221,33 @@ avoid parallel builds (make -j) in this platform, or get a better
859 859
 compiler."
860 860
 
861 861
 	$run $rm $removelist
862
-	exit 1
862
+	exit $EXIT_FAILURE
863 863
       fi
864
-      echo $srcfile > "$lockfile"
864
+      $echo "$srcfile" > "$lockfile"
865 865
     fi
866 866
 
867 867
     if test -n "$fix_srcfile_path"; then
868 868
       eval srcfile=\"$fix_srcfile_path\"
869 869
     fi
870
+    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
871
+    case $qsrcfile in
872
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
873
+      qsrcfile="\"$qsrcfile\"" ;;
874
+    esac
875
+
876
+    $run $rm "$libobj" "${libobj}T"
877
+
878
+    # Create a libtool object file (analogous to a ".la" file),
879
+    # but don't create it if we're doing a dry run.
880
+    test -z "$run" && cat > ${libobj}T <<EOF
881
+# $libobj - a libtool object file
882
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
883
+#
884
+# Please DO NOT delete this file!
885
+# It is necessary for linking the library.
886
+
887
+# Name of the PIC object.
888
+EOF
870 889
 
871 890
     # Only build a PIC object if we are building libtool libraries.
872 891
     if test "$build_libtool_libs" = yes; then
... ...
@@ -874,53 +1255,38 @@ compiler."
874 874
       fbsd_hideous_sh_bug=$base_compile
875 875
 
876 876
       if test "$pic_mode" != no; then
877
-	# All platforms use -DPIC, to notify preprocessed assembler code.
878
-	command="$base_compile $srcfile $pic_flag -DPIC"
877
+	command="$base_compile $qsrcfile $pic_flag"
879 878
       else
880 879
 	# Don't build PIC code
881
-	command="$base_compile $srcfile"
880
+	command="$base_compile $qsrcfile"
882 881
       fi
883
-      if test "$build_old_libs" = yes; then
884
-	lo_libobj="$libobj"
885
-	dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
886
-	if test "X$dir" = "X$libobj"; then
887
-	  dir="$objdir"
888
-	else
889
-	  dir="$dir/$objdir"
890
-	fi
891
-	libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
892 882
 
893
-	if test -d "$dir"; then
894
-	  $show "$rm $libobj"
895
-	  $run $rm $libobj
896
-	else
897
-	  $show "$mkdir $dir"
898
-	  $run $mkdir $dir
899
-	  status=$?
900
-	  if test $status -ne 0 && test ! -d $dir; then
901
-	    exit $status
902
-	  fi
883
+      if test ! -d "${xdir}$objdir"; then
884
+	$show "$mkdir ${xdir}$objdir"
885
+	$run $mkdir ${xdir}$objdir
886
+	exit_status=$?
887
+	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
888
+	  exit $exit_status
903 889
 	fi
904 890
       fi
905
-      if test "$compiler_o_lo" = yes; then
906
-	output_obj="$libobj"
907
-	command="$command -o $output_obj"
908
-      elif test "$compiler_c_o" = yes; then
909
-	output_obj="$obj"
910
-	command="$command -o $output_obj"
891
+
892
+      if test -z "$output_obj"; then
893
+	# Place PIC objects in $objdir
894
+	command="$command -o $lobj"
911 895
       fi
912 896
 
913
-      $run $rm "$output_obj"
897
+      $run $rm "$lobj" "$output_obj"
898
+
914 899
       $show "$command"
915 900
       if $run eval "$command"; then :
916 901
       else
917 902
 	test -n "$output_obj" && $run $rm $removelist
918
-	exit 1
903
+	exit $EXIT_FAILURE
919 904
       fi
920 905
 
921 906
       if test "$need_locks" = warn &&
922
-	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
923
-	echo "\
907
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
908
+	$echo "\
924 909
 *** ERROR, $lockfile contains:
925 910
 `cat $lockfile 2>/dev/null`
926 911
 
... ...
@@ -935,13 +1301,13 @@ avoid parallel builds (make -j) in this platform, or get a better
935 935
 compiler."
936 936
 
937 937
 	$run $rm $removelist
938
-	exit 1
938
+	exit $EXIT_FAILURE
939 939
       fi
940 940
 
941 941
       # Just move the object if needed, then go on to compile the next one
942
-      if test x"$output_obj" != x"$libobj"; then
943
-	$show "$mv $output_obj $libobj"
944
-	if $run $mv $output_obj $libobj; then :
942
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
943
+	$show "$mv $output_obj $lobj"
944
+	if $run $mv $output_obj $lobj; then :
945 945
 	else
946 946
 	  error=$?
947 947
 	  $run $rm $removelist
... ...
@@ -949,77 +1315,50 @@ compiler."
949 949
 	fi
950 950
       fi
951 951
 
952
-      # If we have no pic_flag, then copy the object into place and finish.
953
-      if (test -z "$pic_flag" || test "$pic_mode" != default) &&
954
-	 test "$build_old_libs" = yes; then
955
-	# Rename the .lo from within objdir to obj
956
-	if test -f $obj; then
957
-	  $show $rm $obj
958
-	  $run $rm $obj
959
-	fi
952
+      # Append the name of the PIC object to the libtool object file.
953
+      test -z "$run" && cat >> ${libobj}T <<EOF
954
+pic_object='$objdir/$objname'
960 955
 
961
-	$show "$mv $libobj $obj"
962
-	if $run $mv $libobj $obj; then :
963
-	else
964
-	  error=$?
965
-	  $run $rm $removelist
966
-	  exit $error
967
-	fi
956
+EOF
968 957
 
969
-	xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
970
-	if test "X$xdir" = "X$obj"; then
971
-	  xdir="."
972
-	else
973
-	  xdir="$xdir"
974
-	fi
975
-	baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
976
-	libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
977
-	# Now arrange that obj and lo_libobj become the same file
978
-	$show "(cd $xdir && $LN_S $baseobj $libobj)"
979
-	if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
980
-	  # Unlock the critical section if it was locked
981
-	  if test "$need_locks" != no; then
982
-	    $run $rm "$lockfile"
983
-	  fi
984
-	  exit 0
985
-	else
986
-	  error=$?
987
-	  $run $rm $removelist
988
-	  exit $error
989
-	fi
958
+      # Allow error messages only from the first compilation.
959
+      if test "$suppress_opt" = yes; then
960
+        suppress_output=' >/dev/null 2>&1'
990 961
       fi
962
+    else
963
+      # No PIC object so indicate it doesn't exist in the libtool
964
+      # object file.
965
+      test -z "$run" && cat >> ${libobj}T <<EOF
966
+pic_object=none
991 967
 
992
-      # Allow error messages only from the first compilation.
993
-      suppress_output=' >/dev/null 2>&1'
968
+EOF
994 969
     fi
995 970
 
996 971
     # Only build a position-dependent object if we build old libraries.
997 972
     if test "$build_old_libs" = yes; then
998 973
       if test "$pic_mode" != yes; then
999 974
 	# Don't build PIC code
1000
-	command="$base_compile $srcfile"
975
+	command="$base_compile $qsrcfile"
1001 976
       else
1002
-	# All platforms use -DPIC, to notify preprocessed assembler code.
1003
-	command="$base_compile $srcfile $pic_flag -DPIC"
977
+	command="$base_compile $qsrcfile $pic_flag"
1004 978
       fi
1005 979
       if test "$compiler_c_o" = yes; then
1006 980
 	command="$command -o $obj"
1007
-	output_obj="$obj"
1008 981
       fi
1009 982
 
1010 983
       # Suppress compiler output if we already did a PIC compilation.
1011 984
       command="$command$suppress_output"
1012
-      $run $rm "$output_obj"
985
+      $run $rm "$obj" "$output_obj"
1013 986
       $show "$command"
1014 987
       if $run eval "$command"; then :
1015 988
       else
1016 989
 	$run $rm $removelist
1017
-	exit 1
990
+	exit $EXIT_FAILURE
1018 991
       fi
1019 992
 
1020 993
       if test "$need_locks" = warn &&
1021
-	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
1022
-	echo "\
994
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
995
+	$echo "\
1023 996
 *** ERROR, $lockfile contains:
1024 997
 `cat $lockfile 2>/dev/null`
1025 998
 
... ...
@@ -1034,11 +1373,11 @@ avoid parallel builds (make -j) in this platform, or get a better
1034 1034
 compiler."
1035 1035
 
1036 1036
 	$run $rm $removelist
1037
-	exit 1
1037
+	exit $EXIT_FAILURE
1038 1038
       fi
1039 1039
 
1040 1040
       # Just move the object if needed
1041
-      if test x"$output_obj" != x"$obj"; then
1041
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1042 1042
 	$show "$mv $output_obj $obj"
1043 1043
 	if $run $mv $output_obj $obj; then :
1044 1044
 	else
... ...
@@ -1048,29 +1387,31 @@ compiler."
1048 1048
 	fi
1049 1049
       fi
1050 1050
 
1051
-      # Create an invalid libtool object if no PIC, so that we do not
1052
-      # accidentally link it into a program.
1053
-      if test "$build_libtool_libs" != yes; then
1054
-	$show "echo timestamp > $libobj"
1055
-	$run eval "echo timestamp > \$libobj" || exit $?
1056
-      else
1057
-	# Move the .lo from within objdir
1058
-	$show "$mv $libobj $lo_libobj"
1059
-	if $run $mv $libobj $lo_libobj; then :
1060
-	else
1061
-	  error=$?
1062
-	  $run $rm $removelist
1063
-	  exit $error
1064
-	fi
1065
-      fi
1051
+      # Append the name of the non-PIC object the libtool object file.
1052
+      # Only append if the libtool object file exists.
1053
+      test -z "$run" && cat >> ${libobj}T <<EOF
1054
+# Name of the non-PIC object.
1055
+non_pic_object='$objname'
1056
+
1057
+EOF
1058
+    else
1059
+      # Append the name of the non-PIC object the libtool object file.
1060
+      # Only append if the libtool object file exists.
1061
+      test -z "$run" && cat >> ${libobj}T <<EOF
1062
+# Name of the non-PIC object.
1063
+non_pic_object=none
1064
+
1065
+EOF
1066 1066
     fi
1067 1067
 
1068
+    $run $mv "${libobj}T" "${libobj}"
1069
+
1068 1070
     # Unlock the critical section if it was locked
1069 1071
     if test "$need_locks" != no; then
1070 1072
       $run $rm "$lockfile"
1071 1073
     fi
1072 1074
 
1073
-    exit 0
1075
+    exit $EXIT_SUCCESS
1074 1076
     ;;
1075 1077
 
1076 1078
   # libtool link mode
... ...
@@ -1081,7 +1422,7 @@ compiler."
1081 1081
       # It is impossible to link a dll without this setting, and
1082 1082
       # we shouldn't force the makefile maintainer to figure out
1083 1083
       # which system we are compiling for in order to pass an extra
1084
-      # flag for every libtool invokation.
1084
+      # flag for every libtool invocation.
1085 1085
       # allow_undefined=no
1086 1086
 
1087 1087
       # FIXME: Unfortunately, there are problems with the above when trying
... ...
@@ -1096,6 +1437,7 @@ compiler."
1096 1096
       ;;
1097 1097
     esac
1098 1098
     libtool_args="$nonopt"
1099
+    base_compile="$nonopt $@"
1099 1100
     compile_command="$nonopt"
1100 1101
     finalize_command="$nonopt"
1101 1102
 
... ...
@@ -1111,6 +1453,7 @@ compiler."
1111 1111
     linker_flags=
1112 1112
     dllsearchpath=
1113 1113
     lib_search_path=`pwd`
1114
+    inst_prefix_dir=
1114 1115
 
1115 1116
     avoid_version=no
1116 1117
     dlfiles=
... ...
@@ -1125,6 +1468,9 @@ compiler."
1125 1125
     module=no
1126 1126
     no_install=no
1127 1127
     objs=
1128
+    non_pic_objects=
1129
+    notinst_path= # paths that contain not-installed libtool libraries
1130
+    precious_files_regex=
1128 1131
     prefer_static_libs=no
1129 1132
     preload=no
1130 1133
     prev=
... ...
@@ -1136,6 +1482,9 @@ compiler."
1136 1136
     temp_rpath=
1137 1137
     thread_safe=no
1138 1138
     vinfo=
1139
+    vinfo_number=no
1140
+
1141
+    func_infer_tag $base_compile
1139 1142
 
1140 1143
     # We need to know -static, to get the right output filenames.
1141 1144
     for arg
... ...
@@ -1149,14 +1498,15 @@ compiler."
1149 1149
 	  if test -n "$link_static_flag"; then
1150 1150
 	    dlopen_self=$dlopen_self_static
1151 1151
 	  fi
1152
+	  prefer_static_libs=yes
1152 1153
 	else
1153 1154
 	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1154 1155
 	    dlopen_self=$dlopen_self_static
1155 1156
 	  fi
1157
+	  prefer_static_libs=built
1156 1158
 	fi
1157 1159
 	build_libtool_libs=no
1158 1160
 	build_old_libs=yes
1159
-	prefer_static_libs=yes
1160 1161
 	break
1161 1162
 	;;
1162 1163
       esac
... ...
@@ -1166,7 +1516,7 @@ compiler."
1166 1166
     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1167 1167
 
1168 1168
     # Go through the arguments, transforming them on the way.
1169
-    while test $# -gt 0; do
1169
+    while test "$#" -gt 0; do
1170 1170
       arg="$1"
1171 1171
       shift
1172 1172
       case $arg in
... ...
@@ -1231,7 +1581,7 @@ compiler."
1231 1231
 	  export_symbols="$arg"
1232 1232
 	  if test ! -f "$arg"; then
1233 1233
 	    $echo "$modename: symbol file \`$arg' does not exist"
1234
-	    exit 1
1234
+	    exit $EXIT_FAILURE
1235 1235
 	  fi
1236 1236
 	  prev=
1237 1237
 	  continue
... ...
@@ -1241,18 +1591,140 @@ compiler."
1241 1241
 	  prev=
1242 1242
 	  continue
1243 1243
 	  ;;
1244
+	inst_prefix)
1245
+	  inst_prefix_dir="$arg"
1246
+	  prev=
1247
+	  continue
1248
+	  ;;
1249
+	precious_regex)
1250
+	  precious_files_regex="$arg"
1251
+	  prev=
1252
+	  continue
1253
+	  ;;
1244 1254
 	release)
1245 1255
 	  release="-$arg"
1246 1256
 	  prev=
1247 1257
 	  continue
1248 1258
 	  ;;
1259
+	objectlist)
1260
+	  if test -f "$arg"; then
1261
+	    save_arg=$arg
1262
+	    moreargs=
1263
+	    for fil in `cat $save_arg`
1264
+	    do
1265
+#	      moreargs="$moreargs $fil"
1266
+	      arg=$fil
1267
+	      # A libtool-controlled object.
1268
+
1269
+	      # Check to see that this really is a libtool object.
1270
+	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1271
+		pic_object=
1272
+		non_pic_object=
1273
+
1274
+		# Read the .lo file
1275
+		# If there is no directory component, then add one.
1276
+		case $arg in
1277
+		*/* | *\\*) . $arg ;;
1278
+		*) . ./$arg ;;
1279
+		esac
1280
+
1281
+		if test -z "$pic_object" || \
1282
+		   test -z "$non_pic_object" ||
1283
+		   test "$pic_object" = none && \
1284
+		   test "$non_pic_object" = none; then
1285
+		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1286
+		  exit $EXIT_FAILURE
1287
+		fi
1288
+
1289
+		# Extract subdirectory from the argument.
1290
+		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1291
+		if test "X$xdir" = "X$arg"; then
1292
+		  xdir=
1293
+		else
1294
+		  xdir="$xdir/"
1295
+		fi
1296
+
1297
+		if test "$pic_object" != none; then
1298
+		  # Prepend the subdirectory the object is found in.
1299
+		  pic_object="$xdir$pic_object"
1300
+
1301
+		  if test "$prev" = dlfiles; then
1302
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1303
+		      dlfiles="$dlfiles $pic_object"
1304
+		      prev=
1305
+		      continue
1306
+		    else
1307
+		      # If libtool objects are unsupported, then we need to preload.
1308
+		      prev=dlprefiles
1309
+		    fi
1310
+		  fi
1311
+
1312
+		  # CHECK ME:  I think I busted this.  -Ossama
1313
+		  if test "$prev" = dlprefiles; then
1314
+		    # Preload the old-style object.
1315
+		    dlprefiles="$dlprefiles $pic_object"
1316
+		    prev=
1317
+		  fi
1318
+
1319
+		  # A PIC object.
1320
+		  libobjs="$libobjs $pic_object"
1321
+		  arg="$pic_object"
1322
+		fi
1323
+
1324
+		# Non-PIC object.
1325
+		if test "$non_pic_object" != none; then
1326
+		  # Prepend the subdirectory the object is found in.
1327
+		  non_pic_object="$xdir$non_pic_object"
1328
+
1329
+		  # A standard non-PIC object
1330
+		  non_pic_objects="$non_pic_objects $non_pic_object"
1331
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
1332
+		    arg="$non_pic_object"
1333
+		  fi
1334
+		else
1335
+		  # If the PIC object exists, use it instead.
1336
+		  # $xdir was prepended to $pic_object above.
1337
+		  non_pic_object="$pic_object"
1338
+		  non_pic_objects="$non_pic_objects $non_pic_object"
1339
+		fi
1340
+	      else
1341
+		# Only an error if not doing a dry-run.
1342
+		if test -z "$run"; then
1343
+		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1344
+		  exit $EXIT_FAILURE
1345
+		else
1346
+		  # Dry-run case.
1347
+
1348
+		  # Extract subdirectory from the argument.
1349
+		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1350
+		  if test "X$xdir" = "X$arg"; then
1351
+		    xdir=
1352
+		  else
1353
+		    xdir="$xdir/"
1354
+		  fi
1355
+
1356
+		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1357
+		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1358
+		  libobjs="$libobjs $pic_object"
1359
+		  non_pic_objects="$non_pic_objects $non_pic_object"
1360
+		fi
1361
+	      fi
1362
+	    done
1363
+	  else
1364
+	    $echo "$modename: link input file \`$save_arg' does not exist"
1365
+	    exit $EXIT_FAILURE
1366
+	  fi
1367
+	  arg=$save_arg
1368
+	  prev=
1369
+	  continue
1370
+	  ;;
1249 1371
 	rpath | xrpath)
1250 1372
 	  # We need an absolute path.
1251 1373
 	  case $arg in
1252 1374
 	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1253 1375
 	  *)
1254 1376
 	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1255
-	    exit 1
1377
+	    exit $EXIT_FAILURE
1256 1378
 	    ;;
1257 1379
 	  esac
1258 1380
 	  if test "$prev" = rpath; then
... ...
@@ -1284,13 +1756,33 @@ compiler."
1284 1284
 	  finalize_command="$finalize_command $wl$qarg"
1285 1285
 	  continue
1286 1286
 	  ;;
1287
+	xcclinker)
1288
+	  linker_flags="$linker_flags $qarg"
1289
+	  compiler_flags="$compiler_flags $qarg"
1290
+	  prev=
1291
+	  compile_command="$compile_command $qarg"
1292
+	  finalize_command="$finalize_command $qarg"
1293
+	  continue
1294
+	  ;;
1295
+	shrext)
1296
+  	  shrext_cmds="$arg"
1297
+	  prev=
1298
+	  continue
1299
+	  ;;
1300
+	darwin_framework|darwin_framework_skip)
1301
+	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1302
+	  compile_command="$compile_command $arg"
1303
+	  finalize_command="$finalize_command $arg"
1304
+	  prev=
1305
+	  continue
1306
+	  ;;
1287 1307
 	*)
1288 1308
 	  eval "$prev=\"\$arg\""
1289 1309
 	  prev=
1290 1310
 	  continue
1291 1311
 	  ;;
1292 1312
 	esac
1293
-      fi # test -n $prev
1313
+      fi # test -n "$prev"
1294 1314
 
1295 1315
       prevarg="$arg"
1296 1316
 
... ...
@@ -1332,7 +1824,7 @@ compiler."
1332 1332
       -export-symbols | -export-symbols-regex)
1333 1333
 	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1334 1334
 	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1335
-	  exit 1
1335
+	  exit $EXIT_FAILURE
1336 1336
 	fi
1337 1337
 	if test "X$arg" = "X-export-symbols"; then
1338 1338
 	  prev=expsyms
... ...
@@ -1342,11 +1834,28 @@ compiler."
1342 1342
 	continue
1343 1343
 	;;
1344 1344
 
1345
+      -framework|-arch|-isysroot)
1346
+	case " $CC " in
1347
+	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1348
+		prev=darwin_framework_skip ;;
1349
+	  *) compiler_flags="$compiler_flags $arg"
1350
+	     prev=darwin_framework ;;
1351
+	esac
1352
+	compile_command="$compile_command $arg"
1353
+	finalize_command="$finalize_command $arg"
1354
+	continue
1355
+	;;
1356
+
1357
+      -inst-prefix-dir)
1358
+	prev=inst_prefix
1359
+	continue
1360
+	;;
1361
+
1345 1362
       # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1346 1363
       # so, if we see these flags be careful not to treat them like -L
1347 1364
       -L[A-Z][A-Z]*:*)
1348 1365
 	case $with_gcc/$host in
1349
-	no/*-*-irix* | no/*-*-nonstopux*)
1366
+	no/*-*-irix* | /*-*-irix*)
1350 1367
 	  compile_command="$compile_command $arg"
1351 1368
 	  finalize_command="$finalize_command $arg"
1352 1369
 	  ;;
... ...
@@ -1363,7 +1872,8 @@ compiler."
1363 1363
 	  absdir=`cd "$dir" && pwd`
1364 1364
 	  if test -z "$absdir"; then
1365 1365
 	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1366
-	    exit 1
1366
+	    absdir="$dir"
1367
+	    notinst_path="$notinst_path $dir"
1367 1368
 	  fi
1368 1369
 	  dir="$absdir"
1369 1370
 	  ;;
... ...
@@ -1377,10 +1887,15 @@ compiler."
1377 1377
 	esac
1378 1378
 	case $host in
1379 1379
 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1380
+	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1380 1381
 	  case :$dllsearchpath: in
1381 1382
 	  *":$dir:"*) ;;
1382 1383
 	  *) dllsearchpath="$dllsearchpath:$dir";;
1383 1384
 	  esac
1385
+	  case :$dllsearchpath: in
1386
+	  *":$testbindir:"*) ;;
1387
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1388
+	  esac
1384 1389
 	  ;;
1385 1390
 	esac
1386 1391
 	continue
... ...
@@ -1389,43 +1904,98 @@ compiler."
1389 1389
       -l*)
1390 1390
 	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1391 1391
 	  case $host in
1392
-	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
1392
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1393 1393
 	    # These systems don't actually have a C or math library (as such)
1394 1394
 	    continue
1395 1395
 	    ;;
1396
-	  *-*-mingw* | *-*-os2*)
1396
+	  *-*-os2*)
1397 1397
 	    # These systems don't actually have a C library (as such)
1398 1398
 	    test "X$arg" = "X-lc" && continue
1399 1399
 	    ;;
1400
-	  *-*-openbsd* | *-*-freebsd*)
1400
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1401 1401
 	    # Do not include libc due to us having libc/libc_r.
1402 1402
 	    test "X$arg" = "X-lc" && continue
1403 1403
 	    ;;
1404
+	  *-*-rhapsody* | *-*-darwin1.[012])
1405
+	    # Rhapsody C and math libraries are in the System framework
1406
+	    deplibs="$deplibs -framework System"
1407
+	    continue
1408
+	    ;;
1409
+	  *-*-sco3.2v5* | *-*-sco5v6*)
1410
+	    # Causes problems with __ctype
1411
+	    test "X$arg" = "X-lc" && continue
1412
+	    ;;
1413
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1414
+	    # Compiler inserts libc in the correct place for threads to work
1415
+	    test "X$arg" = "X-lc" && continue
1416
+	    ;;
1404 1417
 	  esac
1405
-	 # This change is required for -lc_r under FreeBSD / Tomasz Kojm
1406
-	 #elif test "X$arg" = "X-lc_r"; then
1407
-	 # case $host in
1408
-	 #*-*-openbsd* | *-*-freebsd*)
1409
-	 #   # Do not include libc_r directly, use -pthread flag.
1410
-	 #   continue
1411
-	 #   ;;
1412
-	 # esac
1418
+	elif test "X$arg" = "X-lc_r"; then
1419
+	 case $host in
1420
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1421
+	   # Do not include libc_r directly, use -pthread flag.
1422
+	   continue
1423
+	   ;;
1424
+	 esac
1413 1425
 	fi
1414 1426
 	deplibs="$deplibs $arg"
1415 1427
 	continue
1416 1428
 	;;
1417 1429
 
1418
-      # We need this change for old -pthread *BSD style / Tomasz Kojm
1419
-      -pthread)
1420
-      	deplibs="$deplibs -pthread"
1421
-      	continue
1422
-      	;;
1430
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1431
+      # classes, name mangling, and exception handling.
1432
+      -model)
1433
+	compile_command="$compile_command $arg"
1434
+	compiler_flags="$compiler_flags $arg"
1435
+	finalize_command="$finalize_command $arg"
1436
+	prev=xcompiler
1437
+	continue
1438
+	;;
1439
+
1440
+     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1441
+	compiler_flags="$compiler_flags $arg"
1442
+	compile_command="$compile_command $arg"
1443
+	finalize_command="$finalize_command $arg"
1444
+	continue
1445
+	;;
1423 1446
 
1424 1447
       -module)
1425 1448
 	module=yes
1426 1449
 	continue
1427 1450
 	;;
1428 1451
 
1452
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1453
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1454
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1455
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
1456
+      # -q* pass through compiler args for the IBM compiler
1457
+      # -m* pass through architecture-specific compiler args for GCC
1458
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
1459
+      # compiler args for GCC
1460
+      # -pg pass through profiling flag for GCC
1461
+      # @file GCC response files
1462
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1463
+      -t[45]*|-txscale*|@*)
1464
+
1465
+	# Unknown arguments in both finalize_command and compile_command need
1466
+	# to be aesthetically quoted because they are evaled later.
1467
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1468
+	case $arg in
1469
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1470
+	  arg="\"$arg\""
1471
+	  ;;
1472
+	esac
1473
+        compile_command="$compile_command $arg"
1474
+        finalize_command="$finalize_command $arg"
1475
+        compiler_flags="$compiler_flags $arg"
1476
+        continue
1477
+        ;;
1478
+
1479
+      -shrext)
1480
+	prev=shrext
1481
+	continue
1482
+	;;
1483
+
1429 1484
       -no-fast-install)
1430 1485
 	fast_install=no
1431 1486
 	continue
... ...
@@ -1450,8 +2020,18 @@ compiler."
1450 1450
 	continue
1451 1451
 	;;
1452 1452
 
1453
+      -objectlist)
1454
+	prev=objectlist
1455
+	continue
1456
+	;;
1457
+
1453 1458
       -o) prev=output ;;
1454 1459
 
1460
+      -precious-files-regex)
1461
+	prev=precious_regex
1462
+	continue
1463
+	;;
1464
+
1455 1465
       -release)
1456 1466
 	prev=release
1457 1467
 	continue
... ...
@@ -1474,7 +2054,7 @@ compiler."
1474 1474
 	[\\/]* | [A-Za-z]:[\\/]*) ;;
1475 1475
 	*)
1476 1476
 	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1477
-	  exit 1
1477
+	  exit $EXIT_FAILURE
1478 1478
 	  ;;
1479 1479
 	esac
1480 1480
 	case "$xrpath " in
... ...
@@ -1502,6 +2082,11 @@ compiler."
1502 1502
 	prev=vinfo
1503 1503
 	continue
1504 1504
 	;;
1505
+      -version-number)
1506
+	prev=vinfo
1507
+	vinfo_number=yes
1508
+	continue
1509
+	;;
1505 1510
 
1506 1511
       -Wc,*)
1507 1512
 	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
... ...
@@ -1550,6 +2135,11 @@ compiler."
1550 1550
 	continue
1551 1551
 	;;
1552 1552
 
1553
+      -XCClinker)
1554
+	prev=xcclinker
1555
+	continue
1556
+	;;
1557
+
1553 1558
       # Some other compiler flag.
1554 1559
       -* | +*)
1555 1560
 	# Unknown arguments in both finalize_command and compile_command need
... ...
@@ -1562,29 +2152,106 @@ compiler."
1562 1562
 	esac
1563 1563
 	;;
1564 1564
 
1565
-      *.lo | *.$objext)
1566
-	# A library or standard object.
1567
-	if test "$prev" = dlfiles; then
1568
-	  # This file was specified with -dlopen.
1569
-	  if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1570
-	    dlfiles="$dlfiles $arg"
1571
-	    prev=
1572
-	    continue
1573
-	  else
1574
-	    # If libtool objects are unsupported, then we need to preload.
1575
-	    prev=dlprefiles
1576
-	  fi
1577
-	fi
1565
+      *.$objext)
1566
+	# A standard object.
1567
+	objs="$objs $arg"
1568
+	;;
1578 1569
 
1579
-	if test "$prev" = dlprefiles; then
1580
-	  # Preload the old-style object.
1581
-	  dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1582
-	  prev=
1583
-	else
1570
+      *.lo)
1571
+	# A libtool-controlled object.
1572
+
1573
+	# Check to see that this really is a libtool object.
1574
+	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1575
+	  pic_object=
1576
+	  non_pic_object=
1577
+
1578
+	  # Read the .lo file
1579
+	  # If there is no directory component, then add one.
1584 1580
 	  case $arg in
1585
-	  *.lo) libobjs="$libobjs $arg" ;;
1586
-	  *) objs="$objs $arg" ;;
1581
+	  */* | *\\*) . $arg ;;
1582
+	  *) . ./$arg ;;
1587 1583
 	  esac
1584
+
1585
+	  if test -z "$pic_object" || \
1586
+	     test -z "$non_pic_object" ||
1587
+	     test "$pic_object" = none && \
1588
+	     test "$non_pic_object" = none; then
1589
+	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1590
+	    exit $EXIT_FAILURE
1591
+	  fi
1592
+
1593
+	  # Extract subdirectory from the argument.
1594
+	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1595
+	  if test "X$xdir" = "X$arg"; then
1596
+	    xdir=
1597
+ 	  else
1598
+	    xdir="$xdir/"
1599
+	  fi
1600
+
1601
+	  if test "$pic_object" != none; then
1602
+	    # Prepend the subdirectory the object is found in.
1603
+	    pic_object="$xdir$pic_object"
1604
+
1605
+	    if test "$prev" = dlfiles; then
1606
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1607
+		dlfiles="$dlfiles $pic_object"
1608
+		prev=
1609
+		continue
1610
+	      else
1611
+		# If libtool objects are unsupported, then we need to preload.
1612
+		prev=dlprefiles
1613
+	      fi
1614
+	    fi
1615
+
1616
+	    # CHECK ME:  I think I busted this.  -Ossama
1617
+	    if test "$prev" = dlprefiles; then
1618
+	      # Preload the old-style object.
1619
+	      dlprefiles="$dlprefiles $pic_object"
1620
+	      prev=
1621
+	    fi
1622
+
1623
+	    # A PIC object.
1624
+	    libobjs="$libobjs $pic_object"
1625
+	    arg="$pic_object"
1626
+	  fi
1627
+
1628
+	  # Non-PIC object.
1629
+	  if test "$non_pic_object" != none; then
1630
+	    # Prepend the subdirectory the object is found in.
1631
+	    non_pic_object="$xdir$non_pic_object"
1632
+
1633
+	    # A standard non-PIC object
1634
+	    non_pic_objects="$non_pic_objects $non_pic_object"
1635
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
1636
+	      arg="$non_pic_object"
1637
+	    fi
1638
+	  else
1639
+	    # If the PIC object exists, use it instead.
1640
+	    # $xdir was prepended to $pic_object above.
1641
+	    non_pic_object="$pic_object"
1642
+	    non_pic_objects="$non_pic_objects $non_pic_object"
1643
+	  fi
1644
+	else
1645
+	  # Only an error if not doing a dry-run.
1646
+	  if test -z "$run"; then
1647
+	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1648
+	    exit $EXIT_FAILURE
1649
+	  else
1650
+	    # Dry-run case.
1651
+
1652
+	    # Extract subdirectory from the argument.
1653
+	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1654
+	    if test "X$xdir" = "X$arg"; then
1655
+	      xdir=
1656
+	    else
1657
+	      xdir="$xdir/"
1658
+	    fi
1659
+
1660
+	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1661
+	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1662
+	    libobjs="$libobjs $pic_object"
1663
+	    non_pic_objects="$non_pic_objects $non_pic_object"
1664
+	  fi
1588 1665
 	fi
1589 1666
 	;;
1590 1667
 
... ...
@@ -1635,7 +2302,7 @@ compiler."
1635 1635
     if test -n "$prev"; then
1636 1636
       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1637 1637
       $echo "$help" 1>&2
1638
-      exit 1
1638
+      exit $EXIT_FAILURE
1639 1639
     fi
1640 1640
 
1641 1641
     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
... ...
@@ -1644,6 +2311,7 @@ compiler."
1644 1644
       finalize_command="$finalize_command $arg"
1645 1645
     fi
1646 1646
 
1647
+    oldlibs=
1647 1648
     # calculate the name of the file, without its directory
1648 1649
     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1649 1650
     libobjs_save="$libobjs"
... ...
@@ -1664,12 +2332,12 @@ compiler."
1664 1664
       output_objdir="$output_objdir/$objdir"
1665 1665
     fi
1666 1666
     # Create the object directory.
1667
-    if test ! -d $output_objdir; then
1667
+    if test ! -d "$output_objdir"; then
1668 1668
       $show "$mkdir $output_objdir"
1669 1669
       $run $mkdir $output_objdir
1670
-      status=$?
1671
-      if test $status -ne 0 && test ! -d $output_objdir; then
1672
-	exit $status
1670
+      exit_status=$?
1671
+      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
1672
+	exit $exit_status
1673 1673
       fi
1674 1674
     fi
1675 1675
 
... ...
@@ -1678,7 +2346,7 @@ compiler."
1678 1678
     "")
1679 1679
       $echo "$modename: you must specify an output file" 1>&2
1680 1680
       $echo "$help" 1>&2
1681
-      exit 1
1681
+      exit $EXIT_FAILURE
1682 1682
       ;;
1683 1683
     *.$libext) linkmode=oldlib ;;
1684 1684
     *.lo | *.$objext) linkmode=obj ;;
... ...
@@ -1686,7 +2354,17 @@ compiler."
1686 1686
     *) linkmode=prog ;; # Anything else should be a program.
1687 1687
     esac
1688 1688
 
1689
+    case $host in
1690
+    *cygwin* | *mingw* | *pw32*)
1691
+      # don't eliminate duplications in $postdeps and $predeps
1692
+      duplicate_compiler_generated_deps=yes
1693
+      ;;
1694
+    *)
1695
+      duplicate_compiler_generated_deps=$duplicate_deps
1696
+      ;;
1697
+    esac
1689 1698
     specialdeplibs=
1699
+
1690 1700
     libs=
1691 1701
     # Find all interdependent deplibs by searching for libraries
1692 1702
     # that are linked more than once (e.g. -la -lb -la)
... ...
@@ -1698,12 +2376,30 @@ compiler."
1698 1698
       fi
1699 1699
       libs="$libs $deplib"
1700 1700
     done
1701
+
1702
+    if test "$linkmode" = lib; then
1703
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
1704
+
1705
+      # Compute libraries that are listed more than once in $predeps
1706
+      # $postdeps and mark them as special (i.e., whose duplicates are
1707
+      # not to be eliminated).
1708
+      pre_post_deps=
1709
+      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
1710
+	for pre_post_dep in $predeps $postdeps; do
1711
+	  case "$pre_post_deps " in
1712
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
1713
+	  esac
1714
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
1715
+	done
1716
+      fi
1717
+      pre_post_deps=
1718
+    fi
1719
+
1701 1720
     deplibs=
1702 1721
     newdependency_libs=
1703 1722
     newlib_search_path=
1704 1723
     need_relink=no # whether we're linking any uninstalled libtool libraries
1705 1724
     notinst_deplibs= # not-installed libtool libraries
1706
-    notinst_path= # paths that contain not-installed libtool libraries
1707 1725
     case $linkmode in
1708 1726
     lib)
1709 1727
 	passes="conv link"
... ...
@@ -1712,7 +2408,7 @@ compiler."
1712 1712
 	  *.la) ;;
1713 1713
 	  *)
1714 1714
 	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1715
-	    exit 1
1715
+	    exit $EXIT_FAILURE
1716 1716
 	    ;;
1717 1717
 	  esac
1718 1718
 	done
... ...
@@ -1729,44 +2425,58 @@ compiler."
1729 1729
 	;;
1730 1730
     esac
1731 1731
     for pass in $passes; do
1732
-      if test $linkmode = prog; then
1733
-	# Determine which files to process
1732
+      if test "$linkmode,$pass" = "lib,link" ||
1733
+	 test "$linkmode,$pass" = "prog,scan"; then
1734
+	libs="$deplibs"
1735
+	deplibs=
1736
+      fi
1737
+      if test "$linkmode" = prog; then
1734 1738
 	case $pass in
1735
-	dlopen)
1736
-	  libs="$dlfiles"
1737
-	  save_deplibs="$deplibs" # Collect dlpreopened libraries
1738
-	  deplibs=
1739
-	  ;;
1739
+	dlopen) libs="$dlfiles" ;;
1740 1740
 	dlpreopen) libs="$dlprefiles" ;;
1741
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1741
+	link)
1742
+	  libs="$deplibs %DEPLIBS%"
1743
+	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
1744
+	  ;;
1742 1745
 	esac
1743 1746
       fi
1747
+      if test "$pass" = dlopen; then
1748
+	# Collect dlpreopened libraries
1749
+	save_deplibs="$deplibs"
1750
+	deplibs=
1751
+      fi
1744 1752
       for deplib in $libs; do
1745 1753
 	lib=
1746 1754
 	found=no
1747 1755
 	case $deplib in
1748
-        # skip -pthread checking / Tomasz Kojm
1749
-        -pthread)
1750
-          deplibs="$deplib $deplibs"
1751
-          continue
1752
-          ;;
1753
-	-l*)
1754
-	  if test $linkmode = oldlib && test $linkmode = obj; then
1755
-	    $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
1756
-	    continue
1756
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1757
+	  if test "$linkmode,$pass" = "prog,link"; then
1758
+	    compile_deplibs="$deplib $compile_deplibs"
1759
+	    finalize_deplibs="$deplib $finalize_deplibs"
1760
+	  else
1761
+	    compiler_flags="$compiler_flags $deplib"
1757 1762
 	  fi
1758
-	  if test $pass = conv; then
1759
-	    deplibs="$deplib $deplibs"
1763
+	  continue
1764
+	  ;;
1765
+	-l*)
1766
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
1767
+	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
1760 1768
 	    continue
1761 1769
 	  fi
1762 1770
 	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1763 1771
 	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1764
-	    # Search the libtool library
1765
-	    lib="$searchdir/lib${name}.la"
1766
-	    if test -f "$lib"; then
1767
-	      found=yes
1768
-	      break
1769
-	    fi
1772
+	    for search_ext in .la $std_shrext .so .a; do
1773
+	      # Search the libtool library
1774
+	      lib="$searchdir/lib${name}${search_ext}"
1775
+	      if test -f "$lib"; then
1776
+		if test "$search_ext" = ".la"; then
1777
+		  found=yes
1778
+		else
1779
+		  found=no
1780
+		fi
1781
+		break 2
1782
+	      fi
1783
+	    done
1770 1784
 	  done
1771 1785
 	  if test "$found" != yes; then
1772 1786
 	    # deplib doesn't seem to be a libtool library
... ...
@@ -1775,40 +2485,76 @@ compiler."
1775 1775
 	      finalize_deplibs="$deplib $finalize_deplibs"
1776 1776
 	    else
1777 1777
 	      deplibs="$deplib $deplibs"
1778
-	      test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
1778
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1779 1779
 	    fi
1780 1780
 	    continue
1781
+	  else # deplib is a libtool library
1782
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
1783
+	    # We need to do some special things here, and not later.
1784
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1785
+	      case " $predeps $postdeps " in
1786
+	      *" $deplib "*)
1787
+		if (${SED} -e '2q' $lib |
1788
+                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1789
+		  library_names=
1790
+		  old_library=
1791
+		  case $lib in
1792
+		  */* | *\\*) . $lib ;;
1793
+		  *) . ./$lib ;;
1794
+		  esac
1795
+		  for l in $old_library $library_names; do
1796
+		    ll="$l"
1797
+		  done
1798
+		  if test "X$ll" = "X$old_library" ; then # only static version available
1799
+		    found=no
1800
+		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1801
+		    test "X$ladir" = "X$lib" && ladir="."
1802
+		    lib=$ladir/$old_library
1803
+		    if test "$linkmode,$pass" = "prog,link"; then
1804
+		      compile_deplibs="$deplib $compile_deplibs"
1805
+		      finalize_deplibs="$deplib $finalize_deplibs"
1806
+		    else
1807
+		      deplibs="$deplib $deplibs"
1808
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1809
+		    fi
1810
+		    continue
1811
+		  fi
1812
+		fi
1813
+	        ;;
1814
+	      *) ;;
1815
+	      esac
1816
+	    fi
1781 1817
 	  fi
1782 1818
 	  ;; # -l
1783 1819
 	-L*)
1784 1820
 	  case $linkmode in
1785 1821
 	  lib)
1786 1822
 	    deplibs="$deplib $deplibs"
1787
-	    test $pass = conv && continue
1823
+	    test "$pass" = conv && continue
1788 1824
 	    newdependency_libs="$deplib $newdependency_libs"
1789 1825
 	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1790 1826
 	    ;;
1791 1827
 	  prog)
1792
-	    if test $pass = conv; then
1828
+	    if test "$pass" = conv; then
1793 1829
 	      deplibs="$deplib $deplibs"
1794 1830
 	      continue
1795 1831
 	    fi
1796
-	    if test $pass = scan; then
1832
+	    if test "$pass" = scan; then
1797 1833
 	      deplibs="$deplib $deplibs"
1798
-	      newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1799 1834
 	    else
1800 1835
 	      compile_deplibs="$deplib $compile_deplibs"
1801 1836
 	      finalize_deplibs="$deplib $finalize_deplibs"
1802 1837
 	    fi
1838
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1803 1839
 	    ;;
1804 1840
 	  *)
1805
-	    $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
1841
+	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
1806 1842
 	    ;;
1807 1843
 	  esac # linkmode
1808 1844
 	  continue
1809 1845
 	  ;; # -L
1810 1846
 	-R*)
1811
-	  if test $pass = link; then
1847
+	  if test "$pass" = link; then
1812 1848
 	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1813 1849
 	    # Make sure the xrpath contains only unique directories.
1814 1850
 	    case "$xrpath " in
... ...
@@ -1821,30 +2567,45 @@ compiler."
1821 1821
 	  ;;
1822 1822
 	*.la) lib="$deplib" ;;
1823 1823
 	*.$libext)
1824
-	  if test $pass = conv; then
1824
+	  if test "$pass" = conv; then
1825 1825
 	    deplibs="$deplib $deplibs"
1826 1826
 	    continue
1827 1827
 	  fi
1828 1828
 	  case $linkmode in
1829 1829
 	  lib)
1830
-	    if test "$deplibs_check_method" != pass_all; then
1831
-	      echo
1832
-	      echo "*** Warning: Trying to link with static lib archive $deplib."
1833
-	      echo "*** I have the capability to make that library automatically link in when"
1834
-	      echo "*** you link to this library.  But I can only do this if you have a"
1835
-	      echo "*** shared version of the library, which you do not appear to have"
1836
-	      echo "*** because the file extensions .$libext of this argument makes me believe"
1837
-	      echo "*** that it is just a static archive that I should not used here."
1830
+	    valid_a_lib=no
1831
+	    case $deplibs_check_method in
1832
+	      match_pattern*)
1833
+		set dummy $deplibs_check_method
1834
+	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
1835
+		if eval $echo \"$deplib\" 2>/dev/null \
1836
+		    | $SED 10q \
1837
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
1838
+		  valid_a_lib=yes
1839
+		fi
1840
+		;;
1841
+	      pass_all)
1842
+		valid_a_lib=yes
1843
+		;;
1844
+            esac
1845
+	    if test "$valid_a_lib" != yes; then
1846
+	      $echo
1847
+	      $echo "*** Warning: Trying to link with static lib archive $deplib."
1848
+	      $echo "*** I have the capability to make that library automatically link in when"
1849
+	      $echo "*** you link to this library.  But I can only do this if you have a"
1850
+	      $echo "*** shared version of the library, which you do not appear to have"
1851
+	      $echo "*** because the file extensions .$libext of this argument makes me believe"
1852
+	      $echo "*** that it is just a static archive that I should not used here."
1838 1853
 	    else
1839
-	      echo
1840
-	      echo "*** Warning: Linking the shared library $output against the"
1841
-	      echo "*** static library $deplib is not portable!"
1854
+	      $echo
1855
+	      $echo "*** Warning: Linking the shared library $output against the"
1856
+	      $echo "*** static library $deplib is not portable!"
1842 1857
 	      deplibs="$deplib $deplibs"
1843 1858
 	    fi
1844 1859
 	    continue
1845 1860
 	    ;;
1846 1861
 	  prog)
1847
-	    if test $pass != link; then
1862
+	    if test "$pass" != link; then
1848 1863
 	      deplibs="$deplib $deplibs"
1849 1864
 	    else
1850 1865
 	      compile_deplibs="$deplib $compile_deplibs"
... ...
@@ -1855,14 +2616,18 @@ compiler."
1855 1855
 	  esac # linkmode
1856 1856
 	  ;; # *.$libext
1857 1857
 	*.lo | *.$objext)
1858
-	  if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1859
-	    # If there is no dlopen support or we're linking statically,
1860
-	    # we need to preload.
1861
-	    newdlprefiles="$newdlprefiles $deplib"
1862
-	    compile_deplibs="$deplib $compile_deplibs"
1863
-	    finalize_deplibs="$deplib $finalize_deplibs"
1864
-	  else
1865
-	    newdlfiles="$newdlfiles $deplib"
1858
+	  if test "$pass" = conv; then
1859
+	    deplibs="$deplib $deplibs"
1860
+	  elif test "$linkmode" = prog; then
1861
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1862
+	      # If there is no dlopen support or we're linking statically,
1863
+	      # we need to preload.
1864
+	      newdlprefiles="$newdlprefiles $deplib"
1865
+	      compile_deplibs="$deplib $compile_deplibs"
1866
+	      finalize_deplibs="$deplib $finalize_deplibs"
1867
+	    else
1868
+	      newdlfiles="$newdlfiles $deplib"
1869
+	    fi
1866 1870
 	  fi
1867 1871
 	  continue
1868 1872
 	  ;;
... ...
@@ -1871,17 +2636,17 @@ compiler."
1871 1871
 	  continue
1872 1872
 	  ;;
1873 1873
 	esac # case $deplib
1874
-	if test $found = yes || test -f "$lib"; then :
1874
+	if test "$found" = yes || test -f "$lib"; then :
1875 1875
 	else
1876
-	  $echo "$modename: cannot find the library \`$lib'" 1>&2
1877
-	  exit 1
1876
+	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
1877
+	  exit $EXIT_FAILURE
1878 1878
 	fi
1879 1879
 
1880 1880
 	# Check to see that this really is a libtool archive.
1881
-	if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1881
+	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1882 1882
 	else
1883 1883
 	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1884
-	  exit 1
1884
+	  exit $EXIT_FAILURE
1885 1885
 	fi
1886 1886
 
1887 1887
 	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
... ...
@@ -1894,8 +2659,11 @@ compiler."
1894 1894
 	library_names=
1895 1895
 	old_library=
1896 1896
 	# If the library was installed with an old release of libtool,
1897
-	# it will not redefine variable installed.
1897
+	# it will not redefine variables installed, or shouldnotlink
1898 1898
 	installed=yes
1899
+	shouldnotlink=no
1900
+	avoidtemprpath=
1901
+
1899 1902
 
1900 1903
 	# Read the .la file
1901 1904
 	case $lib in
... ...
@@ -1905,19 +2673,18 @@ compiler."
1905 1905
 
1906 1906
 	if test "$linkmode,$pass" = "lib,link" ||
1907 1907
 	   test "$linkmode,$pass" = "prog,scan" ||
1908
-	   { test $linkmode = oldlib && test $linkmode = obj; }; then
1909
-	   # Add dl[pre]opened files of deplib
1908
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
1910 1909
 	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1911 1910
 	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1912 1911
 	fi
1913 1912
 
1914
-	if test $pass = conv; then
1913
+	if test "$pass" = conv; then
1915 1914
 	  # Only check for convenience libraries
1916 1915
 	  deplibs="$lib $deplibs"
1917 1916
 	  if test -z "$libdir"; then
1918 1917
 	    if test -z "$old_library"; then
1919 1918
 	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1920
-	      exit 1
1919
+	      exit $EXIT_FAILURE
1921 1920
 	    fi
1922 1921
 	    # It is a libtool convenience library, so add in its objects.
1923 1922
 	    convenience="$convenience $ladir/$objdir/$old_library"
... ...
@@ -1932,13 +2699,14 @@ compiler."
1932 1932
               fi
1933 1933
 	      tmp_libs="$tmp_libs $deplib"
1934 1934
 	    done
1935
-	  elif test $linkmode != prog && test $linkmode != lib; then
1935
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
1936 1936
 	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
1937
-	    exit 1
1937
+	    exit $EXIT_FAILURE
1938 1938
 	  fi
1939 1939
 	  continue
1940 1940
 	fi # $pass = conv
1941 1941
 
1942
+
1942 1943
 	# Get the name of the library we link against.
1943 1944
 	linklib=
1944 1945
 	for l in $old_library $library_names; do
... ...
@@ -1946,19 +2714,23 @@ compiler."
1946 1946
 	done
1947 1947
 	if test -z "$linklib"; then
1948 1948
 	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1949
-	  exit 1
1949
+	  exit $EXIT_FAILURE
1950 1950
 	fi
1951 1951
 
1952 1952
 	# This library was specified with -dlopen.
1953
-	if test $pass = dlopen; then
1953
+	if test "$pass" = dlopen; then
1954 1954
 	  if test -z "$libdir"; then
1955 1955
 	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1956
-	    exit 1
1956
+	    exit $EXIT_FAILURE
1957 1957
 	  fi
1958
-	  if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1958
+	  if test -z "$dlname" ||
1959
+	     test "$dlopen_support" != yes ||
1960
+	     test "$build_libtool_libs" = no; then
1959 1961
 	    # If there is no dlname, no dlopen support or we're linking
1960
-	    # statically, we need to preload.
1961
-	    dlprefiles="$dlprefiles $lib"
1962
+	    # statically, we need to preload.  We also need to preload any
1963
+	    # dependent libraries so libltdl's deplib preloader doesn't
1964
+	    # bomb out in the load deplibs phase.
1965
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
1962 1966
 	  else
1963 1967
 	    newdlfiles="$newdlfiles $lib"
1964 1968
 	  fi
... ...
@@ -1990,19 +2762,27 @@ compiler."
1990 1990
 	    dir="$libdir"
1991 1991
 	    absdir="$libdir"
1992 1992
 	  fi
1993
+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
1993 1994
 	else
1994
-	  dir="$ladir/$objdir"
1995
-	  absdir="$abs_ladir/$objdir"
1996
-	  # Remove this search path later
1997
-	  notinst_path="$notinst_path $abs_ladir"
1995
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1996
+	    dir="$ladir"
1997
+	    absdir="$abs_ladir"
1998
+	    # Remove this search path later
1999
+	    notinst_path="$notinst_path $abs_ladir"
2000
+	  else
2001
+	    dir="$ladir/$objdir"
2002
+	    absdir="$abs_ladir/$objdir"
2003
+	    # Remove this search path later
2004
+	    notinst_path="$notinst_path $abs_ladir"
2005
+	  fi
1998 2006
 	fi # $installed = yes
1999 2007
 	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2000 2008
 
2001 2009
 	# This library was specified with -dlpreopen.
2002
-	if test $pass = dlpreopen; then
2010
+	if test "$pass" = dlpreopen; then
2003 2011
 	  if test -z "$libdir"; then
2004 2012
 	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2005
-	    exit 1
2013
+	    exit $EXIT_FAILURE
2006 2014
 	  fi
2007 2015
 	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2008 2016
 	  # are required to link).
... ...
@@ -2018,18 +2798,19 @@ compiler."
2018 2018
 
2019 2019
 	if test -z "$libdir"; then
2020 2020
 	  # Link the convenience library
2021
-	  if test $linkmode = lib; then
2021
+	  if test "$linkmode" = lib; then
2022 2022
 	    deplibs="$dir/$old_library $deplibs"
2023 2023
 	  elif test "$linkmode,$pass" = "prog,link"; then
2024 2024
 	    compile_deplibs="$dir/$old_library $compile_deplibs"
2025 2025
 	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2026 2026
 	  else
2027
-	    deplibs="$lib $deplibs"
2027
+	    deplibs="$lib $deplibs" # used for prog,scan pass
2028 2028
 	  fi
2029 2029
 	  continue
2030 2030
 	fi
2031 2031
 
2032
-	if test $linkmode = prog && test $pass != link; then
2032
+
2033
+	if test "$linkmode" = prog && test "$pass" != link; then
2033 2034
 	  newlib_search_path="$newlib_search_path $ladir"
2034 2035
 	  deplibs="$lib $deplibs"
2035 2036
 
... ...
@@ -2045,7 +2826,7 @@ compiler."
2045 2045
 	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2046 2046
 	    esac
2047 2047
 	    # Need to link against all dependency_libs?
2048
-	    if test $linkalldeplibs = yes; then
2048
+	    if test "$linkalldeplibs" = yes; then
2049 2049
 	      deplibs="$deplib $deplibs"
2050 2050
 	    else
2051 2051
 	      # Need to hardcode shared library paths
... ...
@@ -2062,13 +2843,19 @@ compiler."
2062 2062
 	  continue
2063 2063
 	fi # $linkmode = prog...
2064 2064
 
2065
-	link_static=no # Whether the deplib will be linked statically
2066
-	if test -n "$library_names" &&
2067
-	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2068
-	  # Link against this shared library
2065
+	if test "$linkmode,$pass" = "prog,link"; then
2066
+	  if test -n "$library_names" &&
2067
+	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2068
+	    # We need to hardcode the library path
2069
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2070
+	      # Make sure the rpath contains only unique directories.
2071
+	      case "$temp_rpath " in
2072
+	      *" $dir "*) ;;
2073
+	      *" $absdir "*) ;;
2074
+	      *) temp_rpath="$temp_rpath $absdir" ;;
2075
+	      esac
2076
+	    fi
2069 2077
 
2070
-	  if test "$linkmode,$pass" = "prog,link" ||
2071
-	   { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
2072 2078
 	    # Hardcode the library path.
2073 2079
 	    # Skip directories that are in the system default run-time
2074 2080
 	    # search path.
... ...
@@ -2090,17 +2877,6 @@ compiler."
2090 2090
 	      esac
2091 2091
 	      ;;
2092 2092
 	    esac
2093
-	    if test $linkmode = prog; then
2094
-	      # We need to hardcode the library path
2095
-	      if test -n "$shlibpath_var"; then
2096
-		# Make sure the rpath contains only unique directories.
2097
-		case "$temp_rpath " in
2098
-		*" $dir "*) ;;
2099
-		*" $absdir "*) ;;
2100
-		*) temp_rpath="$temp_rpath $dir" ;;
2101
-		esac
2102
-	      fi
2103
-	    fi
2104 2093
 	  fi # $linkmode,$pass = prog,link...
2105 2094
 
2106 2095
 	  if test "$alldeplibs" = yes &&
... ...
@@ -2110,11 +2886,56 @@ compiler."
2110 2110
 	    # We only need to search for static libraries
2111 2111
 	    continue
2112 2112
 	  fi
2113
+	fi
2113 2114
 
2115
+	link_static=no # Whether the deplib will be linked statically
2116
+	use_static_libs=$prefer_static_libs
2117
+	if test "$use_static_libs" = built && test "$installed" = yes ; then
2118
+	  use_static_libs=no
2119
+	fi
2120
+	if test -n "$library_names" &&
2121
+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2114 2122
 	  if test "$installed" = no; then
2115 2123
 	    notinst_deplibs="$notinst_deplibs $lib"
2116 2124
 	    need_relink=yes
2117 2125
 	  fi
2126
+	  # This is a shared library
2127
+
2128
+	  # Warn about portability, can't link against -module's on
2129
+	  # some systems (darwin)
2130
+	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2131
+	    $echo
2132
+	    if test "$linkmode" = prog; then
2133
+	      $echo "*** Warning: Linking the executable $output against the loadable module"
2134
+	    else
2135
+	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2136
+	    fi
2137
+	    $echo "*** $linklib is not portable!"
2138
+	  fi
2139
+	  if test "$linkmode" = lib &&
2140
+	     test "$hardcode_into_libs" = yes; then
2141
+	    # Hardcode the library path.
2142
+	    # Skip directories that are in the system default run-time
2143
+	    # search path.
2144
+	    case " $sys_lib_dlsearch_path " in
2145
+	    *" $absdir "*) ;;
2146
+	    *)
2147
+	      case "$compile_rpath " in
2148
+	      *" $absdir "*) ;;
2149
+	      *) compile_rpath="$compile_rpath $absdir"
2150
+	      esac
2151
+	      ;;
2152
+	    esac
2153
+	    case " $sys_lib_dlsearch_path " in
2154
+	    *" $libdir "*) ;;
2155
+	    *)
2156
+	      case "$finalize_rpath " in
2157
+	      *" $libdir "*) ;;
2158
+	      *) finalize_rpath="$finalize_rpath $libdir"
2159
+	      esac
2160
+	      ;;
2161
+	    esac
2162
+	  fi
2118 2163
 
2119 2164
 	  if test -n "$old_archive_from_expsyms_cmds"; then
2120 2165
 	    # figure out the soname
... ...
@@ -2128,7 +2949,7 @@ compiler."
2128 2128
 	    elif test -n "$soname_spec"; then
2129 2129
 	      # bleh windows
2130 2130
 	      case $host in
2131
-	      *cygwin*)
2131
+	      *cygwin* | mingw*)
2132 2132
 		major=`expr $current - $age`
2133 2133
 		versuffix="-$major"
2134 2134
 		;;
... ...
@@ -2140,17 +2961,18 @@ compiler."
2140 2140
 
2141 2141
 	    # Make a new name for the extract_expsyms_cmds to use
2142 2142
 	    soroot="$soname"
2143
-	    soname=`echo $soroot | sed -e 's/^.*\///'`
2144
-	    newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
2143
+	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2144
+	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2145 2145
 
2146 2146
 	    # If the library has no export list, then create one now
2147 2147
 	    if test -f "$output_objdir/$soname-def"; then :
2148 2148
 	    else
2149 2149
 	      $show "extracting exported symbol list from \`$soname'"
2150 2150
 	      save_ifs="$IFS"; IFS='~'
2151
-	      eval cmds=\"$extract_expsyms_cmds\"
2151
+	      cmds=$extract_expsyms_cmds
2152 2152
 	      for cmd in $cmds; do
2153 2153
 		IFS="$save_ifs"
2154
+		eval cmd=\"$cmd\"
2154 2155
 		$show "$cmd"
2155 2156
 		$run eval "$cmd" || exit $?
2156 2157
 	      done
... ...
@@ -2161,9 +2983,10 @@ compiler."
2161 2161
 	    if test -f "$output_objdir/$newlib"; then :; else
2162 2162
 	      $show "generating import library for \`$soname'"
2163 2163
 	      save_ifs="$IFS"; IFS='~'
2164
-	      eval cmds=\"$old_archive_from_expsyms_cmds\"
2164
+	      cmds=$old_archive_from_expsyms_cmds
2165 2165
 	      for cmd in $cmds; do
2166 2166
 		IFS="$save_ifs"
2167
+		eval cmd=\"$cmd\"
2167 2168
 		$show "$cmd"
2168 2169
 		$run eval "$cmd" || exit $?
2169 2170
 	      done
... ...
@@ -2172,9 +2995,9 @@ compiler."
2172 2172
 	    # make sure the library variables are pointing to the new library
2173 2173
 	    dir=$output_objdir
2174 2174
 	    linklib=$newlib
2175
-	  fi # test -n $old_archive_from_expsyms_cmds
2175
+	  fi # test -n "$old_archive_from_expsyms_cmds"
2176 2176
 
2177
-	  if test $linkmode = prog || test "$mode" != relink; then
2177
+	  if test "$linkmode" = prog || test "$mode" != relink; then
2178 2178
 	    add_shlibpath=
2179 2179
 	    add_dir=
2180 2180
 	    add=
... ...
@@ -2183,6 +3006,26 @@ compiler."
2183 2183
 	    immediate | unsupported)
2184 2184
 	      if test "$hardcode_direct" = no; then
2185 2185
 		add="$dir/$linklib"
2186
+		case $host in
2187
+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2188
+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2189
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2190
+		    *-*-unixware7*) add_dir="-L$dir" ;;
2191
+		  *-*-darwin* )
2192
+		    # if the lib is a module then we can not link against
2193
+		    # it, someone is ignoring the new warnings I added
2194
+		    if /usr/bin/file -L $add 2> /dev/null |
2195
+                      $EGREP ": [^:]* bundle" >/dev/null ; then
2196
+		      $echo "** Warning, lib $linklib is a module, not a shared library"
2197
+		      if test -z "$old_library" ; then
2198
+		        $echo
2199
+		        $echo "** And there doesn't seem to be a static archive available"
2200
+		        $echo "** The link will probably fail, sorry"
2201
+		      else
2202
+		        add="$dir/$old_library"
2203
+		      fi
2204
+		    fi
2205
+		esac
2186 2206
 	      elif test "$hardcode_minus_L" = no; then
2187 2207
 		case $host in
2188 2208
 		*-*-sunos*) add_shlibpath="$dir" ;;
... ...
@@ -2201,6 +3044,14 @@ compiler."
2201 2201
 		add="$dir/$linklib"
2202 2202
 	      elif test "$hardcode_minus_L" = yes; then
2203 2203
 		add_dir="-L$dir"
2204
+		# Try looking first in the location we're being installed to.
2205
+		if test -n "$inst_prefix_dir"; then
2206
+		  case $libdir in
2207
+		    [\\/]*)
2208
+		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2209
+		      ;;
2210
+		  esac
2211
+		fi
2204 2212
 		add="-l$name"
2205 2213
 	      elif test "$hardcode_shlibpath_var" = yes; then
2206 2214
 		add_shlibpath="$dir"
... ...
@@ -2214,7 +3065,7 @@ compiler."
2214 2214
 
2215 2215
 	    if test "$lib_linked" != yes; then
2216 2216
 	      $echo "$modename: configuration error: unsupported hardcode properties"
2217
-	      exit 1
2217
+	      exit $EXIT_FAILURE
2218 2218
 	    fi
2219 2219
 
2220 2220
 	    if test -n "$add_shlibpath"; then
... ...
@@ -2223,7 +3074,7 @@ compiler."
2223 2223
 	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2224 2224
 	      esac
2225 2225
 	    fi
2226
-	    if test $linkmode = prog; then
2226
+	    if test "$linkmode" = prog; then
2227 2227
 	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2228 2228
 	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2229 2229
 	    else
... ...
@@ -2240,7 +3091,7 @@ compiler."
2240 2240
 	    fi
2241 2241
 	  fi
2242 2242
 
2243
-	  if test $linkmode = prog || test "$mode" = relink; then
2243
+	  if test "$linkmode" = prog || test "$mode" = relink; then
2244 2244
 	    add_shlibpath=
2245 2245
 	    add_dir=
2246 2246
 	    add=
... ...
@@ -2256,13 +3107,28 @@ compiler."
2256 2256
 	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2257 2257
 	      esac
2258 2258
 	      add="-l$name"
2259
+	    elif test "$hardcode_automatic" = yes; then
2260
+	      if test -n "$inst_prefix_dir" &&
2261
+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2262
+	        add="$inst_prefix_dir$libdir/$linklib"
2263
+	      else
2264
+	        add="$libdir/$linklib"
2265
+	      fi
2259 2266
 	    else
2260 2267
 	      # We cannot seem to hardcode it, guess we'll fake it.
2261 2268
 	      add_dir="-L$libdir"
2269
+	      # Try looking first in the location we're being installed to.
2270
+	      if test -n "$inst_prefix_dir"; then
2271
+		case $libdir in
2272
+		  [\\/]*)
2273
+		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2274
+		    ;;
2275
+		esac
2276
+	      fi
2262 2277
 	      add="-l$name"
2263 2278
 	    fi
2264 2279
 
2265
-	    if test $linkmode = prog; then
2280
+	    if test "$linkmode" = prog; then
2266 2281
 	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2267 2282
 	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2268 2283
 	    else
... ...
@@ -2270,16 +3136,7 @@ compiler."
2270 2270
 	      test -n "$add" && deplibs="$add $deplibs"
2271 2271
 	    fi
2272 2272
 	  fi
2273
-	elif test $linkmode = prog; then
2274
-	  if test "$alldeplibs" = yes &&
2275
-	     { test "$deplibs_check_method" = pass_all ||
2276
-	       { test "$build_libtool_libs" = yes &&
2277
-		 test -n "$library_names"; }; }; then
2278
-	    # We only need to search for static libraries
2279
-	    continue
2280
-	  fi
2281
-
2282
-	  # Try to link the static library
2273
+	elif test "$linkmode" = prog; then
2283 2274
 	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2284 2275
 	  # is not unsupported.  This is valid on all known static and
2285 2276
 	  # shared platforms.
... ...
@@ -2299,21 +3156,21 @@ compiler."
2299 2299
 
2300 2300
 	    # Just print a warning and add the library to dependency_libs so
2301 2301
 	    # that the program can be linked against the static library.
2302
-	    echo
2303
-	    echo "*** Warning: This system can not link to static lib archive $lib."
2304
-	    echo "*** I have the capability to make that library automatically link in when"
2305
-	    echo "*** you link to this library.  But I can only do this if you have a"
2306
-	    echo "*** shared version of the library, which you do not appear to have."
2302
+	    $echo
2303
+	    $echo "*** Warning: This system can not link to static lib archive $lib."
2304
+	    $echo "*** I have the capability to make that library automatically link in when"
2305
+	    $echo "*** you link to this library.  But I can only do this if you have a"
2306
+	    $echo "*** shared version of the library, which you do not appear to have."
2307 2307
 	    if test "$module" = yes; then
2308
-	      echo "*** But as you try to build a module library, libtool will still create "
2309
-	      echo "*** a static module, that should work as long as the dlopening application"
2310
-	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2308
+	      $echo "*** But as you try to build a module library, libtool will still create "
2309
+	      $echo "*** a static module, that should work as long as the dlopening application"
2310
+	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2311 2311
 	      if test -z "$global_symbol_pipe"; then
2312
-		echo
2313
-		echo "*** However, this would only work if libtool was able to extract symbol"
2314
-		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2315
-		echo "*** not find such a program.  So, this module is probably useless."
2316
-		echo "*** \`nm' from GNU binutils and a full rebuild may help."
2312
+		$echo
2313
+		$echo "*** However, this would only work if libtool was able to extract symbol"
2314
+		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2315
+		$echo "*** not find such a program.  So, this module is probably useless."
2316
+		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2317 2317
 	      fi
2318 2318
 	      if test "$build_old_libs" = no; then
2319 2319
 		build_libtool_libs=module
... ...
@@ -2323,17 +3180,16 @@ compiler."
2323 2323
 	      fi
2324 2324
 	    fi
2325 2325
 	  else
2326
-	    convenience="$convenience $dir/$old_library"
2327
-	    old_convenience="$old_convenience $dir/$old_library"
2328 2326
 	    deplibs="$dir/$old_library $deplibs"
2329 2327
 	    link_static=yes
2330 2328
 	  fi
2331 2329
 	fi # link shared/static library?
2332 2330
 
2333
-	if test $linkmode = lib; then
2331
+	if test "$linkmode" = lib; then
2334 2332
 	  if test -n "$dependency_libs" &&
2335
-	     { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
2336
-	       test $link_static = yes; }; then
2333
+	     { test "$hardcode_into_libs" != yes ||
2334
+	       test "$build_old_libs" = yes ||
2335
+	       test "$link_static" = yes; }; then
2337 2336
 	    # Extract -R from dependency_libs
2338 2337
 	    temp_deplibs=
2339 2338
 	    for libdir in $dependency_libs; do
... ...
@@ -2364,7 +3220,7 @@ compiler."
2364 2364
 	    tmp_libs="$tmp_libs $deplib"
2365 2365
 	  done
2366 2366
 
2367
-	  if test $link_all_deplibs != no; then
2367
+	  if test "$link_all_deplibs" != no; then
2368 2368
 	    # Add the search paths of all dependency libraries
2369 2369
 	    for deplib in $dependency_libs; do
2370 2370
 	      case $deplib in
... ...
@@ -2384,38 +3240,83 @@ compiler."
2384 2384
 		  ;;
2385 2385
 		esac
2386 2386
 		if grep "^installed=no" $deplib > /dev/null; then
2387
-		  path="-L$absdir/$objdir"
2387
+		  path="$absdir/$objdir"
2388 2388
 		else
2389
-		  eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2389
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2390 2390
 		  if test -z "$libdir"; then
2391 2391
 		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2392
-		    exit 1
2392
+		    exit $EXIT_FAILURE
2393 2393
 		  fi
2394 2394
 		  if test "$absdir" != "$libdir"; then
2395 2395
 		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2396 2396
 		  fi
2397
-		  path="-L$absdir"
2397
+		  path="$absdir"
2398 2398
 		fi
2399
+		depdepl=
2400
+		case $host in
2401
+		*-*-darwin*)
2402
+		  # we do not want to link against static libs,
2403
+		  # but need to link against shared
2404
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2405
+		  if test -n "$deplibrary_names" ; then
2406
+		    for tmp in $deplibrary_names ; do
2407
+		      depdepl=$tmp
2408
+		    done
2409
+		    if test -f "$path/$depdepl" ; then
2410
+		      depdepl="$path/$depdepl"
2411
+		    fi
2412
+		    # do not add paths which are already there
2413
+		    case " $newlib_search_path " in
2414
+		    *" $path "*) ;;
2415
+		    *) newlib_search_path="$newlib_search_path $path";;
2416
+		    esac
2417
+		  fi
2418
+		  path=""
2419
+		  ;;
2420
+		*)
2421
+		  path="-L$path"
2422
+		  ;;
2423
+		esac
2424
+		;;
2425
+	      -l*)
2426
+		case $host in
2427
+		*-*-darwin*)
2428
+		  # Again, we only want to link against shared libraries
2429
+		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2430
+		  for tmp in $newlib_search_path ; do
2431
+		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
2432
+		      eval depdepl="$tmp/lib$tmp_libs.dylib"
2433
+		      break
2434
+		    fi
2435
+		  done
2436
+		  path=""
2437
+		  ;;
2438
+		*) continue ;;
2439
+		esac
2399 2440
 		;;
2400 2441
 	      *) continue ;;
2401 2442
 	      esac
2402 2443
 	      case " $deplibs " in
2403 2444
 	      *" $path "*) ;;
2404
-	      *) deplibs="$deplibs $path" ;;
2445
+	      *) deplibs="$path $deplibs" ;;
2446
+	      esac
2447
+	      case " $deplibs " in
2448
+	      *" $depdepl "*) ;;
2449
+	      *) deplibs="$depdepl $deplibs" ;;
2405 2450
 	      esac
2406 2451
 	    done
2407 2452
 	  fi # link_all_deplibs != no
2408 2453
 	fi # linkmode = lib
2409 2454
       done # for deplib in $libs
2410
-      if test $pass = dlpreopen; then
2455
+      dependency_libs="$newdependency_libs"
2456
+      if test "$pass" = dlpreopen; then
2411 2457
 	# Link the dlpreopened libraries before other libraries
2412 2458
 	for deplib in $save_deplibs; do
2413 2459
 	  deplibs="$deplib $deplibs"
2414 2460
 	done
2415 2461
       fi
2416
-      if test $pass != dlopen; then
2417
-	test $pass != scan && dependency_libs="$newdependency_libs"
2418
-	if test $pass != conv; then
2462
+      if test "$pass" != dlopen; then
2463
+	if test "$pass" != conv; then
2419 2464
 	  # Make sure lib_search_path contains only unique directories.
2420 2465
 	  lib_search_path=
2421 2466
 	  for dir in $newlib_search_path; do
... ...
@@ -2437,9 +3338,30 @@ compiler."
2437 2437
 	  eval tmp_libs=\"\$$var\"
2438 2438
 	  new_libs=
2439 2439
 	  for deplib in $tmp_libs; do
2440
+	    # FIXME: Pedantically, this is the right thing to do, so
2441
+	    #        that some nasty dependency loop isn't accidentally
2442
+	    #        broken:
2443
+	    #new_libs="$deplib $new_libs"
2444
+	    # Pragmatically, this seems to cause very few problems in
2445
+	    # practice:
2440 2446
 	    case $deplib in
2441 2447
 	    -L*) new_libs="$deplib $new_libs" ;;
2448
+	    -R*) ;;
2442 2449
 	    *)
2450
+	      # And here is the reason: when a library appears more
2451
+	      # than once as an explicit dependence of a library, or
2452
+	      # is implicitly linked in more than once by the
2453
+	      # compiler, it is considered special, and multiple
2454
+	      # occurrences thereof are not removed.  Compare this
2455
+	      # with having the same library being listed as a
2456
+	      # dependency of multiple other libraries: in this case,
2457
+	      # we know (pedantically, we assume) the library does not
2458
+	      # need to be listed more than once, so we keep only the
2459
+	      # last copy.  This is not always right, but it is rare
2460
+	      # enough that we require users that really mean to play
2461
+	      # such unportable linking tricks to link the library
2462
+	      # using -Wl,-lname, so that libtool does not consider it
2463
+	      # for duplicate removal.
2443 2464
 	      case " $specialdeplibs " in
2444 2465
 	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
2445 2466
 	      *)
... ...
@@ -2467,19 +3389,32 @@ compiler."
2467 2467
 	  eval $var=\"$tmp_libs\"
2468 2468
 	done # for var
2469 2469
       fi
2470
-      if test "$pass" = "conv" &&
2471
-       { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
2472
-	libs="$deplibs" # reset libs
2473
-	deplibs=
2474
-      fi
2470
+      # Last step: remove runtime libs from dependency_libs
2471
+      # (they stay in deplibs)
2472
+      tmp_libs=
2473
+      for i in $dependency_libs ; do
2474
+	case " $predeps $postdeps $compiler_lib_search_path " in
2475
+	*" $i "*)
2476
+	  i=""
2477
+	  ;;
2478
+	esac
2479
+	if test -n "$i" ; then
2480
+	  tmp_libs="$tmp_libs $i"
2481
+	fi
2482
+      done
2483
+      dependency_libs=$tmp_libs
2475 2484
     done # for pass
2476
-    if test $linkmode = prog; then
2485
+    if test "$linkmode" = prog; then
2477 2486
       dlfiles="$newdlfiles"
2478 2487
       dlprefiles="$newdlprefiles"
2479 2488
     fi
2480 2489
 
2481 2490
     case $linkmode in
2482 2491
     oldlib)
2492
+      if test -n "$deplibs"; then
2493
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
2494
+      fi
2495
+
2483 2496
       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2484 2497
 	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2485 2498
       fi
... ...
@@ -2493,7 +3428,7 @@ compiler."
2493 2493
       fi
2494 2494
 
2495 2495
       if test -n "$vinfo"; then
2496
-	$echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2496
+	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
2497 2497
       fi
2498 2498
 
2499 2499
       if test -n "$release"; then
... ...
@@ -2515,17 +3450,19 @@ compiler."
2515 2515
       case $outputname in
2516 2516
       lib*)
2517 2517
 	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2518
+	eval shared_ext=\"$shrext_cmds\"
2518 2519
 	eval libname=\"$libname_spec\"
2519 2520
 	;;
2520 2521
       *)
2521 2522
 	if test "$module" = no; then
2522 2523
 	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2523 2524
 	  $echo "$help" 1>&2
2524
-	  exit 1
2525
+	  exit $EXIT_FAILURE
2525 2526
 	fi
2526 2527
 	if test "$need_lib_prefix" != no; then
2527 2528
 	  # Add the "lib" prefix for modules if required
2528 2529
 	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2530
+	  eval shared_ext=\"$shrext_cmds\"
2529 2531
 	  eval libname=\"$libname_spec\"
2530 2532
 	else
2531 2533
 	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
... ...
@@ -2536,11 +3473,11 @@ compiler."
2536 2536
       if test -n "$objs"; then
2537 2537
 	if test "$deplibs_check_method" != pass_all; then
2538 2538
 	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2539
-	  exit 1
2539
+	  exit $EXIT_FAILURE
2540 2540
 	else
2541
-	  echo
2542
-	  echo "*** Warning: Linking the shared library $output against the non-libtool"
2543
-	  echo "*** objects $objs is not portable!"
2541
+	  $echo
2542
+	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
2543
+	  $echo "*** objects $objs is not portable!"
2544 2544
 	  libobjs="$libobjs $objs"
2545 2545
 	fi
2546 2546
       fi
... ...
@@ -2550,7 +3487,7 @@ compiler."
2550 2550
       fi
2551 2551
 
2552 2552
       set dummy $rpath
2553
-      if test $# -gt 2; then
2553
+      if test "$#" -gt 2; then
2554 2554
 	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2555 2555
       fi
2556 2556
       install_libdir="$2"
... ...
@@ -2559,14 +3496,16 @@ compiler."
2559 2559
       if test -z "$rpath"; then
2560 2560
 	if test "$build_libtool_libs" = yes; then
2561 2561
 	  # Building a libtool convenience library.
2562
-	  libext=al
2562
+	  # Some compilers have problems with a `.al' extension so
2563
+	  # convenience libraries should have the same extension an
2564
+	  # archive normally would.
2563 2565
 	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
2564 2566
 	  build_libtool_libs=convenience
2565 2567
 	  build_old_libs=yes
2566 2568
 	fi
2567 2569
 
2568 2570
 	if test -n "$vinfo"; then
2569
-	  $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2571
+	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
2570 2572
 	fi
2571 2573
 
2572 2574
 	if test -n "$release"; then
... ...
@@ -2582,45 +3521,87 @@ compiler."
2582 2582
 	if test -n "$8"; then
2583 2583
 	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
2584 2584
 	  $echo "$help" 1>&2
2585
-	  exit 1
2585
+	  exit $EXIT_FAILURE
2586 2586
 	fi
2587 2587
 
2588
-	current="$2"
2589
-	revision="$3"
2590
-	age="$4"
2588
+	# convert absolute version numbers to libtool ages
2589
+	# this retains compatibility with .la files and attempts
2590
+	# to make the code below a bit more comprehensible
2591
+
2592
+	case $vinfo_number in
2593
+	yes)
2594
+	  number_major="$2"
2595
+	  number_minor="$3"
2596
+	  number_revision="$4"
2597
+	  #
2598
+	  # There are really only two kinds -- those that
2599
+	  # use the current revision as the major version
2600
+	  # and those that subtract age and use age as
2601
+	  # a minor version.  But, then there is irix
2602
+	  # which has an extra 1 added just for fun
2603
+	  #
2604
+	  case $version_type in
2605
+	  darwin|linux|osf|windows)
2606
+	    current=`expr $number_major + $number_minor`
2607
+	    age="$number_minor"
2608
+	    revision="$number_revision"
2609
+	    ;;
2610
+	  freebsd-aout|freebsd-elf|sunos)
2611
+	    current="$number_major"
2612
+	    revision="$number_minor"
2613
+	    age="0"
2614
+	    ;;
2615
+	  irix|nonstopux)
2616
+	    current=`expr $number_major + $number_minor - 1`
2617
+	    age="$number_minor"
2618
+	    revision="$number_minor"
2619
+	    ;;
2620
+	  *)
2621
+	    $echo "$modename: unknown library version type \`$version_type'" 1>&2
2622
+	    $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
2623
+	    exit $EXIT_FAILURE
2624
+	    ;;
2625
+	  esac
2626
+	  ;;
2627
+	no)
2628
+	  current="$2"
2629
+	  revision="$3"
2630
+	  age="$4"
2631
+	  ;;
2632
+	esac
2591 2633
 
2592 2634
 	# Check that each of the things are valid numbers.
2593 2635
 	case $current in
2594
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2636
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
2595 2637
 	*)
2596
-	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2638
+	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
2597 2639
 	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2598
-	  exit 1
2640
+	  exit $EXIT_FAILURE
2599 2641
 	  ;;
2600 2642
 	esac
2601 2643
 
2602 2644
 	case $revision in
2603
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2645
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
2604 2646
 	*)
2605
-	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2647
+	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
2606 2648
 	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2607
-	  exit 1
2649
+	  exit $EXIT_FAILURE
2608 2650
 	  ;;
2609 2651
 	esac
2610 2652
 
2611 2653
 	case $age in
2612
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2654
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
2613 2655
 	*)
2614
-	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2656
+	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
2615 2657
 	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2616
-	  exit 1
2658
+	  exit $EXIT_FAILURE
2617 2659
 	  ;;
2618 2660
 	esac
2619 2661
 
2620
-	if test $age -gt $current; then
2662
+	if test "$age" -gt "$current"; then
2621 2663
 	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2622 2664
 	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2623
-	  exit 1
2665
+	  exit $EXIT_FAILURE
2624 2666
 	fi
2625 2667
 
2626 2668
 	# Calculate the version variables.
... ...
@@ -2637,7 +3618,7 @@ compiler."
2637 2637
 	  versuffix="$major.$age.$revision"
2638 2638
 	  # Darwin ld doesn't like 0 for these options...
2639 2639
 	  minor_current=`expr $current + 1`
2640
-	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2640
+	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
2641 2641
 	  ;;
2642 2642
 
2643 2643
 	freebsd-aout)
... ...
@@ -2651,17 +3632,17 @@ compiler."
2651 2651
 	  ;;
2652 2652
 
2653 2653
 	irix | nonstopux)
2654
+	  major=`expr $current - $age + 1`
2655
+
2654 2656
 	  case $version_type in
2655 2657
 	    nonstopux) verstring_prefix=nonstopux ;;
2656 2658
 	    *)         verstring_prefix=sgi ;;
2657 2659
 	  esac
2658 2660
 	  verstring="$verstring_prefix$major.$revision"
2659 2661
 
2660
-	  major=`expr $current - $age + 1`
2661
-
2662 2662
 	  # Add in all the interfaces that we are compatible with.
2663 2663
 	  loop=$revision
2664
-	  while test $loop != 0; do
2664
+	  while test "$loop" -ne 0; do
2665 2665
 	    iface=`expr $revision - $loop`
2666 2666
 	    loop=`expr $loop - 1`
2667 2667
 	    verstring="$verstring_prefix$major.$iface:$verstring"
... ...
@@ -2678,13 +3659,13 @@ compiler."
2678 2678
 	  ;;
2679 2679
 
2680 2680
 	osf)
2681
-	  major=`expr $current - $age`
2681
+	  major=.`expr $current - $age`
2682 2682
 	  versuffix=".$current.$age.$revision"
2683 2683
 	  verstring="$current.$age.$revision"
2684 2684
 
2685 2685
 	  # Add in all the interfaces that we are compatible with.
2686 2686
 	  loop=$age
2687
-	  while test $loop != 0; do
2687
+	  while test "$loop" -ne 0; do
2688 2688
 	    iface=`expr $current - $loop`
2689 2689
 	    loop=`expr $loop - 1`
2690 2690
 	    verstring="$verstring:${iface}.0"
... ...
@@ -2708,20 +3689,19 @@ compiler."
2708 2708
 
2709 2709
 	*)
2710 2710
 	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
2711
-	  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
2712
-	  exit 1
2711
+	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
2712
+	  exit $EXIT_FAILURE
2713 2713
 	  ;;
2714 2714
 	esac
2715 2715
 
2716 2716
 	# Clear the version info if we defaulted, and they specified a release.
2717 2717
 	if test -z "$vinfo" && test -n "$release"; then
2718 2718
 	  major=
2719
-	  verstring="0.0"
2720 2719
 	  case $version_type in
2721 2720
 	  darwin)
2722 2721
 	    # we can't check for "0.0" in archive_cmds due to quoting
2723 2722
 	    # problems, so we reset it completely
2724
-	    verstring=""
2723
+	    verstring=
2725 2724
 	    ;;
2726 2725
 	  *)
2727 2726
 	    verstring="0.0"
... ...
@@ -2755,9 +3735,30 @@ compiler."
2755 2755
       fi
2756 2756
 
2757 2757
       if test "$mode" != relink; then
2758
-	# Remove our outputs.
2759
-	$show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
2760
-	$run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
2758
+	# Remove our outputs, but don't remove object files since they
2759
+	# may have been created when compiling PIC objects.
2760
+	removelist=
2761
+	tempremovelist=`$echo "$output_objdir/*"`
2762
+	for p in $tempremovelist; do
2763
+	  case $p in
2764
+	    *.$objext)
2765
+	       ;;
2766
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
2767
+	       if test "X$precious_files_regex" != "X"; then
2768
+	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
2769
+	         then
2770
+		   continue
2771
+		 fi
2772
+	       fi
2773
+	       removelist="$removelist $p"
2774
+	       ;;
2775
+	    *) ;;
2776
+	  esac
2777
+	done
2778
+	if test -n "$removelist"; then
2779
+	  $show "${rm}r $removelist"
2780
+	  $run ${rm}r $removelist
2781
+	fi
2761 2782
       fi
2762 2783
 
2763 2784
       # Now set the variables for building old libraries.
... ...
@@ -2770,9 +3771,9 @@ compiler."
2770 2770
 
2771 2771
       # Eliminate all temporary directories.
2772 2772
       for path in $notinst_path; do
2773
-	lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
2774
-	deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
2775
-	dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
2773
+	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
2774
+	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
2775
+	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
2776 2776
       done
2777 2777
 
2778 2778
       if test -n "$xrpath"; then
... ...
@@ -2785,7 +3786,7 @@ compiler."
2785 2785
 	  *) finalize_rpath="$finalize_rpath $libdir" ;;
2786 2786
 	  esac
2787 2787
 	done
2788
-	if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
2788
+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
2789 2789
 	  dependency_libs="$temp_xrpath $dependency_libs"
2790 2790
 	fi
2791 2791
       fi
... ...
@@ -2823,12 +3824,18 @@ compiler."
2823 2823
 	  *-*-netbsd*)
2824 2824
 	    # Don't link with libc until the a.out ld.so is fixed.
2825 2825
 	    ;;
2826
-	  *-*-openbsd* | *-*-freebsd*)
2826
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
2827 2827
 	    # Do not include libc due to us having libc/libc_r.
2828 2828
 	    ;;
2829
-	  *)
2829
+	  *-*-sco3.2v5* | *-*-sco5v6*)
2830
+	    # Causes problems with __ctype
2831
+	    ;;
2832
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
2833
+	    # Compiler inserts libc in the correct place for threads to work
2834
+	    ;;
2835
+ 	  *)
2830 2836
 	    # Add libc to deplibs on all other systems if necessary.
2831
-	    if test $build_libtool_need_lc = "yes"; then
2837
+	    if test "$build_libtool_need_lc" = "yes"; then
2832 2838
 	      deplibs="$deplibs -lc"
2833 2839
 	    fi
2834 2840
 	    ;;
... ...
@@ -2855,7 +3862,7 @@ compiler."
2855 2855
 	  # This might be a little naive.  We might want to check
2856 2856
 	  # whether the library exists or not.  But this is on
2857 2857
 	  # osf3 & osf4 and I'm not really sure... Just
2858
-	  # implementing what was already the behaviour.
2858
+	  # implementing what was already the behavior.
2859 2859
 	  newdeplibs=$deplibs
2860 2860
 	  ;;
2861 2861
 	test_compile)
... ...
@@ -2868,68 +3875,88 @@ compiler."
2868 2868
 	  int main() { return 0; }
2869 2869
 EOF
2870 2870
 	  $rm conftest
2871
-	  $CC -o conftest conftest.c $deplibs
2872
-	  if test $? -eq 0 ; then
2871
+	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
2872
+	  if test "$?" -eq 0 ; then
2873 2873
 	    ldd_output=`ldd conftest`
2874 2874
 	    for i in $deplibs; do
2875
-	      name="`expr $i : '-l\(.*\)'`"
2875
+	      name=`expr $i : '-l\(.*\)'`
2876 2876
 	      # If $name is empty we are operating on a -L argument.
2877
-	      if test -n "$name" && test "$name" != "0"; then
2878
-		libname=`eval \\$echo \"$libname_spec\"`
2879
-		deplib_matches=`eval \\$echo \"$library_names_spec\"`
2880
-		set dummy $deplib_matches
2881
-		deplib_match=$2
2882
-		if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2883
-		  newdeplibs="$newdeplibs $i"
2884
-		else
2885
-		  droppeddeps=yes
2886
-		  echo
2887
-		  echo "*** Warning: dynamic linker does not accept needed library $i."
2888
-		  echo "*** I have the capability to make that library automatically link in when"
2889
-		  echo "*** you link to this library.  But I can only do this if you have a"
2890
-		  echo "*** shared version of the library, which I believe you do not have"
2891
-		  echo "*** because a test_compile did reveal that the linker did not use it for"
2892
-		  echo "*** its dynamic dependency list that programs get resolved with at runtime."
2877
+              if test "$name" != "" && test "$name" -ne "0"; then
2878
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2879
+		  case " $predeps $postdeps " in
2880
+		  *" $i "*)
2881
+		    newdeplibs="$newdeplibs $i"
2882
+		    i=""
2883
+		    ;;
2884
+		  esac
2885
+	        fi
2886
+		if test -n "$i" ; then
2887
+		  libname=`eval \\$echo \"$libname_spec\"`
2888
+		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
2889
+		  set dummy $deplib_matches
2890
+		  deplib_match=$2
2891
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2892
+		    newdeplibs="$newdeplibs $i"
2893
+		  else
2894
+		    droppeddeps=yes
2895
+		    $echo
2896
+		    $echo "*** Warning: dynamic linker does not accept needed library $i."
2897
+		    $echo "*** I have the capability to make that library automatically link in when"
2898
+		    $echo "*** you link to this library.  But I can only do this if you have a"
2899
+		    $echo "*** shared version of the library, which I believe you do not have"
2900
+		    $echo "*** because a test_compile did reveal that the linker did not use it for"
2901
+		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
2902
+		  fi
2893 2903
 		fi
2894 2904
 	      else
2895 2905
 		newdeplibs="$newdeplibs $i"
2896 2906
 	      fi
2897 2907
 	    done
2898 2908
 	  else
2899
-	    # Error occured in the first compile.  Let's try to salvage
2909
+	    # Error occurred in the first compile.  Let's try to salvage
2900 2910
 	    # the situation: Compile a separate program for each library.
2901 2911
 	    for i in $deplibs; do
2902
-	      name="`expr $i : '-l\(.*\)'`"
2903
-	     # If $name is empty we are operating on a -L argument.
2904
-	      if test -n "$name" && test "$name" != "0"; then
2912
+	      name=`expr $i : '-l\(.*\)'`
2913
+	      # If $name is empty we are operating on a -L argument.
2914
+              if test "$name" != "" && test "$name" != "0"; then
2905 2915
 		$rm conftest
2906
-		$CC -o conftest conftest.c $i
2916
+		$LTCC $LTCFLAGS -o conftest conftest.c $i
2907 2917
 		# Did it work?
2908
-		if test $? -eq 0 ; then
2918
+		if test "$?" -eq 0 ; then
2909 2919
 		  ldd_output=`ldd conftest`
2910
-		  libname=`eval \\$echo \"$libname_spec\"`
2911
-		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
2912
-		  set dummy $deplib_matches
2913
-		  deplib_match=$2
2914
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2915
-		    newdeplibs="$newdeplibs $i"
2916
-		  else
2917
-		    droppeddeps=yes
2918
-		    echo
2919
-		    echo "*** Warning: dynamic linker does not accept needed library $i."
2920
-		    echo "*** I have the capability to make that library automatically link in when"
2921
-		    echo "*** you link to this library.  But I can only do this if you have a"
2922
-		    echo "*** shared version of the library, which you do not appear to have"
2923
-		    echo "*** because a test_compile did reveal that the linker did not use this one"
2924
-		    echo "*** as a dynamic dependency that programs can get resolved with at runtime."
2920
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2921
+		    case " $predeps $postdeps " in
2922
+		    *" $i "*)
2923
+		      newdeplibs="$newdeplibs $i"
2924
+		      i=""
2925
+		      ;;
2926
+		    esac
2927
+		  fi
2928
+		  if test -n "$i" ; then
2929
+		    libname=`eval \\$echo \"$libname_spec\"`
2930
+		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
2931
+		    set dummy $deplib_matches
2932
+		    deplib_match=$2
2933
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2934
+		      newdeplibs="$newdeplibs $i"
2935
+		    else
2936
+		      droppeddeps=yes
2937
+		      $echo
2938
+		      $echo "*** Warning: dynamic linker does not accept needed library $i."
2939
+		      $echo "*** I have the capability to make that library automatically link in when"
2940
+		      $echo "*** you link to this library.  But I can only do this if you have a"
2941
+		      $echo "*** shared version of the library, which you do not appear to have"
2942
+		      $echo "*** because a test_compile did reveal that the linker did not use this one"
2943
+		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
2944
+		    fi
2925 2945
 		  fi
2926 2946
 		else
2927 2947
 		  droppeddeps=yes
2928
-		  echo
2929
-		  echo "*** Warning!  Library $i is needed by this library but I was not able to"
2930
-		  echo "***  make it link in!  You will probably need to install it or some"
2931
-		  echo "*** library that it depends on before this library will be fully"
2932
-		  echo "*** functional.  Installing it before continuing would be even better."
2948
+		  $echo
2949
+		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
2950
+		  $echo "***  make it link in!  You will probably need to install it or some"
2951
+		  $echo "*** library that it depends on before this library will be fully"
2952
+		  $echo "*** functional.  Installing it before continuing would be even better."
2933 2953
 		fi
2934 2954
 	      else
2935 2955
 		newdeplibs="$newdeplibs $i"
... ...
@@ -2941,13 +3968,22 @@ EOF
2941 2941
 	  set dummy $deplibs_check_method
2942 2942
 	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2943 2943
 	  for a_deplib in $deplibs; do
2944
-	    name="`expr $a_deplib : '-l\(.*\)'`"
2944
+	    name=`expr $a_deplib : '-l\(.*\)'`
2945 2945
 	    # If $name is empty we are operating on a -L argument.
2946
-	    if test -n "$name" && test "$name" != "0"; then
2947
-	      libname=`eval \\$echo \"$libname_spec\"`
2948
-	      for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2949
-		    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2950
-		    for potent_lib in $potential_libs; do
2946
+            if test "$name" != "" && test  "$name" != "0"; then
2947
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2948
+		case " $predeps $postdeps " in
2949
+		*" $a_deplib "*)
2950
+		  newdeplibs="$newdeplibs $a_deplib"
2951
+		  a_deplib=""
2952
+		  ;;
2953
+		esac
2954
+	      fi
2955
+	      if test -n "$a_deplib" ; then
2956
+		libname=`eval \\$echo \"$libname_spec\"`
2957
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2958
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2959
+		  for potent_lib in $potential_libs; do
2951 2960
 		      # Follow soft links.
2952 2961
 		      if ls -lLd "$potent_lib" 2>/dev/null \
2953 2962
 			 | grep " -> " >/dev/null; then
... ...
@@ -2960,34 +3996,35 @@ EOF
2960 2960
 		      # but so what?
2961 2961
 		      potlib="$potent_lib"
2962 2962
 		      while test -h "$potlib" 2>/dev/null; do
2963
-			potliblink=`ls -ld $potlib | sed 's/.* -> //'`
2963
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
2964 2964
 			case $potliblink in
2965 2965
 			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
2966 2966
 			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2967 2967
 			esac
2968 2968
 		      done
2969 2969
 		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
2970
-			 | sed 10q \
2971
-			 | egrep "$file_magic_regex" > /dev/null; then
2970
+			 | ${SED} 10q \
2971
+			 | $EGREP "$file_magic_regex" > /dev/null; then
2972 2972
 			newdeplibs="$newdeplibs $a_deplib"
2973 2973
 			a_deplib=""
2974 2974
 			break 2
2975 2975
 		      fi
2976
-		    done
2977
-	      done
2976
+		  done
2977
+		done
2978
+	      fi
2978 2979
 	      if test -n "$a_deplib" ; then
2979 2980
 		droppeddeps=yes
2980
-		echo
2981
-		echo "*** Warning: linker path does not have real file for library $a_deplib."
2982
-		echo "*** I have the capability to make that library automatically link in when"
2983
-		echo "*** you link to this library.  But I can only do this if you have a"
2984
-		echo "*** shared version of the library, which you do not appear to have"
2985
-		echo "*** because I did check the linker path looking for a file starting"
2981
+		$echo
2982
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
2983
+		$echo "*** I have the capability to make that library automatically link in when"
2984
+		$echo "*** you link to this library.  But I can only do this if you have a"
2985
+		$echo "*** shared version of the library, which you do not appear to have"
2986
+		$echo "*** because I did check the linker path looking for a file starting"
2986 2987
 		if test -z "$potlib" ; then
2987
-		  echo "*** with $libname but no candidates were found. (...for file magic test)"
2988
+		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
2988 2989
 		else
2989
-		  echo "*** with $libname and none of the candidates passed a file format test"
2990
-		  echo "*** using a file magic. Last file checked: $potlib"
2990
+		  $echo "*** with $libname and none of the candidates passed a file format test"
2991
+		  $echo "*** using a file magic. Last file checked: $potlib"
2991 2992
 		fi
2992 2993
 	      fi
2993 2994
 	    else
... ...
@@ -3000,36 +4037,46 @@ EOF
3000 3000
 	  set dummy $deplibs_check_method
3001 3001
 	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3002 3002
 	  for a_deplib in $deplibs; do
3003
-	    name="`expr $a_deplib : '-l\(.*\)'`"
3003
+	    name=`expr $a_deplib : '-l\(.*\)'`
3004 3004
 	    # If $name is empty we are operating on a -L argument.
3005 3005
 	    if test -n "$name" && test "$name" != "0"; then
3006
-	      libname=`eval \\$echo \"$libname_spec\"`
3007
-	      for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3008
-		potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3009
-		for potent_lib in $potential_libs; do
3010
-		  potlib="$potent_lib" # see symlink-check below in file_magic test
3011
-		  if eval echo \"$potent_lib\" 2>/dev/null \
3012
-		      | sed 10q \
3013
-		      | egrep "$match_pattern_regex" > /dev/null; then
3014
-		    newdeplibs="$newdeplibs $a_deplib"
3015
-		    a_deplib=""
3016
-		    break 2
3017
-		  fi
3006
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3007
+		case " $predeps $postdeps " in
3008
+		*" $a_deplib "*)
3009
+		  newdeplibs="$newdeplibs $a_deplib"
3010
+		  a_deplib=""
3011
+		  ;;
3012
+		esac
3013
+	      fi
3014
+	      if test -n "$a_deplib" ; then
3015
+		libname=`eval \\$echo \"$libname_spec\"`
3016
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3017
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3018
+		  for potent_lib in $potential_libs; do
3019
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
3020
+		    if eval $echo \"$potent_lib\" 2>/dev/null \
3021
+		        | ${SED} 10q \
3022
+		        | $EGREP "$match_pattern_regex" > /dev/null; then
3023
+		      newdeplibs="$newdeplibs $a_deplib"
3024
+		      a_deplib=""
3025
+		      break 2
3026
+		    fi
3027
+		  done
3018 3028
 		done
3019
-	      done
3029
+	      fi
3020 3030
 	      if test -n "$a_deplib" ; then
3021 3031
 		droppeddeps=yes
3022
-		echo
3023
-		echo "*** Warning: linker path does not have real file for library $a_deplib."
3024
-		echo "*** I have the capability to make that library automatically link in when"
3025
-		echo "*** you link to this library.  But I can only do this if you have a"
3026
-		echo "*** shared version of the library, which you do not appear to have"
3027
-		echo "*** because I did check the linker path looking for a file starting"
3032
+		$echo
3033
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3034
+		$echo "*** I have the capability to make that library automatically link in when"
3035
+		$echo "*** you link to this library.  But I can only do this if you have a"
3036
+		$echo "*** shared version of the library, which you do not appear to have"
3037
+		$echo "*** because I did check the linker path looking for a file starting"
3028 3038
 		if test -z "$potlib" ; then
3029
-		  echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3039
+		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3030 3040
 		else
3031
-		  echo "*** with $libname and none of the candidates passed a file format test"
3032
-		  echo "*** using a regex pattern. Last file checked: $potlib"
3041
+		  $echo "*** with $libname and none of the candidates passed a file format test"
3042
+		  $echo "*** using a regex pattern. Last file checked: $potlib"
3033 3043
 		fi
3034 3044
 	      fi
3035 3045
 	    else
... ...
@@ -3040,16 +4087,23 @@ EOF
3040 3040
 	  ;;
3041 3041
 	none | unknown | *)
3042 3042
 	  newdeplibs=""
3043
-	  if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3044
-	       -e 's/ -[LR][^ ]*//g' -e 's/[ 	]//g' |
3045
-	     grep . >/dev/null; then
3046
-	    echo
3043
+	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3044
+	    -e 's/ -[LR][^ ]*//g'`
3045
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3046
+	    for i in $predeps $postdeps ; do
3047
+	      # can't use Xsed below, because $i might contain '/'
3048
+	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3049
+	    done
3050
+	  fi
3051
+	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3052
+	    | grep . >/dev/null; then
3053
+	    $echo
3047 3054
 	    if test "X$deplibs_check_method" = "Xnone"; then
3048
-	      echo "*** Warning: inter-library dependencies are not supported in this platform."
3055
+	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3049 3056
 	    else
3050
-	      echo "*** Warning: inter-library dependencies are not known to be supported."
3057
+	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3051 3058
 	    fi
3052
-	    echo "*** All declared inter-library dependencies are being dropped."
3059
+	    $echo "*** All declared inter-library dependencies are being dropped."
3053 3060
 	    droppeddeps=yes
3054 3061
 	  fi
3055 3062
 	  ;;
... ...
@@ -3069,17 +4123,17 @@ EOF
3069 3069
 
3070 3070
 	if test "$droppeddeps" = yes; then
3071 3071
 	  if test "$module" = yes; then
3072
-	    echo
3073
-	    echo "*** Warning: libtool could not satisfy all declared inter-library"
3074
-	    echo "*** dependencies of module $libname.  Therefore, libtool will create"
3075
-	    echo "*** a static module, that should work as long as the dlopening"
3076
-	    echo "*** application is linked with the -dlopen flag."
3072
+	    $echo
3073
+	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3074
+	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3075
+	    $echo "*** a static module, that should work as long as the dlopening"
3076
+	    $echo "*** application is linked with the -dlopen flag."
3077 3077
 	    if test -z "$global_symbol_pipe"; then
3078
-	      echo
3079
-	      echo "*** However, this would only work if libtool was able to extract symbol"
3080
-	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3081
-	      echo "*** not find such a program.  So, this module is probably useless."
3082
-	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
3078
+	      $echo
3079
+	      $echo "*** However, this would only work if libtool was able to extract symbol"
3080
+	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3081
+	      $echo "*** not find such a program.  So, this module is probably useless."
3082
+	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3083 3083
 	    fi
3084 3084
 	    if test "$build_old_libs" = no; then
3085 3085
 	      oldlibs="$output_objdir/$libname.$libext"
... ...
@@ -3089,16 +4143,16 @@ EOF
3089 3089
 	      build_libtool_libs=no
3090 3090
 	    fi
3091 3091
 	  else
3092
-	    echo "*** The inter-library dependencies that have been dropped here will be"
3093
-	    echo "*** automatically added whenever a program is linked with this library"
3094
-	    echo "*** or is declared to -dlopen it."
3095
-
3096
-	    if test $allow_undefined = no; then
3097
-	      echo
3098
-	      echo "*** Since this library must not contain undefined symbols,"
3099
-	      echo "*** because either the platform does not support them or"
3100
-	      echo "*** it was explicitly requested with -no-undefined,"
3101
-	      echo "*** libtool will only create a static version of it."
3092
+	    $echo "*** The inter-library dependencies that have been dropped here will be"
3093
+	    $echo "*** automatically added whenever a program is linked with this library"
3094
+	    $echo "*** or is declared to -dlopen it."
3095
+
3096
+	    if test "$allow_undefined" = no; then
3097
+	      $echo
3098
+	      $echo "*** Since this library must not contain undefined symbols,"
3099
+	      $echo "*** because either the platform does not support them or"
3100
+	      $echo "*** it was explicitly requested with -no-undefined,"
3101
+	      $echo "*** libtool will only create a static version of it."
3102 3102
 	      if test "$build_old_libs" = no; then
3103 3103
 		oldlibs="$output_objdir/$libname.$libext"
3104 3104
 		build_libtool_libs=module
... ...
@@ -3113,6 +4167,35 @@ EOF
3113 3113
 	deplibs=$newdeplibs
3114 3114
       fi
3115 3115
 
3116
+
3117
+      # move library search paths that coincide with paths to not yet
3118
+      # installed libraries to the beginning of the library search list
3119
+      new_libs=
3120
+      for path in $notinst_path; do
3121
+	case " $new_libs " in
3122
+	*" -L$path/$objdir "*) ;;
3123
+	*)
3124
+	  case " $deplibs " in
3125
+	  *" -L$path/$objdir "*)
3126
+	    new_libs="$new_libs -L$path/$objdir" ;;
3127
+	  esac
3128
+	  ;;
3129
+	esac
3130
+      done
3131
+      for deplib in $deplibs; do
3132
+	case $deplib in
3133
+	-L*)
3134
+	  case " $new_libs " in
3135
+	  *" $deplib "*) ;;
3136
+	  *) new_libs="$new_libs $deplib" ;;
3137
+	  esac
3138
+	  ;;
3139
+	*) new_libs="$new_libs $deplib" ;;
3140
+	esac
3141
+      done
3142
+      deplibs="$new_libs"
3143
+
3144
+
3116 3145
       # All the library-specific variables (install_libdir is set above).
3117 3146
       library_names=
3118 3147
       old_library=
... ...
@@ -3120,7 +4203,7 @@ EOF
3120 3120
 
3121 3121
       # Test again, we may have decided not to build it any more
3122 3122
       if test "$build_libtool_libs" = yes; then
3123
-	if test $hardcode_into_libs = yes; then
3123
+	if test "$hardcode_into_libs" = yes; then
3124 3124
 	  # Hardcode the library paths
3125 3125
 	  hardcode_libdirs=
3126 3126
 	  dep_rpath=
... ...
@@ -3156,7 +4239,11 @@ EOF
3156 3156
 	  if test -n "$hardcode_libdir_separator" &&
3157 3157
 	     test -n "$hardcode_libdirs"; then
3158 3158
 	    libdir="$hardcode_libdirs"
3159
-	    eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3159
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3160
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3161
+	    else
3162
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3163
+	    fi
3160 3164
 	  fi
3161 3165
 	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3162 3166
 	    # We should set the runpath_var.
... ...
@@ -3176,6 +4263,7 @@ EOF
3176 3176
 	fi
3177 3177
 
3178 3178
 	# Get the real and link names of the library.
3179
+	eval shared_ext=\"$shrext_cmds\"
3179 3180
 	eval library_names=\"$library_names_spec\"
3180 3181
 	set dummy $library_names
3181 3182
 	realname="$2"
... ...
@@ -3186,31 +4274,17 @@ EOF
3186 3186
 	else
3187 3187
 	  soname="$realname"
3188 3188
 	fi
3189
-	test -z "$dlname" && dlname=$soname
3189
+	if test -z "$dlname"; then
3190
+	  dlname=$soname
3191
+	fi
3190 3192
 
3191 3193
 	lib="$output_objdir/$realname"
3194
+	linknames=
3192 3195
 	for link
3193 3196
 	do
3194 3197
 	  linknames="$linknames $link"
3195 3198
 	done
3196 3199
 
3197
-	# Ensure that we have .o objects for linkers which dislike .lo
3198
-	# (e.g. aix) in case we are running --disable-static
3199
-	for obj in $libobjs; do
3200
-	  xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
3201
-	  if test "X$xdir" = "X$obj"; then
3202
-	    xdir="."
3203
-	  else
3204
-	    xdir="$xdir"
3205
-	  fi
3206
-	  baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
3207
-	  oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3208
-	  if test ! -f $xdir/$oldobj; then
3209
-	    $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
3210
-	    $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
3211
-	  fi
3212
-	done
3213
-
3214 3200
 	# Use standard objects if they are pic
3215 3201
 	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3216 3202
 
... ...
@@ -3220,17 +4294,29 @@ EOF
3220 3220
 	    $show "generating symbol list for \`$libname.la'"
3221 3221
 	    export_symbols="$output_objdir/$libname.exp"
3222 3222
 	    $run $rm $export_symbols
3223
-	    eval cmds=\"$export_symbols_cmds\"
3223
+	    cmds=$export_symbols_cmds
3224 3224
 	    save_ifs="$IFS"; IFS='~'
3225 3225
 	    for cmd in $cmds; do
3226 3226
 	      IFS="$save_ifs"
3227
-	      $show "$cmd"
3228
-	      $run eval "$cmd" || exit $?
3227
+	      eval cmd=\"$cmd\"
3228
+	      if len=`expr "X$cmd" : ".*"` &&
3229
+	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3230
+	        $show "$cmd"
3231
+	        $run eval "$cmd" || exit $?
3232
+	        skipped_export=false
3233
+	      else
3234
+	        # The command line is too long to execute in one step.
3235
+	        $show "using reloadable object file for export list..."
3236
+	        skipped_export=:
3237
+		# Break out early, otherwise skipped_export may be
3238
+		# set to false by a later but shorter cmd.
3239
+		break
3240
+	      fi
3229 3241
 	    done
3230 3242
 	    IFS="$save_ifs"
3231 3243
 	    if test -n "$export_symbols_regex"; then
3232
-	      $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3233
-	      $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3244
+	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3245
+	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3234 3246
 	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3235 3247
 	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
3236 3248
 	    fi
... ...
@@ -3241,46 +4327,30 @@ EOF
3241 3241
 	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3242 3242
 	fi
3243 3243
 
3244
+	tmp_deplibs=
3245
+	for test_deplib in $deplibs; do
3246
+		case " $convenience " in
3247
+		*" $test_deplib "*) ;;
3248
+		*)
3249
+			tmp_deplibs="$tmp_deplibs $test_deplib"
3250
+			;;
3251
+		esac
3252
+	done
3253
+	deplibs="$tmp_deplibs"
3254
+
3244 3255
 	if test -n "$convenience"; then
3245 3256
 	  if test -n "$whole_archive_flag_spec"; then
3257
+	    save_libobjs=$libobjs
3246 3258
 	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3247 3259
 	  else
3248 3260
 	    gentop="$output_objdir/${outputname}x"
3249
-	    $show "${rm}r $gentop"
3250
-	    $run ${rm}r "$gentop"
3251
-	    $show "mkdir $gentop"
3252
-	    $run mkdir "$gentop"
3253
-	    status=$?
3254
-	    if test $status -ne 0 && test ! -d "$gentop"; then
3255
-	      exit $status
3256
-	    fi
3257 3261
 	    generated="$generated $gentop"
3258 3262
 
3259
-	    for xlib in $convenience; do
3260
-	      # Extract the objects.
3261
-	      case $xlib in
3262
-	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3263
-	      *) xabs=`pwd`"/$xlib" ;;
3264
-	      esac
3265
-	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3266
-	      xdir="$gentop/$xlib"
3267
-
3268
-	      $show "${rm}r $xdir"
3269
-	      $run ${rm}r "$xdir"
3270
-	      $show "mkdir $xdir"
3271
-	      $run mkdir "$xdir"
3272
-	      status=$?
3273
-	      if test $status -ne 0 && test ! -d "$xdir"; then
3274
-		exit $status
3275
-	      fi
3276
-	      $show "(cd $xdir && $AR x $xabs)"
3277
-	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3278
-
3279
-	      libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
3280
-	    done
3263
+	    func_extract_archives $gentop $convenience
3264
+	    libobjs="$libobjs $func_extract_archives_result"
3281 3265
 	  fi
3282 3266
 	fi
3283
-
3267
+	
3284 3268
 	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3285 3269
 	  eval flag=\"$thread_safe_flag_spec\"
3286 3270
 	  linker_flags="$linker_flags $flag"
... ...
@@ -3292,23 +4362,175 @@ EOF
3292 3292
 	fi
3293 3293
 
3294 3294
 	# Do each of the archive commands.
3295
+	if test "$module" = yes && test -n "$module_cmds" ; then
3296
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3297
+	    eval test_cmds=\"$module_expsym_cmds\"
3298
+	    cmds=$module_expsym_cmds
3299
+	  else
3300
+	    eval test_cmds=\"$module_cmds\"
3301
+	    cmds=$module_cmds
3302
+	  fi
3303
+	else
3295 3304
 	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3296
-	  eval cmds=\"$archive_expsym_cmds\"
3305
+	  eval test_cmds=\"$archive_expsym_cmds\"
3306
+	  cmds=$archive_expsym_cmds
3297 3307
 	else
3298
-	  eval cmds=\"$archive_cmds\"
3308
+	  eval test_cmds=\"$archive_cmds\"
3309
+	  cmds=$archive_cmds
3310
+	  fi
3311
+	fi
3312
+
3313
+	if test "X$skipped_export" != "X:" &&
3314
+	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
3315
+	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3316
+	  :
3317
+	else
3318
+	  # The command line is too long to link in one step, link piecewise.
3319
+	  $echo "creating reloadable object files..."
3320
+
3321
+	  # Save the value of $output and $libobjs because we want to
3322
+	  # use them later.  If we have whole_archive_flag_spec, we
3323
+	  # want to use save_libobjs as it was before
3324
+	  # whole_archive_flag_spec was expanded, because we can't
3325
+	  # assume the linker understands whole_archive_flag_spec.
3326
+	  # This may have to be revisited, in case too many
3327
+	  # convenience libraries get linked in and end up exceeding
3328
+	  # the spec.
3329
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
3330
+	    save_libobjs=$libobjs
3331
+	  fi
3332
+	  save_output=$output
3333
+	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
3334
+
3335
+	  # Clear the reloadable object creation command queue and
3336
+	  # initialize k to one.
3337
+	  test_cmds=
3338
+	  concat_cmds=
3339
+	  objlist=
3340
+	  delfiles=
3341
+	  last_robj=
3342
+	  k=1
3343
+	  output=$output_objdir/$output_la-${k}.$objext
3344
+	  # Loop over the list of objects to be linked.
3345
+	  for obj in $save_libobjs
3346
+	  do
3347
+	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
3348
+	    if test "X$objlist" = X ||
3349
+	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
3350
+		 test "$len" -le "$max_cmd_len"; }; then
3351
+	      objlist="$objlist $obj"
3352
+	    else
3353
+	      # The command $test_cmds is almost too long, add a
3354
+	      # command to the queue.
3355
+	      if test "$k" -eq 1 ; then
3356
+		# The first file doesn't have a previous command to add.
3357
+		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
3358
+	      else
3359
+		# All subsequent reloadable object files will link in
3360
+		# the last one created.
3361
+		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
3362
+	      fi
3363
+	      last_robj=$output_objdir/$output_la-${k}.$objext
3364
+	      k=`expr $k + 1`
3365
+	      output=$output_objdir/$output_la-${k}.$objext
3366
+	      objlist=$obj
3367
+	      len=1
3368
+	    fi
3369
+	  done
3370
+	  # Handle the remaining objects by creating one last
3371
+	  # reloadable object file.  All subsequent reloadable object
3372
+	  # files will link in the last one created.
3373
+	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
3374
+	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
3375
+
3376
+	  if ${skipped_export-false}; then
3377
+	    $show "generating symbol list for \`$libname.la'"
3378
+	    export_symbols="$output_objdir/$libname.exp"
3379
+	    $run $rm $export_symbols
3380
+	    libobjs=$output
3381
+	    # Append the command to create the export file.
3382
+	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
3383
+          fi
3384
+
3385
+	  # Set up a command to remove the reloadable object files
3386
+	  # after they are used.
3387
+	  i=0
3388
+	  while test "$i" -lt "$k"
3389
+	  do
3390
+	    i=`expr $i + 1`
3391
+	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
3392
+	  done
3393
+
3394
+	  $echo "creating a temporary reloadable object file: $output"
3395
+
3396
+	  # Loop through the commands generated above and execute them.
3397
+	  save_ifs="$IFS"; IFS='~'
3398
+	  for cmd in $concat_cmds; do
3399
+	    IFS="$save_ifs"
3400
+	    $show "$cmd"
3401
+	    $run eval "$cmd" || exit $?
3402
+	  done
3403
+	  IFS="$save_ifs"
3404
+
3405
+	  libobjs=$output
3406
+	  # Restore the value of output.
3407
+	  output=$save_output
3408
+
3409
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
3410
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3411
+	  fi
3412
+	  # Expand the library linking commands again to reset the
3413
+	  # value of $libobjs for piecewise linking.
3414
+
3415
+	  # Do each of the archive commands.
3416
+	  if test "$module" = yes && test -n "$module_cmds" ; then
3417
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3418
+	      cmds=$module_expsym_cmds
3419
+	    else
3420
+	      cmds=$module_cmds
3421
+	    fi
3422
+	  else
3423
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3424
+	    cmds=$archive_expsym_cmds
3425
+	  else
3426
+	    cmds=$archive_cmds
3427
+	    fi
3428
+	  fi
3429
+
3430
+	  # Append the command to remove the reloadable object files
3431
+	  # to the just-reset $cmds.
3432
+	  eval cmds=\"\$cmds~\$rm $delfiles\"
3299 3433
 	fi
3300 3434
 	save_ifs="$IFS"; IFS='~'
3301 3435
 	for cmd in $cmds; do
3302 3436
 	  IFS="$save_ifs"
3437
+	  eval cmd=\"$cmd\"
3303 3438
 	  $show "$cmd"
3304
-	  $run eval "$cmd" || exit $?
3439
+	  $run eval "$cmd" || {
3440
+	    lt_exit=$?
3441
+
3442
+	    # Restore the uninstalled library and exit
3443
+	    if test "$mode" = relink; then
3444
+	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
3445
+	    fi
3446
+
3447
+	    exit $lt_exit
3448
+	  }
3305 3449
 	done
3306 3450
 	IFS="$save_ifs"
3307 3451
 
3308 3452
 	# Restore the uninstalled library and exit
3309 3453
 	if test "$mode" = relink; then
3310 3454
 	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
3311
-	  exit 0
3455
+
3456
+	  if test -n "$convenience"; then
3457
+	    if test -z "$whole_archive_flag_spec"; then
3458
+	      $show "${rm}r $gentop"
3459
+	      $run ${rm}r "$gentop"
3460
+	    fi
3461
+	  fi
3462
+
3463
+	  exit $EXIT_SUCCESS
3312 3464
 	fi
3313 3465
 
3314 3466
 	# Create links to the real library.
... ...
@@ -3356,7 +4578,7 @@ EOF
3356 3356
       *.lo)
3357 3357
 	if test -n "$objs$old_deplibs"; then
3358 3358
 	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3359
-	  exit 1
3359
+	  exit $EXIT_FAILURE
3360 3360
 	fi
3361 3361
 	libobj="$output"
3362 3362
 	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
... ...
@@ -3385,38 +4607,10 @@ EOF
3385 3385
 	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
3386 3386
 	else
3387 3387
 	  gentop="$output_objdir/${obj}x"
3388
-	  $show "${rm}r $gentop"
3389
-	  $run ${rm}r "$gentop"
3390
-	  $show "mkdir $gentop"
3391
-	  $run mkdir "$gentop"
3392
-	  status=$?
3393
-	  if test $status -ne 0 && test ! -d "$gentop"; then
3394
-	    exit $status
3395
-	  fi
3396 3388
 	  generated="$generated $gentop"
3397 3389
 
3398
-	  for xlib in $convenience; do
3399
-	    # Extract the objects.
3400
-	    case $xlib in
3401
-	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3402
-	    *) xabs=`pwd`"/$xlib" ;;
3403
-	    esac
3404
-	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3405
-	    xdir="$gentop/$xlib"
3406
-
3407
-	    $show "${rm}r $xdir"
3408
-	    $run ${rm}r "$xdir"
3409
-	    $show "mkdir $xdir"
3410
-	    $run mkdir "$xdir"
3411
-	    status=$?
3412
-	    if test $status -ne 0 && test ! -d "$xdir"; then
3413
-	      exit $status
3414
-	    fi
3415
-	    $show "(cd $xdir && $AR x $xabs)"
3416
-	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3417
-
3418
-	    reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
3419
-	  done
3390
+	  func_extract_archives $gentop $convenience
3391
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
3420 3392
 	fi
3421 3393
       fi
3422 3394
 
... ...
@@ -3424,10 +4618,11 @@ EOF
3424 3424
       reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
3425 3425
 
3426 3426
       output="$obj"
3427
-      eval cmds=\"$reload_cmds\"
3427
+      cmds=$reload_cmds
3428 3428
       save_ifs="$IFS"; IFS='~'
3429 3429
       for cmd in $cmds; do
3430 3430
 	IFS="$save_ifs"
3431
+	eval cmd=\"$cmd\"
3431 3432
 	$show "$cmd"
3432 3433
 	$run eval "$cmd" || exit $?
3433 3434
       done
... ...
@@ -3440,7 +4635,7 @@ EOF
3440 3440
 	  $run ${rm}r $gentop
3441 3441
 	fi
3442 3442
 
3443
-	exit 0
3443
+	exit $EXIT_SUCCESS
3444 3444
       fi
3445 3445
 
3446 3446
       if test "$build_libtool_libs" != yes; then
... ...
@@ -3451,37 +4646,24 @@ EOF
3451 3451
 
3452 3452
 	# Create an invalid libtool object if no PIC, so that we don't
3453 3453
 	# accidentally link it into a program.
3454
-	$show "echo timestamp > $libobj"
3455
-	$run eval "echo timestamp > $libobj" || exit $?
3456
-	exit 0
3454
+	# $show "echo timestamp > $libobj"
3455
+	# $run eval "echo timestamp > $libobj" || exit $?
3456
+	exit $EXIT_SUCCESS
3457 3457
       fi
3458 3458
 
3459 3459
       if test -n "$pic_flag" || test "$pic_mode" != default; then
3460 3460
 	# Only do commands if we really have different PIC objects.
3461 3461
 	reload_objs="$libobjs $reload_conv_objs"
3462 3462
 	output="$libobj"
3463
-	eval cmds=\"$reload_cmds\"
3463
+	cmds=$reload_cmds
3464 3464
 	save_ifs="$IFS"; IFS='~'
3465 3465
 	for cmd in $cmds; do
3466 3466
 	  IFS="$save_ifs"
3467
+	  eval cmd=\"$cmd\"
3467 3468
 	  $show "$cmd"
3468 3469
 	  $run eval "$cmd" || exit $?
3469 3470
 	done
3470 3471
 	IFS="$save_ifs"
3471
-      else
3472
-	# Just create a symlink.
3473
-	$show $rm $libobj
3474
-	$run $rm $libobj
3475
-	xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3476
-	if test "X$xdir" = "X$libobj"; then
3477
-	  xdir="."
3478
-	else
3479
-	  xdir="$xdir"
3480
-	fi
3481
-	baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3482
-	oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3483
-	$show "(cd $xdir && $LN_S $oldobj $baseobj)"
3484
-	$run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3485 3472
       fi
3486 3473
 
3487 3474
       if test -n "$gentop"; then
... ...
@@ -3489,12 +4671,12 @@ EOF
3489 3489
 	$run ${rm}r $gentop
3490 3490
       fi
3491 3491
 
3492
-      exit 0
3492
+      exit $EXIT_SUCCESS
3493 3493
       ;;
3494 3494
 
3495 3495
     prog)
3496 3496
       case $host in
3497
-	*cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
3497
+	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
3498 3498
       esac
3499 3499
       if test -n "$vinfo"; then
3500 3500
 	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
... ...
@@ -3519,6 +4701,45 @@ EOF
3519 3519
 	;;
3520 3520
       esac
3521 3521
 
3522
+      case $host in
3523
+      *darwin*)
3524
+        # Don't allow lazy linking, it breaks C++ global constructors
3525
+        if test "$tagname" = CXX ; then
3526
+        compile_command="$compile_command ${wl}-bind_at_load"
3527
+        finalize_command="$finalize_command ${wl}-bind_at_load"
3528
+        fi
3529
+        ;;
3530
+      esac
3531
+
3532
+
3533
+      # move library search paths that coincide with paths to not yet
3534
+      # installed libraries to the beginning of the library search list
3535
+      new_libs=
3536
+      for path in $notinst_path; do
3537
+	case " $new_libs " in
3538
+	*" -L$path/$objdir "*) ;;
3539
+	*)
3540
+	  case " $compile_deplibs " in
3541
+	  *" -L$path/$objdir "*)
3542
+	    new_libs="$new_libs -L$path/$objdir" ;;
3543
+	  esac
3544
+	  ;;
3545
+	esac
3546
+      done
3547
+      for deplib in $compile_deplibs; do
3548
+	case $deplib in
3549
+	-L*)
3550
+	  case " $new_libs " in
3551
+	  *" $deplib "*) ;;
3552
+	  *) new_libs="$new_libs $deplib" ;;
3553
+	  esac
3554
+	  ;;
3555
+	*) new_libs="$new_libs $deplib" ;;
3556
+	esac
3557
+      done
3558
+      compile_deplibs="$new_libs"
3559
+
3560
+
3522 3561
       compile_command="$compile_command $compile_deplibs"
3523 3562
       finalize_command="$finalize_command $finalize_deplibs"
3524 3563
 
... ...
@@ -3563,10 +4784,15 @@ EOF
3563 3563
 	fi
3564 3564
 	case $host in
3565 3565
 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
3566
+	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
3566 3567
 	  case :$dllsearchpath: in
3567 3568
 	  *":$libdir:"*) ;;
3568 3569
 	  *) dllsearchpath="$dllsearchpath:$libdir";;
3569 3570
 	  esac
3571
+	  case :$dllsearchpath: in
3572
+	  *":$testbindir:"*) ;;
3573
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
3574
+	  esac
3570 3575
 	  ;;
3571 3576
 	esac
3572 3577
       done
... ...
@@ -3669,31 +4895,43 @@ extern \"C\" {
3669 3669
 	    done
3670 3670
 
3671 3671
 	    if test -n "$exclude_expsyms"; then
3672
-	      $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3672
+	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3673 3673
 	      $run eval '$mv "$nlist"T "$nlist"'
3674 3674
 	    fi
3675 3675
 
3676 3676
 	    if test -n "$export_symbols_regex"; then
3677
-	      $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3677
+	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3678 3678
 	      $run eval '$mv "$nlist"T "$nlist"'
3679 3679
 	    fi
3680 3680
 
3681 3681
 	    # Prepare the list of exported symbols
3682 3682
 	    if test -z "$export_symbols"; then
3683
-	      export_symbols="$output_objdir/$output.exp"
3683
+	      export_symbols="$output_objdir/$outputname.exp"
3684 3684
 	      $run $rm $export_symbols
3685
-	      $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3685
+	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3686
+              case $host in
3687
+              *cygwin* | *mingw* )
3688
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
3689
+		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
3690
+                ;;
3691
+              esac
3686 3692
 	    else
3687
-	      $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3688
-	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3693
+	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
3694
+	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
3689 3695
 	      $run eval 'mv "$nlist"T "$nlist"'
3696
+              case $host in
3697
+              *cygwin* | *mingw* )
3698
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
3699
+		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
3700
+                ;;
3701
+              esac
3690 3702
 	    fi
3691 3703
 	  fi
3692 3704
 
3693 3705
 	  for arg in $dlprefiles; do
3694 3706
 	    $show "extracting global C symbols from \`$arg'"
3695
-	    name=`echo "$arg" | sed -e 's%^.*/%%'`
3696
-	    $run eval 'echo ": $name " >> "$nlist"'
3707
+	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
3708
+	    $run eval '$echo ": $name " >> "$nlist"'
3697 3709
 	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3698 3710
 	  done
3699 3711
 
... ...
@@ -3702,12 +4940,18 @@ extern \"C\" {
3702 3702
 	    test -f "$nlist" || : > "$nlist"
3703 3703
 
3704 3704
 	    if test -n "$exclude_expsyms"; then
3705
-	      egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3705
+	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3706 3706
 	      $mv "$nlist"T "$nlist"
3707 3707
 	    fi
3708 3708
 
3709 3709
 	    # Try sorting and uniquifying the output.
3710
-	    if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
3710
+	    if grep -v "^: " < "$nlist" |
3711
+		if sort -k 3 </dev/null >/dev/null 2>&1; then
3712
+		  sort -k 3
3713
+		else
3714
+		  sort +2
3715
+		fi |
3716
+		uniq > "$nlist"S; then
3711 3717
 	      :
3712 3718
 	    else
3713 3719
 	      grep -v "^: " < "$nlist" > "$nlist"S
... ...
@@ -3716,7 +4960,7 @@ extern \"C\" {
3716 3716
 	    if test -f "$nlist"S; then
3717 3717
 	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3718 3718
 	    else
3719
-	      echo '/* NONE */' >> "$output_objdir/$dlsyms"
3719
+	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
3720 3720
 	    fi
3721 3721
 
3722 3722
 	    $echo >> "$output_objdir/$dlsyms" "\
... ...
@@ -3731,7 +4975,26 @@ extern \"C\" {
3731 3731
 #endif
3732 3732
 
3733 3733
 /* The mapping between symbol names and symbols. */
3734
+"
3735
+
3736
+	    case $host in
3737
+	    *cygwin* | *mingw* )
3738
+	  $echo >> "$output_objdir/$dlsyms" "\
3739
+/* DATA imports from DLLs on WIN32 can't be const, because
3740
+   runtime relocations are performed -- see ld's documentation
3741
+   on pseudo-relocs */
3742
+struct {
3743
+"
3744
+	      ;;
3745
+	    * )
3746
+	  $echo >> "$output_objdir/$dlsyms" "\
3734 3747
 const struct {
3748
+"
3749
+	      ;;
3750
+	    esac
3751
+
3752
+
3753
+	  $echo >> "$output_objdir/$dlsyms" "\
3735 3754
   const char *name;
3736 3755
   lt_ptr address;
3737 3756
 }
... ...
@@ -3768,30 +5031,43 @@ static const void *lt_preloaded_setup() {
3768 3768
 	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3769 3769
 	    case "$compile_command " in
3770 3770
 	    *" -static "*) ;;
3771
-	    *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
3771
+	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
3772 3772
 	    esac;;
3773 3773
 	  *-*-hpux*)
3774 3774
 	    case "$compile_command " in
3775 3775
 	    *" -static "*) ;;
3776
-	    *) pic_flag_for_symtable=" $pic_flag -DPIC";;
3776
+	    *) pic_flag_for_symtable=" $pic_flag";;
3777 3777
 	    esac
3778 3778
 	  esac
3779 3779
 
3780 3780
 	  # Now compile the dynamic symbol file.
3781
-	  $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3782
-	  $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3781
+	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3782
+	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3783 3783
 
3784 3784
 	  # Clean up the generated files.
3785 3785
 	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3786 3786
 	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3787 3787
 
3788 3788
 	  # Transform the symbol file into the correct name.
3789
-	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3790
-	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3789
+          case $host in
3790
+          *cygwin* | *mingw* )
3791
+            if test -f "$output_objdir/${outputname}.def" ; then
3792
+              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
3793
+              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
3794
+            else
3795
+              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3796
+              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3797
+             fi
3798
+            ;;
3799
+          * )
3800
+            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3801
+            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3802
+            ;;
3803
+          esac
3791 3804
 	  ;;
3792 3805
 	*)
3793 3806
 	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3794
-	  exit 1
3807
+	  exit $EXIT_FAILURE
3795 3808
 	  ;;
3796 3809
 	esac
3797 3810
       else
... ...
@@ -3804,7 +5080,7 @@ static const void *lt_preloaded_setup() {
3804 3804
 	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3805 3805
       fi
3806 3806
 
3807
-      if test $need_relink = no || test "$build_libtool_libs" != yes; then
3807
+      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
3808 3808
 	# Replace the output file specification.
3809 3809
 	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3810 3810
 	link_command="$compile_command$compile_rpath"
... ...
@@ -3812,7 +5088,7 @@ static const void *lt_preloaded_setup() {
3812 3812
 	# We have no uninstalled library dependencies, so finalize right now.
3813 3813
 	$show "$link_command"
3814 3814
 	$run eval "$link_command"
3815
-	status=$?
3815
+	exit_status=$?
3816 3816
 
3817 3817
 	# Delete the generated files.
3818 3818
 	if test -n "$dlsyms"; then
... ...
@@ -3820,7 +5096,7 @@ static const void *lt_preloaded_setup() {
3820 3820
 	  $run $rm "$output_objdir/${outputname}S.${objext}"
3821 3821
 	fi
3822 3822
 
3823
-	exit $status
3823
+	exit $exit_status
3824 3824
       fi
3825 3825
 
3826 3826
       if test -n "$shlibpath_var"; then
... ...
@@ -3879,7 +5155,7 @@ static const void *lt_preloaded_setup() {
3879 3879
 	# Link the executable and exit
3880 3880
 	$show "$link_command"
3881 3881
 	$run eval "$link_command" || exit $?
3882
-	exit 0
3882
+	exit $EXIT_SUCCESS
3883 3883
       fi
3884 3884
 
3885 3885
       if test "$hardcode_action" = relink; then
... ...
@@ -3934,10 +5210,10 @@ static const void *lt_preloaded_setup() {
3934 3934
       fi
3935 3935
 
3936 3936
       # Quote $echo for shipping.
3937
-      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3938
-	case $0 in
3939
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
3940
-	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
3937
+      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
3938
+	case $progpath in
3939
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
3940
+	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
3941 3941
 	esac
3942 3942
 	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3943 3943
       else
... ...
@@ -3949,15 +5225,376 @@ static const void *lt_preloaded_setup() {
3949 3949
 	# win32 will think the script is a binary if it has
3950 3950
 	# a .exe suffix, so we strip it off here.
3951 3951
 	case $output in
3952
-	  *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
3952
+	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
3953 3953
 	esac
3954 3954
 	# test for cygwin because mv fails w/o .exe extensions
3955 3955
 	case $host in
3956
-	  *cygwin*) exeext=.exe ;;
3956
+	  *cygwin*)
3957
+	    exeext=.exe
3958
+	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
3957 3959
 	  *) exeext= ;;
3958 3960
 	esac
3959
-	$rm $output
3960
-	trap "$rm $output; exit 1" 1 2 15
3961
+	case $host in
3962
+	  *cygwin* | *mingw* )
3963
+            output_name=`basename $output`
3964
+            output_path=`dirname $output`
3965
+            cwrappersource="$output_path/$objdir/lt-$output_name.c"
3966
+            cwrapper="$output_path/$output_name.exe"
3967
+            $rm $cwrappersource $cwrapper
3968
+            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
3969
+
3970
+	    cat > $cwrappersource <<EOF
3971
+
3972
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
3973
+   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3974
+
3975
+   The $output program cannot be directly executed until all the libtool
3976
+   libraries that it depends on are installed.
3977
+
3978
+   This wrapper executable should never be moved out of the build directory.
3979
+   If it is, it will not operate correctly.
3980
+
3981
+   Currently, it simply execs the wrapper *script* "/bin/sh $output",
3982
+   but could eventually absorb all of the scripts functionality and
3983
+   exec $objdir/$outputname directly.
3984
+*/
3985
+EOF
3986
+	    cat >> $cwrappersource<<"EOF"
3987
+#include <stdio.h>
3988
+#include <stdlib.h>
3989
+#include <unistd.h>
3990
+#include <malloc.h>
3991
+#include <stdarg.h>
3992
+#include <assert.h>
3993
+#include <string.h>
3994
+#include <ctype.h>
3995
+#include <sys/stat.h>
3996
+
3997
+#if defined(PATH_MAX)
3998
+# define LT_PATHMAX PATH_MAX
3999
+#elif defined(MAXPATHLEN)
4000
+# define LT_PATHMAX MAXPATHLEN
4001
+#else
4002
+# define LT_PATHMAX 1024
4003
+#endif
4004
+
4005
+#ifndef DIR_SEPARATOR
4006
+# define DIR_SEPARATOR '/'
4007
+# define PATH_SEPARATOR ':'
4008
+#endif
4009
+
4010
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4011
+  defined (__OS2__)
4012
+# define HAVE_DOS_BASED_FILE_SYSTEM
4013
+# ifndef DIR_SEPARATOR_2
4014
+#  define DIR_SEPARATOR_2 '\\'
4015
+# endif
4016
+# ifndef PATH_SEPARATOR_2
4017
+#  define PATH_SEPARATOR_2 ';'
4018
+# endif
4019
+#endif
4020
+
4021
+#ifndef DIR_SEPARATOR_2
4022
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4023
+#else /* DIR_SEPARATOR_2 */
4024
+# define IS_DIR_SEPARATOR(ch) \
4025
+        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4026
+#endif /* DIR_SEPARATOR_2 */
4027
+
4028
+#ifndef PATH_SEPARATOR_2
4029
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4030
+#else /* PATH_SEPARATOR_2 */
4031
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4032
+#endif /* PATH_SEPARATOR_2 */
4033
+
4034
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
4035
+#define XFREE(stale) do { \
4036
+  if (stale) { free ((void *) stale); stale = 0; } \
4037
+} while (0)
4038
+
4039
+/* -DDEBUG is fairly common in CFLAGS.  */
4040
+#undef DEBUG
4041
+#if defined DEBUGWRAPPER
4042
+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
4043
+#else
4044
+# define DEBUG(format, ...)
4045
+#endif
4046
+
4047
+const char *program_name = NULL;
4048
+
4049
+void * xmalloc (size_t num);
4050
+char * xstrdup (const char *string);
4051
+const char * base_name (const char *name);
4052
+char * find_executable(const char *wrapper);
4053
+int    check_executable(const char *path);
4054
+char * strendzap(char *str, const char *pat);
4055
+void lt_fatal (const char *message, ...);
4056
+
4057
+int
4058
+main (int argc, char *argv[])
4059
+{
4060
+  char **newargz;
4061
+  int i;
4062
+
4063
+  program_name = (char *) xstrdup (base_name (argv[0]));
4064
+  DEBUG("(main) argv[0]      : %s\n",argv[0]);
4065
+  DEBUG("(main) program_name : %s\n",program_name);
4066
+  newargz = XMALLOC(char *, argc+2);
4067
+EOF
4068
+
4069
+            cat >> $cwrappersource <<EOF
4070
+  newargz[0] = (char *) xstrdup("$SHELL");
4071
+EOF
4072
+
4073
+            cat >> $cwrappersource <<"EOF"
4074
+  newargz[1] = find_executable(argv[0]);
4075
+  if (newargz[1] == NULL)
4076
+    lt_fatal("Couldn't find %s", argv[0]);
4077
+  DEBUG("(main) found exe at : %s\n",newargz[1]);
4078
+  /* we know the script has the same name, without the .exe */
4079
+  /* so make sure newargz[1] doesn't end in .exe */
4080
+  strendzap(newargz[1],".exe");
4081
+  for (i = 1; i < argc; i++)
4082
+    newargz[i+1] = xstrdup(argv[i]);
4083
+  newargz[argc+1] = NULL;
4084
+
4085
+  for (i=0; i<argc+1; i++)
4086
+  {
4087
+    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
4088
+    ;
4089
+  }
4090
+
4091
+EOF
4092
+
4093
+            case $host_os in
4094
+              mingw*)
4095
+                cat >> $cwrappersource <<EOF
4096
+  execv("$SHELL",(char const **)newargz);
4097
+EOF
4098
+              ;;
4099
+              *)
4100
+                cat >> $cwrappersource <<EOF
4101
+  execv("$SHELL",newargz);
4102
+EOF
4103
+              ;;
4104
+            esac
4105
+
4106
+            cat >> $cwrappersource <<"EOF"
4107
+  return 127;
4108
+}
4109
+
4110
+void *
4111
+xmalloc (size_t num)
4112
+{
4113
+  void * p = (void *) malloc (num);
4114
+  if (!p)
4115
+    lt_fatal ("Memory exhausted");
4116
+
4117
+  return p;
4118
+}
4119
+
4120
+char *
4121
+xstrdup (const char *string)
4122
+{
4123
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
4124
+;
4125
+}
4126
+
4127
+const char *
4128
+base_name (const char *name)
4129
+{
4130
+  const char *base;
4131
+
4132
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4133
+  /* Skip over the disk name in MSDOS pathnames. */
4134
+  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
4135
+    name += 2;
4136
+#endif
4137
+
4138
+  for (base = name; *name; name++)
4139
+    if (IS_DIR_SEPARATOR (*name))
4140
+      base = name + 1;
4141
+  return base;
4142
+}
4143
+
4144
+int
4145
+check_executable(const char * path)
4146
+{
4147
+  struct stat st;
4148
+
4149
+  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
4150
+  if ((!path) || (!*path))
4151
+    return 0;
4152
+
4153
+  if ((stat (path, &st) >= 0) &&
4154
+      (
4155
+        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
4156
+#if defined (S_IXOTH)
4157
+       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
4158
+#endif
4159
+#if defined (S_IXGRP)
4160
+       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
4161
+#endif
4162
+       ((st.st_mode & S_IXUSR) == S_IXUSR))
4163
+      )
4164
+    return 1;
4165
+  else
4166
+    return 0;
4167
+}
4168
+
4169
+/* Searches for the full path of the wrapper.  Returns
4170
+   newly allocated full path name if found, NULL otherwise */
4171
+char *
4172
+find_executable (const char* wrapper)
4173
+{
4174
+  int has_slash = 0;
4175
+  const char* p;
4176
+  const char* p_next;
4177
+  /* static buffer for getcwd */
4178
+  char tmp[LT_PATHMAX + 1];
4179
+  int tmp_len;
4180
+  char* concat_name;
4181
+
4182
+  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
4183
+
4184
+  if ((wrapper == NULL) || (*wrapper == '\0'))
4185
+    return NULL;
4186
+
4187
+  /* Absolute path? */
4188
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4189
+  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
4190
+  {
4191
+    concat_name = xstrdup (wrapper);
4192
+    if (check_executable(concat_name))
4193
+      return concat_name;
4194
+    XFREE(concat_name);
4195
+  }
4196
+  else
4197
+  {
4198
+#endif
4199
+    if (IS_DIR_SEPARATOR (wrapper[0]))
4200
+    {
4201
+      concat_name = xstrdup (wrapper);
4202
+      if (check_executable(concat_name))
4203
+        return concat_name;
4204
+      XFREE(concat_name);
4205
+    }
4206
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4207
+  }
4208
+#endif
4209
+
4210
+  for (p = wrapper; *p; p++)
4211
+    if (*p == '/')
4212
+    {
4213
+      has_slash = 1;
4214
+      break;
4215
+    }
4216
+  if (!has_slash)
4217
+  {
4218
+    /* no slashes; search PATH */
4219
+    const char* path = getenv ("PATH");
4220
+    if (path != NULL)
4221
+    {
4222
+      for (p = path; *p; p = p_next)
4223
+      {
4224
+        const char* q;
4225
+        size_t p_len;
4226
+        for (q = p; *q; q++)
4227
+          if (IS_PATH_SEPARATOR(*q))
4228
+            break;
4229
+        p_len = q - p;
4230
+        p_next = (*q == '\0' ? q : q + 1);
4231
+        if (p_len == 0)
4232
+        {
4233
+          /* empty path: current directory */
4234
+          if (getcwd (tmp, LT_PATHMAX) == NULL)
4235
+            lt_fatal ("getcwd failed");
4236
+          tmp_len = strlen(tmp);
4237
+          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
4238
+          memcpy (concat_name, tmp, tmp_len);
4239
+          concat_name[tmp_len] = '/';
4240
+          strcpy (concat_name + tmp_len + 1, wrapper);
4241
+        }
4242
+        else
4243
+        {
4244
+          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
4245
+          memcpy (concat_name, p, p_len);
4246
+          concat_name[p_len] = '/';
4247
+          strcpy (concat_name + p_len + 1, wrapper);
4248
+        }
4249
+        if (check_executable(concat_name))
4250
+          return concat_name;
4251
+        XFREE(concat_name);
4252
+      }
4253
+    }
4254
+    /* not found in PATH; assume curdir */
4255
+  }
4256
+  /* Relative path | not found in path: prepend cwd */
4257
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
4258
+    lt_fatal ("getcwd failed");
4259
+  tmp_len = strlen(tmp);
4260
+  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
4261
+  memcpy (concat_name, tmp, tmp_len);
4262
+  concat_name[tmp_len] = '/';
4263
+  strcpy (concat_name + tmp_len + 1, wrapper);
4264
+
4265
+  if (check_executable(concat_name))
4266
+    return concat_name;
4267
+  XFREE(concat_name);
4268
+  return NULL;
4269
+}
4270
+
4271
+char *
4272
+strendzap(char *str, const char *pat)
4273
+{
4274
+  size_t len, patlen;
4275
+
4276
+  assert(str != NULL);
4277
+  assert(pat != NULL);
4278
+
4279
+  len = strlen(str);
4280
+  patlen = strlen(pat);
4281
+
4282
+  if (patlen <= len)
4283
+  {
4284
+    str += len - patlen;
4285
+    if (strcmp(str, pat) == 0)
4286
+      *str = '\0';
4287
+  }
4288
+  return str;
4289
+}
4290
+
4291
+static void
4292
+lt_error_core (int exit_status, const char * mode,
4293
+          const char * message, va_list ap)
4294
+{
4295
+  fprintf (stderr, "%s: %s: ", program_name, mode);
4296
+  vfprintf (stderr, message, ap);
4297
+  fprintf (stderr, ".\n");
4298
+
4299
+  if (exit_status >= 0)
4300
+    exit (exit_status);
4301
+}
4302
+
4303
+void
4304
+lt_fatal (const char *message, ...)
4305
+{
4306
+  va_list ap;
4307
+  va_start (ap, message);
4308
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
4309
+  va_end (ap);
4310
+}
4311
+EOF
4312
+          # we should really use a build-platform specific compiler
4313
+          # here, but OTOH, the wrappers (shell script and this C one)
4314
+          # are only useful if you want to execute the "real" binary.
4315
+          # Since the "real" binary is built for $host, then this
4316
+          # wrapper might as well be built for $host, too.
4317
+          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
4318
+          ;;
4319
+        esac
4320
+        $rm $output
4321
+        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
3961 4322
 
3962 4323
 	$echo > $output "\
3963 4324
 #! $SHELL
... ...
@@ -3973,12 +5610,12 @@ static const void *lt_preloaded_setup() {
3973 3973
 
3974 3974
 # Sed substitution that helps us do robust quoting.  It backslashifies
3975 3975
 # metacharacters that are still active within double-quoted strings.
3976
-Xsed='sed -e 1s/^X//'
3976
+Xsed='${SED} -e 1s/^X//'
3977 3977
 sed_quote_subst='$sed_quote_subst'
3978 3978
 
3979 3979
 # The HP-UX ksh and POSIX shell print the target directory to stdout
3980 3980
 # if CDPATH is set.
3981
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3981
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
3982 3982
 
3983 3983
 relink_command=\"$relink_command\"
3984 3984
 
... ...
@@ -4011,7 +5648,7 @@ else
4011 4011
   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4012 4012
 
4013 4013
   # Follow symbolic links until we get to the real thisdir.
4014
-  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
4014
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
4015 4015
   while test -n \"\$file\"; do
4016 4016
     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
4017 4017
 
... ...
@@ -4024,7 +5661,7 @@ else
4024 4024
     fi
4025 4025
 
4026 4026
     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
4027
-    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
4027
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
4028 4028
   done
4029 4029
 
4030 4030
   # Try to get the absolute directory name.
... ...
@@ -4033,12 +5670,12 @@ else
4033 4033
 "
4034 4034
 
4035 4035
 	if test "$fast_install" = yes; then
4036
-	  echo >> $output "\
4036
+	  $echo >> $output "\
4037 4037
   program=lt-'$outputname'$exeext
4038 4038
   progdir=\"\$thisdir/$objdir\"
4039 4039
 
4040 4040
   if test ! -f \"\$progdir/\$program\" || \\
4041
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
4041
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4042 4042
        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4043 4043
 
4044 4044
     file=\"\$\$-\$program\"
... ...
@@ -4049,7 +5686,7 @@ else
4049 4049
       $rm \"\$progdir/\$file\"
4050 4050
     fi"
4051 4051
 
4052
-	  echo >> $output "\
4052
+	  $echo >> $output "\
4053 4053
 
4054 4054
     # relink executable if necessary
4055 4055
     if test -n \"\$relink_command\"; then
... ...
@@ -4057,7 +5694,7 @@ else
4057 4057
       else
4058 4058
 	$echo \"\$relink_command_output\" >&2
4059 4059
 	$rm \"\$progdir/\$file\"
4060
-	exit 1
4060
+	exit $EXIT_FAILURE
4061 4061
       fi
4062 4062
     fi
4063 4063
 
... ...
@@ -4067,13 +5704,13 @@ else
4067 4067
     $rm \"\$progdir/\$file\"
4068 4068
   fi"
4069 4069
 	else
4070
-	  echo >> $output "\
4070
+	  $echo >> $output "\
4071 4071
   program='$outputname'
4072 4072
   progdir=\"\$thisdir/$objdir\"
4073 4073
 "
4074 4074
 	fi
4075 4075
 
4076
-	echo >> $output "\
4076
+	$echo >> $output "\
4077 4077
 
4078 4078
   if test -f \"\$progdir/\$program\"; then"
4079 4079
 
... ...
@@ -4104,47 +5741,35 @@ else
4104 4104
       # Run the actual program with our arguments.
4105 4105
 "
4106 4106
 	case $host in
4107
-	# win32 systems need to use the prog path for dll
4108
-	# lookup to work
4109
-	*-*-cygwin* | *-*-pw32*)
4110
-	  $echo >> $output "\
4111
-      exec \$progdir/\$program \${1+\"\$@\"}
4112
-"
4113
-	  ;;
4114
-
4115 4107
 	# Backslashes separate directories on plain windows
4116 4108
 	*-*-mingw | *-*-os2*)
4117 4109
 	  $echo >> $output "\
4118
-      exec \$progdir\\\\\$program \${1+\"\$@\"}
4110
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
4119 4111
 "
4120 4112
 	  ;;
4121 4113
 
4122 4114
 	*)
4123 4115
 	  $echo >> $output "\
4124
-      # Export the path to the program.
4125
-      PATH=\"\$progdir:\$PATH\"
4126
-      export PATH
4127
-
4128
-      exec \$program \${1+\"\$@\"}
4116
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
4129 4117
 "
4130 4118
 	  ;;
4131 4119
 	esac
4132 4120
 	$echo >> $output "\
4133 4121
       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
4134
-      exit 1
4122
+      exit $EXIT_FAILURE
4135 4123
     fi
4136 4124
   else
4137 4125
     # The program doesn't exist.
4138
-    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
4126
+    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
4139 4127
     \$echo \"This script is just a wrapper for \$program.\" 1>&2
4140
-    echo \"See the $PACKAGE documentation for more information.\" 1>&2
4141
-    exit 1
4128
+    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
4129
+    exit $EXIT_FAILURE
4142 4130
   fi
4143 4131
 fi\
4144 4132
 "
4145 4133
 	chmod +x $output
4146 4134
       fi
4147
-      exit 0
4135
+      exit $EXIT_SUCCESS
4148 4136
       ;;
4149 4137
     esac
4150 4138
 
... ...
@@ -4160,74 +5785,130 @@ fi\
4160 4160
 	  oldobjs="$libobjs_save"
4161 4161
 	  build_libtool_libs=no
4162 4162
 	else
4163
-	  oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
4163
+	  oldobjs="$old_deplibs $non_pic_objects"
4164 4164
 	fi
4165 4165
 	addlibs="$old_convenience"
4166 4166
       fi
4167 4167
 
4168 4168
       if test -n "$addlibs"; then
4169 4169
 	gentop="$output_objdir/${outputname}x"
4170
-	$show "${rm}r $gentop"
4171
-	$run ${rm}r "$gentop"
4172
-	$show "mkdir $gentop"
4173
-	$run mkdir "$gentop"
4174
-	status=$?
4175
-	if test $status -ne 0 && test ! -d "$gentop"; then
4176
-	  exit $status
4177
-	fi
4178 4170
 	generated="$generated $gentop"
4179 4171
 
4180
-	# Add in members from convenience archives.
4181
-	for xlib in $addlibs; do
4182
-	  # Extract the objects.
4183
-	  case $xlib in
4184
-	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
4185
-	  *) xabs=`pwd`"/$xlib" ;;
4186
-	  esac
4187
-	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
4188
-	  xdir="$gentop/$xlib"
4189
-
4190
-	  $show "${rm}r $xdir"
4191
-	  $run ${rm}r "$xdir"
4192
-	  $show "mkdir $xdir"
4193
-	  $run mkdir "$xdir"
4194
-	  status=$?
4195
-	  if test $status -ne 0 && test ! -d "$xdir"; then
4196
-	    exit $status
4197
-	  fi
4198
-	  $show "(cd $xdir && $AR x $xabs)"
4199
-	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
4200
-
4201
-	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
4202
-	done
4172
+	func_extract_archives $gentop $addlibs
4173
+	oldobjs="$oldobjs $func_extract_archives_result"
4203 4174
       fi
4204 4175
 
4205 4176
       # Do each command in the archive commands.
4206 4177
       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
4207
-	eval cmds=\"$old_archive_from_new_cmds\"
4178
+       cmds=$old_archive_from_new_cmds
4208 4179
       else
4209
-	# Ensure that we have .o objects in place in case we decided
4210
-	# not to build a shared library, and have fallen back to building
4211
-	# static libs even though --disable-static was passed!
4212
-	for oldobj in $oldobjs; do
4213
-	  if test ! -f $oldobj; then
4214
-	    xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
4215
-	    if test "X$xdir" = "X$oldobj"; then
4216
-	      xdir="."
4217
-	    else
4218
-	      xdir="$xdir"
4180
+	# POSIX demands no paths to be encoded in archives.  We have
4181
+	# to avoid creating archives with duplicate basenames if we
4182
+	# might have to extract them afterwards, e.g., when creating a
4183
+	# static archive out of a convenience library, or when linking
4184
+	# the entirety of a libtool archive into another (currently
4185
+	# not supported by libtool).
4186
+	if (for obj in $oldobjs
4187
+	    do
4188
+	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
4189
+	    done | sort | sort -uc >/dev/null 2>&1); then
4190
+	  :
4191
+	else
4192
+	  $echo "copying selected object files to avoid basename conflicts..."
4193
+
4194
+	  if test -z "$gentop"; then
4195
+	    gentop="$output_objdir/${outputname}x"
4196
+	    generated="$generated $gentop"
4197
+
4198
+	    $show "${rm}r $gentop"
4199
+	    $run ${rm}r "$gentop"
4200
+	    $show "$mkdir $gentop"
4201
+	    $run $mkdir "$gentop"
4202
+	    exit_status=$?
4203
+	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
4204
+	      exit $exit_status
4219 4205
 	    fi
4220
-	    baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
4221
-	    obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
4222
-	    $show "(cd $xdir && ${LN_S} $obj $baseobj)"
4223
-	    $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
4224 4206
 	  fi
4225
-	done
4207
+
4208
+	  save_oldobjs=$oldobjs
4209
+	  oldobjs=
4210
+	  counter=1
4211
+	  for obj in $save_oldobjs
4212
+	  do
4213
+	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
4214
+	    case " $oldobjs " in
4215
+	    " ") oldobjs=$obj ;;
4216
+	    *[\ /]"$objbase "*)
4217
+	      while :; do
4218
+		# Make sure we don't pick an alternate name that also
4219
+		# overlaps.
4220
+		newobj=lt$counter-$objbase
4221
+		counter=`expr $counter + 1`
4222
+		case " $oldobjs " in
4223
+		*[\ /]"$newobj "*) ;;
4224
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
4225
+		esac
4226
+	      done
4227
+	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
4228
+	      $run ln "$obj" "$gentop/$newobj" ||
4229
+	      $run cp "$obj" "$gentop/$newobj"
4230
+	      oldobjs="$oldobjs $gentop/$newobj"
4231
+	      ;;
4232
+	    *) oldobjs="$oldobjs $obj" ;;
4233
+	    esac
4234
+	  done
4235
+	fi
4226 4236
 
4227 4237
 	eval cmds=\"$old_archive_cmds\"
4238
+
4239
+	if len=`expr "X$cmds" : ".*"` &&
4240
+	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4241
+	  cmds=$old_archive_cmds
4242
+	else
4243
+	  # the command line is too long to link in one step, link in parts
4244
+	  $echo "using piecewise archive linking..."
4245
+	  save_RANLIB=$RANLIB
4246
+	  RANLIB=:
4247
+	  objlist=
4248
+	  concat_cmds=
4249
+	  save_oldobjs=$oldobjs
4250
+
4251
+	  # Is there a better way of finding the last object in the list?
4252
+	  for obj in $save_oldobjs
4253
+	  do
4254
+	    last_oldobj=$obj
4255
+	  done
4256
+	  for obj in $save_oldobjs
4257
+	  do
4258
+	    oldobjs="$objlist $obj"
4259
+	    objlist="$objlist $obj"
4260
+	    eval test_cmds=\"$old_archive_cmds\"
4261
+	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4262
+	       test "$len" -le "$max_cmd_len"; then
4263
+	      :
4264
+	    else
4265
+	      # the above command should be used before it gets too long
4266
+	      oldobjs=$objlist
4267
+	      if test "$obj" = "$last_oldobj" ; then
4268
+	        RANLIB=$save_RANLIB
4269
+	      fi
4270
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4271
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
4272
+	      objlist=
4273
+	    fi
4274
+	  done
4275
+	  RANLIB=$save_RANLIB
4276
+	  oldobjs=$objlist
4277
+	  if test "X$oldobjs" = "X" ; then
4278
+	    eval cmds=\"\$concat_cmds\"
4279
+	  else
4280
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
4281
+	  fi
4282
+	fi
4228 4283
       fi
4229 4284
       save_ifs="$IFS"; IFS='~'
4230 4285
       for cmd in $cmds; do
4286
+        eval cmd=\"$cmd\"
4231 4287
 	IFS="$save_ifs"
4232 4288
 	$show "$cmd"
4233 4289
 	$run eval "$cmd" || exit $?
... ...
@@ -4259,8 +5940,12 @@ fi\
4259 4259
 	fi
4260 4260
       done
4261 4261
       # Quote the link command for shipping.
4262
-      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args)"
4262
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
4263 4263
       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4264
+      if test "$hardcode_automatic" = yes ; then
4265
+	relink_command=
4266
+      fi
4267
+
4264 4268
 
4265 4269
       # Only create the output if not a dry run.
4266 4270
       if test -z "$run"; then
... ...
@@ -4276,10 +5961,10 @@ fi\
4276 4276
 	      case $deplib in
4277 4277
 	      *.la)
4278 4278
 		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
4279
-		eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
4279
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
4280 4280
 		if test -z "$libdir"; then
4281 4281
 		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
4282
-		  exit 1
4282
+		  exit $EXIT_FAILURE
4283 4283
 		fi
4284 4284
 		newdependency_libs="$newdependency_libs $libdir/$name"
4285 4285
 		;;
... ...
@@ -4290,10 +5975,10 @@ fi\
4290 4290
 	    newdlfiles=
4291 4291
 	    for lib in $dlfiles; do
4292 4292
 	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4293
-	      eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4293
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4294 4294
 	      if test -z "$libdir"; then
4295 4295
 		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4296
-		exit 1
4296
+		exit $EXIT_FAILURE
4297 4297
 	      fi
4298 4298
 	      newdlfiles="$newdlfiles $libdir/$name"
4299 4299
 	    done
... ...
@@ -4301,20 +5986,39 @@ fi\
4301 4301
 	    newdlprefiles=
4302 4302
 	    for lib in $dlprefiles; do
4303 4303
 	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4304
-	      eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4304
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4305 4305
 	      if test -z "$libdir"; then
4306 4306
 		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4307
-		exit 1
4307
+		exit $EXIT_FAILURE
4308 4308
 	      fi
4309 4309
 	      newdlprefiles="$newdlprefiles $libdir/$name"
4310 4310
 	    done
4311 4311
 	    dlprefiles="$newdlprefiles"
4312
+	  else
4313
+	    newdlfiles=
4314
+	    for lib in $dlfiles; do
4315
+	      case $lib in
4316
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
4317
+		*) abs=`pwd`"/$lib" ;;
4318
+	      esac
4319
+	      newdlfiles="$newdlfiles $abs"
4320
+	    done
4321
+	    dlfiles="$newdlfiles"
4322
+	    newdlprefiles=
4323
+	    for lib in $dlprefiles; do
4324
+	      case $lib in
4325
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
4326
+		*) abs=`pwd`"/$lib" ;;
4327
+	      esac
4328
+	      newdlprefiles="$newdlprefiles $abs"
4329
+	    done
4330
+	    dlprefiles="$newdlprefiles"
4312 4331
 	  fi
4313 4332
 	  $rm $output
4314 4333
 	  # place dlname in correct position for cygwin
4315 4334
 	  tdlname=$dlname
4316 4335
 	  case $host,$output,$installed,$module,$dlname in
4317
-	    *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
4336
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
4318 4337
 	  esac
4319 4338
 	  $echo > $output "\
4320 4339
 # $outputname - a libtool library file
... ...
@@ -4343,13 +6047,16 @@ revision=$revision
4343 4343
 # Is this an already installed library?
4344 4344
 installed=$installed
4345 4345
 
4346
+# Should we warn about portability when linking against -modules?
4347
+shouldnotlink=$module
4348
+
4346 4349
 # Files to dlopen/dlpreopen
4347 4350
 dlopen='$dlfiles'
4348 4351
 dlpreopen='$dlprefiles'
4349 4352
 
4350 4353
 # Directory that this library needs to be installed in:
4351 4354
 libdir='$install_libdir'"
4352
-	  if test "$installed" = no && test $need_relink = yes; then
4355
+	  if test "$installed" = no && test "$need_relink" = yes; then
4353 4356
 	    $echo >> $output "\
4354 4357
 relink_command=\"$relink_command\""
4355 4358
 	  fi
... ...
@@ -4362,7 +6069,7 @@ relink_command=\"$relink_command\""
4362 4362
       $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
4363 4363
       ;;
4364 4364
     esac
4365
-    exit 0
4365
+    exit $EXIT_SUCCESS
4366 4366
     ;;
4367 4367
 
4368 4368
   # libtool install mode
... ...
@@ -4373,11 +6080,11 @@ relink_command=\"$relink_command\""
4373 4373
     # install_prog (especially on Windows NT).
4374 4374
     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
4375 4375
        # Allow the use of GNU shtool's install command.
4376
-       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
4376
+       $echo "X$nonopt" | grep shtool > /dev/null; then
4377 4377
       # Aesthetically quote it.
4378 4378
       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
4379 4379
       case $arg in
4380
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
4380
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
4381 4381
 	arg="\"$arg\""
4382 4382
 	;;
4383 4383
       esac
... ...
@@ -4386,14 +6093,14 @@ relink_command=\"$relink_command\""
4386 4386
       shift
4387 4387
     else
4388 4388
       install_prog=
4389
-      arg="$nonopt"
4389
+      arg=$nonopt
4390 4390
     fi
4391 4391
 
4392 4392
     # The real first argument should be the name of the installation program.
4393 4393
     # Aesthetically quote it.
4394 4394
     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4395 4395
     case $arg in
4396
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
4396
+    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
4397 4397
       arg="\"$arg\""
4398 4398
       ;;
4399 4399
     esac
... ...
@@ -4411,28 +6118,31 @@ relink_command=\"$relink_command\""
4411 4411
     do
4412 4412
       if test -n "$dest"; then
4413 4413
 	files="$files $dest"
4414
-	dest="$arg"
4414
+	dest=$arg
4415 4415
 	continue
4416 4416
       fi
4417 4417
 
4418 4418
       case $arg in
4419 4419
       -d) isdir=yes ;;
4420
-      -f) prev="-f" ;;
4421
-      -g) prev="-g" ;;
4422
-      -m) prev="-m" ;;
4423
-      -o) prev="-o" ;;
4420
+      -f) 
4421
+      	case " $install_prog " in
4422
+	*[\\\ /]cp\ *) ;;
4423
+	*) prev=$arg ;;
4424
+	esac
4425
+	;;
4426
+      -g | -m | -o) prev=$arg ;;
4424 4427
       -s)
4425 4428
 	stripme=" -s"
4426 4429
 	continue
4427 4430
 	;;
4428
-      -*) ;;
4429
-
4431
+      -*)
4432
+	;;
4430 4433
       *)
4431 4434
 	# If the previous option needed an argument, then skip it.
4432 4435
 	if test -n "$prev"; then
4433 4436
 	  prev=
4434 4437
 	else
4435
-	  dest="$arg"
4438
+	  dest=$arg
4436 4439
 	  continue
4437 4440
 	fi
4438 4441
 	;;
... ...
@@ -4441,7 +6151,7 @@ relink_command=\"$relink_command\""
4441 4441
       # Aesthetically quote the argument.
4442 4442
       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4443 4443
       case $arg in
4444
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
4444
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
4445 4445
 	arg="\"$arg\""
4446 4446
 	;;
4447 4447
       esac
... ...
@@ -4451,13 +6161,13 @@ relink_command=\"$relink_command\""
4451 4451
     if test -z "$install_prog"; then
4452 4452
       $echo "$modename: you must specify an install program" 1>&2
4453 4453
       $echo "$help" 1>&2
4454
-      exit 1
4454
+      exit $EXIT_FAILURE
4455 4455
     fi
4456 4456
 
4457 4457
     if test -n "$prev"; then
4458 4458
       $echo "$modename: the \`$prev' option requires an argument" 1>&2
4459 4459
       $echo "$help" 1>&2
4460
-      exit 1
4460
+      exit $EXIT_FAILURE
4461 4461
     fi
4462 4462
 
4463 4463
     if test -z "$files"; then
... ...
@@ -4467,7 +6177,7 @@ relink_command=\"$relink_command\""
4467 4467
 	$echo "$modename: you must specify a destination" 1>&2
4468 4468
       fi
4469 4469
       $echo "$help" 1>&2
4470
-      exit 1
4470
+      exit $EXIT_FAILURE
4471 4471
     fi
4472 4472
 
4473 4473
     # Strip any trailing slash from the destination.
... ...
@@ -4485,10 +6195,10 @@ relink_command=\"$relink_command\""
4485 4485
 
4486 4486
       # Not a directory, so check to see that there is only one file specified.
4487 4487
       set dummy $files
4488
-      if test $# -gt 2; then
4488
+      if test "$#" -gt 2; then
4489 4489
 	$echo "$modename: \`$dest' is not a directory" 1>&2
4490 4490
 	$echo "$help" 1>&2
4491
-	exit 1
4491
+	exit $EXIT_FAILURE
4492 4492
       fi
4493 4493
     fi
4494 4494
     case $destdir in
... ...
@@ -4500,7 +6210,7 @@ relink_command=\"$relink_command\""
4500 4500
 	*)
4501 4501
 	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4502 4502
 	  $echo "$help" 1>&2
4503
-	  exit 1
4503
+	  exit $EXIT_FAILURE
4504 4504
 	  ;;
4505 4505
 	esac
4506 4506
       done
... ...
@@ -4525,11 +6235,11 @@ relink_command=\"$relink_command\""
4525 4525
 
4526 4526
       *.la)
4527 4527
 	# Check to see that this really is a libtool archive.
4528
-	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4528
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4529 4529
 	else
4530 4530
 	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4531 4531
 	  $echo "$help" 1>&2
4532
-	  exit 1
4532
+	  exit $EXIT_FAILURE
4533 4533
 	fi
4534 4534
 
4535 4535
 	library_names=
... ...
@@ -4560,12 +6270,33 @@ relink_command=\"$relink_command\""
4560 4560
 	dir="$dir$objdir"
4561 4561
 
4562 4562
 	if test -n "$relink_command"; then
4563
+	  # Determine the prefix the user has applied to our future dir.
4564
+	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
4565
+
4566
+	  # Don't allow the user to place us outside of our expected
4567
+	  # location b/c this prevents finding dependent libraries that
4568
+	  # are installed to the same prefix.
4569
+	  # At present, this check doesn't affect windows .dll's that
4570
+	  # are installed into $libdir/../bin (currently, that works fine)
4571
+	  # but it's something to keep an eye on.
4572
+	  if test "$inst_prefix_dir" = "$destdir"; then
4573
+	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
4574
+	    exit $EXIT_FAILURE
4575
+	  fi
4576
+
4577
+	  if test -n "$inst_prefix_dir"; then
4578
+	    # Stick the inst_prefix_dir data into the link command.
4579
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
4580
+	  else
4581
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
4582
+	  fi
4583
+
4563 4584
 	  $echo "$modename: warning: relinking \`$file'" 1>&2
4564 4585
 	  $show "$relink_command"
4565 4586
 	  if $run eval "$relink_command"; then :
4566 4587
 	  else
4567 4588
 	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4568
-	    continue
4589
+	    exit $EXIT_FAILURE
4569 4590
 	  fi
4570 4591
 	fi
4571 4592
 
... ...
@@ -4587,25 +6318,38 @@ relink_command=\"$relink_command\""
4587 4587
 	    $run eval "$striplib $destdir/$realname" || exit $?
4588 4588
 	  fi
4589 4589
 
4590
-	  if test $# -gt 0; then
4590
+	  if test "$#" -gt 0; then
4591 4591
 	    # Delete the old symlinks, and create new ones.
4592
+	    # Try `ln -sf' first, because the `ln' binary might depend on
4593
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
4594
+	    # so we also need to try rm && ln -s.
4592 4595
 	    for linkname
4593 4596
 	    do
4594 4597
 	      if test "$linkname" != "$realname"; then
4595
-		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4596
-		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4598
+                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
4599
+                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
4597 4600
 	      fi
4598 4601
 	    done
4599 4602
 	  fi
4600 4603
 
4601 4604
 	  # Do each command in the postinstall commands.
4602 4605
 	  lib="$destdir/$realname"
4603
-	  eval cmds=\"$postinstall_cmds\"
4606
+	  cmds=$postinstall_cmds
4604 4607
 	  save_ifs="$IFS"; IFS='~'
4605 4608
 	  for cmd in $cmds; do
4606 4609
 	    IFS="$save_ifs"
4610
+	    eval cmd=\"$cmd\"
4607 4611
 	    $show "$cmd"
4608
-	    $run eval "$cmd" || exit $?
4612
+	    $run eval "$cmd" || {
4613
+	      lt_exit=$?
4614
+
4615
+	      # Restore the uninstalled library and exit
4616
+	      if test "$mode" = relink; then
4617
+		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4618
+	      fi
4619
+
4620
+	      exit $lt_exit
4621
+	    }
4609 4622
 	  done
4610 4623
 	  IFS="$save_ifs"
4611 4624
 	fi
... ...
@@ -4643,7 +6387,7 @@ relink_command=\"$relink_command\""
4643 4643
 	*)
4644 4644
 	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4645 4645
 	  $echo "$help" 1>&2
4646
-	  exit 1
4646
+	  exit $EXIT_FAILURE
4647 4647
 	  ;;
4648 4648
 	esac
4649 4649
 
... ...
@@ -4661,7 +6405,7 @@ relink_command=\"$relink_command\""
4661 4661
 	  $show "$install_prog $staticobj $staticdest"
4662 4662
 	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
4663 4663
 	fi
4664
-	exit 0
4664
+	exit $EXIT_SUCCESS
4665 4665
 	;;
4666 4666
 
4667 4667
       *)
... ...
@@ -4673,29 +6417,47 @@ relink_command=\"$relink_command\""
4673 4673
 	  destfile="$destdir/$destfile"
4674 4674
 	fi
4675 4675
 
4676
+	# If the file is missing, and there is a .exe on the end, strip it
4677
+	# because it is most likely a libtool script we actually want to
4678
+	# install
4679
+	stripped_ext=""
4680
+	case $file in
4681
+	  *.exe)
4682
+	    if test ! -f "$file"; then
4683
+	      file=`$echo $file|${SED} 's,.exe$,,'`
4684
+	      stripped_ext=".exe"
4685
+	    fi
4686
+	    ;;
4687
+	esac
4688
+
4676 4689
 	# Do a test to see if this is really a libtool program.
4677 4690
 	case $host in
4678 4691
 	*cygwin*|*mingw*)
4679
-	    wrapper=`echo $file | sed -e 's,.exe$,,'`
4692
+	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
4680 4693
 	    ;;
4681 4694
 	*)
4682 4695
 	    wrapper=$file
4683 4696
 	    ;;
4684 4697
 	esac
4685
-	if (sed -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
4698
+	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
4686 4699
 	  notinst_deplibs=
4687 4700
 	  relink_command=
4688 4701
 
4702
+	  # Note that it is not necessary on cygwin/mingw to append a dot to
4703
+	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
4704
+	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
4705
+	  # `FILE.' does not work on cygwin managed mounts.
4706
+	  #
4689 4707
 	  # If there is no directory component, then add one.
4690
-	  case $file in
4691
-	  */* | *\\*) . $wrapper ;;
4692
-	  *) . ./$wrapper ;;
4708
+	  case $wrapper in
4709
+	  */* | *\\*) . ${wrapper} ;;
4710
+	  *) . ./${wrapper} ;;
4693 4711
 	  esac
4694 4712
 
4695 4713
 	  # Check the variables that should have been set.
4696 4714
 	  if test -z "$notinst_deplibs"; then
4697 4715
 	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
4698
-	    exit 1
4716
+	    exit $EXIT_FAILURE
4699 4717
 	  fi
4700 4718
 
4701 4719
 	  finalize=yes
... ...
@@ -4717,24 +6479,22 @@ relink_command=\"$relink_command\""
4717 4717
 	  done
4718 4718
 
4719 4719
 	  relink_command=
4720
+	  # Note that it is not necessary on cygwin/mingw to append a dot to
4721
+	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
4722
+	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
4723
+	  # `FILE.' does not work on cygwin managed mounts.
4724
+	  #
4720 4725
 	  # If there is no directory component, then add one.
4721
-	  case $file in
4722
-	  */* | *\\*) . $wrapper ;;
4723
-	  *) . ./$wrapper ;;
4726
+	  case $wrapper in
4727
+	  */* | *\\*) . ${wrapper} ;;
4728
+	  *) . ./${wrapper} ;;
4724 4729
 	  esac
4725 4730
 
4726 4731
 	  outputname=
4727 4732
 	  if test "$fast_install" = no && test -n "$relink_command"; then
4728 4733
 	    if test "$finalize" = yes && test -z "$run"; then
4729
-	      tmpdir="/tmp"
4730
-	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
4731
-	      tmpdir="$tmpdir/libtool-$$"
4732
-	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4733
-	      else
4734
-		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4735
-		continue
4736
-	      fi
4737
-	      file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4734
+	      tmpdir=`func_mktempdir`
4735
+	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
4738 4736
 	      outputname="$tmpdir/$file"
4739 4737
 	      # Replace the output file specification.
4740 4738
 	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
... ...
@@ -4752,14 +6512,14 @@ relink_command=\"$relink_command\""
4752 4752
 	    fi
4753 4753
 	  else
4754 4754
 	    # Install the binary that we compiled earlier.
4755
-	    file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4755
+	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4756 4756
 	  fi
4757 4757
 	fi
4758 4758
 
4759 4759
 	# remove .exe since cygwin /usr/bin/install will append another
4760
-	# one anyways
4760
+	# one anyway 
4761 4761
 	case $install_prog,$host in
4762
-	/usr/bin/install*,*cygwin*)
4762
+	*/usr/bin/install*,*cygwin*)
4763 4763
 	  case $file:$destfile in
4764 4764
 	  *.exe:*.exe)
4765 4765
 	    # this is ok
... ...
@@ -4768,7 +6528,7 @@ relink_command=\"$relink_command\""
4768 4768
 	    destfile=$destfile.exe
4769 4769
 	    ;;
4770 4770
 	  *:*.exe)
4771
-	    destfile=`echo $destfile | sed -e 's,.exe$,,'`
4771
+	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
4772 4772
 	    ;;
4773 4773
 	  esac
4774 4774
 	  ;;
... ...
@@ -4789,16 +6549,17 @@ relink_command=\"$relink_command\""
4789 4789
       $show "$install_prog $file $oldlib"
4790 4790
       $run eval "$install_prog \$file \$oldlib" || exit $?
4791 4791
 
4792
-      if test -n "$stripme" && test -n "$striplib"; then
4792
+      if test -n "$stripme" && test -n "$old_striplib"; then
4793 4793
 	$show "$old_striplib $oldlib"
4794 4794
 	$run eval "$old_striplib $oldlib" || exit $?
4795 4795
       fi
4796 4796
 
4797 4797
       # Do each command in the postinstall commands.
4798
-      eval cmds=\"$old_postinstall_cmds\"
4798
+      cmds=$old_postinstall_cmds
4799 4799
       save_ifs="$IFS"; IFS='~'
4800 4800
       for cmd in $cmds; do
4801 4801
 	IFS="$save_ifs"
4802
+	eval cmd=\"$cmd\"
4802 4803
 	$show "$cmd"
4803 4804
 	$run eval "$cmd" || exit $?
4804 4805
       done
... ...
@@ -4812,9 +6573,9 @@ relink_command=\"$relink_command\""
4812 4812
     if test -n "$current_libdirs"; then
4813 4813
       # Maybe just do a dry run.
4814 4814
       test -n "$run" && current_libdirs=" -n$current_libdirs"
4815
-      exec_cmd='$SHELL $0 --finish$current_libdirs'
4815
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
4816 4816
     else
4817
-      exit 0
4817
+      exit $EXIT_SUCCESS
4818 4818
     fi
4819 4819
     ;;
4820 4820
 
... ...
@@ -4833,10 +6594,11 @@ relink_command=\"$relink_command\""
4833 4833
       for libdir in $libdirs; do
4834 4834
 	if test -n "$finish_cmds"; then
4835 4835
 	  # Do each command in the finish commands.
4836
-	  eval cmds=\"$finish_cmds\"
4836
+	  cmds=$finish_cmds
4837 4837
 	  save_ifs="$IFS"; IFS='~'
4838 4838
 	  for cmd in $cmds; do
4839 4839
 	    IFS="$save_ifs"
4840
+	    eval cmd=\"$cmd\"
4840 4841
 	    $show "$cmd"
4841 4842
 	    $run eval "$cmd" || admincmds="$admincmds
4842 4843
        $cmd"
... ...
@@ -4853,43 +6615,43 @@ relink_command=\"$relink_command\""
4853 4853
     fi
4854 4854
 
4855 4855
     # Exit here if they wanted silent mode.
4856
-    test "$show" = ":" && exit 0
4856
+    test "$show" = : && exit $EXIT_SUCCESS
4857 4857
 
4858
-    echo "----------------------------------------------------------------------"
4859
-    echo "Libraries have been installed in:"
4858
+    $echo "X----------------------------------------------------------------------" | $Xsed
4859
+    $echo "Libraries have been installed in:"
4860 4860
     for libdir in $libdirs; do
4861
-      echo "   $libdir"
4861
+      $echo "   $libdir"
4862 4862
     done
4863
-    echo
4864
-    echo "If you ever happen to want to link against installed libraries"
4865
-    echo "in a given directory, LIBDIR, you must either use libtool, and"
4866
-    echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4867
-    echo "flag during linking and do at least one of the following:"
4863
+    $echo
4864
+    $echo "If you ever happen to want to link against installed libraries"
4865
+    $echo "in a given directory, LIBDIR, you must either use libtool, and"
4866
+    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4867
+    $echo "flag during linking and do at least one of the following:"
4868 4868
     if test -n "$shlibpath_var"; then
4869
-      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
4870
-      echo "     during execution"
4869
+      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
4870
+      $echo "     during execution"
4871 4871
     fi
4872 4872
     if test -n "$runpath_var"; then
4873
-      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
4874
-      echo "     during linking"
4873
+      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
4874
+      $echo "     during linking"
4875 4875
     fi
4876 4876
     if test -n "$hardcode_libdir_flag_spec"; then
4877 4877
       libdir=LIBDIR
4878 4878
       eval flag=\"$hardcode_libdir_flag_spec\"
4879 4879
 
4880
-      echo "   - use the \`$flag' linker flag"
4880
+      $echo "   - use the \`$flag' linker flag"
4881 4881
     fi
4882 4882
     if test -n "$admincmds"; then
4883
-      echo "   - have your system administrator run these commands:$admincmds"
4883
+      $echo "   - have your system administrator run these commands:$admincmds"
4884 4884
     fi
4885 4885
     if test -f /etc/ld.so.conf; then
4886
-      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4886
+      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4887 4887
     fi
4888
-    echo
4889
-    echo "See any operating system documentation about shared libraries for"
4890
-    echo "more information, such as the ld(1) and ld.so(8) manual pages."
4891
-    echo "----------------------------------------------------------------------"
4892
-    exit 0
4888
+    $echo
4889
+    $echo "See any operating system documentation about shared libraries for"
4890
+    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
4891
+    $echo "X----------------------------------------------------------------------" | $Xsed
4892
+    exit $EXIT_SUCCESS
4893 4893
     ;;
4894 4894
 
4895 4895
   # libtool execute mode
... ...
@@ -4901,7 +6663,7 @@ relink_command=\"$relink_command\""
4901 4901
     if test -z "$cmd"; then
4902 4902
       $echo "$modename: you must specify a COMMAND" 1>&2
4903 4903
       $echo "$help"
4904
-      exit 1
4904
+      exit $EXIT_FAILURE
4905 4905
     fi
4906 4906
 
4907 4907
     # Handle -dlopen flags immediately.
... ...
@@ -4909,18 +6671,18 @@ relink_command=\"$relink_command\""
4909 4909
       if test ! -f "$file"; then
4910 4910
 	$echo "$modename: \`$file' is not a file" 1>&2
4911 4911
 	$echo "$help" 1>&2
4912
-	exit 1
4912
+	exit $EXIT_FAILURE
4913 4913
       fi
4914 4914
 
4915 4915
       dir=
4916 4916
       case $file in
4917 4917
       *.la)
4918 4918
 	# Check to see that this really is a libtool archive.
4919
-	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4919
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4920 4920
 	else
4921 4921
 	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4922 4922
 	  $echo "$help" 1>&2
4923
-	  exit 1
4923
+	  exit $EXIT_FAILURE
4924 4924
 	fi
4925 4925
 
4926 4926
 	# Read the libtool library.
... ...
@@ -4947,7 +6709,7 @@ relink_command=\"$relink_command\""
4947 4947
 	  dir="$dir/$objdir"
4948 4948
 	else
4949 4949
 	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4950
-	  exit 1
4950
+	  exit $EXIT_FAILURE
4951 4951
 	fi
4952 4952
 	;;
4953 4953
 
... ...
@@ -4987,7 +6749,7 @@ relink_command=\"$relink_command\""
4987 4987
       -*) ;;
4988 4988
       *)
4989 4989
 	# Do a test to see if this is really a libtool program.
4990
-	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4990
+	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4991 4991
 	  # If there is no directory component, then add one.
4992 4992
 	  case $file in
4993 4993
 	  */* | *\\*) . $file ;;
... ...
@@ -5010,7 +6772,7 @@ relink_command=\"$relink_command\""
5010 5010
 	eval "export $shlibpath_var"
5011 5011
       fi
5012 5012
 
5013
-      # Restore saved enviroment variables
5013
+      # Restore saved environment variables
5014 5014
       if test "${save_LC_ALL+set}" = set; then
5015 5015
 	LC_ALL="$save_LC_ALL"; export LC_ALL
5016 5016
       fi
... ...
@@ -5027,7 +6789,7 @@ relink_command=\"$relink_command\""
5027 5027
 	$echo "export $shlibpath_var"
5028 5028
       fi
5029 5029
       $echo "$cmd$args"
5030
-      exit 0
5030
+      exit $EXIT_SUCCESS
5031 5031
     fi
5032 5032
     ;;
5033 5033
 
... ...
@@ -5055,24 +6817,25 @@ relink_command=\"$relink_command\""
5055 5055
     if test -z "$rm"; then
5056 5056
       $echo "$modename: you must specify an RM program" 1>&2
5057 5057
       $echo "$help" 1>&2
5058
-      exit 1
5058
+      exit $EXIT_FAILURE
5059 5059
     fi
5060 5060
 
5061 5061
     rmdirs=
5062 5062
 
5063
+    origobjdir="$objdir"
5063 5064
     for file in $files; do
5064 5065
       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5065 5066
       if test "X$dir" = "X$file"; then
5066 5067
 	dir=.
5067
-	objdir="$objdir"
5068
+	objdir="$origobjdir"
5068 5069
       else
5069
-	objdir="$dir/$objdir"
5070
+	objdir="$dir/$origobjdir"
5070 5071
       fi
5071 5072
       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5072
-      test $mode = uninstall && objdir="$dir"
5073
+      test "$mode" = uninstall && objdir="$dir"
5073 5074
 
5074 5075
       # Remember objdir for removal later, being careful to avoid duplicates
5075
-      if test $mode = clean; then
5076
+      if test "$mode" = clean; then
5076 5077
 	case " $rmdirs " in
5077 5078
 	  *" $objdir "*) ;;
5078 5079
 	  *) rmdirs="$rmdirs $objdir" ;;
... ...
@@ -5096,7 +6859,7 @@ relink_command=\"$relink_command\""
5096 5096
       case $name in
5097 5097
       *.la)
5098 5098
 	# Possibly a libtool archive, so verify it.
5099
-	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5099
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5100 5100
 	  . $dir/$name
5101 5101
 
5102 5102
 	  # Delete the libtool libraries and symlinks.
... ...
@@ -5104,18 +6867,27 @@ relink_command=\"$relink_command\""
5104 5104
 	    rmfiles="$rmfiles $objdir/$n"
5105 5105
 	  done
5106 5106
 	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
5107
-	  test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
5108 5107
 
5109
-	  if test $mode = uninstall; then
5108
+	  case "$mode" in
5109
+	  clean)
5110
+	    case "  $library_names " in
5111
+	    # "  " in the beginning catches empty $dlname
5112
+	    *" $dlname "*) ;;
5113
+	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
5114
+	    esac
5115
+	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
5116
+	    ;;
5117
+	  uninstall)
5110 5118
 	    if test -n "$library_names"; then
5111 5119
 	      # Do each command in the postuninstall commands.
5112
-	      eval cmds=\"$postuninstall_cmds\"
5120
+	      cmds=$postuninstall_cmds
5113 5121
 	      save_ifs="$IFS"; IFS='~'
5114 5122
 	      for cmd in $cmds; do
5115 5123
 		IFS="$save_ifs"
5124
+		eval cmd=\"$cmd\"
5116 5125
 		$show "$cmd"
5117 5126
 		$run eval "$cmd"
5118
-		if test $? != 0 && test "$rmforce" != yes; then
5127
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
5119 5128
 		  exit_status=1
5120 5129
 		fi
5121 5130
 	      done
... ...
@@ -5124,40 +6896,72 @@ relink_command=\"$relink_command\""
5124 5124
 
5125 5125
 	    if test -n "$old_library"; then
5126 5126
 	      # Do each command in the old_postuninstall commands.
5127
-	      eval cmds=\"$old_postuninstall_cmds\"
5127
+	      cmds=$old_postuninstall_cmds
5128 5128
 	      save_ifs="$IFS"; IFS='~'
5129 5129
 	      for cmd in $cmds; do
5130 5130
 		IFS="$save_ifs"
5131
+		eval cmd=\"$cmd\"
5131 5132
 		$show "$cmd"
5132 5133
 		$run eval "$cmd"
5133
-		if test $? != 0 && test "$rmforce" != yes; then
5134
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
5134 5135
 		  exit_status=1
5135 5136
 		fi
5136 5137
 	      done
5137 5138
 	      IFS="$save_ifs"
5138 5139
 	    fi
5139 5140
 	    # FIXME: should reinstall the best remaining shared library.
5140
-	  fi
5141
+	    ;;
5142
+	  esac
5141 5143
 	fi
5142 5144
 	;;
5143 5145
 
5144 5146
       *.lo)
5145
-	if test "$build_old_libs" = yes; then
5146
-	  oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
5147
-	  rmfiles="$rmfiles $dir/$oldobj"
5147
+	# Possibly a libtool object, so verify it.
5148
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5149
+
5150
+	  # Read the .lo file
5151
+	  . $dir/$name
5152
+
5153
+	  # Add PIC object to the list of files to remove.
5154
+	  if test -n "$pic_object" \
5155
+	     && test "$pic_object" != none; then
5156
+	    rmfiles="$rmfiles $dir/$pic_object"
5157
+	  fi
5158
+
5159
+	  # Add non-PIC object to the list of files to remove.
5160
+	  if test -n "$non_pic_object" \
5161
+	     && test "$non_pic_object" != none; then
5162
+	    rmfiles="$rmfiles $dir/$non_pic_object"
5163
+	  fi
5148 5164
 	fi
5149 5165
 	;;
5150 5166
 
5151 5167
       *)
5152
-	# Do a test to see if this is a libtool program.
5153
-	if test $mode = clean &&
5154
-	   (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5155
-	  relink_command=
5156
-	  . $dir/$file
5168
+	if test "$mode" = clean ; then
5169
+	  noexename=$name
5170
+	  case $file in
5171
+	  *.exe)
5172
+	    file=`$echo $file|${SED} 's,.exe$,,'`
5173
+	    noexename=`$echo $name|${SED} 's,.exe$,,'`
5174
+	    # $file with .exe has already been added to rmfiles,
5175
+	    # add $file without .exe
5176
+	    rmfiles="$rmfiles $file"
5177
+	    ;;
5178
+	  esac
5179
+	  # Do a test to see if this is a libtool program.
5180
+	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5181
+	    relink_command=
5182
+	    . $dir/$noexename
5157 5183
 
5158
-	  rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
5159
-	  if test "$fast_install" = yes && test -n "$relink_command"; then
5160
-	    rmfiles="$rmfiles $objdir/lt-$name"
5184
+	    # note $name still contains .exe if it was in $file originally
5185
+	    # as does the version of $file that was added into $rmfiles
5186
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
5187
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
5188
+	      rmfiles="$rmfiles $objdir/lt-$name"
5189
+	    fi
5190
+	    if test "X$noexename" != "X$name" ; then
5191
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
5192
+	    fi
5161 5193
 	  fi
5162 5194
 	fi
5163 5195
 	;;
... ...
@@ -5165,6 +6969,7 @@ relink_command=\"$relink_command\""
5165 5165
       $show "$rm $rmfiles"
5166 5166
       $run $rm $rmfiles || exit_status=1
5167 5167
     done
5168
+    objdir="$origobjdir"
5168 5169
 
5169 5170
     # Try to remove the ${objdir}s in the directories where we deleted files
5170 5171
     for dir in $rmdirs; do
... ...
@@ -5180,20 +6985,20 @@ relink_command=\"$relink_command\""
5180 5180
   "")
5181 5181
     $echo "$modename: you must specify a MODE" 1>&2
5182 5182
     $echo "$generic_help" 1>&2
5183
-    exit 1
5183
+    exit $EXIT_FAILURE
5184 5184
     ;;
5185 5185
   esac
5186 5186
 
5187 5187
   if test -z "$exec_cmd"; then
5188 5188
     $echo "$modename: invalid operation mode \`$mode'" 1>&2
5189 5189
     $echo "$generic_help" 1>&2
5190
-    exit 1
5190
+    exit $EXIT_FAILURE
5191 5191
   fi
5192 5192
 fi # test -z "$show_help"
5193 5193
 
5194 5194
 if test -n "$exec_cmd"; then
5195 5195
   eval exec $exec_cmd
5196
-  exit 1
5196
+  exit $EXIT_FAILURE
5197 5197
 fi
5198 5198
 
5199 5199
 # We need to display help for each of the modes.
... ...
@@ -5212,6 +7017,7 @@ Provide generalized library-building support services.
5212 5212
     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
5213 5213
     --quiet           same as \`--silent'
5214 5214
     --silent          don't print informational messages
5215
+    --tag=TAG         use configuration variables from tag TAG
5215 5216
     --version         print version information
5216 5217
 
5217 5218
 MODE must be one of the following:
... ...
@@ -5225,8 +7031,10 @@ MODE must be one of the following:
5225 5225
       uninstall       remove libraries from an installed directory
5226 5226
 
5227 5227
 MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
5228
-a more detailed description of MODE."
5229
-  exit 0
5228
+a more detailed description of MODE.
5229
+
5230
+Report bugs to <bug-libtool@gnu.org>."
5231
+  exit $EXIT_SUCCESS
5230 5232
   ;;
5231 5233
 
5232 5234
 clean)
... ...
@@ -5337,6 +7145,9 @@ The following components of LINK-COMMAND are treated specially:
5337 5337
   -no-install       link a not-installable executable
5338 5338
   -no-undefined     declare that a library does not refer to external symbols
5339 5339
   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
5340
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
5341
+  -precious-files-regex REGEX
5342
+                    don't remove output files matching REGEX
5340 5343
   -release RELEASE  specify package release information
5341 5344
   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
5342 5345
   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
... ...
@@ -5378,14 +7189,33 @@ Otherwise, only FILE itself is deleted using RM."
5378 5378
 *)
5379 5379
   $echo "$modename: invalid operation mode \`$mode'" 1>&2
5380 5380
   $echo "$help" 1>&2
5381
-  exit 1
5381
+  exit $EXIT_FAILURE
5382 5382
   ;;
5383 5383
 esac
5384 5384
 
5385
-echo
5385
+$echo
5386 5386
 $echo "Try \`$modename --help' for more information about other modes."
5387 5387
 
5388
-exit 0
5388
+exit $?
5389
+
5390
+# The TAGs below are defined such that we never get into a situation
5391
+# in which we disable both kinds of libraries.  Given conflicting
5392
+# choices, we go for a static library, that is the most portable,
5393
+# since we can't tell whether shared libraries were disabled because
5394
+# the user asked for that or because the platform doesn't support
5395
+# them.  This is particularly important on AIX, because we don't
5396
+# support having both static and shared libraries enabled at the same
5397
+# time on that platform, so we default to a shared-only configuration.
5398
+# If a disable-shared tag is given, we'll fallback to a static-only
5399
+# configuration.  But we'll never go from static-only to shared-only.
5400
+
5401
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
5402
+disable_libs=shared
5403
+# ### END LIBTOOL TAG CONFIG: disable-shared
5404
+
5405
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
5406
+disable_libs=static
5407
+# ### END LIBTOOL TAG CONFIG: disable-static
5389 5408
 
5390 5409
 # Local Variables:
5391 5410
 # mode:shell-script
... ...
@@ -5434,7 +7264,7 @@ AR_FLAGS="cru"
5434 5434
 LTCC="gcc"
5435 5435
 
5436 5436
 # LTCC compiler flags.
5437
-LTCFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector -g3 -march=k8 -pedantic -W -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat=2 -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-unused-parameter -Wpointer-arith -Wshadow -Wstack-protector -Wstrict-prototypes -Wswitch -Wundef -Wwrite-strings "
5437
+LTCFLAGS="-mfpmath=sse -msse -msse2 -m3dnow -mmmx -D_FORTIFY_SOURCE=2 -fstack-protector -march=k8 -pedantic -g3 -Wextra -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat=2 -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-unused-parameter -Wpointer-arith -Wshadow -Wstack-protector -Wstrict-prototypes -Wswitch -Wundef -Wwrite-strings"
5438 5438
 
5439 5439
 # A language-specific compiler.
5440 5440
 CC="g++"
... ...
@@ -5674,7 +7504,7 @@ link_all_deplibs=no
5674 5674
 sys_lib_search_path_spec=" /usr/lib/gcc/x86_64-linux-gnu/4.1.2/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/4.1.2/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../x86_64-linux-gnu/lib/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../x86_64-linux-gnu/4.1.2/ /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../ /lib/x86_64-linux-gnu/4.1.2/ /lib/ /usr/lib/x86_64-linux-gnu/4.1.2/ /usr/lib/"
5675 5675
 
5676 5676
 # Run-time system search path for libraries
5677
-sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib "
5677
+sys_lib_dlsearch_path_spec="/lib /usr/lib "
5678 5678
 
5679 5679
 # Fix the shell variable $srcfile for the compiler.
5680 5680
 fix_srcfile_path=""
... ...
@@ -90,7 +90,7 @@
90 90
 #define STDC_HEADERS 1
91 91
 
92 92
 /* Version number of package */
93
-#define VERSION "20061205"
93
+#define VERSION "20070308"
94 94
 
95 95
 /* Enable GNU extensions on systems that have them.  */
96 96
 #ifndef _GNU_SOURCE
... ...
@@ -1,147 +1,566 @@
1
-/*
2
- *  HTML Entity & Encoding normalization.
3
- *
4

                
5
- *
6
- *  This program is free software; you can redistribute it and/or modify
7
- *  it under the terms of the GNU General Public License as published by
8
- *  the Free Software Foundation; either version 2 of the License, or
9
- *  (at your option) any later version.
10
- *
11
- *  This program is distributed in the hope that it will be useful,
12
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
- *  GNU General Public License for more details.
15
- *
16
- *  You should have received a copy of the GNU General Public License
17
- *  along with this program; if not, write to the Free Software
18
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- *  MA 02110-1301, USA.
20
- *
21
- */
1
+/* TODO: include GPL headers */
22 2
 #include <hashtab.h>
23 3
 static struct element entities_htable_elements[] = {
24
-/* don't modify the order of elements here, an elements index is its hashcode, if you move it
25
- * lookup won't work anymore correctly.
26
- * You can safely change the value on the right.*/
4
+	{(const unsigned char*)"varpropto", 8733},
5
+	{(const unsigned char*)"ncong", 8775},
6
+	{(const unsigned char*)"grave", 96},
27 7
 	{NULL, 0},
8
+	{(const unsigned char*)"toea", 10536},
9
+	{(const unsigned char*)"map", 8614},
10
+	{(const unsigned char*)"nap", 8777},
11
+	{(const unsigned char*)"lap", 10885},
28 12
 	{NULL, 0},
13
+	{(const unsigned char*)"gap", 10886},
29 14
 	{NULL, 0},
30
-	{(const unsigned char*)"asymp", 8776},
31
-	{(const unsigned char*)"sup", 8835},
15
+	{(const unsigned char*)"twoheadrightarrow", 8608},
32 16
 	{NULL, 0},
17
+	{(const unsigned char*)"Ll", 8920},
18
+	{(const unsigned char*)"amalg", 10815},
19
+	{(const unsigned char*)"geqslant", 10878},
33 20
 	{NULL, 0},
21
+	{(const unsigned char*)"origof", 8886},
22
+	{(const unsigned char*)"Tab", 9},
34 23
 	{NULL, 0},
24
+	{(const unsigned char*)"leqslant", 10877},
25
+	{(const unsigned char*)"asympeq", 8781},
35 26
 	{NULL, 0},
36 27
 	{NULL, 0},
28
+	{(const unsigned char*)"sext", 10038},
29
+	{(const unsigned char*)"Wedge", 8896},
30
+	{(const unsigned char*)"sqcap", 8851},
31
+	{(const unsigned char*)"loang", 12312},
32
+	{(const unsigned char*)"ngeq", 8817},
37 33
 	{NULL, 0},
34
+	{(const unsigned char*)"NotLessTilde", 8820},
35
+	{(const unsigned char*)"nwArr", 8662},
38 36
 	{NULL, 0},
39
-	{(const unsigned char*)"crarr", 8629},
37
+	{(const unsigned char*)"roang", 12313},
38
+	{(const unsigned char*)"Delta", 916},
39
+	{NULL, 0},
40
+	{(const unsigned char*)"swArr", 8665},
41
+	{NULL, 0},
42
+	{NULL, 0},
43
+	{NULL, 0},
44
+	{(const unsigned char*)"DifferentialD", 8518},
45
+	{(const unsigned char*)"gl", 8823},
46
+	{(const unsigned char*)"loz", 9674},
47
+	{(const unsigned char*)"Prime", 8243},
48
+	{(const unsigned char*)"ShortRightArrow", 8594},
49
+	{(const unsigned char*)"sigmaf", 962},
50
+	{(const unsigned char*)"ll", 8810},
51
+	{(const unsigned char*)"rx", 8478},
52
+	{NULL, 0},
53
+	{NULL, 0},
54
+	{(const unsigned char*)"circledS", 9416},
55
+	{NULL, 0},
56
+	{NULL, 0},
57
+	{NULL, 0},
58
+	{NULL, 0},
59
+	{(const unsigned char*)"notni", 8716},
60
+	{NULL, 0},
61
+	{(const unsigned char*)"wedge", 8743},
62
+	{NULL, 0},
63
+	{NULL, 0},
64
+	{NULL, 0},
65
+	{(const unsigned char*)"rightrightarrows", 8649},
66
+	{NULL, 0},
67
+	{NULL, 0},
68
+	{NULL, 0},
69
+	{(const unsigned char*)"delta", 948},
70
+	{NULL, 0},
71
+	{NULL, 0},
72
+	{(const unsigned char*)"ffllig", 64260},
73
+	{NULL, 0},
74
+	{NULL, 0},
75
+	{(const unsigned char*)"Bernoullis", 8492},
76
+	{(const unsigned char*)"djcy", 1106},
77
+	{NULL, 0},
78
+	{(const unsigned char*)"gjcy", 1107},
79
+	{(const unsigned char*)"prime", 8242},
80
+	{NULL, 0},
81
+	{NULL, 0},
82
+	{(const unsigned char*)"kjcy", 1116},
83
+	{(const unsigned char*)"ljcy", 1113},
84
+	{(const unsigned char*)"lmoustache", 9136},
85
+	{(const unsigned char*)"njcy", 1114},
86
+	{(const unsigned char*)"boxDl", 9558},
87
+	{(const unsigned char*)"clubs", 9827},
88
+	{(const unsigned char*)"Integral", 8747},
89
+	{NULL, 0},
90
+	{(const unsigned char*)"rmoustache", 9137},
91
+	{(const unsigned char*)"sol", 47},
92
+	{(const unsigned char*)"SquareSubset", 8847},
93
+	{NULL, 0},
94
+	{(const unsigned char*)"rect", 9645},
95
+	{(const unsigned char*)"sect", 167},
96
+	{(const unsigned char*)"VeryThinSpace", 8202},
97
+	{(const unsigned char*)"lesssim", 8818},
98
+	{NULL, 0},
99
+	{NULL, 0},
100
+	{NULL, 0},
101
+	{(const unsigned char*)"UnderBrace", 65080},
102
+	{NULL, 0},
103
+	{(const unsigned char*)"comp", 8705},
104
+	{(const unsigned char*)"mapstoup", 8613},
105
+	{NULL, 0},
106
+	{NULL, 0},
107
+	{NULL, 0},
108
+	{NULL, 0},
109
+	{(const unsigned char*)"circ", 710},
110
+	{(const unsigned char*)"complement", 8705},
111
+	{(const unsigned char*)"flat", 9837},
112
+	{NULL, 0},
113
+	{NULL, 0},
114
+	{NULL, 0},
115
+	{(const unsigned char*)"LowerLeftArrow", 8601},
116
+	{NULL, 0},
117
+	{(const unsigned char*)"cuesc", 8927},
118
+	{(const unsigned char*)"sce", 10928},
119
+	{NULL, 0},
120
+	{NULL, 0},
121
+	{NULL, 0},
122
+	{NULL, 0},
123
+	{(const unsigned char*)"euro", 8364},
124
+	{(const unsigned char*)"succcurlyeq", 8829},
125
+	{(const unsigned char*)"LeftCeiling", 8968},
126
+	{(const unsigned char*)"vprop", 8733},
127
+	{NULL, 0},
128
+	{NULL, 0},
129
+	{(const unsigned char*)"nexists", 8708},
130
+	{NULL, 0},
131
+	{NULL, 0},
132
+	{NULL, 0},
133
+	{NULL, 0},
134
+	{(const unsigned char*)"pitchfork", 8916},
135
+	{(const unsigned char*)"darr2", 8650},
136
+	{NULL, 0},
137
+	{(const unsigned char*)"Ubrcy", 1038},
138
+	{NULL, 0},
139
+	{NULL, 0},
140
+	{(const unsigned char*)"sqsupe", 8850},
141
+	{(const unsigned char*)"eparsl", 10723},
142
+	{NULL, 0},
143
+	{(const unsigned char*)"larr2", 8647},
144
+	{NULL, 0},
145
+	{NULL, 0},
146
+	{(const unsigned char*)"LeftUpVectorBar", 10584},
147
+	{(const unsigned char*)"sqsupseteq", 8850},
148
+	{NULL, 0},
149
+	{(const unsigned char*)"rarr2", 8649},
150
+	{NULL, 0},
151
+	{NULL, 0},
152
+	{(const unsigned char*)"uarr2", 8648},
153
+	{(const unsigned char*)"veeeq", 8794},
154
+	{NULL, 0},
155
+	{NULL, 0},
156
+	{NULL, 0},
157
+	{NULL, 0},
158
+	{(const unsigned char*)"AElig", 198},
159
+	{(const unsigned char*)"notnivb", 8958},
160
+	{NULL, 0},
161
+	{NULL, 0},
162
+	{NULL, 0},
163
+	{(const unsigned char*)"plusb", 8862},
164
+	{NULL, 0},
165
+	{NULL, 0},
166
+	{NULL, 0},
167
+	{(const unsigned char*)"DoubleRightTee", 8872},
168
+	{(const unsigned char*)"NotSquareSupersetEqual", 8931},
169
+	{(const unsigned char*)"hookrightarrow", 8618},
170
+	{(const unsigned char*)"ubrcy", 1118},
171
+	{NULL, 0},
172
+	{(const unsigned char*)"OElig", 338},
173
+	{NULL, 0},
174
+	{(const unsigned char*)"NotGreaterTilde", 8821},
175
+	{(const unsigned char*)"filig", 64257},
176
+	{(const unsigned char*)"nlt", 8814},
177
+	{(const unsigned char*)"Agr", 913},
178
+	{(const unsigned char*)"GreaterEqual", 8805},
179
+	{(const unsigned char*)"mldr", 8230},
180
+	{(const unsigned char*)"nldr", 8229},
181
+	{(const unsigned char*)"drcrop", 8972},
182
+	{(const unsigned char*)"Dgr", 916},
183
+	{(const unsigned char*)"Bgr", 914},
184
+	{(const unsigned char*)"Igr", 921},
185
+	{(const unsigned char*)"angmsd", 8737},
186
+	{(const unsigned char*)"trie", 8796},
187
+	{(const unsigned char*)"Kgr", 922},
188
+	{(const unsigned char*)"Ggr", 915},
189
+	{(const unsigned char*)"Mgr", 924},
190
+	{(const unsigned char*)"Egr", 917},
191
+	{(const unsigned char*)"Ogr", 927},
192
+	{(const unsigned char*)"Ngr", 925},
193
+	{(const unsigned char*)"Lgr", 923},
194
+	{(const unsigned char*)"Pgr", 928},
195
+	{(const unsigned char*)"Sgr", 931},
196
+	{(const unsigned char*)"cong", 8773},
197
+	{(const unsigned char*)"doteqdot", 8785},
198
+	{(const unsigned char*)"urcrop", 8974},
199
+	{(const unsigned char*)"Rgr", 929},
200
+	{(const unsigned char*)"Xgr", 926},
201
+	{(const unsigned char*)"Tgr", 932},
202
+	{(const unsigned char*)"Ugr", 933},
203
+	{NULL, 0},
204
+	{(const unsigned char*)"nless", 8814},
205
+	{(const unsigned char*)"LeftTee", 8867},
206
+	{(const unsigned char*)"OverBar", 175},
207
+	{(const unsigned char*)"Zgr", 918},
208
+	{(const unsigned char*)"agr", 945},
209
+	{(const unsigned char*)"bgr", 946},
210
+	{(const unsigned char*)"phis", 981},
211
+	{(const unsigned char*)"dgr", 948},
212
+	{(const unsigned char*)"intlarhk", 10775},
213
+	{(const unsigned char*)"boxplus", 8862},
214
+	{(const unsigned char*)"ggr", 947},
215
+	{(const unsigned char*)"egr", 949},
216
+	{(const unsigned char*)"nrtrie", 8941},
217
+	{(const unsigned char*)"rdldhar", 10601},
218
+	{(const unsigned char*)"lrcorner", 8991},
219
+	{(const unsigned char*)"igr", 953},
220
+	{(const unsigned char*)"lgr", 955},
221
+	{(const unsigned char*)"lhblk", 9604},
222
+	{(const unsigned char*)"ngr", 957},
223
+	{(const unsigned char*)"mgr", 956},
224
+	{(const unsigned char*)"kgr", 954},
225
+	{(const unsigned char*)"ogr", 959},
226
+	{(const unsigned char*)"urcorner", 8989},
227
+	{(const unsigned char*)"sgr", 963},
228
+	{(const unsigned char*)"boxUL", 9565},
229
+	{(const unsigned char*)"npolint", 10772},
230
+	{(const unsigned char*)"uhblk", 9600},
231
+	{(const unsigned char*)"rgr", 961},
232
+	{(const unsigned char*)"curarrm", 10556},
233
+	{(const unsigned char*)"pgr", 960},
234
+	{(const unsigned char*)"ruluhar", 10600},
235
+	{(const unsigned char*)"lbbrk", 12308},
236
+	{(const unsigned char*)"zgr", 950},
237
+	{(const unsigned char*)"tgr", 964},
238
+	{(const unsigned char*)"ugr", 965},
239
+	{NULL, 0},
240
+	{(const unsigned char*)"rbbrk", 12309},
241
+	{(const unsigned char*)"profline", 8978},
242
+	{NULL, 0},
243
+	{NULL, 0},
244
+	{(const unsigned char*)"rlm", 8207},
245
+	{(const unsigned char*)"OverBrace", 65079},
246
+	{(const unsigned char*)"xgr", 958},
247
+	{(const unsigned char*)"lsaquo", 8249},
248
+	{NULL, 0},
249
+	{(const unsigned char*)"nwarrow", 8598},
250
+	{(const unsigned char*)"Equilibrium", 8652},
251
+	{NULL, 0},
252
+	{(const unsigned char*)"rsaquo", 8250},
253
+	{NULL, 0},
254
+	{(const unsigned char*)"swarrow", 8601},
255
+	{NULL, 0},
256
+	{NULL, 0},
257
+	{NULL, 0},
258
+	{NULL, 0},
259
+	{NULL, 0},
260
+	{NULL, 0},
261
+	{NULL, 0},
262
+	{(const unsigned char*)"prec", 8826},
263
+	{(const unsigned char*)"ltrie", 8884},
264
+	{(const unsigned char*)"dharl", 8643},
265
+	{(const unsigned char*)"shortmid", 8739},
266
+	{NULL, 0},
267
+	{NULL, 0},
268
+	{(const unsigned char*)"nleftrightarrow", 8622},
269
+	{(const unsigned char*)"rtrie", 8885},
270
+	{(const unsigned char*)"Im", 8465},
271
+	{(const unsigned char*)"frown", 8994},
272
+	{NULL, 0},
273
+	{NULL, 0},
274
+	{NULL, 0},
275
+	{(const unsigned char*)"pertenk", 8241},
276
+	{NULL, 0},
277
+	{NULL, 0},
278
+	{(const unsigned char*)"lessgtr", 8822},
279
+	{(const unsigned char*)"bigvee", 8897},
280
+	{(const unsigned char*)"supseteq", 8839},
281
+	{(const unsigned char*)"uharl", 8639},
282
+	{NULL, 0},
283
+	{(const unsigned char*)"Longrightarrow", 10233},
284
+	{(const unsigned char*)"lrarr2", 8646},
285
+	{NULL, 0},
286
+	{(const unsigned char*)"wreath", 8768},
287
+	{NULL, 0},
288
+	{(const unsigned char*)"Updownarrow", 8661},
289
+	{NULL, 0},
290
+	{NULL, 0},
291
+	{NULL, 0},
292
+	{(const unsigned char*)"lessdot", 8918},
293
+	{NULL, 0},
294
+	{NULL, 0},
295
+	{NULL, 0},
296
+	{NULL, 0},
297
+	{NULL, 0},
298
+	{(const unsigned char*)"nlArr", 8653},
299
+	{(const unsigned char*)"SOFTcy", 1068},
300
+	{NULL, 0},
301
+	{(const unsigned char*)"Barwed", 8966},
302
+	{(const unsigned char*)"upharpoonleft", 8639},
303
+	{NULL, 0},
304
+	{NULL, 0},
305
+	{(const unsigned char*)"FilledVerySmallSquare", 9642},
306
+	{NULL, 0},
307
+	{NULL, 0},
308
+	{(const unsigned char*)"coprod", 8720},
309
+	{(const unsigned char*)"pm", 177},
310
+	{NULL, 0},
311
+	{(const unsigned char*)"nLeftarrow", 8653},
312
+	{NULL, 0},
313
+	{(const unsigned char*)"DScy", 1029},
314
+	{(const unsigned char*)"xlArr", 10232},
315
+	{(const unsigned char*)"longrightarrow", 10230},
316
+	{NULL, 0},
317
+	{NULL, 0},
318
+	{(const unsigned char*)"subseteq", 8838},
319
+	{NULL, 0},
320
+	{(const unsigned char*)"updownarrow", 8597},
321
+	{(const unsigned char*)"bsime", 8909},
322
+	{NULL, 0},
323
+	{NULL, 0},
324
+	{(const unsigned char*)"supsetneq", 8843},
325
+	{NULL, 0},
326
+	{NULL, 0},
327
+	{(const unsigned char*)"frac56", 8538},
328
+	{NULL, 0},
329
+	{(const unsigned char*)"TScy", 1062},
330
+	{NULL, 0},
331
+	{(const unsigned char*)"zeetrf", 8488},
332
+	{(const unsigned char*)"ogon", 731},
333
+	{(const unsigned char*)"barwed", 8965},
334
+	{(const unsigned char*)"nsime", 8772},
335
+	{NULL, 0},
336
+	{NULL, 0},
337
+	{NULL, 0},
338
+	{NULL, 0},
339
+	{NULL, 0},
340
+	{NULL, 0},
341
+	{NULL, 0},
342
+	{(const unsigned char*)"lEg", 10891},
343
+	{(const unsigned char*)"lrhar", 8651},
344
+	{NULL, 0},
345
+	{NULL, 0},
346
+	{NULL, 0},
347
+	{(const unsigned char*)"boxminus", 8863},
348
+	{(const unsigned char*)"ape", 8778},
349
+	{NULL, 0},
350
+	{(const unsigned char*)"divonx", 8903},
351
+	{(const unsigned char*)"hksearow", 10533},
352
+	{(const unsigned char*)"boxhD", 9573},
353
+	{(const unsigned char*)"NotLessEqual", 8816},
354
+	{(const unsigned char*)"ang90", 8735},
355
+	{(const unsigned char*)"sstarf", 8902},
356
+	{NULL, 0},
357
+	{NULL, 0},
358
+	{NULL, 0},
359
+	{NULL, 0},
360
+	{NULL, 0},
361
+	{NULL, 0},
362
+	{(const unsigned char*)"subsetneq", 8842},
363
+	{(const unsigned char*)"Darr", 8609},
364
+	{NULL, 0},
365
+	{(const unsigned char*)"curarr", 8631},
366
+	{NULL, 0},
367
+	{NULL, 0},
368
+	{NULL, 0},
369
+	{NULL, 0},
370
+	{(const unsigned char*)"real", 8476},
371
+	{(const unsigned char*)"Larr", 8606},
372
+	{(const unsigned char*)"CircleDot", 8857},
373
+	{NULL, 0},
374
+	{NULL, 0},
375
+	{NULL, 0},
376
+	{(const unsigned char*)"CircleTimes", 8855},
377
+	{(const unsigned char*)"Rarr", 8608},
378
+	{(const unsigned char*)"varpi", 982},
379
+	{(const unsigned char*)"SuchThat", 8715},
380
+	{(const unsigned char*)"Uarr", 8607},
381
+	{(const unsigned char*)"smeparsl", 10724},
382
+	{NULL, 0},
383
+	{(const unsigned char*)"orslope", 10839},
384
+	{(const unsigned char*)"cuwed", 8911},
385
+	{NULL, 0},
386
+	{NULL, 0},
387
+	{NULL, 0},
388
+	{(const unsigned char*)"Breve", 728},
389
+	{(const unsigned char*)"nwarr", 8598},
390
+	{NULL, 0},
391
+	{(const unsigned char*)"orv", 10843},
392
+	{(const unsigned char*)"zwj", 8205},
393
+	{(const unsigned char*)"swarr", 8601},
394
+	{NULL, 0},
395
+	{(const unsigned char*)"darr", 8595},
396
+	{(const unsigned char*)"gtrdot", 8919},
397
+	{(const unsigned char*)"precneqq", 10933},
398
+	{(const unsigned char*)"LessGreater", 8822},
399
+	{(const unsigned char*)"harr", 8596},
400
+	{(const unsigned char*)"UpperLeftArrow", 8598},
401
+	{(const unsigned char*)"Verbar", 8214},
402
+	{(const unsigned char*)"harrw", 8621},
403
+	{(const unsigned char*)"TildeTilde", 8776},
404
+	{(const unsigned char*)"larr", 8592},
405
+	{NULL, 0},
406
+	{(const unsigned char*)"succsim", 8831},
407
+	{(const unsigned char*)"rarrw", 8605},
408
+	{NULL, 0},
409
+	{(const unsigned char*)"rarr", 8594},
410
+	{(const unsigned char*)"prnE", 10933},
411
+	{(const unsigned char*)"Hat", 94},
412
+	{(const unsigned char*)"uarr", 8593},
413
+	{(const unsigned char*)"varr", 8597},
414
+	{NULL, 0},
415
+	{NULL, 0},
416
+	{NULL, 0},
417
+	{NULL, 0},
418
+	{(const unsigned char*)"boxvR", 9566},
419
+	{NULL, 0},
420
+	{(const unsigned char*)"micro", 181},
421
+	{(const unsigned char*)"breve", 728},
422
+	{NULL, 0},
423
+	{(const unsigned char*)"nequiv", 8802},
424
+	{NULL, 0},
425
+	{NULL, 0},
426
+	{NULL, 0},
427
+	{NULL, 0},
428
+	{NULL, 0},
429
+	{NULL, 0},
430
+	{NULL, 0},
431
+	{NULL, 0},
432
+	{(const unsigned char*)"verbar", 124},
433
+	{(const unsigned char*)"lopar", 10629},
434
+	{NULL, 0},
435
+	{NULL, 0},
436
+	{NULL, 0},
437
+	{(const unsigned char*)"frac35", 8535},
438
+	{(const unsigned char*)"RightArrow", 8594},
40 439
 	{(const unsigned char*)"copy", 169},
440
+	{(const unsigned char*)"ropar", 10630},
41 441
 	{NULL, 0},
42 442
 	{NULL, 0},
43
-	{(const unsigned char*)"ensp", 8194},
44 443
 	{NULL, 0},
45
-	{(const unsigned char*)"forall", 8704},
444
+	{(const unsigned char*)"nsubseteq", 8840},
46 445
 	{NULL, 0},
47 446
 	{NULL, 0},
48 447
 	{NULL, 0},
49 448
 	{NULL, 0},
50
-	{(const unsigned char*)"theta", 952},
51 449
 	{NULL, 0},
52 450
 	{NULL, 0},
451
+	{(const unsigned char*)"nvlArr", 10498},
53 452
 	{NULL, 0},
54 453
 	{NULL, 0},
454
+	{(const unsigned char*)"setminus", 8726},
455
+	{(const unsigned char*)"boxvH", 9578},
456
+	{(const unsigned char*)"doteq", 8784},
55 457
 	{NULL, 0},
56
-	{(const unsigned char*)"nbsp", 160},
57 458
 	{NULL, 0},
58 459
 	{NULL, 0},
460
+	{(const unsigned char*)"vartriangleleft", 8882},
59 461
 	{NULL, 0},
462
+	{(const unsigned char*)"RightTriangleBar", 10704},
463
+	{(const unsigned char*)"shy", 173},
464
+	{(const unsigned char*)"RightUpVectorBar", 10580},
60 465
 	{NULL, 0},
61 466
 	{NULL, 0},
62
-	{(const unsigned char*)"plusmn", 177},
63
-	{(const unsigned char*)"mdash", 8212},
64
-	{(const unsigned char*)"Omicron", 927},
65
-	{(const unsigned char*)"Mu", 924},
66
-	{(const unsigned char*)"Nu", 925},
67
-	{(const unsigned char*)"ndash", 8211},
68 467
 	{NULL, 0},
69 468
 	{NULL, 0},
469
+	{(const unsigned char*)"Kappa", 922},
70 470
 	{NULL, 0},
71
-	{(const unsigned char*)"Chi", 935},
72
-	{(const unsigned char*)"Pi", 928},
471
+	{(const unsigned char*)"leftrightarrows", 8646},
472
+	{(const unsigned char*)"sqsupset", 8848},
473
+	{(const unsigned char*)"rationals", 8474},
73 474
 	{NULL, 0},
74 475
 	{NULL, 0},
75 476
 	{NULL, 0},
76
-	{(const unsigned char*)"ETH", 208},
77 477
 	{NULL, 0},
78 478
 	{NULL, 0},
479
+	{(const unsigned char*)"cent", 162},
79 480
 	{NULL, 0},
80
-	{(const unsigned char*)"Xi", 926},
81 481
 	{NULL, 0},
82 482
 	{NULL, 0},
483
+	{(const unsigned char*)"lobrk", 12314},
83 484
 	{NULL, 0},
84
-	{(const unsigned char*)"Phi", 934},
85 485
 	{NULL, 0},
486
+	{(const unsigned char*)"OverBracket", 9140},
86 487
 	{NULL, 0},
87 488
 	{NULL, 0},
489
+	{(const unsigned char*)"robrk", 12315},
490
+	{(const unsigned char*)"Fouriertrf", 8497},
88 491
 	{NULL, 0},
89 492
 	{NULL, 0},
90 493
 	{NULL, 0},
91 494
 	{NULL, 0},
92 495
 	{NULL, 0},
496
+	{(const unsigned char*)"blacktriangleleft", 9666},
497
+	{(const unsigned char*)"bumpe", 8783},
93 498
 	{NULL, 0},
94
-	{(const unsigned char*)"bull", 8226},
95 499
 	{NULL, 0},
96
-	{(const unsigned char*)"omicron", 959},
97
-	{(const unsigned char*)"mu", 956},
98
-	{(const unsigned char*)"nu", 957},
99 500
 	{NULL, 0},
100
-	{(const unsigned char*)"or", 8744},
101
-	{(const unsigned char*)"circ", 710},
102
-	{(const unsigned char*)"ni", 8715},
103
-	{(const unsigned char*)"chi", 967},
104
-	{(const unsigned char*)"pi", 960},
501
+	{(const unsigned char*)"kappa", 954},
105 502
 	{NULL, 0},
106 503
 	{NULL, 0},
107 504
 	{NULL, 0},
108 505
 	{NULL, 0},
109 506
 	{NULL, 0},
507
+	{(const unsigned char*)"weierp", 8472},
110 508
 	{NULL, 0},
509
+	{(const unsigned char*)"intcal", 8890},
510
+	{(const unsigned char*)"rarrc", 10547},
111 511
 	{NULL, 0},
112
-	{(const unsigned char*)"xi", 958},
113 512
 	{NULL, 0},
114 513
 	{NULL, 0},
514
+	{(const unsigned char*)"iiint", 8749},
115 515
 	{NULL, 0},
116
-	{(const unsigned char*)"phi", 966},
516
+	{(const unsigned char*)"boxdr", 9484},
117 517
 	{NULL, 0},
118 518
 	{NULL, 0},
119 519
 	{NULL, 0},
520
+	{(const unsigned char*)"percnt", 37},
521
+	{(const unsigned char*)"top", 8868},
120 522
 	{NULL, 0},
523
+	{(const unsigned char*)"ffilig", 64259},
524
+	{(const unsigned char*)"notnivc", 8957},
121 525
 	{NULL, 0},
122 526
 	{NULL, 0},
527
+	{(const unsigned char*)"diams", 9830},
123 528
 	{NULL, 0},
529
+	{(const unsigned char*)"maltese", 10016},
530
+	{(const unsigned char*)"vartriangleright", 8883},
124 531
 	{NULL, 0},
125 532
 	{NULL, 0},
126 533
 	{NULL, 0},
127
-	{(const unsigned char*)"thetasym", 977},
128
-	{(const unsigned char*)"hearts", 9829},
129 534
 	{NULL, 0},
535
+	{(const unsigned char*)"OverParenthesis", 65077},
536
+	{(const unsigned char*)"nesear", 10536},
537
+	{(const unsigned char*)"LessFullEqual", 8806},
130 538
 	{NULL, 0},
539
+	{(const unsigned char*)"UpDownArrow", 8597},
540
+	{(const unsigned char*)"measuredangle", 8737},
131 541
 	{NULL, 0},
132 542
 	{NULL, 0},
133 543
 	{NULL, 0},
134 544
 	{NULL, 0},
135 545
 	{NULL, 0},
546
+	{(const unsigned char*)"Leftarrow", 8656},
547
+	{(const unsigned char*)"HumpDownHump", 8782},
548
+	{(const unsigned char*)"frac14", 188},
136 549
 	{NULL, 0},
550
+	{(const unsigned char*)"LeftUpVector", 8639},
551
+	{(const unsigned char*)"bigotimes", 10754},
552
+	{(const unsigned char*)"questeq", 8799},
137 553
 	{NULL, 0},
138 554
 	{NULL, 0},
139 555
 	{NULL, 0},
556
+	{(const unsigned char*)"GreaterFullEqual", 8807},
140 557
 	{NULL, 0},
558
+	{(const unsigned char*)"in", 8712},
141 559
 	{NULL, 0},
142 560
 	{NULL, 0},
143 561
 	{NULL, 0},
144 562
 	{NULL, 0},
563
+	{(const unsigned char*)"Del", 8711},
145 564
 	{NULL, 0},
146 565
 	{NULL, 0},
147 566
 	{NULL, 0},
... ...
@@ -153,24 +572,36 @@ static struct element entities_htable_elements[] = {
153 153
 	{NULL, 0},
154 154
 	{NULL, 0},
155 155
 	{NULL, 0},
156
+	{(const unsigned char*)"CHcy", 1063},
157
+	{(const unsigned char*)"supne", 8843},
156 158
 	{NULL, 0},
159
+	{(const unsigned char*)"leftarrow", 8592},
160
+	{(const unsigned char*)"ges", 10878},
161
+	{(const unsigned char*)"bnot", 8976},
162
+	{(const unsigned char*)"mumap", 8888},
163
+	{(const unsigned char*)"LeftTriangleEqual", 8884},
164
+	{(const unsigned char*)"KHcy", 1061},
165
+	{(const unsigned char*)"les", 10877},
166
+	{(const unsigned char*)"xutri", 9651},
157 167
 	{NULL, 0},
168
+	{(const unsigned char*)"caron", 711},
158 169
 	{NULL, 0},
170
+	{(const unsigned char*)"EqualTilde", 8770},
171
+	{(const unsigned char*)"UnderBar", 818},
172
+	{(const unsigned char*)"SHcy", 1064},
159 173
 	{NULL, 0},
160 174
 	{NULL, 0},
161 175
 	{NULL, 0},
162 176
 	{NULL, 0},
163 177
 	{NULL, 0},
164 178
 	{NULL, 0},
165
-	{(const unsigned char*)"nsub", 8836},
166
-	{(const unsigned char*)"quot", 34},
167
-	{(const unsigned char*)"there4", 8756},
179
+	{(const unsigned char*)"ZHcy", 1046},
180
+	{(const unsigned char*)"gel", 8923},
181
+	{(const unsigned char*)"Vee", 8897},
168 182
 	{NULL, 0},
169 183
 	{NULL, 0},
170 184
 	{NULL, 0},
171 185
 	{NULL, 0},
172
-	{(const unsigned char*)"part", 8706},
173
-	{(const unsigned char*)"sect", 167},
174 186
 	{NULL, 0},
175 187
 	{NULL, 0},
176 188
 	{NULL, 0},
... ...
@@ -180,231 +611,1288 @@ static struct element entities_htable_elements[] = {
180 180
 	{NULL, 0},
181 181
 	{NULL, 0},
182 182
 	{NULL, 0},
183
-	{(const unsigned char*)"euro", 8364},
184
-	{(const unsigned char*)"tilde", 732},
185
-	{(const unsigned char*)"Dagger", 8225},
183
+	{(const unsigned char*)"subne", 8842},
186 184
 	{NULL, 0},
185
+	{(const unsigned char*)"ngtr", 8815},
186
+	{(const unsigned char*)"isins", 8948},
187 187
 	{NULL, 0},
188 188
 	{NULL, 0},
189
+	{(const unsigned char*)"angle", 8736},
189 190
 	{NULL, 0},
190 191
 	{NULL, 0},
192
+	{(const unsigned char*)"ThinSpace", 8201},
193
+	{(const unsigned char*)"samalg", 8720},
191 194
 	{NULL, 0},
195
+	{(const unsigned char*)"supseteqq", 10950},
196
+	{(const unsigned char*)"SucceedsEqual", 10928},
192 197
 	{NULL, 0},
193 198
 	{NULL, 0},
194 199
 	{NULL, 0},
195 200
 	{NULL, 0},
196
-	{(const unsigned char*)"thinsp", 8201},
197
-	{(const unsigned char*)"loz", 9674},
201
+	{(const unsigned char*)"vee", 8744},
198 202
 	{NULL, 0},
199
-	{(const unsigned char*)"sup3", 179},
203
+	{(const unsigned char*)"approxeq", 8778},
204
+	{(const unsigned char*)"leftarrowtail", 8610},
200 205
 	{NULL, 0},
201 206
 	{NULL, 0},
202 207
 	{NULL, 0},
208
+	{(const unsigned char*)"dHar", 10597},
209
+	{(const unsigned char*)"andand", 10837},
210
+	{(const unsigned char*)"dlarr", 8601},
203 211
 	{NULL, 0},
204 212
 	{NULL, 0},
205 213
 	{NULL, 0},
214
+	{(const unsigned char*)"circeq", 8791},
206 215
 	{NULL, 0},
207
-	{(const unsigned char*)"curren", 164},
216
+	{(const unsigned char*)"Lsh", 8624},
217
+	{(const unsigned char*)"laquo", 171},
218
+	{(const unsigned char*)"coloneq", 8788},
219
+	{(const unsigned char*)"llarr", 8647},
220
+	{(const unsigned char*)"Int", 8748},
221
+	{(const unsigned char*)"nlarr", 8602},
222
+	{(const unsigned char*)"Rsh", 8625},
223
+	{(const unsigned char*)"varepsilon", 949},
224
+	{(const unsigned char*)"olarr", 8634},
225
+	{(const unsigned char*)"raquo", 187},
226
+	{(const unsigned char*)"slarr", 8592},
227
+	{(const unsigned char*)"rlarr", 8644},
228
+	{(const unsigned char*)"boxuR", 9560},
229
+	{(const unsigned char*)"minus", 8722},
230
+	{(const unsigned char*)"xlarr", 10229},
231
+	{(const unsigned char*)"lHar", 10594},
232
+	{(const unsigned char*)"rHar", 10596},
233
+	{(const unsigned char*)"subseteqq", 10949},
208 234
 	{NULL, 0},
235
+	{(const unsigned char*)"uHar", 10595},
236
+	{(const unsigned char*)"epsis", 1013},
209 237
 	{NULL, 0},
210 238
 	{NULL, 0},
211 239
 	{NULL, 0},
212
-	{(const unsigned char*)"yen", 165},
213 240
 	{NULL, 0},
214 241
 	{NULL, 0},
215 242
 	{NULL, 0},
243
+	{(const unsigned char*)"ssetmn", 8726},
244
+	{(const unsigned char*)"equals", 61},
216 245
 	{NULL, 0},
217
-	{(const unsigned char*)"dagger", 8224},
246
+	{(const unsigned char*)"NotExists", 8708},
247
+	{(const unsigned char*)"prnsim", 8936},
248
+	{(const unsigned char*)"lsh", 8624},
249
+	{(const unsigned char*)"curlyeqsucc", 8927},
218 250
 	{NULL, 0},
219 251
 	{NULL, 0},
252
+	{(const unsigned char*)"int", 8747},
220 253
 	{NULL, 0},
221
-	{(const unsigned char*)"ordm", 186},
254
+	{(const unsigned char*)"rsh", 8625},
222 255
 	{NULL, 0},
223 256
 	{NULL, 0},
224 257
 	{NULL, 0},
225
-	{(const unsigned char*)"lang", 9001},
258
+	{(const unsigned char*)"LessSlantEqual", 10877},
259
+	{(const unsigned char*)"DiacriticalDot", 729},
226 260
 	{NULL, 0},
261
+	{(const unsigned char*)"nvDash", 8877},
262
+	{(const unsigned char*)"prnap", 10937},
263
+	{(const unsigned char*)"ZeroWidthSpace", 8203},
227 264
 	{NULL, 0},
228 265
 	{NULL, 0},
229 266
 	{NULL, 0},
230 267
 	{NULL, 0},
231
-	{(const unsigned char*)"rang", 9002},
232
-	{(const unsigned char*)"Auml", 196},
233 268
 	{NULL, 0},
269
+	{(const unsigned char*)"oplus", 8853},
234 270
 	{NULL, 0},
235 271
 	{NULL, 0},
236
-	{(const unsigned char*)"Euml", 203},
237
-	{(const unsigned char*)"nbsp2", 160},
272
+	{(const unsigned char*)"middot", 183},
238 273
 	{NULL, 0},
239
-	{(const unsigned char*)"Eta", 919},
240
-	{(const unsigned char*)"Iuml", 207},
274
+	{(const unsigned char*)"emptyset", 8709},
275
+	{(const unsigned char*)"uplus", 8846},
241 276
 	{NULL, 0},
242 277
 	{NULL, 0},
243 278
 	{NULL, 0},
244 279
 	{NULL, 0},
245
-	{(const unsigned char*)"Sigma", 931},
246
-	{(const unsigned char*)"Agrave", 192},
247
-	{(const unsigned char*)"Ouml", 214},
248 280
 	{NULL, 0},
249
-	{(const unsigned char*)"Egrave", 200},
281
+	{(const unsigned char*)"boxhu", 9524},
250 282
 	{NULL, 0},
251 283
 	{NULL, 0},
252
-	{(const unsigned char*)"Uuml", 220},
253
-	{(const unsigned char*)"Igrave", 204},
284
+	{(const unsigned char*)"softcy", 1100},
254 285
 	{NULL, 0},
255 286
 	{NULL, 0},
256
-	{(const unsigned char*)"sup2", 178},
257
-	{(const unsigned char*)"nbsp3", 160},
258 287
 	{NULL, 0},
259
-	{(const unsigned char*)"Ograve", 210},
260 288
 	{NULL, 0},
289
+	{(const unsigned char*)"squarf", 9642},
290
+	{(const unsigned char*)"TripleDot", 8411},
291
+	{(const unsigned char*)"DownTee", 8868},
292
+	{(const unsigned char*)"cir", 9675},
293
+	{(const unsigned char*)"expectation", 8496},
261 294
 	{NULL, 0},
262
-	{(const unsigned char*)"Yuml", 376},
263 295
 	{NULL, 0},
264
-	{(const unsigned char*)"auml", 228},
265
-	{(const unsigned char*)"Ugrave", 217},
266 296
 	{NULL, 0},
267 297
 	{NULL, 0},
268
-	{(const unsigned char*)"Beta", 914},
269
-	{(const unsigned char*)"euml", 235},
298
+	{(const unsigned char*)"cirfnint", 10768},
299
+	{NULL, 0},
300
+	{NULL, 0},
301
+	{NULL, 0},
302
+	{(const unsigned char*)"sfrown", 8994},
303
+	{(const unsigned char*)"ntriangleright", 8939},
304
+	{NULL, 0},
305
+	{NULL, 0},
306
+	{NULL, 0},
307
+	{NULL, 0},
308
+	{NULL, 0},
309
+	{NULL, 0},
310
+	{NULL, 0},
311
+	{(const unsigned char*)"nisd", 8954},
312
+	{(const unsigned char*)"dash", 8208},
313
+	{NULL, 0},
314
+	{NULL, 0},
315
+	{(const unsigned char*)"nvHarr", 10500},
316
+	{NULL, 0},
317
+	{NULL, 0},
318
+	{(const unsigned char*)"hybull", 8259},
319
+	{(const unsigned char*)"RightArrowBar", 8677},
320
+	{(const unsigned char*)"leftrightsquigarrow", 8621},
321
+	{(const unsigned char*)"minusb", 8863},
322
+	{NULL, 0},
323
+	{(const unsigned char*)"frac38", 8540},
324
+	{NULL, 0},
325
+	{NULL, 0},
326
+	{NULL, 0},
327
+	{(const unsigned char*)"centerdot", 183},
328
+	{(const unsigned char*)"nwnear", 10535},
329
+	{NULL, 0},
330
+	{NULL, 0},
331
+	{NULL, 0},
332
+	{NULL, 0},
333
+	{(const unsigned char*)"larrpl", 10553},
334
+	{NULL, 0},
335
+	{NULL, 0},
336
+	{NULL, 0},
337
+	{(const unsigned char*)"hookleftarrow", 8617},
338
+	{(const unsigned char*)"hellip", 8230},
339
+	{(const unsigned char*)"rarrpl", 10565},
340
+	{(const unsigned char*)"mid", 8739},
341
+	{NULL, 0},
342
+	{(const unsigned char*)"oast", 8859},
343
+	{(const unsigned char*)"NotTildeTilde", 8777},
344
+	{NULL, 0},
345
+	{(const unsigned char*)"NotTilde", 8769},
346
+	{(const unsigned char*)"ohacgr", 974},
347
+	{(const unsigned char*)"marker", 9646},
348
+	{(const unsigned char*)"langle", 9001},
349
+	{NULL, 0},
350
+	{NULL, 0},
351
+	{NULL, 0},
352
+	{(const unsigned char*)"vellip", 8942},
353
+	{(const unsigned char*)"NotRightTriangleEqual", 8941},
354
+	{(const unsigned char*)"rangle", 9002},
355
+	{NULL, 0},
356
+	{NULL, 0},
357
+	{NULL, 0},
358
+	{(const unsigned char*)"gnsim", 8935},
359
+	{(const unsigned char*)"malt", 10016},
360
+	{(const unsigned char*)"times", 215},
361
+	{(const unsigned char*)"RightDownTeeVector", 10589},
362
+	{NULL, 0},
363
+	{(const unsigned char*)"lnsim", 8934},
364
+	{NULL, 0},
365
+	{NULL, 0},
366
+	{NULL, 0},
367
+	{(const unsigned char*)"preceq", 10927},
368
+	{(const unsigned char*)"equiv", 8801},
369
+	{(const unsigned char*)"geqq", 8807},
370
+	{NULL, 0},
371
+	{NULL, 0},
372
+	{NULL, 0},
373
+	{(const unsigned char*)"Iota", 921},
374
+	{(const unsigned char*)"leqq", 8806},
375
+	{NULL, 0},
376
+	{(const unsigned char*)"cuepr", 8926},
377
+	{NULL, 0},
378
+	{NULL, 0},
379
+	{NULL, 0},
380
+	{(const unsigned char*)"boxtimes", 8864},
381
+	{(const unsigned char*)"numero", 8470},
382
+	{(const unsigned char*)"setmn", 8726},
383
+	{NULL, 0},
384
+	{(const unsigned char*)"ForAll", 8704},
385
+	{NULL, 0},
386
+	{(const unsigned char*)"excl", 33},
387
+	{NULL, 0},
388
+	{NULL, 0},
389
+	{NULL, 0},
390
+	{(const unsigned char*)"bsol", 92},
391
+	{(const unsigned char*)"imof", 8887},
392
+	{(const unsigned char*)"dsol", 10742},
393
+	{(const unsigned char*)"ic", 8291},
394
+	{(const unsigned char*)"ReverseElement", 8715},
395
+	{(const unsigned char*)"Exists", 8707},
396
+	{NULL, 0},
397
+	{(const unsigned char*)"parsl", 11005},
398
+	{(const unsigned char*)"bprime", 8245},
399
+	{(const unsigned char*)"Ccedil", 199},
400
+	{(const unsigned char*)"sc", 8827},
401
+	{(const unsigned char*)"propto", 8733},
402
+	{NULL, 0},
403
+	{(const unsigned char*)"osol", 8856},
404
+	{(const unsigned char*)"RightVectorBar", 10579},
405
+	{(const unsigned char*)"iota", 953},
406
+	{(const unsigned char*)"boxDR", 9556},
407
+	{NULL, 0},
408
+	{NULL, 0},
409
+	{(const unsigned char*)"Theta", 920},
410
+	{(const unsigned char*)"lharu", 8636},
411
+	{(const unsigned char*)"Because", 8757},
412
+	{(const unsigned char*)"qprime", 8279},
413
+	{(const unsigned char*)"simrarr", 10610},
414
+	{NULL, 0},
415
+	{(const unsigned char*)"tprime", 8244},
416
+	{(const unsigned char*)"rharu", 8640},
417
+	{(const unsigned char*)"vprime", 8242},
418
+	{(const unsigned char*)"YUcy", 1070},
419
+	{(const unsigned char*)"plusmn", 177},
420
+	{NULL, 0},
421
+	{(const unsigned char*)"planckh", 8462},
422
+	{(const unsigned char*)"YIcy", 1031},
423
+	{NULL, 0},
424
+	{(const unsigned char*)"NotRightTriangle", 8939},
425
+	{(const unsigned char*)"becaus", 8757},
426
+	{NULL, 0},
427
+	{(const unsigned char*)"PrecedesEqual", 10927},
428
+	{NULL, 0},
429
+	{NULL, 0},
430
+	{(const unsigned char*)"nsupe", 8841},
431
+	{(const unsigned char*)"ccedil", 231},
432
+	{NULL, 0},
433
+	{NULL, 0},
434
+	{NULL, 0},
435
+	{NULL, 0},
436
+	{NULL, 0},
437
+	{NULL, 0},
438
+	{NULL, 0},
439
+	{NULL, 0},
440
+	{(const unsigned char*)"yacy", 1103},
441
+	{(const unsigned char*)"succnsim", 8937},
442
+	{(const unsigned char*)"theta", 952},
443
+	{(const unsigned char*)"because", 8757},
444
+	{(const unsigned char*)"pre", 10927},
445
+	{NULL, 0},
446
+	{(const unsigned char*)"sharp", 9839},
447
+	{NULL, 0},
270 448
 	{NULL, 0},
449
+	{NULL, 0},
450
+	{NULL, 0},
451
+	{NULL, 0},
452
+	{(const unsigned char*)"timesb", 8864},
453
+	{(const unsigned char*)"Longleftarrow", 10232},
454
+	{(const unsigned char*)"Sqrt", 8730},
455
+	{NULL, 0},
456
+	{NULL, 0},
457
+	{NULL, 0},
458
+	{NULL, 0},
459
+	{NULL, 0},
460
+	{NULL, 0},
461
+	{NULL, 0},
462
+	{NULL, 0},
463
+	{NULL, 0},
464
+	{(const unsigned char*)"Vert", 8214},
465
+	{NULL, 0},
466
+	{(const unsigned char*)"Rho", 929},
467
+	{NULL, 0},
468
+	{(const unsigned char*)"LeftDownTeeVector", 10593},
469
+	{(const unsigned char*)"erDot", 8787},
470
+	{NULL, 0},
471
+	{(const unsigned char*)"integers", 8484},
472
+	{(const unsigned char*)"Dot", 168},
473
+	{(const unsigned char*)"eqvparsl", 10725},
474
+	{NULL, 0},
475
+	{NULL, 0},
476
+	{(const unsigned char*)"efDot", 8786},
477
+	{NULL, 0},
478
+	{(const unsigned char*)"NewLine", 10},
479
+	{(const unsigned char*)"sbquo", 8218},
480
+	{NULL, 0},
481
+	{(const unsigned char*)"Diamond", 8900},
482
+	{(const unsigned char*)"Not", 10988},
483
+	{NULL, 0},
484
+	{(const unsigned char*)"Eta", 919},
485
+	{(const unsigned char*)"longleftarrow", 10229},
486
+	{NULL, 0},
487
+	{NULL, 0},
488
+	{(const unsigned char*)"starf", 9733},
489
+	{(const unsigned char*)"RoundImplies", 10608},
490
+	{(const unsigned char*)"RightAngleBracket", 9002},
491
+	{NULL, 0},
492
+	{(const unsigned char*)"diamondsuit", 9830},
493
+	{NULL, 0},
494
+	{NULL, 0},
495
+	{NULL, 0},
496
+	{(const unsigned char*)"vert", 124},
497
+	{(const unsigned char*)"eth", 240},
498
+	{(const unsigned char*)"NotReverseElement", 8716},
499
+	{(const unsigned char*)"Longleftrightarrow", 10234},
500
+	{(const unsigned char*)"ssmile", 8995},
501
+	{(const unsigned char*)"bot", 8869},
502
+	{(const unsigned char*)"supe", 8839},
503
+	{(const unsigned char*)"dot", 729},
504
+	{(const unsigned char*)"pointint", 10773},
505
+	{(const unsigned char*)"intercal", 8890},
506
+	{NULL, 0},
507
+	{NULL, 0},
508
+	{(const unsigned char*)"rho", 961},
509
+	{NULL, 0},
510
+	{(const unsigned char*)"primes", 8473},
511
+	{(const unsigned char*)"fllig", 64258},
512
+	{NULL, 0},
513
+	{(const unsigned char*)"diamond", 8900},
514
+	{(const unsigned char*)"not", 172},
515
+	{(const unsigned char*)"precapprox", 10935},
271 516
 	{(const unsigned char*)"eta", 951},
272
-	{(const unsigned char*)"iuml", 239},
273 517
 	{NULL, 0},
274
-	{(const unsigned char*)"darr", 8595},
518
+	{(const unsigned char*)"backprime", 8245},
519
+	{(const unsigned char*)"GreaterEqualLess", 8923},
275 520
 	{NULL, 0},
276 521
 	{NULL, 0},
277
-	{(const unsigned char*)"sigma", 963},
278
-	{(const unsigned char*)"harr", 8596},
279
-	{(const unsigned char*)"ouml", 246},
280
-	{(const unsigned char*)"cap", 8745},
281
-	{(const unsigned char*)"egrave", 232},
282
-	{(const unsigned char*)"larr", 8592},
522
+	{NULL, 0},
523
+	{(const unsigned char*)"RightTeeArrow", 8614},
524
+	{(const unsigned char*)"boxHd", 9572},
525
+	{(const unsigned char*)"Gammad", 988},
526
+	{NULL, 0},
527
+	{NULL, 0},
528
+	{(const unsigned char*)"Assign", 8788},
529
+	{(const unsigned char*)"squf", 9642},
530
+	{(const unsigned char*)"angzarr", 9084},
531
+	{(const unsigned char*)"longleftrightarrow", 10231},
532
+	{NULL, 0},
533
+	{(const unsigned char*)"pound", 163},
534
+	{(const unsigned char*)"topbot", 9014},
535
+	{(const unsigned char*)"twoheadleftarrow", 8606},
536
+	{(const unsigned char*)"Congruent", 8801},
537
+	{(const unsigned char*)"nshortparallel", 8742},
538
+	{(const unsigned char*)"LeftArrowRightArrow", 8646},
539
+	{NULL, 0},
540
+	{(const unsigned char*)"sube", 8838},
541
+	{NULL, 0},
542
+	{(const unsigned char*)"hamilt", 8459},
543
+	{NULL, 0},
544
+	{NULL, 0},
545
+	{(const unsigned char*)"harrcir", 10568},
546
+	{NULL, 0},
547
+	{NULL, 0},
548
+	{NULL, 0},
549
+	{NULL, 0},
550
+	{NULL, 0},
551
+	{NULL, 0},
552
+	{NULL, 0},
553
+	{(const unsigned char*)"boxV", 9553},
554
+	{NULL, 0},
555
+	{NULL, 0},
556
+	{(const unsigned char*)"gammad", 989},
557
+	{(const unsigned char*)"OpenCurlyDoubleQuote", 8220},
558
+	{NULL, 0},
559
+	{(const unsigned char*)"target", 8982},
560
+	{NULL, 0},
561
+	{NULL, 0},
562
+	{NULL, 0},
563
+	{NULL, 0},
564
+	{NULL, 0},
565
+	{NULL, 0},
566
+	{NULL, 0},
567
+	{NULL, 0},
568
+	{NULL, 0},
569
+	{NULL, 0},
570
+	{(const unsigned char*)"bigsqcup", 10758},
571
+	{NULL, 0},
572
+	{NULL, 0},
573
+	{NULL, 0},
574
+	{NULL, 0},
575
+	{NULL, 0},
576
+	{(const unsigned char*)"boxVr", 9567},
577
+	{NULL, 0},
578
+	{NULL, 0},
579
+	{(const unsigned char*)"eegr", 951},
580
+	{(const unsigned char*)"awint", 10769},
581
+	{(const unsigned char*)"EEacgr", 905},
582
+	{(const unsigned char*)"cwint", 8753},
583
+	{NULL, 0},
584
+	{NULL, 0},
585
+	{(const unsigned char*)"RightVector", 8640},
586
+	{NULL, 0},
587
+	{NULL, 0},
588
+	{NULL, 0},
589
+	{NULL, 0},
590
+	{(const unsigned char*)"Vvdash", 8874},
591
+	{NULL, 0},
592
+	{NULL, 0},
593
+	{NULL, 0},
594
+	{(const unsigned char*)"Aacute", 193},
595
+	{NULL, 0},
596
+	{NULL, 0},
597
+	{NULL, 0},
598
+	{(const unsigned char*)"Eacute", 201},
599
+	{NULL, 0},
600
+	{NULL, 0},
601
+	{NULL, 0},
602
+	{(const unsigned char*)"Iacute", 205},
603
+	{(const unsigned char*)"boxHU", 9577},
604
+	{(const unsigned char*)"daleth", 8504},
605
+	{(const unsigned char*)"olcross", 10683},
606
+	{(const unsigned char*)"eqcirc", 8790},
607
+	{NULL, 0},
608
+	{(const unsigned char*)"Oacute", 211},
609
+	{(const unsigned char*)"bigodot", 10752},
610
+	{(const unsigned char*)"notinva", 8713},
611
+	{(const unsigned char*)"LeftRightArrow", 8596},
612
+	{(const unsigned char*)"lozenge", 9674},
613
+	{NULL, 0},
614
+	{(const unsigned char*)"Uacute", 218},
615
+	{(const unsigned char*)"nvdash", 8876},
616
+	{NULL, 0},
617
+	{NULL, 0},
618
+	{(const unsigned char*)"Yacute", 221},
619
+	{(const unsigned char*)"boxvL", 9569},
620
+	{(const unsigned char*)"Bscr", 8492},
621
+	{NULL, 0},
622
+	{NULL, 0},
623
+	{(const unsigned char*)"Escr", 8496},
624
+	{(const unsigned char*)"Fscr", 8497},
625
+	{(const unsigned char*)"Hacek", 711},
626
+	{(const unsigned char*)"Hscr", 8459},
627
+	{(const unsigned char*)"Iscr", 8464},
628
+	{(const unsigned char*)"boxVh", 9579},
629
+	{(const unsigned char*)"aacute", 225},
630
+	{(const unsigned char*)"Lscr", 8466},
631
+	{(const unsigned char*)"Mscr", 8499},
632
+	{(const unsigned char*)"Downarrow", 8659},
633
+	{(const unsigned char*)"eacute", 233},
634
+	{(const unsigned char*)"iacute", 237},
635
+	{(const unsigned char*)"VerticalLine", 124},
636
+	{(const unsigned char*)"Rscr", 8475},
637
+	{(const unsigned char*)"ap", 8776},
638
+	{(const unsigned char*)"NegativeVeryThinSpace", 8203},
639
+	{(const unsigned char*)"LessTilde", 8818},
640
+	{(const unsigned char*)"oacute", 243},
641
+	{(const unsigned char*)"blk12", 9618},
642
+	{(const unsigned char*)"frac25", 8534},
643
+	{(const unsigned char*)"mp", 8723},
644
+	{(const unsigned char*)"fnof", 402},
645
+	{(const unsigned char*)"Conint", 8751},
646
+	{(const unsigned char*)"uacute", 250},
647
+	{(const unsigned char*)"dd", 8518},
648
+	{(const unsigned char*)"scsim", 8831},
649
+	{(const unsigned char*)"NotSucceeds", 8833},
650
+	{(const unsigned char*)"yacute", 253},
651
+	{NULL, 0},
652
+	{NULL, 0},
653
+	{(const unsigned char*)"wp", 8472},
654
+	{(const unsigned char*)"infin", 8734},
655
+	{(const unsigned char*)"escr", 8495},
656
+	{NULL, 0},
657
+	{(const unsigned char*)"DJcy", 1026},
658
+	{(const unsigned char*)"gscr", 8458},
659
+	{(const unsigned char*)"LowerRightArrow", 8600},
660
+	{(const unsigned char*)"GJcy", 1027},
661
+	{(const unsigned char*)"dzcy", 1119},
662
+	{(const unsigned char*)"brvbar", 166},
663
+	{(const unsigned char*)"sqcup", 8852},
664
+	{(const unsigned char*)"KJcy", 1036},
665
+	{(const unsigned char*)"LJcy", 1033},
666
+	{(const unsigned char*)"oscr", 8500},
667
+	{(const unsigned char*)"NJcy", 1034},
668
+	{(const unsigned char*)"ddagger", 8225},
669
+	{(const unsigned char*)"Agrave", 192},
670
+	{(const unsigned char*)"downarrow", 8595},
671
+	{NULL, 0},
672
+	{(const unsigned char*)"duhar", 10607},
673
+	{(const unsigned char*)"Egrave", 200},
674
+	{(const unsigned char*)"Oslash", 216},
675
+	{NULL, 0},
676
+	{(const unsigned char*)"preccurlyeq", 8828},
677
+	{(const unsigned char*)"Igrave", 204},
678
+	{(const unsigned char*)"conint", 8750},
679
+	{(const unsigned char*)"drbkarow", 10512},
680
+	{(const unsigned char*)"DownRightTeeVector", 10591},
681
+	{(const unsigned char*)"odot", 8857},
682
+	{NULL, 0},
683
+	{(const unsigned char*)"Ograve", 210},
684
+	{(const unsigned char*)"ldot", 8918},
685
+	{(const unsigned char*)"LeftAngleBracket", 9001},
686
+	{(const unsigned char*)"tdot", 8411},
687
+	{(const unsigned char*)"idiagr", 912},
688
+	{(const unsigned char*)"sdot", 8901},
689
+	{(const unsigned char*)"Ugrave", 217},
690
+	{(const unsigned char*)"triangleleft", 9667},
691
+	{NULL, 0},
692
+	{NULL, 0},
693
+	{NULL, 0},
694
+	{(const unsigned char*)"diam", 8900},
695
+	{(const unsigned char*)"commat", 64},
696
+	{(const unsigned char*)"udiagr", 944},
697
+	{(const unsigned char*)"larrb", 8676},
698
+	{(const unsigned char*)"hslash", 8463},
699
+	{(const unsigned char*)"rightleftarrows", 8644},
700
+	{(const unsigned char*)"succnapprox", 10938},
283 701
 	{(const unsigned char*)"agrave", 224},
284
-	{(const unsigned char*)"uuml", 252},
285
-	{(const unsigned char*)"real", 8476},
286
-	{(const unsigned char*)"sum", 8721},
287 702
 	{NULL, 0},
288
-	{(const unsigned char*)"piv", 982},
289
-	{(const unsigned char*)"rarr", 8594},
290
-	{(const unsigned char*)"sim", 8764},
291
-	{(const unsigned char*)"uarr", 8593},
292
-	{(const unsigned char*)"Zeta", 918},
293
-	{(const unsigned char*)"zwj", 8205},
294
-	{(const unsigned char*)"radic", 8730},
703
+	{(const unsigned char*)"egs", 10902},
704
+	{NULL, 0},
705
+	{(const unsigned char*)"egrave", 232},
706
+	{(const unsigned char*)"oslash", 248},
707
+	{NULL, 0},
708
+	{(const unsigned char*)"nge", 8817},
295 709
 	{(const unsigned char*)"igrave", 236},
296
-	{(const unsigned char*)"Atilde", 195},
710
+	{(const unsigned char*)"hbar", 8463},
711
+	{NULL, 0},
712
+	{(const unsigned char*)"NestedLessLess", 8810},
713
+	{NULL, 0},
714
+	{(const unsigned char*)"nexist", 8708},
297 715
 	{(const unsigned char*)"ograve", 242},
716
+	{NULL, 0},
717
+	{(const unsigned char*)"ldquor", 8222},
718
+	{NULL, 0},
719
+	{NULL, 0},
720
+	{(const unsigned char*)"rdquor", 8221},
298 721
 	{(const unsigned char*)"ugrave", 249},
722
+	{(const unsigned char*)"div", 247},
723
+	{NULL, 0},
724
+	{NULL, 0},
725
+	{NULL, 0},
726
+	{NULL, 0},
727
+	{(const unsigned char*)"blacktriangledown", 9662},
728
+	{(const unsigned char*)"UpArrow", 8593},
729
+	{NULL, 0},
730
+	{NULL, 0},
731
+	{(const unsigned char*)"niv", 8715},
732
+	{(const unsigned char*)"llhard", 10603},
733
+	{(const unsigned char*)"boxdl", 9488},
734
+	{(const unsigned char*)"piv", 982},
735
+	{NULL, 0},
736
+	{(const unsigned char*)"NotPrecedes", 8832},
737
+	{(const unsigned char*)"lbarr", 10508},
738
+	{NULL, 0},
739
+	{(const unsigned char*)"andd", 10844},
740
+	{(const unsigned char*)"bigwedge", 8896},
741
+	{(const unsigned char*)"InvisibleTimes", 8290},
742
+	{NULL, 0},
743
+	{(const unsigned char*)"rbarr", 10509},
744
+	{NULL, 0},
745
+	{(const unsigned char*)"ApplyFunction", 8289},
746
+	{(const unsigned char*)"bottom", 8869},
747
+	{(const unsigned char*)"awconint", 8755},
748
+	{(const unsigned char*)"cwconint", 8754},
749
+	{NULL, 0},
750
+	{NULL, 0},
751
+	{NULL, 0},
752
+	{NULL, 0},
753
+	{NULL, 0},
754
+	{(const unsigned char*)"dwangle", 10662},
755
+	{(const unsigned char*)"rarrb", 8677},
756
+	{NULL, 0},
757
+	{NULL, 0},
299 758
 	{NULL, 0},
759
+	{NULL, 0},
760
+	{NULL, 0},
761
+	{NULL, 0},
762
+	{(const unsigned char*)"UpArrowBar", 10514},
763
+	{NULL, 0},
764
+	{NULL, 0},
765
+	{NULL, 0},
766
+	{NULL, 0},
767
+	{NULL, 0},
768
+	{NULL, 0},
769
+	{NULL, 0},
770
+	{NULL, 0},
771
+	{(const unsigned char*)"realine", 8475},
772
+	{(const unsigned char*)"uwangle", 10663},
773
+	{NULL, 0},
774
+	{NULL, 0},
775
+	{NULL, 0},
776
+	{NULL, 0},
777
+	{NULL, 0},
778
+	{(const unsigned char*)"lowbar", 95},
779
+	{NULL, 0},
780
+	{NULL, 0},
781
+	{(const unsigned char*)"Cayleys", 8493},
782
+	{NULL, 0},
783
+	{(const unsigned char*)"bigstar", 9733},
784
+	{(const unsigned char*)"isin", 8712},
785
+	{NULL, 0},
786
+	{NULL, 0},
787
+	{NULL, 0},
788
+	{NULL, 0},
789
+	{NULL, 0},
790
+	{NULL, 0},
791
+	{(const unsigned char*)"backepsilon", 1014},
792
+	{NULL, 0},
793
+	{NULL, 0},
794
+	{NULL, 0},
795
+	{NULL, 0},
796
+	{NULL, 0},
797
+	{(const unsigned char*)"OpenCurlyQuote", 8216},
798
+	{NULL, 0},
799
+	{(const unsigned char*)"Cross", 10799},
800
+	{NULL, 0},
801
+	{NULL, 0},
802
+	{NULL, 0},
803
+	{(const unsigned char*)"lesseqgtr", 8922},
804
+	{(const unsigned char*)"Upsi", 978},
805
+	{(const unsigned char*)"DoubleRightArrow", 8658},
806
+	{NULL, 0},
807
+	{NULL, 0},
808
+	{(const unsigned char*)"Laplacetrf", 8466},
809
+	{NULL, 0},
810
+	{NULL, 0},
811
+	{NULL, 0},
812
+	{NULL, 0},
813
+	{NULL, 0},
814
+	{NULL, 0},
815
+	{NULL, 0},
816
+	{(const unsigned char*)"bigcirc", 9711},
817
+	{NULL, 0},
818
+	{NULL, 0},
819
+	{(const unsigned char*)"epsi", 1013},
820
+	{(const unsigned char*)"LeftTeeVector", 10586},
821
+	{NULL, 0},
822
+	{NULL, 0},
823
+	{(const unsigned char*)"DoubleUpDownArrow", 8661},
824
+	{NULL, 0},
825
+	{(const unsigned char*)"DiacriticalGrave", 96},
826
+	{(const unsigned char*)"triangle", 9653},
827
+	{NULL, 0},
828
+	{(const unsigned char*)"permil", 8240},
829
+	{NULL, 0},
830
+	{(const unsigned char*)"lpargt", 10656},
831
+	{(const unsigned char*)"UpEquilibrium", 10606},
832
+	{(const unsigned char*)"backsimeq", 8909},
833
+	{(const unsigned char*)"Supset", 8913},
834
+	{(const unsigned char*)"boxUr", 9561},
835
+	{(const unsigned char*)"sccue", 8829},
836
+	{(const unsigned char*)"rpargt", 10644},
837
+	{(const unsigned char*)"cross", 10007},
838
+	{(const unsigned char*)"upsi", 965},
839
+	{NULL, 0},
840
+	{(const unsigned char*)"cularr", 8630},
841
+	{NULL, 0},
842
+	{NULL, 0},
843
+	{NULL, 0},
844
+	{NULL, 0},
845
+	{(const unsigned char*)"varkappa", 1008},
846
+	{(const unsigned char*)"half", 189},
847
+	{NULL, 0},
848
+	{NULL, 0},
849
+	{(const unsigned char*)"sfgr", 962},
850
+	{NULL, 0},
851
+	{NULL, 0},
852
+	{NULL, 0},
853
+	{NULL, 0},
854
+	{NULL, 0},
855
+	{NULL, 0},
856
+	{(const unsigned char*)"ImaginaryI", 8520},
857
+	{NULL, 0},
858
+	{NULL, 0},
859
+	{(const unsigned char*)"Tau", 932},
860
+	{(const unsigned char*)"bernou", 8492},
861
+	{(const unsigned char*)"DoubleLeftArrow", 8656},
862
+	{NULL, 0},
863
+	{NULL, 0},
864
+	{(const unsigned char*)"supset", 8835},
865
+	{NULL, 0},
866
+	{NULL, 0},
867
+	{NULL, 0},
868
+	{(const unsigned char*)"MediumSpace", 8287},
869
+	{NULL, 0},
870
+	{(const unsigned char*)"Subset", 8912},
871
+	{(const unsigned char*)"NegativeThickSpace", 8203},
872
+	{NULL, 0},
873
+	{NULL, 0},
874
+	{(const unsigned char*)"boxuL", 9563},
875
+	{NULL, 0},
876
+	{NULL, 0},
877
+	{(const unsigned char*)"notin", 8713},
878
+	{NULL, 0},
879
+	{(const unsigned char*)"Re", 8476},
880
+	{NULL, 0},
881
+	{(const unsigned char*)"nleq", 8816},
882
+	{(const unsigned char*)"nLeftrightarrow", 8654},
883
+	{NULL, 0},
884
+	{NULL, 0},
885
+	{(const unsigned char*)"Beta", 914},
886
+	{NULL, 0},
887
+	{NULL, 0},
888
+	{NULL, 0},
889
+	{(const unsigned char*)"dollar", 36},
890
+	{(const unsigned char*)"Product", 8719},
891
+	{(const unsigned char*)"tau", 964},
892
+	{NULL, 0},
893
+	{NULL, 0},
894
+	{NULL, 0},
895
+	{NULL, 0},
896
+	{NULL, 0},
897
+	{(const unsigned char*)"Poincareplane", 8460},
898
+	{(const unsigned char*)"ee", 8519},
899
+	{(const unsigned char*)"CenterDot", 183},
900
+	{(const unsigned char*)"Jsercy", 1032},
901
+	{(const unsigned char*)"ge", 8805},
902
+	{(const unsigned char*)"Rarrtl", 10518},
903
+	{(const unsigned char*)"subset", 8834},
904
+	{NULL, 0},
905
+	{(const unsigned char*)"le", 8804},
906
+	{NULL, 0},
907
+	{(const unsigned char*)"ne", 8800},
908
+	{(const unsigned char*)"mapstoleft", 8612},
909
+	{(const unsigned char*)"NotSucceedsSlantEqual", 8929},
910
+	{(const unsigned char*)"upsih", 978},
911
+	{(const unsigned char*)"cedil", 184},
912
+	{(const unsigned char*)"Zeta", 918},
913
+	{NULL, 0},
914
+	{NULL, 0},
915
+	{(const unsigned char*)"apos", 39},
916
+	{(const unsigned char*)"nsube", 8840},
300 917
 	{(const unsigned char*)"beta", 946},
301
-	{(const unsigned char*)"lrm", 8206},
918
+	{(const unsigned char*)"frac78", 8542},
919
+	{(const unsigned char*)"nltri", 8938},
920
+	{(const unsigned char*)"iiiint", 10764},
302 921
 	{NULL, 0},
303
-	{(const unsigned char*)"yuml", 255},
922
+	{(const unsigned char*)"veebar", 8891},
304 923
 	{NULL, 0},
305 924
 	{NULL, 0},
925
+	{(const unsigned char*)"RightTeeVector", 10587},
926
+	{(const unsigned char*)"Dagger", 8225},
927
+	{(const unsigned char*)"vltri", 8882},
928
+	{(const unsigned char*)"larrtl", 8610},
929
+	{(const unsigned char*)"iocy", 1105},
930
+	{(const unsigned char*)"dashv", 8867},
931
+	{(const unsigned char*)"frac12", 189},
932
+	{(const unsigned char*)"GreaterLess", 8823},
933
+	{(const unsigned char*)"jsercy", 1112},
934
+	{(const unsigned char*)"rarrtl", 8611},
935
+	{(const unsigned char*)"oline", 8254},
936
+	{(const unsigned char*)"sup3", 179},
937
+	{(const unsigned char*)"emsp13", 8196},
938
+	{(const unsigned char*)"asymp", 8776},
306 939
 	{NULL, 0},
307 940
 	{NULL, 0},
941
+	{(const unsigned char*)"zeta", 950},
942
+	{(const unsigned char*)"UpperRightArrow", 8599},
308 943
 	{NULL, 0},
309
-	{(const unsigned char*)"prod", 8719},
310
-	{(const unsigned char*)"Ntilde", 209},
311
-	{(const unsigned char*)"Lambda", 923},
944
+	{(const unsigned char*)"smallsetminus", 8726},
945
+	{(const unsigned char*)"LeftUpTeeVector", 10592},
946
+	{NULL, 0},
947
+	{NULL, 0},
948
+	{(const unsigned char*)"dagger", 8224},
949
+	{NULL, 0},
950
+	{NULL, 0},
951
+	{NULL, 0},
952
+	{NULL, 0},
953
+	{NULL, 0},
954
+	{NULL, 0},
955
+	{NULL, 0},
956
+	{(const unsigned char*)"LeftDownVector", 8643},
957
+	{(const unsigned char*)"sime", 8771},
958
+	{(const unsigned char*)"precsim", 8830},
959
+	{(const unsigned char*)"MinusPlus", 8723},
960
+	{NULL, 0},
961
+	{NULL, 0},
962
+	{(const unsigned char*)"LeftVector", 8636},
963
+	{NULL, 0},
964
+	{(const unsigned char*)"profalar", 9006},
965
+	{(const unsigned char*)"dtri", 9663},
966
+	{(const unsigned char*)"between", 8812},
967
+	{NULL, 0},
968
+	{NULL, 0},
969
+	{(const unsigned char*)"hyphen", 8208},
970
+	{NULL, 0},
971
+	{(const unsigned char*)"NegativeThinSpace", 8203},
972
+	{(const unsigned char*)"downdownarrows", 8650},
973
+	{(const unsigned char*)"xmap", 10236},
974
+	{(const unsigned char*)"ltri", 9667},
975
+	{(const unsigned char*)"bdquo", 8222},
976
+	{(const unsigned char*)"notinvb", 8951},
977
+	{NULL, 0},
978
+	{NULL, 0},
979
+	{(const unsigned char*)"rtri", 9657},
980
+	{NULL, 0},
981
+	{NULL, 0},
982
+	{(const unsigned char*)"hoarr", 8703},
983
+	{(const unsigned char*)"plusdo", 8724},
984
+	{(const unsigned char*)"ldquo", 8220},
985
+	{(const unsigned char*)"bigoplus", 10753},
986
+	{(const unsigned char*)"loarr", 8701},
987
+	{(const unsigned char*)"natur", 9838},
988
+	{(const unsigned char*)"utri", 9653},
989
+	{NULL, 0},
990
+	{(const unsigned char*)"rdquo", 8221},
991
+	{NULL, 0},
992
+	{(const unsigned char*)"roarr", 8702},
993
+	{(const unsigned char*)"VerticalBar", 8739},
994
+	{NULL, 0},
995
+	{NULL, 0},
996
+	{(const unsigned char*)"NotPrecedesSlantEqual", 8928},
997
+	{NULL, 0},
998
+	{NULL, 0},
999
+	{NULL, 0},
1000
+	{NULL, 0},
1001
+	{NULL, 0},
1002
+	{NULL, 0},
1003
+	{(const unsigned char*)"imped", 437},
1004
+	{(const unsigned char*)"thinsp", 8201},
1005
+	{NULL, 0},
1006
+	{NULL, 0},
1007
+	{NULL, 0},
1008
+	{NULL, 0},
1009
+	{(const unsigned char*)"dArr", 8659},
1010
+	{(const unsigned char*)"dlcorn", 8990},
1011
+	{NULL, 0},
1012
+	{(const unsigned char*)"LeftUpDownVector", 10577},
1013
+	{(const unsigned char*)"hArr", 8660},
1014
+	{NULL, 0},
1015
+	{NULL, 0},
1016
+	{NULL, 0},
1017
+	{(const unsigned char*)"lArr", 8656},
1018
+	{(const unsigned char*)"ltimes", 8905},
1019
+	{NULL, 0},
1020
+	{(const unsigned char*)"rightharpoondown", 8641},
1021
+	{(const unsigned char*)"otimes", 8855},
1022
+	{(const unsigned char*)"RightTee", 8866},
1023
+	{(const unsigned char*)"rArr", 8658},
1024
+	{(const unsigned char*)"rtimes", 8906},
1025
+	{(const unsigned char*)"varsigma", 962},
1026
+	{(const unsigned char*)"uArr", 8657},
1027
+	{(const unsigned char*)"ulcorn", 8988},
1028
+	{(const unsigned char*)"vArr", 8661},
1029
+	{(const unsigned char*)"szlig", 223},
1030
+	{(const unsigned char*)"Vdash", 8873},
1031
+	{(const unsigned char*)"nspar", 8742},
1032
+	{(const unsigned char*)"bsim", 8765},
1033
+	{(const unsigned char*)"LeftTriangleBar", 10703},
1034
+	{NULL, 0},
1035
+	{NULL, 0},
1036
+	{(const unsigned char*)"gsim", 8819},
1037
+	{(const unsigned char*)"lcub", 123},
1038
+	{NULL, 0},
1039
+	{NULL, 0},
1040
+	{(const unsigned char*)"isinE", 8953},
1041
+	{(const unsigned char*)"lsim", 8818},
1042
+	{NULL, 0},
1043
+	{(const unsigned char*)"rcub", 125},
1044
+	{(const unsigned char*)"boxH", 9552},
1045
+	{NULL, 0},
1046
+	{(const unsigned char*)"nsim", 8769},
1047
+	{(const unsigned char*)"bkarow", 10509},
1048
+	{(const unsigned char*)"mdash", 8212},
1049
+	{(const unsigned char*)"odash", 8861},
1050
+	{(const unsigned char*)"clubsuit", 9827},
1051
+	{(const unsigned char*)"bigcup", 8899},
1052
+	{(const unsigned char*)"nwarhk", 10531},
1053
+	{(const unsigned char*)"boxDL", 9559},
1054
+	{(const unsigned char*)"ndash", 8211},
1055
+	{NULL, 0},
1056
+	{(const unsigned char*)"vdash", 8866},
1057
+	{(const unsigned char*)"swarhk", 10534},
1058
+	{NULL, 0},
1059
+	{NULL, 0},
1060
+	{(const unsigned char*)"blacklozenge", 10731},
1061
+	{NULL, 0},
1062
+	{NULL, 0},
1063
+	{NULL, 0},
1064
+	{(const unsigned char*)"DoubleLeftRightArrow", 8660},
1065
+	{NULL, 0},
1066
+	{(const unsigned char*)"naturals", 8469},
1067
+	{(const unsigned char*)"incare", 8453},
1068
+	{NULL, 0},
1069
+	{(const unsigned char*)"RightUpDownVector", 10575},
312 1070
 	{NULL, 0},
313
-	{(const unsigned char*)"infin", 8734},
314
-	{(const unsigned char*)"sup1", 185},
315
-	{(const unsigned char*)"middot", 183},
316
-	{(const unsigned char*)"Otilde", 213},
317 1071
 	{(const unsigned char*)"zwnj", 8204},
1072
+	{(const unsigned char*)"nprec", 8832},
318 1073
 	{NULL, 0},
319 1074
 	{NULL, 0},
1075
+	{(const unsigned char*)"circledast", 8859},
320 1076
 	{NULL, 0},
1077
+	{(const unsigned char*)"heartsuit", 9829},
1078
+	{(const unsigned char*)"esdot", 8784},
1079
+	{(const unsigned char*)"bigtriangledown", 9661},
1080
+	{(const unsigned char*)"Uparrow", 8657},
1081
+	{(const unsigned char*)"gsdot", 8919},
1082
+	{(const unsigned char*)"Coproduct", 8720},
321 1083
 	{NULL, 0},
1084
+	{(const unsigned char*)"circledcirc", 8858},
1085
+	{(const unsigned char*)"oint", 8750},
1086
+	{(const unsigned char*)"qint", 10764},
322 1087
 	{NULL, 0},
1088
+	{(const unsigned char*)"ldsh", 8626},
1089
+	{(const unsigned char*)"trade", 8482},
1090
+	{(const unsigned char*)"lrhar2", 8651},
1091
+	{(const unsigned char*)"larrhk", 8617},
1092
+	{(const unsigned char*)"tint", 8749},
323 1093
 	{NULL, 0},
324
-	{(const unsigned char*)"zeta", 950},
325
-	{(const unsigned char*)"Acirc", 194},
326
-	{(const unsigned char*)"Kappa", 922},
1094
+	{(const unsigned char*)"rdsh", 8627},
1095
+	{(const unsigned char*)"psgr", 968},
1096
+	{(const unsigned char*)"rarrhk", 8618},
1097
+	{(const unsigned char*)"Psi", 936},
327 1098
 	{NULL, 0},
328
-	{(const unsigned char*)"Ecirc", 202},
329
-	{(const unsigned char*)"atilde", 227},
1099
+	{(const unsigned char*)"larrsim", 10611},
330 1100
 	{NULL, 0},
331 1101
 	{NULL, 0},
332
-	{(const unsigned char*)"Icirc", 206},
333
-	{(const unsigned char*)"rlm", 8207},
334 1102
 	{NULL, 0},
1103
+	{(const unsigned char*)"Epsilon", 917},
335 1104
 	{NULL, 0},
1105
+	{(const unsigned char*)"rarrsim", 10612},
1106
+	{(const unsigned char*)"male", 9794},
336 1107
 	{NULL, 0},
337
-	{(const unsigned char*)"micro", 181},
338
-	{(const unsigned char*)"sube", 8838},
339
-	{(const unsigned char*)"Ocirc", 212},
340 1108
 	{NULL, 0},
341
-	{(const unsigned char*)"ntilde", 241},
342
-	{(const unsigned char*)"otilde", 245},
343
-	{(const unsigned char*)"Rho", 929},
1109
+	{NULL, 0},
1110
+	{NULL, 0},
1111
+	{NULL, 0},
1112
+	{(const unsigned char*)"uparrow", 8593},
1113
+	{(const unsigned char*)"Scaron", 352},
1114
+	{NULL, 0},
1115
+	{NULL, 0},
1116
+	{NULL, 0},
1117
+	{NULL, 0},
1118
+	{NULL, 0},
1119
+	{(const unsigned char*)"Upsilon", 933},
1120
+	{NULL, 0},
1121
+	{(const unsigned char*)"hearts", 9829},
1122
+	{NULL, 0},
1123
+	{NULL, 0},
1124
+	{(const unsigned char*)"eqsim", 8770},
1125
+	{(const unsigned char*)"Sigma", 931},
1126
+	{(const unsigned char*)"Or", 10836},
1127
+	{(const unsigned char*)"UpArrowDownArrow", 8645},
1128
+	{(const unsigned char*)"twixt", 8812},
1129
+	{(const unsigned char*)"psi", 968},
1130
+	{NULL, 0},
1131
+	{(const unsigned char*)"nabla", 8711},
1132
+	{(const unsigned char*)"bowtie", 8904},
1133
+	{NULL, 0},
1134
+	{NULL, 0},
1135
+	{(const unsigned char*)"epsilon", 949},
1136
+	{NULL, 0},
1137
+	{(const unsigned char*)"GreaterSlantEqual", 10878},
1138
+	{(const unsigned char*)"NotLeftTriangleEqual", 8940},
1139
+	{(const unsigned char*)"apacir", 10863},
1140
+	{NULL, 0},
1141
+	{NULL, 0},
1142
+	{(const unsigned char*)"upharpoonright", 8638},
1143
+	{NULL, 0},
1144
+	{(const unsigned char*)"scaron", 353},
1145
+	{NULL, 0},
1146
+	{NULL, 0},
1147
+	{NULL, 0},
1148
+	{NULL, 0},
1149
+	{NULL, 0},
1150
+	{(const unsigned char*)"af", 8289},
1151
+	{(const unsigned char*)"upsilon", 965},
1152
+	{(const unsigned char*)"TildeEqual", 8771},
1153
+	{NULL, 0},
1154
+	{(const unsigned char*)"Lambda", 923},
1155
+	{(const unsigned char*)"neArr", 8663},
1156
+	{(const unsigned char*)"sigma", 963},
1157
+	{(const unsigned char*)"ETH", 208},
1158
+	{(const unsigned char*)"leftthreetimes", 8907},
1159
+	{(const unsigned char*)"seArr", 8664},
1160
+	{(const unsigned char*)"thicksim", 8764},
1161
+	{(const unsigned char*)"bigcap", 8898},
1162
+	{(const unsigned char*)"ang", 8736},
1163
+	{(const unsigned char*)"ldca", 10550},
1164
+	{(const unsigned char*)"rdca", 10551},
1165
+	{(const unsigned char*)"wr", 8768},
1166
+	{NULL, 0},
1167
+	{(const unsigned char*)"or", 8744},
1168
+	{(const unsigned char*)"pr", 8826},
1169
+	{NULL, 0},
1170
+	{NULL, 0},
1171
+	{NULL, 0},
1172
+	{(const unsigned char*)"triangleq", 8796},
1173
+	{NULL, 0},
1174
+	{NULL, 0},
1175
+	{NULL, 0},
1176
+	{NULL, 0},
1177
+	{NULL, 0},
1178
+	{NULL, 0},
1179
+	{(const unsigned char*)"gtrsim", 8819},
1180
+	{(const unsigned char*)"looparrowleft", 8619},
1181
+	{(const unsigned char*)"LongRightArrow", 10230},
1182
+	{(const unsigned char*)"nis", 8956},
1183
+	{(const unsigned char*)"Aring", 197},
1184
+	{(const unsigned char*)"LeftDownVectorBar", 10585},
1185
+	{(const unsigned char*)"NotTildeEqual", 8772},
344 1186
 	{(const unsigned char*)"lambda", 955},
345
-	{(const unsigned char*)"Ucirc", 219},
1187
+	{(const unsigned char*)"larrlp", 8619},
1188
+	{(const unsigned char*)"leftharpoondown", 8637},
346 1189
 	{NULL, 0},
347
-	{(const unsigned char*)"diams", 9830},
348
-	{(const unsigned char*)"Tau", 932},
349
-	{(const unsigned char*)"Aacute", 193},
350 1190
 	{NULL, 0},
1191
+	{(const unsigned char*)"sup2", 178},
351 1192
 	{NULL, 0},
1193
+	{(const unsigned char*)"rarrlp", 8620},
1194
+	{(const unsigned char*)"SmallCircle", 8728},
1195
+	{(const unsigned char*)"bNot", 10989},
352 1196
 	{NULL, 0},
353
-	{(const unsigned char*)"Eacute", 201},
1197
+	{NULL, 0},
1198
+	{(const unsigned char*)"aleph", 8501},
1199
+	{(const unsigned char*)"blacktriangle", 9652},
1200
+	{NULL, 0},
1201
+	{(const unsigned char*)"circleddash", 8861},
1202
+	{NULL, 0},
1203
+	{NULL, 0},
1204
+	{(const unsigned char*)"rhov", 1009},
1205
+	{NULL, 0},
1206
+	{(const unsigned char*)"UpTee", 8869},
1207
+	{(const unsigned char*)"die", 168},
1208
+	{(const unsigned char*)"bump", 8782},
1209
+	{NULL, 0},
1210
+	{NULL, 0},
1211
+	{NULL, 0},
1212
+	{(const unsigned char*)"epar", 8917},
1213
+	{(const unsigned char*)"gnap", 10890},
1214
+	{(const unsigned char*)"RightFloor", 8971},
1215
+	{(const unsigned char*)"aring", 229},
1216
+	{NULL, 0},
1217
+	{(const unsigned char*)"lnap", 10889},
1218
+	{(const unsigned char*)"approx", 8776},
1219
+	{(const unsigned char*)"larrbfs", 10527},
1220
+	{(const unsigned char*)"lpar", 40},
1221
+	{(const unsigned char*)"npar", 8742},
1222
+	{(const unsigned char*)"gEl", 10892},
1223
+	{(const unsigned char*)"boxVl", 9570},
1224
+	{(const unsigned char*)"eqcolon", 8789},
1225
+	{(const unsigned char*)"rarrbfs", 10528},
1226
+	{(const unsigned char*)"rpar", 41},
1227
+	{(const unsigned char*)"spar", 8741},
1228
+	{(const unsigned char*)"thksim", 8764},
1229
+	{NULL, 0},
1230
+	{(const unsigned char*)"RightDownVectorBar", 10581},
1231
+	{NULL, 0},
1232
+	{(const unsigned char*)"para", 182},
1233
+	{(const unsigned char*)"thkap", 8776},
1234
+	{NULL, 0},
1235
+	{NULL, 0},
1236
+	{NULL, 0},
1237
+	{NULL, 0},
1238
+	{NULL, 0},
1239
+	{(const unsigned char*)"Superset", 8835},
1240
+	{NULL, 0},
1241
+	{(const unsigned char*)"ddarr", 8650},
1242
+	{NULL, 0},
1243
+	{NULL, 0},
1244
+	{NULL, 0},
1245
+	{NULL, 0},
1246
+	{NULL, 0},
1247
+	{(const unsigned char*)"Gamma", 915},
1248
+	{(const unsigned char*)"frac15", 8533},
1249
+	{(const unsigned char*)"kappav", 1008},
1250
+	{NULL, 0},
1251
+	{NULL, 0},
1252
+	{NULL, 0},
1253
+	{NULL, 0},
1254
+	{NULL, 0},
1255
+	{NULL, 0},
1256
+	{NULL, 0},
1257
+	{NULL, 0},
1258
+	{(const unsigned char*)"udarr", 8645},
1259
+	{(const unsigned char*)"Therefore", 8756},
1260
+	{(const unsigned char*)"hairsp", 8202},
1261
+	{NULL, 0},
1262
+	{NULL, 0},
1263
+	{(const unsigned char*)"CircleMinus", 8854},
1264
+	{NULL, 0},
1265
+	{NULL, 0},
1266
+	{NULL, 0},
1267
+	{(const unsigned char*)"ordf", 170},
1268
+	{(const unsigned char*)"VerticalTilde", 8768},
354 1269
 	{NULL, 0},
355 1270
 	{NULL, 0},
356
-	{(const unsigned char*)"acirc", 226},
357
-	{(const unsigned char*)"Iacute", 205},
358
-	{(const unsigned char*)"kappa", 954},
359
-	{(const unsigned char*)"pound", 163},
360
-	{(const unsigned char*)"ecirc", 234},
361
-	{(const unsigned char*)"frac14", 188},
362 1271
 	{NULL, 0},
363
-	{(const unsigned char*)"Oacute", 211},
364
-	{(const unsigned char*)"icirc", 238},
365 1272
 	{NULL, 0},
366 1273
 	{NULL, 0},
1274
+	{(const unsigned char*)"LeftVectorBar", 10578},
1275
+	{NULL, 0},
1276
+	{NULL, 0},
1277
+	{(const unsigned char*)"UnderBracket", 9141},
1278
+	{NULL, 0},
1279
+	{(const unsigned char*)"gamma", 947},
1280
+	{NULL, 0},
1281
+	{NULL, 0},
1282
+	{NULL, 0},
1283
+	{NULL, 0},
1284
+	{(const unsigned char*)"DoubleDot", 168},
367 1285
 	{(const unsigned char*)"lceil", 8968},
368 1286
 	{NULL, 0},
369
-	{(const unsigned char*)"Uacute", 218},
370
-	{(const unsigned char*)"ocirc", 244},
371 1287
 	{NULL, 0},
372 1288
 	{NULL, 0},
1289
+	{(const unsigned char*)"curlyeqprec", 8926},
1290
+	{(const unsigned char*)"varnothing", 8709},
1291
+	{(const unsigned char*)"nhpar", 10994},
1292
+	{(const unsigned char*)"therefore", 8756},
1293
+	{(const unsigned char*)"dlcrop", 8973},
373 1294
 	{(const unsigned char*)"rceil", 8969},
374
-	{(const unsigned char*)"Yacute", 221},
375
-	{(const unsigned char*)"rho", 961},
376
-	{(const unsigned char*)"uml", 168},
377
-	{(const unsigned char*)"ucirc", 251},
1295
+	{(const unsigned char*)"leftleftarrows", 8647},
1296
+	{(const unsigned char*)"vangrt", 10652},
378 1297
 	{NULL, 0},
1298
+	{(const unsigned char*)"lrm", 8206},
379 1299
 	{NULL, 0},
380
-	{(const unsigned char*)"tau", 964},
381
-	{(const unsigned char*)"aacute", 225},
382 1300
 	{NULL, 0},
383 1301
 	{NULL, 0},
384 1302
 	{NULL, 0},
385
-	{(const unsigned char*)"eacute", 233},
1303
+	{(const unsigned char*)"curvearrowright", 8631},
1304
+	{(const unsigned char*)"thetas", 952},
1305
+	{(const unsigned char*)"PartialD", 8706},
1306
+	{(const unsigned char*)"nVDash", 8879},
1307
+	{(const unsigned char*)"wedgeq", 8793},
386 1308
 	{NULL, 0},
387 1309
 	{NULL, 0},
1310
+	{(const unsigned char*)"ulcrop", 8975},
388 1311
 	{NULL, 0},
389
-	{(const unsigned char*)"iacute", 237},
1312
+	{NULL, 0},
1313
+	{NULL, 0},
1314
+	{NULL, 0},
1315
+	{(const unsigned char*)"zigrarr", 8669},
1316
+	{(const unsigned char*)"lozf", 10731},
1317
+	{(const unsigned char*)"sung", 9834},
1318
+	{NULL, 0},
1319
+	{NULL, 0},
1320
+	{NULL, 0},
1321
+	{(const unsigned char*)"iff", 8660},
1322
+	{(const unsigned char*)"xnis", 8955},
1323
+	{(const unsigned char*)"ring", 730},
1324
+	{(const unsigned char*)"dfisht", 10623},
1325
+	{NULL, 0},
1326
+	{NULL, 0},
1327
+	{NULL, 0},
1328
+	{(const unsigned char*)"nltrie", 8940},
1329
+	{(const unsigned char*)"llcorner", 8990},
1330
+	{NULL, 0},
1331
+	{(const unsigned char*)"lfisht", 10620},
1332
+	{(const unsigned char*)"ctdot", 8943},
1333
+	{(const unsigned char*)"dtdot", 8945},
1334
+	{(const unsigned char*)"CloseCurlyQuote", 8217},
1335
+	{(const unsigned char*)"par", 8741},
1336
+	{NULL, 0},
1337
+	{(const unsigned char*)"rfisht", 10621},
1338
+	{(const unsigned char*)"ulcorner", 8988},
1339
+	{NULL, 0},
1340
+	{(const unsigned char*)"ufisht", 10622},
1341
+	{NULL, 0},
1342
+	{(const unsigned char*)"notinvc", 8950},
1343
+	{(const unsigned char*)"orderof", 8500},
1344
+	{NULL, 0},
1345
+	{(const unsigned char*)"Rrightarrow", 8667},
1346
+	{(const unsigned char*)"emsp", 8195},
1347
+	{(const unsigned char*)"Chi", 935},
1348
+	{NULL, 0},
1349
+	{NULL, 0},
1350
+	{(const unsigned char*)"utdot", 8944},
1351
+	{(const unsigned char*)"bull", 8226},
1352
+	{NULL, 0},
1353
+	{(const unsigned char*)"khgr", 967},
1354
+	{(const unsigned char*)"ominus", 8854},
1355
+	{(const unsigned char*)"eqslantgtr", 10902},
1356
+	{(const unsigned char*)"multimap", 8888},
1357
+	{(const unsigned char*)"lowast", 8727},
1358
+	{(const unsigned char*)"ohgr", 969},
1359
+	{(const unsigned char*)"NotLess", 8814},
1360
+	{(const unsigned char*)"alefsym", 8501},
1361
+	{(const unsigned char*)"Phi", 934},
1362
+	{(const unsigned char*)"thgr", 952},
1363
+	{NULL, 0},
1364
+	{(const unsigned char*)"isinsv", 8947},
1365
+	{(const unsigned char*)"OHacgr", 911},
1366
+	{NULL, 0},
1367
+	{(const unsigned char*)"NotElement", 8713},
1368
+	{(const unsigned char*)"nearrow", 8599},
1369
+	{NULL, 0},
1370
+	{NULL, 0},
1371
+	{NULL, 0},
1372
+	{NULL, 0},
1373
+	{(const unsigned char*)"DoubleLeftTee", 10980},
1374
+	{(const unsigned char*)"nrightarrow", 8603},
1375
+	{NULL, 0},
1376
+	{(const unsigned char*)"searrow", 8600},
1377
+	{(const unsigned char*)"UpTeeArrow", 8613},
1378
+	{NULL, 0},
1379
+	{(const unsigned char*)"dbkarow", 10511},
1380
+	{(const unsigned char*)"period", 46},
1381
+	{(const unsigned char*)"Gg", 8921},
1382
+	{(const unsigned char*)"circledR", 174},
1383
+	{(const unsigned char*)"DownBreve", 785},
1384
+	{NULL, 0},
1385
+	{(const unsigned char*)"imagline", 8464},
1386
+	{(const unsigned char*)"gneq", 10888},
1387
+	{NULL, 0},
1388
+	{NULL, 0},
1389
+	{(const unsigned char*)"chi", 967},
1390
+	{NULL, 0},
1391
+	{(const unsigned char*)"lneq", 10887},
1392
+	{(const unsigned char*)"phi", 981},
1393
+	{NULL, 0},
1394
+	{(const unsigned char*)"spadesuit", 9824},
1395
+	{NULL, 0},
1396
+	{NULL, 0},
1397
+	{(const unsigned char*)"prsim", 8830},
1398
+	{(const unsigned char*)"Atilde", 195},
1399
+	{NULL, 0},
1400
+	{NULL, 0},
1401
+	{(const unsigned char*)"isinv", 8712},
1402
+	{(const unsigned char*)"rlarr2", 8644},
1403
+	{(const unsigned char*)"nrArr", 8655},
1404
+	{NULL, 0},
1405
+	{(const unsigned char*)"angst", 8491},
1406
+	{NULL, 0},
1407
+	{(const unsigned char*)"sdotb", 8865},
1408
+	{NULL, 0},
1409
+	{NULL, 0},
1410
+	{NULL, 0},
1411
+	{(const unsigned char*)"Ntilde", 209},
1412
+	{(const unsigned char*)"gg", 8811},
1413
+	{(const unsigned char*)"xrArr", 10233},
1414
+	{(const unsigned char*)"DoubleLongLeftRightArrow", 10234},
1415
+	{(const unsigned char*)"Otilde", 213},
1416
+	{NULL, 0},
1417
+	{(const unsigned char*)"lg", 8822},
1418
+	{(const unsigned char*)"LeftArrowBar", 8676},
1419
+	{(const unsigned char*)"thickapprox", 8776},
1420
+	{NULL, 0},
1421
+	{NULL, 0},
1422
+	{NULL, 0},
1423
+	{NULL, 0},
1424
+	{(const unsigned char*)"precnsim", 8936},
1425
+	{NULL, 0},
1426
+	{NULL, 0},
1427
+	{NULL, 0},
1428
+	{NULL, 0},
1429
+	{(const unsigned char*)"Element", 8712},
1430
+	{(const unsigned char*)"atilde", 227},
1431
+	{NULL, 0},
1432
+	{(const unsigned char*)"LessEqualGreater", 8922},
1433
+	{NULL, 0},
1434
+	{(const unsigned char*)"eqslantless", 10901},
1435
+	{(const unsigned char*)"EmptyVerySmallSquare", 9643},
1436
+	{(const unsigned char*)"phgr", 966},
1437
+	{(const unsigned char*)"epsiv", 949},
1438
+	{(const unsigned char*)"DoubleVerticalBar", 8741},
1439
+	{(const unsigned char*)"LeftTriangle", 8882},
390 1440
 	{NULL, 0},
391 1441
 	{(const unsigned char*)"spades", 9824},
1442
+	{(const unsigned char*)"frac23", 8532},
1443
+	{(const unsigned char*)"ntilde", 241},
1444
+	{(const unsigned char*)"otilde", 245},
392 1445
 	{NULL, 0},
1446
+	{(const unsigned char*)"sup1", 185},
1447
+	{(const unsigned char*)"GreaterGreater", 10914},
1448
+	{(const unsigned char*)"iecy", 1077},
1449
+	{(const unsigned char*)"NestedGreaterGreater", 8811},
1450
+	{(const unsigned char*)"lfloor", 8970},
1451
+	{(const unsigned char*)"SquareSubsetEqual", 8849},
393 1452
 	{NULL, 0},
394
-	{(const unsigned char*)"prop", 8733},
395
-	{(const unsigned char*)"oacute", 243},
396
-	{(const unsigned char*)"frac34", 190},
1453
+	{(const unsigned char*)"acute", 180},
1454
+	{(const unsigned char*)"YAcy", 1071},
397 1455
 	{NULL, 0},
1456
+	{(const unsigned char*)"rfloor", 8971},
398 1457
 	{NULL, 0},
399 1458
 	{NULL, 0},
400
-	{(const unsigned char*)"sigmaf", 962},
401
-	{(const unsigned char*)"uacute", 250},
1459
+	{(const unsigned char*)"quest", 63},
402 1460
 	{NULL, 0},
1461
+	{(const unsigned char*)"rlhar", 8652},
403 1462
 	{NULL, 0},
404 1463
 	{NULL, 0},
405
-	{(const unsigned char*)"yacute", 253},
406 1464
 	{NULL, 0},
407
-	{(const unsigned char*)"THORN", 222},
408 1465
 	{NULL, 0},
409 1466
 	{NULL, 0},
410 1467
 	{NULL, 0},
... ...
@@ -413,23 +1901,49 @@ static struct element entities_htable_elements[] = {
413 413
 	{NULL, 0},
414 414
 	{NULL, 0},
415 415
 	{NULL, 0},
416
+	{(const unsigned char*)"geq", 8805},
417
+	{(const unsigned char*)"CloseCurlyDoubleQuote", 8221},
418
+	{(const unsigned char*)"lsquor", 8218},
416 419
 	{NULL, 0},
420
+	{(const unsigned char*)"tshcy", 1115},
421
+	{(const unsigned char*)"leq", 8804},
422
+	{(const unsigned char*)"boxUl", 9564},
423
+	{(const unsigned char*)"lurdshar", 10570},
424
+	{(const unsigned char*)"rsquor", 8217},
425
+	{(const unsigned char*)"VerticalSeparator", 10072},
426
+	{(const unsigned char*)"boxdR", 9554},
417 427
 	{NULL, 0},
418 428
 	{NULL, 0},
419 429
 	{NULL, 0},
420
-	{(const unsigned char*)"brvbar", 166},
430
+	{(const unsigned char*)"scap", 10936},
431
+	{(const unsigned char*)"hkswarow", 10534},
421 432
 	{NULL, 0},
433
+	{(const unsigned char*)"CapitalDifferentialD", 8517},
434
+	{(const unsigned char*)"NoBreak", 8288},
435
+	{(const unsigned char*)"lthree", 8907},
436
+	{(const unsigned char*)"bigtriangleup", 9651},
437
+	{(const unsigned char*)"elinters", 65533},
422 438
 	{NULL, 0},
439
+	{(const unsigned char*)"forall", 8704},
440
+	{(const unsigned char*)"NotGreater", 8815},
441
+	{(const unsigned char*)"rthree", 8908},
442
+	{(const unsigned char*)"Jukcy", 1028},
423 443
 	{NULL, 0},
444
+	{(const unsigned char*)"Iukcy", 1030},
424 445
 	{NULL, 0},
425
-	{(const unsigned char*)"supe", 8839},
446
+	{(const unsigned char*)"gtreqqless", 10892},
426 447
 	{NULL, 0},
448
+	{(const unsigned char*)"UnderParenthesis", 65078},
427 449
 	{NULL, 0},
450
+	{(const unsigned char*)"nearr", 8599},
428 451
 	{NULL, 0},
429 452
 	{NULL, 0},
430
-	{(const unsigned char*)"sdot", 8901},
431
-	{(const unsigned char*)"Delta", 916},
432
-	{(const unsigned char*)"aelig", 230},
453
+	{(const unsigned char*)"perp", 8869},
454
+	{(const unsigned char*)"bepsi", 1014},
455
+	{(const unsigned char*)"searr", 8600},
456
+	{(const unsigned char*)"iexcl", 161},
457
+	{(const unsigned char*)"LeftArrow", 8592},
458
+	{(const unsigned char*)"NegativeMediumSpace", 8203},
433 459
 	{NULL, 0},
434 460
 	{NULL, 0},
435 461
 	{NULL, 0},
... ...
@@ -438,16 +1952,29 @@ static struct element entities_htable_elements[] = {
438 438
 	{NULL, 0},
439 439
 	{NULL, 0},
440 440
 	{NULL, 0},
441
+	{(const unsigned char*)"ast", 42},
441 442
 	{NULL, 0},
443
+	{(const unsigned char*)"lAarr", 8666},
444
+	{(const unsigned char*)"DownRightVectorBar", 10583},
445
+	{(const unsigned char*)"cuvee", 8910},
442 446
 	{NULL, 0},
443
-	{(const unsigned char*)"szlig", 223},
447
+	{(const unsigned char*)"iukcy", 1110},
448
+	{(const unsigned char*)"jukcy", 1108},
449
+	{(const unsigned char*)"latail", 10521},
450
+	{(const unsigned char*)"disin", 8946},
444 451
 	{NULL, 0},
452
+	{(const unsigned char*)"rAarr", 8667},
453
+	{(const unsigned char*)"angsph", 8738},
445 454
 	{NULL, 0},
446
-	{(const unsigned char*)"oelig", 339},
455
+	{(const unsigned char*)"InvisibleComma", 8291},
456
+	{(const unsigned char*)"ratail", 10522},
447 457
 	{NULL, 0},
448 458
 	{NULL, 0},
449 459
 	{NULL, 0},
450
-	{(const unsigned char*)"int", 8747},
460
+	{(const unsigned char*)"supnE", 10956},
461
+	{(const unsigned char*)"ngt", 8815},
462
+	{(const unsigned char*)"order", 8500},
463
+	{(const unsigned char*)"divide", 247},
451 464
 	{NULL, 0},
452 465
 	{NULL, 0},
453 466
 	{NULL, 0},
... ...
@@ -458,63 +1985,321 @@ static struct element entities_htable_elements[] = {
458 458
 	{NULL, 0},
459 459
 	{NULL, 0},
460 460
 	{NULL, 0},
461
+	{(const unsigned char*)"colon", 58},
461 462
 	{NULL, 0},
462 463
 	{NULL, 0},
463
-	{(const unsigned char*)"delta", 948},
464 464
 	{NULL, 0},
465 465
 	{NULL, 0},
466 466
 	{NULL, 0},
467 467
 	{NULL, 0},
468
+	{(const unsigned char*)"CirclePlus", 8853},
469
+	{(const unsigned char*)"frac18", 8539},
470
+	{(const unsigned char*)"nsup", 8837},
468 471
 	{NULL, 0},
469 472
 	{NULL, 0},
470 473
 	{NULL, 0},
474
+	{(const unsigned char*)"intprod", 10812},
471 475
 	{NULL, 0},
472 476
 	{NULL, 0},
473 477
 	{NULL, 0},
474 478
 	{NULL, 0},
479
+	{(const unsigned char*)"And", 10835},
475 480
 	{NULL, 0},
481
+	{(const unsigned char*)"Cup", 8915},
476 482
 	{NULL, 0},
483
+	{(const unsigned char*)"nsimeq", 8772},
477 484
 	{NULL, 0},
485
+	{(const unsigned char*)"subnE", 10955},
478 486
 	{NULL, 0},
487
+	{(const unsigned char*)"SHCHcy", 1065},
479 488
 	{NULL, 0},
480 489
 	{NULL, 0},
481 490
 	{NULL, 0},
491
+	{(const unsigned char*)"LessLess", 10913},
482 492
 	{NULL, 0},
483 493
 	{NULL, 0},
484
-	{(const unsigned char*)"lsaquo", 8249},
485 494
 	{NULL, 0},
486
-	{(const unsigned char*)"para", 182},
495
+	{(const unsigned char*)"rightarrowtail", 8611},
496
+	{(const unsigned char*)"EEgr", 919},
497
+	{(const unsigned char*)"Sup", 8913},
487 498
 	{NULL, 0},
488 499
 	{NULL, 0},
489 500
 	{NULL, 0},
490
-	{(const unsigned char*)"rsaquo", 8250},
491 501
 	{NULL, 0},
492 502
 	{NULL, 0},
493 503
 	{NULL, 0},
494 504
 	{NULL, 0},
505
+	{(const unsigned char*)"simeq", 8771},
506
+	{(const unsigned char*)"leftharpoonup", 8636},
495 507
 	{NULL, 0},
496
-	{(const unsigned char*)"Omega", 937},
508
+	{(const unsigned char*)"boxhd", 9516},
497 509
 	{NULL, 0},
498 510
 	{NULL, 0},
499
-	{(const unsigned char*)"oplus", 8853},
500
-	{(const unsigned char*)"isin", 8712},
501
-	{(const unsigned char*)"bdquo", 8222},
502
-	{(const unsigned char*)"nabla", 8711},
511
+	{(const unsigned char*)"and", 8743},
512
+	{(const unsigned char*)"Cedilla", 184},
513
+	{(const unsigned char*)"cup", 8746},
503 514
 	{NULL, 0},
515
+	{(const unsigned char*)"ensp", 8194},
504 516
 	{NULL, 0},
505
-	{(const unsigned char*)"cent", 162},
517
+	{NULL, 0},
518
+	{NULL, 0},
519
+	{(const unsigned char*)"gimel", 8503},
520
+	{NULL, 0},
521
+	{(const unsigned char*)"straightphi", 981},
522
+	{(const unsigned char*)"nbsp", 160},
523
+	{(const unsigned char*)"NotLessGreater", 8824},
524
+	{(const unsigned char*)"thetav", 977},
525
+	{NULL, 0},
526
+	{NULL, 0},
527
+	{NULL, 0},
528
+	{NULL, 0},
529
+	{(const unsigned char*)"sup", 8835},
530
+	{(const unsigned char*)"lsqb", 91},
531
+	{NULL, 0},
532
+	{(const unsigned char*)"check", 10003},
533
+	{(const unsigned char*)"Gt", 8811},
534
+	{(const unsigned char*)"boxv", 9474},
535
+	{(const unsigned char*)"rsqb", 93},
536
+	{(const unsigned char*)"Implies", 8658},
537
+	{(const unsigned char*)"shortparallel", 8741},
538
+	{(const unsigned char*)"Lt", 8810},
539
+	{NULL, 0},
540
+	{NULL, 0},
541
+	{(const unsigned char*)"Sub", 8912},
542
+	{NULL, 0},
543
+	{(const unsigned char*)"HARDcy", 1066},
544
+	{NULL, 0},
545
+	{NULL, 0},
546
+	{NULL, 0},
547
+	{NULL, 0},
548
+	{NULL, 0},
549
+	{NULL, 0},
550
+	{NULL, 0},
551
+	{NULL, 0},
552
+	{(const unsigned char*)"thorn", 254},
553
+	{NULL, 0},
554
+	{NULL, 0},
555
+	{NULL, 0},
556
+	{NULL, 0},
557
+	{(const unsigned char*)"boxvr", 9500},
558
+	{(const unsigned char*)"DD", 8517},
559
+	{NULL, 0},
560
+	{NULL, 0},
561
+	{NULL, 0},
562
+	{NULL, 0},
563
+	{(const unsigned char*)"nVdash", 8878},
564
+	{(const unsigned char*)"angrt", 8735},
565
+	{(const unsigned char*)"gt", 62},
566
+	{(const unsigned char*)"trianglerighteq", 8885},
567
+	{(const unsigned char*)"sub", 8834},
568
+	{(const unsigned char*)"it", 8290},
569
+	{NULL, 0},
570
+	{(const unsigned char*)"lt", 60},
571
+	{NULL, 0},
572
+	{NULL, 0},
573
+	{(const unsigned char*)"cudarrr", 10549},
574
+	{NULL, 0},
575
+	{NULL, 0},
576
+	{NULL, 0},
577
+	{NULL, 0},
578
+	{(const unsigned char*)"DZcy", 1039},
579
+	{NULL, 0},
580
+	{NULL, 0},
581
+	{NULL, 0},
582
+	{(const unsigned char*)"seswar", 10537},
583
+	{(const unsigned char*)"boxhU", 9576},
584
+	{NULL, 0},
585
+	{NULL, 0},
586
+	{NULL, 0},
587
+	{(const unsigned char*)"precnapprox", 10937},
588
+	{NULL, 0},
589
+	{(const unsigned char*)"fallingdotseq", 8786},
590
+	{NULL, 0},
591
+	{NULL, 0},
592
+	{NULL, 0},
593
+	{(const unsigned char*)"vartheta", 977},
594
+	{(const unsigned char*)"digamma", 989},
595
+	{NULL, 0},
596
+	{NULL, 0},
597
+	{NULL, 0},
598
+	{NULL, 0},
599
+	{(const unsigned char*)"Omicron", 927},
600
+	{(const unsigned char*)"oror", 10838},
601
+	{NULL, 0},
602
+	{(const unsigned char*)"DownLeftRightVector", 10576},
603
+	{(const unsigned char*)"NonBreakingSpace", 160},
604
+	{NULL, 0},
605
+	{NULL, 0},
606
+	{NULL, 0},
607
+	{(const unsigned char*)"NotVerticalBar", 8740},
608
+	{NULL, 0},
609
+	{(const unsigned char*)"boxvh", 9532},
610
+	{(const unsigned char*)"smile", 8995},
611
+	{NULL, 0},
612
+	{NULL, 0},
613
+	{NULL, 0},
614
+	{NULL, 0},
615
+	{(const unsigned char*)"Bumpeq", 8782},
616
+	{NULL, 0},
617
+	{NULL, 0},
618
+	{NULL, 0},
619
+	{NULL, 0},
620
+	{(const unsigned char*)"Proportion", 8759},
621
+	{(const unsigned char*)"eDot", 8785},
622
+	{NULL, 0},
623
+	{(const unsigned char*)"numsp", 8199},
624
+	{NULL, 0},
625
+	{(const unsigned char*)"ShortLeftArrow", 8592},
626
+	{NULL, 0},
627
+	{NULL, 0},
628
+	{NULL, 0},
629
+	{NULL, 0},
630
+	{NULL, 0},
631
+	{(const unsigned char*)"omicron", 959},
632
+	{(const unsigned char*)"realpart", 8476},
633
+	{NULL, 0},
634
+	{(const unsigned char*)"HumpEqual", 8783},
635
+	{(const unsigned char*)"RightDoubleBracket", 12315},
636
+	{NULL, 0},
637
+	{(const unsigned char*)"lhard", 8637},
638
+	{NULL, 0},
639
+	{(const unsigned char*)"Union", 8899},
640
+	{(const unsigned char*)"rhard", 8641},
641
+	{NULL, 0},
642
+	{NULL, 0},
643
+	{NULL, 0},
644
+	{(const unsigned char*)"topcir", 10993},
645
+	{NULL, 0},
646
+	{(const unsigned char*)"Copf", 8450},
647
+	{(const unsigned char*)"bumpeq", 8783},
648
+	{(const unsigned char*)"ntrianglelefteq", 8940},
506 649
 	{(const unsigned char*)"lsquo", 8216},
650
+	{(const unsigned char*)"drarr", 8600},
651
+	{(const unsigned char*)"erarr", 10609},
652
+	{(const unsigned char*)"crarr", 8629},
507 653
 	{NULL, 0},
654
+	{(const unsigned char*)"Hopf", 8461},
655
+	{(const unsigned char*)"rsquo", 8217},
508 656
 	{NULL, 0},
657
+	{(const unsigned char*)"Nopf", 8469},
658
+	{(const unsigned char*)"lrarr", 8646},
659
+	{(const unsigned char*)"Uarrocir", 10569},
660
+	{(const unsigned char*)"nrarr", 8603},
661
+	{(const unsigned char*)"backcong", 8780},
662
+	{(const unsigned char*)"orarr", 8635},
663
+	{(const unsigned char*)"RBarr", 10512},
664
+	{(const unsigned char*)"rrarr", 8649},
665
+	{(const unsigned char*)"srarr", 8594},
666
+	{(const unsigned char*)"Qopf", 8474},
667
+	{(const unsigned char*)"Ropf", 8477},
668
+	{(const unsigned char*)"trianglelefteq", 8884},
669
+	{(const unsigned char*)"Popf", 8473},
670
+	{(const unsigned char*)"xrarr", 10230},
509 671
 	{NULL, 0},
510
-	{(const unsigned char*)"ldquo", 8220},
511
-	{(const unsigned char*)"laquo", 171},
672
+	{(const unsigned char*)"Zopf", 8484},
673
+	{NULL, 0},
674
+	{NULL, 0},
675
+	{NULL, 0},
676
+	{NULL, 0},
677
+	{NULL, 0},
678
+	{NULL, 0},
679
+	{(const unsigned char*)"CupCap", 8781},
680
+	{NULL, 0},
681
+	{NULL, 0},
682
+	{NULL, 0},
683
+	{NULL, 0},
684
+	{(const unsigned char*)"comma", 44},
685
+	{(const unsigned char*)"Acy", 1040},
686
+	{(const unsigned char*)"Bcy", 1041},
687
+	{(const unsigned char*)"lBarr", 10510},
688
+	{(const unsigned char*)"HilbertSpace", 8459},
689
+	{(const unsigned char*)"Ecy", 1069},
690
+	{(const unsigned char*)"Fcy", 1060},
691
+	{(const unsigned char*)"Gcy", 1043},
692
+	{(const unsigned char*)"rBarr", 10511},
693
+	{(const unsigned char*)"Icy", 1048},
694
+	{(const unsigned char*)"Jcy", 1049},
695
+	{(const unsigned char*)"Kcy", 1050},
696
+	{(const unsigned char*)"Lcy", 1051},
697
+	{(const unsigned char*)"aelig", 230},
698
+	{(const unsigned char*)"Mcy", 1052},
699
+	{(const unsigned char*)"Ocy", 1054},
700
+	{(const unsigned char*)"Pcy", 1055},
701
+	{(const unsigned char*)"Ncy", 1053},
702
+	{(const unsigned char*)"Rcy", 1056},
703
+	{(const unsigned char*)"Scy", 1057},
704
+	{(const unsigned char*)"ShortUpArrow", 8593},
705
+	{(const unsigned char*)"Ucy", 1059},
706
+	{(const unsigned char*)"Vcy", 1042},
707
+	{(const unsigned char*)"Tcy", 1058},
708
+	{(const unsigned char*)"DiacriticalDoubleAcute", 733},
512 709
 	{(const unsigned char*)"Alpha", 913},
710
+	{(const unsigned char*)"Ycy", 1067},
711
+	{(const unsigned char*)"Zcy", 1047},
712
+	{(const unsigned char*)"nmid", 8740},
713
+	{(const unsigned char*)"NotSubsetEqual", 8840},
714
+	{(const unsigned char*)"ntrianglerighteq", 8941},
715
+	{(const unsigned char*)"straightepsilon", 1013},
716
+	{(const unsigned char*)"ddotseq", 10871},
717
+	{(const unsigned char*)"acy", 1072},
718
+	{(const unsigned char*)"bcy", 1073},
719
+	{NULL, 0},
720
+	{(const unsigned char*)"dcy", 1076},
721
+	{(const unsigned char*)"ecy", 1101},
722
+	{(const unsigned char*)"gnapprox", 10890},
723
+	{(const unsigned char*)"fcy", 1092},
724
+	{(const unsigned char*)"Dcy", 1044},
725
+	{(const unsigned char*)"icy", 1080},
726
+	{(const unsigned char*)"gcy", 1075},
727
+	{(const unsigned char*)"lnapprox", 10889},
728
+	{(const unsigned char*)"TildeFullEqual", 8773},
729
+	{(const unsigned char*)"jcy", 1081},
730
+	{(const unsigned char*)"kcy", 1082},
731
+	{(const unsigned char*)"lcy", 1083},
732
+	{(const unsigned char*)"ReverseUpEquilibrium", 10607},
733
+	{(const unsigned char*)"ncy", 1085},
734
+	{(const unsigned char*)"ocy", 1086},
735
+	{(const unsigned char*)"ocir", 8858},
736
+	{(const unsigned char*)"scy", 1089},
737
+	{(const unsigned char*)"rcy", 1088},
738
+	{(const unsigned char*)"pcy", 1087},
739
+	{(const unsigned char*)"mcy", 1084},
740
+	{(const unsigned char*)"ucy", 1091},
741
+	{(const unsigned char*)"alpha", 945},
742
+	{(const unsigned char*)"DoubleContourIntegral", 8751},
743
+	{(const unsigned char*)"zcy", 1079},
744
+	{(const unsigned char*)"nshortmid", 8740},
745
+	{(const unsigned char*)"ohm", 8486},
746
+	{(const unsigned char*)"tcy", 1090},
747
+	{(const unsigned char*)"ycy", 1099},
748
+	{(const unsigned char*)"vcy", 1074},
749
+	{(const unsigned char*)"sqsub", 8847},
750
+	{(const unsigned char*)"Udigr", 939},
751
+	{(const unsigned char*)"DownLeftTeeVector", 10590},
752
+	{(const unsigned char*)"udigr", 971},
753
+	{(const unsigned char*)"ecir", 8790},
754
+	{(const unsigned char*)"cularrp", 10557},
755
+	{(const unsigned char*)"idigr", 970},
756
+	{(const unsigned char*)"smid", 8739},
757
+	{(const unsigned char*)"Idigr", 938},
758
+	{NULL, 0},
759
+	{NULL, 0},
760
+	{(const unsigned char*)"DoubleLongLeftArrow", 10232},
761
+	{NULL, 0},
762
+	{(const unsigned char*)"SquareSupersetEqual", 8850},
763
+	{NULL, 0},
764
+	{NULL, 0},
765
+	{(const unsigned char*)"FilledSmallSquare", 9724},
766
+	{(const unsigned char*)"oelig", 339},
767
+	{(const unsigned char*)"NotGreaterLess", 8825},
768
+	{(const unsigned char*)"b.Gammad", 988},
513 769
 	{NULL, 0},
514
-	{(const unsigned char*)"rsquo", 8217},
770
+	{(const unsigned char*)"rarrap", 10613},
515 771
 	{NULL, 0},
516
-	{(const unsigned char*)"rdquo", 8221},
517
-	{(const unsigned char*)"raquo", 187},
772
+	{(const unsigned char*)"cylcty", 9005},
773
+	{(const unsigned char*)"ContourIntegral", 8750},
774
+	{(const unsigned char*)"Intersection", 8898},
775
+	{(const unsigned char*)"acd", 8767},
518 776
 	{NULL, 0},
519 777
 	{NULL, 0},
520 778
 	{NULL, 0},
... ...
@@ -522,238 +2307,450 @@ static struct element entities_htable_elements[] = {
522 522
 	{NULL, 0},
523 523
 	{NULL, 0},
524 524
 	{NULL, 0},
525
+	{(const unsigned char*)"fltns", 9649},
526
+	{(const unsigned char*)"Lleftarrow", 8666},
525 527
 	{NULL, 0},
526
-	{(const unsigned char*)"ang", 8736},
527 528
 	{NULL, 0},
528
-	{(const unsigned char*)"Iota", 921},
529
-	{(const unsigned char*)"omega", 969},
529
+	{(const unsigned char*)"NotSupersetEqual", 8841},
530 530
 	{NULL, 0},
531
+	{(const unsigned char*)"nvinfin", 10718},
532
+	{(const unsigned char*)"Acirc", 194},
531 533
 	{NULL, 0},
532
-	{(const unsigned char*)"deg", 176},
533 534
 	{NULL, 0},
535
+	{(const unsigned char*)"circlearrowleft", 8634},
536
+	{(const unsigned char*)"Ecirc", 202},
537
+	{(const unsigned char*)"Mu", 924},
538
+	{(const unsigned char*)"Nu", 925},
539
+	{(const unsigned char*)"complexes", 8450},
540
+	{(const unsigned char*)"Icirc", 206},
534 541
 	{NULL, 0},
542
+	{(const unsigned char*)"NotLeftTriangle", 8938},
543
+	{(const unsigned char*)"dotsquare", 8865},
535 544
 	{NULL, 0},
536 545
 	{NULL, 0},
546
+	{(const unsigned char*)"Ocirc", 212},
547
+	{(const unsigned char*)"swnwar", 10538},
548
+	{(const unsigned char*)"nsucc", 8833},
537 549
 	{NULL, 0},
538
-	{(const unsigned char*)"Epsilon", 917},
550
+	{(const unsigned char*)"Pi", 928},
539 551
 	{NULL, 0},
552
+	{(const unsigned char*)"Ucirc", 219},
553
+	{(const unsigned char*)"squ", 9633},
554
+	{(const unsigned char*)"boxur", 9492},
555
+	{(const unsigned char*)"Xi", 926},
556
+	{(const unsigned char*)"there4", 8756},
557
+	{(const unsigned char*)"LeftRightVector", 10574},
540 558
 	{NULL, 0},
541
-	{(const unsigned char*)"dArr", 8659},
542 559
 	{NULL, 0},
560
+	{(const unsigned char*)"nleftarrow", 8602},
561
+	{(const unsigned char*)"NotSquareSubsetEqual", 8930},
543 562
 	{NULL, 0},
544
-	{(const unsigned char*)"alpha", 945},
545
-	{(const unsigned char*)"hArr", 8660},
563
+	{NULL, 0},
564
+	{(const unsigned char*)"acirc", 226},
565
+	{(const unsigned char*)"leftrightharpoons", 8651},
566
+	{(const unsigned char*)"Omega", 937},
567
+	{(const unsigned char*)"Aacgr", 902},
568
+	{(const unsigned char*)"boxHD", 9574},
569
+	{(const unsigned char*)"ecirc", 234},
570
+	{(const unsigned char*)"nu", 957},
571
+	{(const unsigned char*)"nhArr", 8654},
572
+	{(const unsigned char*)"Mellintrf", 8499},
573
+	{(const unsigned char*)"icirc", 238},
574
+	{(const unsigned char*)"succ", 8827},
575
+	{(const unsigned char*)"mu", 956},
576
+	{NULL, 0},
577
+	{(const unsigned char*)"ni", 8715},
578
+	{(const unsigned char*)"ocirc", 244},
579
+	{(const unsigned char*)"pi", 960},
580
+	{(const unsigned char*)"DiacriticalAcute", 180},
581
+	{(const unsigned char*)"xhArr", 10234},
582
+	{(const unsigned char*)"curlyvee", 8910},
583
+	{(const unsigned char*)"deg", 176},
584
+	{(const unsigned char*)"ucirc", 251},
585
+	{(const unsigned char*)"yen", 165},
586
+	{NULL, 0},
587
+	{(const unsigned char*)"xi", 958},
588
+	{(const unsigned char*)"xcirc", 9711},
589
+	{(const unsigned char*)"IOcy", 1025},
590
+	{(const unsigned char*)"els", 10901},
591
+	{(const unsigned char*)"gE", 8807},
592
+	{(const unsigned char*)"leg", 8922},
593
+	{(const unsigned char*)"Iacgr", 906},
594
+	{(const unsigned char*)"LeftTeeArrow", 8612},
595
+	{(const unsigned char*)"dscy", 1109},
596
+	{(const unsigned char*)"SucceedsSlantEqual", 8829},
597
+	{(const unsigned char*)"fpartint", 10765},
598
+	{(const unsigned char*)"omega", 969},
599
+	{(const unsigned char*)"frac34", 190},
546 600
 	{(const unsigned char*)"reg", 174},
547
-	{(const unsigned char*)"clubs", 9827},
548
-	{(const unsigned char*)"alefsym", 8501},
549
-	{(const unsigned char*)"lArr", 8656},
601
+	{(const unsigned char*)"ShortDownArrow", 8595},
602
+	{(const unsigned char*)"quot", 34},
603
+	{(const unsigned char*)"ell", 8467},
604
+	{(const unsigned char*)"circlearrowright", 8635},
605
+	{(const unsigned char*)"inodot", 305},
606
+	{(const unsigned char*)"xdtri", 9661},
607
+	{(const unsigned char*)"iacgr", 943},
608
+	{(const unsigned char*)"imagpart", 8465},
609
+	{(const unsigned char*)"ldrdhar", 10599},
610
+	{(const unsigned char*)"tscy", 1094},
611
+	{(const unsigned char*)"jnodot", 106},
612
+	{(const unsigned char*)"colone", 8788},
613
+	{(const unsigned char*)"Eacgr", 904},
614
+	{(const unsigned char*)"blk34", 9619},
615
+	{(const unsigned char*)"eacgr", 941},
616
+	{(const unsigned char*)"LongLeftArrow", 10229},
617
+	{(const unsigned char*)"lE", 8806},
618
+	{(const unsigned char*)"nsmid", 8740},
619
+	{(const unsigned char*)"uacgr", 973},
620
+	{(const unsigned char*)"boxVR", 9568},
550 621
 	{NULL, 0},
551
-	{(const unsigned char*)"shy", 173},
552 622
 	{NULL, 0},
623
+	{(const unsigned char*)"Oacgr", 908},
624
+	{(const unsigned char*)"aacgr", 940},
625
+	{(const unsigned char*)"oacgr", 972},
626
+	{(const unsigned char*)"luruhar", 10598},
627
+	{(const unsigned char*)"ii", 8520},
553 628
 	{NULL, 0},
554
-	{(const unsigned char*)"Upsilon", 933},
555
-	{(const unsigned char*)"rArr", 8658},
556
-	{(const unsigned char*)"lfloor", 8970},
557
-	{(const unsigned char*)"Scaron", 352},
558
-	{(const unsigned char*)"uArr", 8657},
559
-	{(const unsigned char*)"emsp", 8195},
560
-	{(const unsigned char*)"iota", 953},
629
+	{(const unsigned char*)"telrec", 8981},
561 630
 	{NULL, 0},
562
-	{(const unsigned char*)"rfloor", 8971},
631
+	{(const unsigned char*)"DDotrahd", 10513},
632
+	{(const unsigned char*)"nle", 8816},
633
+	{(const unsigned char*)"gtrless", 8823},
563 634
 	{NULL, 0},
564
-	{(const unsigned char*)"times", 215},
635
+	{(const unsigned char*)"midcir", 10992},
636
+	{(const unsigned char*)"DownArrowBar", 10515},
565 637
 	{NULL, 0},
638
+	{(const unsigned char*)"semi", 59},
639
+	{(const unsigned char*)"Uacgr", 910},
640
+	{(const unsigned char*)"lbrace", 123},
641
+	{(const unsigned char*)"phmmat", 8499},
566 642
 	{NULL, 0},
567 643
 	{NULL, 0},
568 644
 	{NULL, 0},
569 645
 	{NULL, 0},
570
-	{(const unsigned char*)"epsilon", 949},
646
+	{(const unsigned char*)"rbrace", 125},
647
+	{(const unsigned char*)"NotCongruent", 8802},
571 648
 	{NULL, 0},
649
+	{(const unsigned char*)"shchcy", 1097},
572 650
 	{NULL, 0},
573 651
 	{NULL, 0},
574 652
 	{NULL, 0},
575 653
 	{NULL, 0},
576
-	{(const unsigned char*)"empty", 8709},
577 654
 	{NULL, 0},
578 655
 	{NULL, 0},
579 656
 	{NULL, 0},
580 657
 	{NULL, 0},
581 658
 	{NULL, 0},
659
+	{(const unsigned char*)"simdot", 10858},
582 660
 	{NULL, 0},
583
-	{(const unsigned char*)"thorn", 254},
584 661
 	{NULL, 0},
585
-	{(const unsigned char*)"minus", 8722},
586
-	{(const unsigned char*)"upsilon", 965},
587 662
 	{NULL, 0},
588
-	{(const unsigned char*)"scaron", 353},
663
+	{(const unsigned char*)"cirmid", 10991},
589 664
 	{NULL, 0},
665
+	{(const unsigned char*)"SubsetEqual", 8838},
666
+	{(const unsigned char*)"female", 9792},
590 667
 	{NULL, 0},
591 668
 	{NULL, 0},
669
+	{(const unsigned char*)"nsc", 8833},
592 670
 	{NULL, 0},
593
-	{(const unsigned char*)"Psi", 936},
594 671
 	{NULL, 0},
672
+	{(const unsigned char*)"boxVH", 9580},
595 673
 	{NULL, 0},
596 674
 	{NULL, 0},
675
+	{(const unsigned char*)"ldrushar", 10571},
676
+	{(const unsigned char*)"triangleright", 9657},
677
+	{(const unsigned char*)"gneqq", 8809},
597 678
 	{NULL, 0},
679
+	{(const unsigned char*)"DownArrow", 8595},
598 680
 	{NULL, 0},
599
-	{(const unsigned char*)"permil", 8240},
681
+	{(const unsigned char*)"backsim", 8765},
682
+	{(const unsigned char*)"lneqq", 8808},
600 683
 	{NULL, 0},
601 684
 	{NULL, 0},
602 685
 	{NULL, 0},
603 686
 	{NULL, 0},
604
-	{(const unsigned char*)"gt", 62},
687
+	{(const unsigned char*)"Sum", 8721},
605 688
 	{NULL, 0},
606 689
 	{NULL, 0},
607
-	{(const unsigned char*)"trade", 8482},
608 690
 	{NULL, 0},
609
-	{(const unsigned char*)"ge", 8805},
610 691
 	{NULL, 0},
611 692
 	{NULL, 0},
612 693
 	{NULL, 0},
613 694
 	{NULL, 0},
614
-	{(const unsigned char*)"le", 8804},
615 695
 	{NULL, 0},
616
-	{(const unsigned char*)"ne", 8800},
617 696
 	{NULL, 0},
618 697
 	{NULL, 0},
619
-	{(const unsigned char*)"exist", 8707},
620
-	{(const unsigned char*)"ordf", 170},
621 698
 	{NULL, 0},
622
-	{(const unsigned char*)"hellip", 8230},
623
-	{(const unsigned char*)"iexcl", 161},
624
-	{(const unsigned char*)"Aring", 197},
625
-	{(const unsigned char*)"psi", 968},
626 699
 	{NULL, 0},
627
-	{(const unsigned char*)"frac12", 189},
700
+	{(const unsigned char*)"fflig", 64256},
628 701
 	{NULL, 0},
702
+	{(const unsigned char*)"hardcy", 1098},
703
+	{(const unsigned char*)"nsub", 8836},
629 704
 	{NULL, 0},
705
+	{(const unsigned char*)"napprox", 8777},
706
+	{(const unsigned char*)"caret", 8257},
630 707
 	{NULL, 0},
708
+	{(const unsigned char*)"succneqq", 10934},
709
+	{(const unsigned char*)"frac13", 8531},
631 710
 	{NULL, 0},
632 711
 	{NULL, 0},
633
-	{(const unsigned char*)"oline", 8254},
634 712
 	{NULL, 0},
635 713
 	{NULL, 0},
636
-	{(const unsigned char*)"apos	", 39},
714
+	{(const unsigned char*)"num", 35},
715
+	{(const unsigned char*)"emsp14", 8197},
637 716
 	{NULL, 0},
638 717
 	{NULL, 0},
639
-	{(const unsigned char*)"upsih", 978},
640
-	{(const unsigned char*)"frasl", 8260},
641 718
 	{NULL, 0},
642
-	{(const unsigned char*)"Ccedil", 199},
719
+	{(const unsigned char*)"sum", 8721},
643 720
 	{NULL, 0},
721
+	{(const unsigned char*)"Cconint", 8752},
644 722
 	{NULL, 0},
723
+	{(const unsigned char*)"blacktriangleright", 9656},
645 724
 	{NULL, 0},
725
+	{(const unsigned char*)"SupersetEqual", 8839},
726
+	{(const unsigned char*)"sim", 8764},
646 727
 	{NULL, 0},
647 728
 	{NULL, 0},
729
+	{(const unsigned char*)"LeftFloor", 8970},
648 730
 	{NULL, 0},
731
+	{(const unsigned char*)"RightTriangleEqual", 8885},
649 732
 	{NULL, 0},
733
+	{(const unsigned char*)"boxDr", 9555},
650 734
 	{NULL, 0},
735
+	{(const unsigned char*)"plus", 43},
651 736
 	{NULL, 0},
652 737
 	{NULL, 0},
738
+	{(const unsigned char*)"phiv", 966},
653 739
 	{NULL, 0},
740
+	{(const unsigned char*)"npr", 8832},
741
+	{(const unsigned char*)"RightCeiling", 8969},
742
+	{(const unsigned char*)"phone", 9742},
654 743
 	{NULL, 0},
655
-	{(const unsigned char*)"perp", 8869},
656
-	{(const unsigned char*)"aring", 229},
657
-	{(const unsigned char*)"Prime", 8243},
658 744
 	{NULL, 0},
745
+	{(const unsigned char*)"mnplus", 8723},
659 746
 	{NULL, 0},
747
+	{(const unsigned char*)"vDash", 8872},
660 748
 	{NULL, 0},
661
-	{(const unsigned char*)"notin", 8713},
662 749
 	{NULL, 0},
663 750
 	{NULL, 0},
751
+	{(const unsigned char*)"isindot", 8949},
664 752
 	{NULL, 0},
665 753
 	{NULL, 0},
754
+	{(const unsigned char*)"PSgr", 936},
666 755
 	{NULL, 0},
667
-	{(const unsigned char*)"AElig", 198},
668 756
 	{NULL, 0},
757
+	{(const unsigned char*)"ntriangleleft", 8938},
758
+	{(const unsigned char*)"image", 8465},
759
+	{NULL, 0},
760
+	{NULL, 0},
761
+	{NULL, 0},
762
+	{NULL, 0},
763
+	{NULL, 0},
764
+	{NULL, 0},
765
+	{NULL, 0},
766
+	{NULL, 0},
767
+	{(const unsigned char*)"boxh", 9472},
768
+	{NULL, 0},
769
+	{NULL, 0},
770
+	{NULL, 0},
771
+	{NULL, 0},
772
+	{NULL, 0},
773
+	{NULL, 0},
774
+	{(const unsigned char*)"RightDownVector", 8642},
775
+	{(const unsigned char*)"scpolint", 10771},
776
+	{(const unsigned char*)"boxdL", 9557},
777
+	{NULL, 0},
778
+	{NULL, 0},
779
+	{NULL, 0},
780
+	{NULL, 0},
781
+	{(const unsigned char*)"RightUpTeeVector", 10588},
782
+	{NULL, 0},
783
+	{(const unsigned char*)"TSHcy", 1035},
784
+	{(const unsigned char*)"longmapsto", 10236},
785
+	{(const unsigned char*)"doublebarwedge", 8966},
786
+	{(const unsigned char*)"frasl", 8260},
669 787
 	{NULL, 0},
788
+	{(const unsigned char*)"DoubleLongRightArrow", 10233},
789
+	{(const unsigned char*)"gnE", 8809},
670 790
 	{NULL, 0},
791
+	{(const unsigned char*)"lnE", 8808},
792
+	{NULL, 0},
793
+	{NULL, 0},
794
+	{NULL, 0},
795
+	{(const unsigned char*)"exponentiale", 8519},
796
+	{NULL, 0},
797
+	{(const unsigned char*)"larrfs", 10525},
798
+	{(const unsigned char*)"NotDoubleVerticalBar", 8742},
799
+	{NULL, 0},
800
+	{(const unsigned char*)"curlywedge", 8911},
801
+	{NULL, 0},
802
+	{NULL, 0},
803
+	{(const unsigned char*)"rarrfs", 10526},
804
+	{(const unsigned char*)"quatint", 10774},
805
+	{NULL, 0},
806
+	{(const unsigned char*)"frac58", 8541},
807
+	{NULL, 0},
808
+	{NULL, 0},
809
+	{NULL, 0},
810
+	{(const unsigned char*)"gtreqless", 8923},
811
+	{NULL, 0},
812
+	{NULL, 0},
813
+	{(const unsigned char*)"PrecedesSlantEqual", 8828},
814
+	{NULL, 0},
815
+	{(const unsigned char*)"DotEqual", 8784},
671 816
 	{(const unsigned char*)"iquest", 191},
672
-	{(const unsigned char*)"ccedil", 231},
673 817
 	{NULL, 0},
674 818
 	{NULL, 0},
675 819
 	{NULL, 0},
676 820
 	{NULL, 0},
677 821
 	{NULL, 0},
678
-	{(const unsigned char*)"divide", 247},
679 822
 	{NULL, 0},
680 823
 	{NULL, 0},
681
-	{(const unsigned char*)"OElig", 338},
682 824
 	{NULL, 0},
683
-	{(const unsigned char*)"image", 8465},
825
+	{(const unsigned char*)"NotEqual", 8800},
684 826
 	{NULL, 0},
827
+	{(const unsigned char*)"barwedge", 8965},
828
+	{(const unsigned char*)"b.gammad", 989},
685 829
 	{NULL, 0},
830
+	{(const unsigned char*)"block", 9608},
686 831
 	{NULL, 0},
832
+	{(const unsigned char*)"strns", 175},
687 833
 	{NULL, 0},
834
+	{(const unsigned char*)"prod", 8719},
835
+	{(const unsigned char*)"cupre", 8828},
688 836
 	{NULL, 0},
689
-	{(const unsigned char*)"prime", 8242},
690 837
 	{NULL, 0},
691
-	{(const unsigned char*)"Oslash", 216},
692 838
 	{NULL, 0},
839
+	{(const unsigned char*)"SquareUnion", 8852},
840
+	{(const unsigned char*)"Auml", 196},
693 841
 	{NULL, 0},
694
-	{(const unsigned char*)"weierp", 8472},
842
+	{(const unsigned char*)"upuparrows", 8648},
695 843
 	{NULL, 0},
844
+	{(const unsigned char*)"Euml", 203},
845
+	{(const unsigned char*)"HorizontalLine", 9472},
696 846
 	{NULL, 0},
697 847
 	{NULL, 0},
848
+	{(const unsigned char*)"Iuml", 207},
849
+	{(const unsigned char*)"nvrArr", 10499},
850
+	{(const unsigned char*)"bullet", 8226},
851
+	{(const unsigned char*)"ClockwiseContourIntegral", 8754},
698 852
 	{NULL, 0},
699
-	{(const unsigned char*)"fnof", 402},
700
-	{(const unsigned char*)"cedil", 184},
853
+	{(const unsigned char*)"prop", 8733},
854
+	{(const unsigned char*)"Ouml", 214},
701 855
 	{NULL, 0},
702
-	{(const unsigned char*)"eth", 240},
856
+	{(const unsigned char*)"chcy", 1095},
857
+	{(const unsigned char*)"quaternions", 8461},
858
+	{(const unsigned char*)"beth", 8502},
859
+	{(const unsigned char*)"macr", 175},
860
+	{(const unsigned char*)"Uuml", 220},
703 861
 	{NULL, 0},
704 862
 	{NULL, 0},
705 863
 	{NULL, 0},
864
+	{(const unsigned char*)"khcy", 1093},
865
+	{(const unsigned char*)"Star", 8902},
866
+	{(const unsigned char*)"copysr", 8471},
867
+	{(const unsigned char*)"Yuml", 376},
706 868
 	{NULL, 0},
869
+	{(const unsigned char*)"curren", 164},
707 870
 	{NULL, 0},
871
+	{(const unsigned char*)"Square", 9633},
872
+	{(const unsigned char*)"shcy", 1096},
873
+	{(const unsigned char*)"auml", 228},
708 874
 	{NULL, 0},
875
+	{(const unsigned char*)"boxUR", 9562},
876
+	{(const unsigned char*)"uml", 168},
877
+	{(const unsigned char*)"euml", 235},
709 878
 	{NULL, 0},
879
+	{(const unsigned char*)"zhcy", 1078},
880
+	{(const unsigned char*)"iuml", 239},
710 881
 	{NULL, 0},
711
-	{(const unsigned char*)"not", 172},
712
-	{(const unsigned char*)"sub", 8834},
882
+	{(const unsigned char*)"Backslash", 8726},
883
+	{(const unsigned char*)"square", 9633},
713 884
 	{NULL, 0},
885
+	{(const unsigned char*)"sqsube", 8849},
886
+	{(const unsigned char*)"ouml", 246},
714 887
 	{NULL, 0},
888
+	{(const unsigned char*)"Tilde", 8764},
715 889
 	{NULL, 0},
716 890
 	{NULL, 0},
891
+	{(const unsigned char*)"prap", 10935},
892
+	{(const unsigned char*)"uuml", 252},
893
+	{(const unsigned char*)"cire", 8791},
717 894
 	{NULL, 0},
718
-	{(const unsigned char*)"equiv", 8801},
895
+	{(const unsigned char*)"dzigrarr", 10239},
896
+	{(const unsigned char*)"yuml", 255},
897
+	{(const unsigned char*)"star", 9734},
898
+	{(const unsigned char*)"sqsubseteq", 8849},
719 899
 	{NULL, 0},
720 900
 	{NULL, 0},
721 901
 	{NULL, 0},
902
+	{(const unsigned char*)"fork", 8916},
903
+	{(const unsigned char*)"supsetneqq", 10956},
722 904
 	{NULL, 0},
723
-	{(const unsigned char*)"oslash", 248},
724
-	{(const unsigned char*)"cong", 8773},
725 905
 	{NULL, 0},
726 906
 	{NULL, 0},
727 907
 	{NULL, 0},
728
-	{(const unsigned char*)"otimes", 8855},
729 908
 	{NULL, 0},
909
+	{(const unsigned char*)"DoubleDownArrow", 8659},
730 910
 	{NULL, 0},
911
+	{(const unsigned char*)"dharr", 8642},
912
+	{(const unsigned char*)"lagran", 8466},
731 913
 	{NULL, 0},
732
-	{(const unsigned char*)"lowast", 8727},
914
+	{(const unsigned char*)"lrhard", 10605},
733 915
 	{NULL, 0},
734 916
 	{NULL, 0},
735 917
 	{NULL, 0},
736 918
 	{NULL, 0},
919
+	{(const unsigned char*)"downharpoonleft", 8643},
920
+	{(const unsigned char*)"tilde", 732},
921
+	{(const unsigned char*)"nharr", 8622},
737 922
 	{NULL, 0},
738 923
 	{NULL, 0},
739 924
 	{NULL, 0},
740 925
 	{NULL, 0},
741 926
 	{NULL, 0},
927
+	{(const unsigned char*)"puncsp", 8200},
928
+	{(const unsigned char*)"uharr", 8638},
929
+	{(const unsigned char*)"boxHu", 9575},
930
+	{(const unsigned char*)"models", 8871},
931
+	{(const unsigned char*)"xharr", 10231},
932
+	{(const unsigned char*)"nparallel", 8742},
742 933
 	{NULL, 0},
934
+	{(const unsigned char*)"Proportional", 8733},
743 935
 	{NULL, 0},
936
+	{(const unsigned char*)"ltrif", 9666},
744 937
 	{NULL, 0},
938
+	{(const unsigned char*)"dtrif", 9662},
745 939
 	{NULL, 0},
746 940
 	{NULL, 0},
941
+	{(const unsigned char*)"subsetneqq", 10955},
942
+	{(const unsigned char*)"NotGreaterEqual", 8817},
943
+	{(const unsigned char*)"rtrif", 9656},
747 944
 	{NULL, 0},
945
+	{(const unsigned char*)"utrif", 9652},
946
+	{(const unsigned char*)"boxvl", 9508},
947
+	{(const unsigned char*)"curvearrowleft", 8630},
948
+	{(const unsigned char*)"lessapprox", 10885},
949
+	{(const unsigned char*)"scnE", 10934},
950
+	{(const unsigned char*)"thetasym", 977},
748 951
 	{NULL, 0},
749
-	{(const unsigned char*)"Gamma", 915},
750 952
 	{NULL, 0},
953
+	{(const unsigned char*)"ExponentialE", 8519},
954
+	{(const unsigned char*)"andv", 10842},
751 955
 	{NULL, 0},
752 956
 	{NULL, 0},
957
+	{(const unsigned char*)"mapstodown", 8615},
753 958
 	{NULL, 0},
754 959
 	{NULL, 0},
960
+	{(const unsigned char*)"DownLeftVector", 8637},
961
+	{(const unsigned char*)"rightharpoonup", 8640},
962
+	{(const unsigned char*)"mapsto", 8614},
963
+	{(const unsigned char*)"Lang", 12298},
964
+	{(const unsigned char*)"SquareSuperset", 8848},
965
+	{(const unsigned char*)"rightsquigarrow", 8605},
755 966
 	{NULL, 0},
756 967
 	{NULL, 0},
968
+	{(const unsigned char*)"Rang", 12299},
757 969
 	{NULL, 0},
758 970
 	{NULL, 0},
759 971
 	{NULL, 0},
... ...
@@ -766,34 +2763,324 @@ static struct element entities_htable_elements[] = {
766 766
 	{NULL, 0},
767 767
 	{NULL, 0},
768 768
 	{NULL, 0},
769
+	{(const unsigned char*)"sigmav", 962},
769 770
 	{NULL, 0},
770 771
 	{NULL, 0},
771 772
 	{NULL, 0},
773
+	{(const unsigned char*)"SquareIntersection", 8851},
772 774
 	{NULL, 0},
773 775
 	{NULL, 0},
774
-	{(const unsigned char*)"sbquo", 8218},
776
+	{(const unsigned char*)"downharpoonright", 8642},
775 777
 	{NULL, 0},
776 778
 	{NULL, 0},
777 779
 	{NULL, 0},
778 780
 	{NULL, 0},
779 781
 	{NULL, 0},
782
+	{(const unsigned char*)"lang", 9001},
783
+	{(const unsigned char*)"compfn", 8728},
780 784
 	{NULL, 0},
781
-	{(const unsigned char*)"gamma", 947},
782
-	{(const unsigned char*)"and", 8743},
783
-	{(const unsigned char*)"cup", 8746},
784 785
 	{NULL, 0},
785 786
 	{NULL, 0},
786 787
 	{NULL, 0},
787
-	{(const unsigned char*)"Theta", 920},
788
+	{(const unsigned char*)"rang", 9002},
788 789
 	{NULL, 0},
790
+	{(const unsigned char*)"Leftrightarrow", 8660},
789 791
 	{NULL, 0},
790 792
 	{NULL, 0},
791 793
 	{NULL, 0},
794
+	{(const unsigned char*)"ReverseEquilibrium", 8651},
792 795
 	{NULL, 0},
796
+	{(const unsigned char*)"Rightarrow", 8658},
797
+	{(const unsigned char*)"planck", 8463},
793 798
 	{NULL, 0},
794
-	{(const unsigned char*)"macr", 175},
795
-	{(const unsigned char*)"acute", 180},
799
+	{NULL, 0},
800
+	{(const unsigned char*)"KHgr", 935},
801
+	{NULL, 0},
802
+	{NULL, 0},
803
+	{NULL, 0},
804
+	{(const unsigned char*)"OHgr", 937},
805
+	{(const unsigned char*)"PHgr", 934},
806
+	{NULL, 0},
807
+	{(const unsigned char*)"sqsup", 8848},
808
+	{NULL, 0},
809
+	{(const unsigned char*)"THgr", 920},
810
+	{NULL, 0},
811
+	{(const unsigned char*)"rppolint", 10770},
812
+	{NULL, 0},
813
+	{NULL, 0},
814
+	{(const unsigned char*)"gtrapprox", 10886},
815
+	{(const unsigned char*)"LongLeftRightArrow", 10231},
816
+	{NULL, 0},
817
+	{(const unsigned char*)"iinfin", 10716},
818
+	{NULL, 0},
819
+	{NULL, 0},
820
+	{(const unsigned char*)"frac16", 8537},
821
+	{NULL, 0},
822
+	{(const unsigned char*)"leftrightarrow", 8596},
823
+	{NULL, 0},
824
+	{NULL, 0},
825
+	{NULL, 0},
826
+	{NULL, 0},
827
+	{NULL, 0},
828
+	{(const unsigned char*)"rightarrow", 8594},
829
+	{(const unsigned char*)"risingdotseq", 8787},
830
+	{NULL, 0},
831
+	{(const unsigned char*)"blacksquare", 9642},
832
+	{NULL, 0},
833
+	{NULL, 0},
834
+	{NULL, 0},
835
+	{NULL, 0},
836
+	{NULL, 0},
837
+	{NULL, 0},
838
+	{NULL, 0},
839
+	{NULL, 0},
840
+	{(const unsigned char*)"DotDot", 8412},
841
+	{NULL, 0},
842
+	{NULL, 0},
843
+	{NULL, 0},
844
+	{NULL, 0},
845
+	{NULL, 0},
846
+	{(const unsigned char*)"radic", 8730},
847
+	{NULL, 0},
848
+	{NULL, 0},
849
+	{NULL, 0},
850
+	{NULL, 0},
851
+	{NULL, 0},
852
+	{(const unsigned char*)"nRightarrow", 8655},
853
+	{NULL, 0},
854
+	{(const unsigned char*)"reals", 8477},
855
+	{NULL, 0},
856
+	{NULL, 0},
857
+	{NULL, 0},
858
+	{NULL, 0},
859
+	{(const unsigned char*)"varphi", 966},
860
+	{NULL, 0},
861
+	{(const unsigned char*)"DownRightVector", 8641},
862
+	{(const unsigned char*)"Equal", 10869},
863
+	{(const unsigned char*)"NotCupCap", 8813},
864
+	{NULL, 0},
865
+	{NULL, 0},
866
+	{(const unsigned char*)"SucceedsTilde", 8831},
867
+	{NULL, 0},
868
+	{(const unsigned char*)"Succeeds", 8827},
869
+	{(const unsigned char*)"dotplus", 8724},
870
+	{NULL, 0},
871
+	{NULL, 0},
872
+	{NULL, 0},
873
+	{NULL, 0},
874
+	{(const unsigned char*)"notniva", 8716},
875
+	{NULL, 0},
876
+	{NULL, 0},
877
+	{NULL, 0},
878
+	{NULL, 0},
879
+	{NULL, 0},
880
+	{NULL, 0},
881
+	{NULL, 0},
882
+	{NULL, 0},
883
+	{NULL, 0},
884
+	{NULL, 0},
885
+	{(const unsigned char*)"looparrowright", 8620},
886
+	{(const unsigned char*)"ggg", 8921},
887
+	{(const unsigned char*)"EmptySmallSquare", 9723},
888
+	{NULL, 0},
889
+	{(const unsigned char*)"nrtri", 8939},
890
+	{NULL, 0},
891
+	{NULL, 0},
892
+	{(const unsigned char*)"oS", 9416},
893
+	{NULL, 0},
894
+	{NULL, 0},
895
+	{(const unsigned char*)"IEcy", 1045},
896
+	{NULL, 0},
897
+	{(const unsigned char*)"succeq", 10928},
898
+	{(const unsigned char*)"vrtri", 8883},
899
+	{(const unsigned char*)"DownTeeArrow", 8615},
900
+	{NULL, 0},
901
+	{(const unsigned char*)"frac45", 8536},
902
+	{NULL, 0},
903
+	{NULL, 0},
904
+	{NULL, 0},
905
+	{NULL, 0},
906
+	{NULL, 0},
907
+	{(const unsigned char*)"dblac", 733},
908
+	{NULL, 0},
909
+	{(const unsigned char*)"blk14", 9617},
910
+	{NULL, 0},
911
+	{(const unsigned char*)"lesseqqgtr", 10891},
912
+	{NULL, 0},
913
+	{NULL, 0},
914
+	{NULL, 0},
915
+	{(const unsigned char*)"yucy", 1102},
916
+	{NULL, 0},
917
+	{NULL, 0},
918
+	{NULL, 0},
919
+	{NULL, 0},
920
+	{NULL, 0},
921
+	{NULL, 0},
922
+	{(const unsigned char*)"yicy", 1111},
923
+	{NULL, 0},
924
+	{(const unsigned char*)"gne", 10888},
925
+	{NULL, 0},
926
+	{NULL, 0},
927
+	{NULL, 0},
928
+	{NULL, 0},
929
+	{(const unsigned char*)"udhar", 10606},
930
+	{(const unsigned char*)"UnionPlus", 8846},
931
+	{(const unsigned char*)"blank", 9251},
932
+	{(const unsigned char*)"lne", 10887},
933
+	{NULL, 0},
934
+	{NULL, 0},
935
+	{NULL, 0},
936
+	{NULL, 0},
937
+	{NULL, 0},
938
+	{(const unsigned char*)"NotTildeFullEqual", 8775},
939
+	{(const unsigned char*)"supE", 10950},
940
+	{NULL, 0},
941
+	{(const unsigned char*)"PlusMinus", 177},
942
+	{NULL, 0},
943
+	{NULL, 0},
944
+	{(const unsigned char*)"GreaterTilde", 8819},
945
+	{NULL, 0},
946
+	{NULL, 0},
947
+	{NULL, 0},
948
+	{(const unsigned char*)"duarr", 8693},
949
+	{NULL, 0},
950
+	{NULL, 0},
951
+	{NULL, 0},
952
+	{(const unsigned char*)"LeftDoubleBracket", 12314},
953
+	{NULL, 0},
954
+	{NULL, 0},
955
+	{(const unsigned char*)"CounterClockwiseContourIntegral", 8755},
956
+	{NULL, 0},
957
+	{NULL, 0},
958
+	{NULL, 0},
959
+	{NULL, 0},
960
+	{(const unsigned char*)"natural", 9838},
961
+	{NULL, 0},
962
+	{NULL, 0},
963
+	{NULL, 0},
964
+	{NULL, 0},
965
+	{(const unsigned char*)"uuarr", 8648},
966
+	{(const unsigned char*)"biguplus", 10756},
967
+	{NULL, 0},
968
+	{NULL, 0},
969
+	{NULL, 0},
970
+	{NULL, 0},
971
+	{NULL, 0},
972
+	{NULL, 0},
973
+	{(const unsigned char*)"DownLeftVectorBar", 10582},
974
+	{NULL, 0},
975
+	{NULL, 0},
976
+	{(const unsigned char*)"subE", 10949},
977
+	{NULL, 0},
978
+	{NULL, 0},
979
+	{(const unsigned char*)"part", 8706},
980
+	{(const unsigned char*)"drcorn", 8991},
981
+	{(const unsigned char*)"horbar", 8213},
982
+	{(const unsigned char*)"sbsol", 65128},
983
+	{(const unsigned char*)"varrho", 1009},
984
+	{NULL, 0},
985
+	{NULL, 0},
986
+	{(const unsigned char*)"cudarrl", 10552},
987
+	{NULL, 0},
988
+	{NULL, 0},
989
+	{(const unsigned char*)"boxul", 9496},
990
+	{NULL, 0},
991
+	{NULL, 0},
992
+	{NULL, 0},
993
+	{NULL, 0},
994
+	{NULL, 0},
995
+	{(const unsigned char*)"ordm", 186},
996
+	{NULL, 0},
997
+	{(const unsigned char*)"urcorn", 8989},
998
+	{NULL, 0},
999
+	{NULL, 0},
1000
+	{NULL, 0},
1001
+	{NULL, 0},
1002
+	{(const unsigned char*)"dotminus", 8760},
1003
+	{(const unsigned char*)"scnsim", 8937},
1004
+	{(const unsigned char*)"andslope", 10840},
1005
+	{(const unsigned char*)"Cfr", 8493},
1006
+	{NULL, 0},
1007
+	{NULL, 0},
1008
+	{(const unsigned char*)"rightthreetimes", 8908},
1009
+	{(const unsigned char*)"Hfr", 8460},
1010
+	{(const unsigned char*)"sqsubset", 8847},
1011
+	{(const unsigned char*)"lAtail", 10523},
1012
+	{(const unsigned char*)"rightleftharpoons", 8652},
1013
+	{(const unsigned char*)"Ifr", 8465},
1014
+	{(const unsigned char*)"infintie", 10717},
1015
+	{NULL, 0},
1016
+	{NULL, 0},
1017
+	{(const unsigned char*)"rAtail", 10524},
1018
+	{(const unsigned char*)"scnap", 10938},
1019
+	{(const unsigned char*)"lharul", 10602},
1020
+	{(const unsigned char*)"Rfr", 8476},
1021
+	{NULL, 0},
1022
+	{NULL, 0},
1023
+	{NULL, 0},
1024
+	{(const unsigned char*)"parallel", 8741},
1025
+	{(const unsigned char*)"rharul", 10604},
1026
+	{NULL, 0},
1027
+	{(const unsigned char*)"Zfr", 8488},
1028
+	{(const unsigned char*)"RuleDelayed", 10740},
1029
+	{NULL, 0},
1030
+	{NULL, 0},
1031
+	{NULL, 0},
1032
+	{NULL, 0},
1033
+	{(const unsigned char*)"RightArrowLeftArrow", 8644},
1034
+	{(const unsigned char*)"profsurf", 8979},
1035
+	{(const unsigned char*)"nsupseteq", 8841},
1036
+	{(const unsigned char*)"nearhk", 10532},
1037
+	{NULL, 0},
1038
+	{NULL, 0},
1039
+	{(const unsigned char*)"triangledown", 9663},
1040
+	{NULL, 0},
1041
+	{(const unsigned char*)"searhk", 10533},
1042
+	{(const unsigned char*)"empty", 8709},
1043
+	{NULL, 0},
1044
+	{(const unsigned char*)"DoubleUpArrow", 8657},
1045
+	{(const unsigned char*)"checkmark", 10003},
1046
+	{NULL, 0},
1047
+	{(const unsigned char*)"succapprox", 10936},
1048
+	{NULL, 0},
1049
+	{(const unsigned char*)"Cap", 8914},
1050
+	{(const unsigned char*)"RightTriangle", 8883},
1051
+	{NULL, 0},
1052
+	{(const unsigned char*)"tosa", 10537},
1053
+	{(const unsigned char*)"RightUpVector", 8638},
1054
+	{NULL, 0},
1055
+	{(const unsigned char*)"boxVL", 9571},
1056
+	{(const unsigned char*)"ecolon", 8789},
1057
+	{NULL, 0},
1058
+	{NULL, 0},
1059
+	{(const unsigned char*)"Map", 10501},
1060
+	{NULL, 0},
1061
+	{NULL, 0},
1062
+	{(const unsigned char*)"lbrack", 91},
1063
+	{(const unsigned char*)"THORN", 222},
1064
+	{(const unsigned char*)"DownArrowUpArrow", 8693},
1065
+	{NULL, 0},
1066
+	{NULL, 0},
1067
+	{NULL, 0},
1068
+	{(const unsigned char*)"rbrack", 93},
1069
+	{NULL, 0},
1070
+	{NULL, 0},
1071
+	{(const unsigned char*)"DiacriticalTilde", 732},
1072
+	{(const unsigned char*)"amp", 38},
1073
+	{(const unsigned char*)"rlhar2", 8652},
1074
+	{NULL, 0},
1075
+	{(const unsigned char*)"bcong", 8780},
1076
+	{NULL, 0},
1077
+	{NULL, 0},
1078
+	{(const unsigned char*)"exist", 8707},
1079
+	{(const unsigned char*)"ord", 10845},
1080
+	{NULL, 0},
1081
+	{(const unsigned char*)"cap", 8745},
1082
+	{(const unsigned char*)"eeacgr", 942},
1083
+	{(const unsigned char*)"PrecedesTilde", 8830},
1084
+	{(const unsigned char*)"divideontimes", 8903},
1085
+	{(const unsigned char*)"Precedes", 8826},
796 1086
 };
797 1087
 const struct hashtable entities_htable = {
798
-	entities_htable_elements, 769, 253, 615
1088
+	entities_htable_elements, 3079, 1643, 2463
799 1089
 };
... ...
@@ -249,9 +249,10 @@ static int hashtab_grow(struct hashtable *s)
249 249
 		if(s->htable[i].key && s->htable[i].key != DELETED_KEY) {
250 250
 			struct element* element;
251 251
 			size_t tries = 0;
252
+			
252 253
 
253 254
 			PROFILE_CALC_HASH(s);
254
-			idx = hash(s->htable[i].key, strlen((const char*)s->htable[i].key), s->capacity);
255
+			idx = hash(s->htable[i].key, strlen((const char*)s->htable[i].key), new_capacity);
255 256
 			element = &htable[idx];
256 257
 
257 258
 			while(element->key && tries <= new_capacity) {
... ...
@@ -309,12 +310,12 @@ int hashtab_insert(struct hashtable *s,const unsigned char* key,const size_t len
309 309
 				thekey = cli_malloc(len+1);
310 310
 				if(!thekey)
311 311
 					return CL_EMEM;
312
-				strncpy((char*)thekey,(const char*)key,len);
312
+				strncpy((char*)thekey,(const char*)key,len+1);
313 313
 				element->key = thekey;
314 314
 				element->data = data;
315 315
 				s->used++;		
316 316
 				if(s->used > s->maxfill) {
317
-					cli_dbgmsg("hashtab.c:Growing hashtable %x, because it has exceeded maxfill, old size:%ld\n",s->capacity);
317
+					cli_dbgmsg("hashtab.c:Growing hashtable %p, because it has exceeded maxfill, old size:%ld\n",s,s->capacity);
318 318
 					hashtab_grow(s);
319 319
 				}
320 320
 				return 0;