diff --git a/mozilla/content/base/src/nsHTMLContentSerializer.cpp b/mozilla/content/base/src/nsHTMLContentSerializer.cpp
index 8beab61fa5f..a87f7594a92 100644
--- a/mozilla/content/base/src/nsHTMLContentSerializer.cpp
+++ b/mozilla/content/base/src/nsHTMLContentSerializer.cpp
@@ -935,6 +935,8 @@ nsHTMLContentSerializer::AppendToString(const nsAString& aStr,
iter != done_reading;
iter.advance(PRInt32(advanceLength))) {
PRUint32 fragmentLength = iter.size_forward();
+ PRUint32 lengthReplaced = 0; // the number of UTF-16 codepoints
+ // replaced by a particular entity
const PRUnichar* c = iter.get();
const PRUnichar* fragmentStart = c;
const PRUnichar* fragmentEnd = c + fragmentLength;
@@ -962,15 +964,32 @@ nsHTMLContentSerializer::AppendToString(const nsAString& aStr,
if (!entityReplacement.IsEmpty()) {
entityText = entityReplacement.get();
+ lengthReplaced = 1;
break;
}
}
else if (val > 127 &&
mFlags & nsIDocumentEncoder::OutputEncodeW3CEntities &&
- mEntityConverter &&
- NS_SUCCEEDED(mEntityConverter->ConvertToEntity(val,
- nsIEntityConverter::entityW3C, &fullEntityText))) {
- break;
+ mEntityConverter) {
+ if (IS_HIGH_SURROGATE(val) &&
+ c + 1 < fragmentEnd &&
+ IS_LOW_SURROGATE(*(c + 1))) {
+ PRUint32 valUTF32 = SURROGATE_TO_UCS4(val, *(++c));
+ if (NS_SUCCEEDED(mEntityConverter->ConvertUTF32ToEntity(valUTF32,
+ nsIEntityConverter::entityW3C, &fullEntityText))) {
+ lengthReplaced = 2;
+ break;
+ }
+ else {
+ advanceLength++;
+ }
+ }
+ else if (NS_SUCCEEDED(mEntityConverter->ConvertToEntity(val,
+ nsIEntityConverter::entityW3C,
+ &fullEntityText))) {
+ lengthReplaced = 1;
+ break;
+ }
}
}
@@ -979,13 +998,13 @@ nsHTMLContentSerializer::AppendToString(const nsAString& aStr,
aOutputStr.Append(PRUnichar('&'));
AppendASCIItoUTF16(entityText, aOutputStr);
aOutputStr.Append(PRUnichar(';'));
- advanceLength++;
+ advanceLength += lengthReplaced;
}
// if it comes from nsIEntityConverter, it already has '&' and ';'
else if (fullEntityText) {
AppendASCIItoUTF16(fullEntityText, aOutputStr);
nsMemory::Free(fullEntityText);
- advanceLength++;
+ advanceLength += lengthReplaced;
}
}
} else {
diff --git a/mozilla/intl/unicharutil/idl/nsIEntityConverter.idl b/mozilla/intl/unicharutil/idl/nsIEntityConverter.idl
index 0b2fb5170f5..3c3118928b9 100644
--- a/mozilla/intl/unicharutil/idl/nsIEntityConverter.idl
+++ b/mozilla/intl/unicharutil/idl/nsIEntityConverter.idl
@@ -38,8 +38,8 @@
#include "nsISupports.idl"
%{C++
-// {8C4506A1-55E6-11d3-91D9-00105AA3F7DC}
-#define NS_ENTITYCONVERTER_CID { 0x8c4506a1, 0x55e6, 0x11d3, {0x91, 0xd9, 0x0, 0x10, 0x5a, 0xa3, 0xf7, 0xdc}}
+// {9E9B565A-8E52-4C1A-8805-B2B91655F874}
+#define NS_ENTITYCONVERTER_CID { 0x9e9b565a, 0x8e52, 0x4c1a, {0x88, 0x05, 0xb2, 0xb9, 0x16, 0x55, 0xf8, 0x74}}
#define NS_ENTITYCONVERTER_CONTRACTID "@mozilla.org/intl/entityconverter;1"
%}
@@ -56,6 +56,7 @@ interface nsIEntityConverter : nsISupports
const unsigned long html40 = html40Latin1+html40Symbols+html40Special;
const unsigned long entityW3C = html40+mathml20;
+ string ConvertUTF32ToEntity(in unsigned long character, in unsigned long entityVersion);
string ConvertToEntity(in wchar character, in unsigned long entityVersion);
wstring ConvertToEntities(in wstring inString, in unsigned long entityVersion);
diff --git a/mozilla/intl/unicharutil/src/nsEntityConverter.cpp b/mozilla/intl/unicharutil/src/nsEntityConverter.cpp
index 97195dedc11..759765a009e 100644
--- a/mozilla/intl/unicharutil/src/nsEntityConverter.cpp
+++ b/mozilla/intl/unicharutil/src/nsEntityConverter.cpp
@@ -44,6 +44,7 @@
#include "nsLiteralString.h"
#include "nsXPIDLString.h"
#include "nsString.h"
+#include "nsUnicharUtils.h"
//
// implementation methods
@@ -179,6 +180,12 @@ NS_IMPL_ISUPPORTS1(nsEntityConverter,nsIEntityConverter)
//
NS_IMETHODIMP
nsEntityConverter::ConvertToEntity(PRUnichar character, PRUint32 entityVersion, char **_retval)
+{
+ return ConvertUTF32ToEntity((PRUint32)character, entityVersion, _retval);
+}
+
+NS_IMETHODIMP
+nsEntityConverter::ConvertUTF32ToEntity(PRUint32 character, PRUint32 entityVersion, char **_retval)
{
NS_ASSERTION(_retval, "null ptr- _retval");
if(nsnull == _retval)
@@ -226,7 +233,14 @@ nsEntityConverter::ConvertToEntities(const PRUnichar *inString, PRUint32 entityV
PRUint32 len = nsCRT::strlen(inString);
for (PRUint32 i = 0; i < len; i++) {
nsAutoString key(NS_LITERAL_STRING("entity."));
- key.AppendInt(inString[i],10);
+ if (IS_HIGH_SURROGATE(inString[i]) &&
+ i + 2 < len &&
+ IS_LOW_SURROGATE(inString[i + 1])) {
+ key.AppendInt(SURROGATE_TO_UCS4(inString[i], inString[++i]), 10);
+ }
+ else {
+ key.AppendInt(inString[i],10);
+ }
nsXPIDLString value;
diff --git a/mozilla/intl/unicharutil/src/nsEntityConverter.h b/mozilla/intl/unicharutil/src/nsEntityConverter.h
index 3a584e0628c..0822473ccb0 100644
--- a/mozilla/intl/unicharutil/src/nsEntityConverter.h
+++ b/mozilla/intl/unicharutil/src/nsEntityConverter.h
@@ -72,6 +72,7 @@ public:
//
// nsIEntityConverter
//
+ NS_IMETHOD ConvertUTF32ToEntity(PRUint32 character, PRUint32 entityVersion, char **_retval);
NS_IMETHOD ConvertToEntity(PRUnichar character, PRUint32 entityVersion, char **_retval);
NS_IMETHOD ConvertToEntities(const PRUnichar *inString, PRUint32 entityVersion, PRUnichar **_retval);
diff --git a/mozilla/intl/unicharutil/src/nsSaveAsCharset.cpp b/mozilla/intl/unicharutil/src/nsSaveAsCharset.cpp
index 8a8f4532b22..9e4dd9e9e96 100644
--- a/mozilla/intl/unicharutil/src/nsSaveAsCharset.cpp
+++ b/mozilla/intl/unicharutil/src/nsSaveAsCharset.cpp
@@ -315,10 +315,9 @@ nsSaveAsCharset::DoConversionFallBack(PRUint32 inUCS4, char *outString, PRInt32
if (ATTR_NO_FALLBACK(mAttribute)) {
return NS_OK;
}
- if (attr_EntityAfterCharsetConv == MASK_ENTITY(mAttribute) &&
- !(inUCS4 & 0xff0000) ) {
+ if (attr_EntityAfterCharsetConv == MASK_ENTITY(mAttribute)) {
char *entity = NULL;
- rv = mEntityConverter->ConvertToEntity((PRUnichar)inUCS4, mEntityVersion, &entity);
+ rv = mEntityConverter->ConvertUTF32ToEntity(inUCS4, mEntityVersion, &entity);
if (NS_SUCCEEDED(rv)) {
if (NULL == entity || (PRInt32)strlen(entity) > bufferLength) {
return NS_ERROR_OUT_OF_MEMORY;
diff --git a/mozilla/intl/unicharutil/tables/transliterate.properties b/mozilla/intl/unicharutil/tables/transliterate.properties
index dd5b5ad7452..ff91e8aaab0 100644
--- a/mozilla/intl/unicharutil/tables/transliterate.properties
+++ b/mozilla/intl/unicharutil/tables/transliterate.properties
@@ -1,4 +1,3 @@
-#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
@@ -34,10 +33,16 @@
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
+
+#
+# THIS FILE IS GENERATED BY mozilla/intl/unicharutil/tools/gentransliterate.pl
+# PLEASE DO NOT MODIFY THIS FILE BY HAND
+#
entity.list.name=transliterate
entity.169=(c)
#
#
+# Here are the windows-1252 characters from the range 0x80 - 0x9F
#
entity.8364=EUR
entity.8218=,
@@ -54,8 +59,8 @@ entity.8217='
entity.8220="
entity.8221="
entity.8226=.
-entity.8211=-
-entity.8212=--
+entity.8211=--
+entity.8212=---
entity.732=~
entity.8250=>
entity.339=oe
@@ -76,10 +81,10 @@ entity.1472=|
entity.1475=:
entity.1523='
entity.1524="
-#
-# End of hand coded section
-# Below are generated from the unicode character database
-#
+##
+## End of hand coded section
+## Below are generated from the unicode character database
+##
entity.160=\u0020
entity.170=^(a)
entity.178=^(2)
@@ -207,7 +212,7 @@ entity.325=N,
entity.326=n,
entity.327=N(
entity.328=n(
-entity.329=n
+entity.329='n
entity.332=O-
entity.333=o-
entity.334=O(
@@ -442,6 +447,7 @@ entity.2924=6
entity.2925=7
entity.2926=8
entity.2927=9
+entity.3046=0
entity.3047=1
entity.3048=2
entity.3049=3
@@ -513,6 +519,16 @@ entity.3878=6
entity.3879=7
entity.3880=8
entity.3881=9
+entity.3882=[1/2]
+entity.3883=[3/2]
+entity.3884=[5/2]
+entity.3885=[7/2]
+entity.3886=[9/2]
+entity.3887=[11/2]
+entity.3888=[13/2]
+entity.3889=[15/2]
+entity.3890=[17/2]
+entity.3891=[-1/2]
entity.4160=0
entity.4161=1
entity.4162=2
@@ -523,15 +539,6 @@ entity.4166=6
entity.4167=7
entity.4168=8
entity.4169=9
-entity.4969=1
-entity.4970=2
-entity.4971=3
-entity.4972=4
-entity.4973=5
-entity.4974=6
-entity.4975=7
-entity.4976=8
-entity.4977=9
entity.4978=[10]
entity.4979=[20]
entity.4980=[30]
@@ -555,6 +562,16 @@ entity.6118=6
entity.6119=7
entity.6120=8
entity.6121=9
+entity.6128=[0]
+entity.6129=[1]
+entity.6130=[2]
+entity.6131=[3]
+entity.6132=[4]
+entity.6133=[5]
+entity.6134=[6]
+entity.6135=[7]
+entity.6136=[8]
+entity.6137=[9]
entity.6160=0
entity.6161=1
entity.6162=2
@@ -565,6 +582,63 @@ entity.6166=6
entity.6167=7
entity.6168=8
entity.6169=9
+entity.6470=0
+entity.6471=1
+entity.6472=2
+entity.6473=3
+entity.6474=4
+entity.6475=5
+entity.6476=6
+entity.6477=7
+entity.6478=8
+entity.6479=9
+entity.6608=0
+entity.6609=1
+entity.6610=2
+entity.6611=3
+entity.6612=4
+entity.6613=5
+entity.6614=6
+entity.6615=7
+entity.6616=8
+entity.6617=9
+entity.7468=^(A)
+entity.7470=^(B)
+entity.7472=^(D)
+entity.7473=^(E)
+entity.7475=^(G)
+entity.7476=^(H)
+entity.7477=^(I)
+entity.7478=^(J)
+entity.7479=^(K)
+entity.7480=^(L)
+entity.7481=^(M)
+entity.7482=^(N)
+entity.7484=^(O)
+entity.7486=^(P)
+entity.7487=^(R)
+entity.7488=^(T)
+entity.7489=^(U)
+entity.7490=^(W)
+entity.7491=^(a)
+entity.7495=^(b)
+entity.7496=^(d)
+entity.7497=^(e)
+entity.7501=^(g)
+entity.7503=^(k)
+entity.7504=^(m)
+entity.7506=^(o)
+entity.7510=^(p)
+entity.7511=^(t)
+entity.7512=^(u)
+entity.7515=^(v)
+entity.7522=v(i)
+entity.7523=v(r)
+entity.7524=v(u)
+entity.7525=v(v)
+entity.7580=^(c)
+entity.7584=^(f)
+entity.7611=^(z)
entity.7680=A*
entity.7681=a*
entity.7682=B.
@@ -824,9 +898,12 @@ entity.8229=..
entity.8230=...
entity.8239=\u0020
entity.8252=!!
+entity.8263=??
entity.8264=?!
entity.8265=!?
+entity.8287=\u0020
entity.8304=^(0)
+entity.8305=^(i)
entity.8308=^(4)
entity.8309=^(5)
entity.8310=^(6)
@@ -852,6 +929,11 @@ entity.8330=v(+)
entity.8332=v(=)
entity.8333=v(()
entity.8334=v())
+entity.8336=v(a)
+entity.8337=v(e)
+entity.8338=v(o)
+entity.8339=v(x)
+entity.8340=schwa
entity.8360=Rs
entity.8448=a/c
entity.8449=a/s
@@ -887,6 +969,12 @@ entity.8497=F
entity.8499=M
entity.8500=o
entity.8505=i
+entity.8507=FAX
+entity.8517=D
+entity.8518=d
+entity.8519=e
+entity.8520=i
+entity.8521=j
entity.8531=1/3
entity.8532=2/3
entity.8533=1/5
@@ -1071,6 +1159,27 @@ entity.9447=(x)
entity.9448=(y)
entity.9449=(z)
entity.9450=(0)
+entity.9451=(11)
+entity.9452=(12)
+entity.9453=(13)
+entity.9454=(14)
+entity.9455=(15)
+entity.9456=(16)
+entity.9457=(17)
+entity.9458=(18)
+entity.9459=(19)
+entity.9460=(20)
+entity.9461=(1)
+entity.9462=(2)
+entity.9463=(3)
+entity.9464=(4)
+entity.9465=(5)
+entity.9466=(6)
+entity.9467=(7)
+entity.9468=(8)
+entity.9469=(9)
+entity.9470=(10)
+entity.9471=(0)
entity.10102=(1)
entity.10103=(2)
entity.10104=(3)
@@ -1101,6 +1210,10 @@ entity.10128=(7)
entity.10129=(8)
entity.10130=(9)
entity.10131=(10)
+entity.10868=::=
+entity.10869===
+entity.10870====
+entity.11517=[1/2]
entity.12288=\u0020
entity.12295=[0]
entity.12321=[1]
@@ -1112,6 +1225,36 @@ entity.12326=[6]
entity.12327=[7]
entity.12328=[8]
entity.12329=[9]
+entity.12881=(21)
+entity.12882=(22)
+entity.12883=(23)
+entity.12884=(24)
+entity.12885=(25)
+entity.12886=(26)
+entity.12887=(27)
+entity.12888=(28)
+entity.12889=(29)
+entity.12890=(30)
+entity.12891=(31)
+entity.12892=(32)
+entity.12893=(33)
+entity.12894=(34)
+entity.12895=(35)
+entity.12977=(36)
+entity.12978=(37)
+entity.12979=(38)
+entity.12980=(39)
+entity.12981=(40)
+entity.12982=(41)
+entity.12983=(42)
+entity.12984=(43)
+entity.12985=(44)
+entity.12986=(45)
+entity.12987=(46)
+entity.12988=(47)
+entity.12989=(48)
+entity.12990=(49)
+entity.12991=(50)
entity.64256=ff
entity.64257=fi
entity.64258=fl
@@ -1238,3 +1381,804 @@ entity.65371={
entity.65372=|
entity.65373=}
entity.65374=~
+entity.65799=[1]
+entity.65800=[2]
+entity.65801=[3]
+entity.65802=[4]
+entity.65803=[5]
+entity.65804=[6]
+entity.65805=[7]
+entity.65806=[8]
+entity.65807=[9]
+entity.65808=[10]
+entity.65809=[20]
+entity.65810=[30]
+entity.65811=[40]
+entity.65812=[50]
+entity.65813=[60]
+entity.65814=[70]
+entity.65815=[80]
+entity.65816=[90]
+entity.65817=[100]
+entity.65818=[200]
+entity.65819=[300]
+entity.65820=[400]
+entity.65821=[500]
+entity.65822=[600]
+entity.65823=[700]
+entity.65824=[800]
+entity.65825=[900]
+entity.65856=[1/4]
+entity.65857=[1/2]
+entity.65858=[1]
+entity.65859=[5]
+entity.65860=[50]
+entity.65861=[500]
+entity.65864=[5]
+entity.65865=[10]
+entity.65866=[50]
+entity.65867=[100]
+entity.65868=[500]
+entity.65871=[5]
+entity.65872=[10]
+entity.65873=[50]
+entity.65874=[100]
+entity.65875=[500]
+entity.65879=[10]
+entity.65880=[1]
+entity.65881=[1]
+entity.65882=[1]
+entity.65883=[2]
+entity.65884=[2]
+entity.65885=[2]
+entity.65886=[2]
+entity.65887=[5]
+entity.65888=[10]
+entity.65889=[10]
+entity.65890=[10]
+entity.65891=[10]
+entity.65892=[10]
+entity.65893=[30]
+entity.65894=[50]
+entity.65895=[50]
+entity.65896=[50]
+entity.65897=[50]
+entity.65898=[100]
+entity.65899=[300]
+entity.65900=[500]
+entity.65901=[500]
+entity.65902=[500]
+entity.65903=[500]
+entity.65904=[500]
+entity.65907=[5]
+entity.65908=[50]
+entity.65909=[1/2]
+entity.65910=[1/2]
+entity.65911=[2/3]
+entity.65912=[3/4]
+entity.65930=[0]
+entity.66336=[1]
+entity.66337=[5]
+entity.66338=[10]
+entity.66339=[50]
+entity.66378=[900]
+entity.66513=[1]
+entity.66514=[2]
+entity.66515=[10]
+entity.66516=[20]
+entity.66517=[100]
+entity.66720=0
+entity.66721=1
+entity.66722=2
+entity.66723=3
+entity.66724=4
+entity.66725=5
+entity.66726=6
+entity.66727=7
+entity.66728=8
+entity.66729=9
+entity.68164=[10]
+entity.68165=[20]
+entity.68166=[100]
+entity.119808=A
+entity.119809=B
+entity.119810=C
+entity.119811=D
+entity.119812=E
+entity.119813=F
+entity.119814=G
+entity.119815=H
+entity.119816=I
+entity.119817=J
+entity.119818=K
+entity.119819=L
+entity.119820=M
+entity.119821=N
+entity.119822=O
+entity.119823=P
+entity.119824=Q
+entity.119825=R
+entity.119826=S
+entity.119827=T
+entity.119828=U
+entity.119829=V
+entity.119830=W
+entity.119831=X
+entity.119832=Y
+entity.119833=Z
+entity.119834=a
+entity.119835=b
+entity.119836=c
+entity.119837=d
+entity.119838=e
+entity.119839=f
+entity.119840=g
+entity.119841=h
+entity.119842=i
+entity.119843=j
+entity.119844=k
+entity.119845=l
+entity.119846=m
+entity.119847=n
+entity.119848=o
+entity.119849=p
+entity.119850=q
+entity.119851=r
+entity.119852=s
+entity.119853=t
+entity.119854=u
+entity.119855=v
+entity.119856=w
+entity.119857=x
+entity.119858=y
+entity.119859=z
+entity.119860=A
+entity.119861=B
+entity.119862=C
+entity.119863=D
+entity.119864=E
+entity.119865=F
+entity.119866=G
+entity.119867=H
+entity.119868=I
+entity.119869=J
+entity.119870=K
+entity.119871=L
+entity.119872=M
+entity.119873=N
+entity.119874=O
+entity.119875=P
+entity.119876=Q
+entity.119877=R
+entity.119878=S
+entity.119879=T
+entity.119880=U
+entity.119881=V
+entity.119882=W
+entity.119883=X
+entity.119884=Y
+entity.119885=Z
+entity.119886=a
+entity.119887=b
+entity.119888=c
+entity.119889=d
+entity.119890=e
+entity.119891=f
+entity.119892=g
+entity.119894=i
+entity.119895=j
+entity.119896=k
+entity.119897=l
+entity.119898=m
+entity.119899=n
+entity.119900=o
+entity.119901=p
+entity.119902=q
+entity.119903=r
+entity.119904=s
+entity.119905=t
+entity.119906=u
+entity.119907=v
+entity.119908=w
+entity.119909=x
+entity.119910=y
+entity.119911=z
+entity.119912=A
+entity.119913=B
+entity.119914=C
+entity.119915=D
+entity.119916=E
+entity.119917=F
+entity.119918=G
+entity.119919=H
+entity.119920=I
+entity.119921=J
+entity.119922=K
+entity.119923=L
+entity.119924=M
+entity.119925=N
+entity.119926=O
+entity.119927=P
+entity.119928=Q
+entity.119929=R
+entity.119930=S
+entity.119931=T
+entity.119932=U
+entity.119933=V
+entity.119934=W
+entity.119935=X
+entity.119936=Y
+entity.119937=Z
+entity.119938=a
+entity.119939=b
+entity.119940=c
+entity.119941=d
+entity.119942=e
+entity.119943=f
+entity.119944=g
+entity.119945=h
+entity.119946=i
+entity.119947=j
+entity.119948=k
+entity.119949=l
+entity.119950=m
+entity.119951=n
+entity.119952=o
+entity.119953=p
+entity.119954=q
+entity.119955=r
+entity.119956=s
+entity.119957=t
+entity.119958=u
+entity.119959=v
+entity.119960=w
+entity.119961=x
+entity.119962=y
+entity.119963=z
+entity.119964=A
+entity.119966=C
+entity.119967=D
+entity.119970=G
+entity.119973=J
+entity.119974=K
+entity.119977=N
+entity.119978=O
+entity.119979=P
+entity.119980=Q
+entity.119982=S
+entity.119983=T
+entity.119984=U
+entity.119985=V
+entity.119986=W
+entity.119987=X
+entity.119988=Y
+entity.119989=Z
+entity.119990=a
+entity.119991=b
+entity.119992=c
+entity.119993=d
+entity.119995=f
+entity.119997=h
+entity.119998=i
+entity.119999=j
+entity.120000=k
+entity.120001=l
+entity.120002=m
+entity.120003=n
+entity.120005=p
+entity.120006=q
+entity.120007=r
+entity.120008=s
+entity.120009=t
+entity.120010=u
+entity.120011=v
+entity.120012=w
+entity.120013=x
+entity.120014=y
+entity.120015=z
+entity.120016=A
+entity.120017=B
+entity.120018=C
+entity.120019=D
+entity.120020=E
+entity.120021=F
+entity.120022=G
+entity.120023=H
+entity.120024=I
+entity.120025=J
+entity.120026=K
+entity.120027=L
+entity.120028=M
+entity.120029=N
+entity.120030=O
+entity.120031=P
+entity.120032=Q
+entity.120033=R
+entity.120034=S
+entity.120035=T
+entity.120036=U
+entity.120037=V
+entity.120038=W
+entity.120039=X
+entity.120040=Y
+entity.120041=Z
+entity.120042=a
+entity.120043=b
+entity.120044=c
+entity.120045=d
+entity.120046=e
+entity.120047=f
+entity.120048=g
+entity.120049=h
+entity.120050=i
+entity.120051=j
+entity.120052=k
+entity.120053=l
+entity.120054=m
+entity.120055=n
+entity.120056=o
+entity.120057=p
+entity.120058=q
+entity.120059=r
+entity.120060=s
+entity.120061=t
+entity.120062=u
+entity.120063=v
+entity.120064=w
+entity.120065=x
+entity.120066=y
+entity.120067=z
+entity.120068=A
+entity.120069=B
+entity.120071=D
+entity.120072=E
+entity.120073=F
+entity.120074=G
+entity.120077=J
+entity.120078=K
+entity.120079=L
+entity.120080=M
+entity.120081=N
+entity.120082=O
+entity.120083=P
+entity.120084=Q
+entity.120086=S
+entity.120087=T
+entity.120088=U
+entity.120089=V
+entity.120090=W
+entity.120091=X
+entity.120092=Y
+entity.120094=a
+entity.120095=b
+entity.120096=c
+entity.120097=d
+entity.120098=e
+entity.120099=f
+entity.120100=g
+entity.120101=h
+entity.120102=i
+entity.120103=j
+entity.120104=k
+entity.120105=l
+entity.120106=m
+entity.120107=n
+entity.120108=o
+entity.120109=p
+entity.120110=q
+entity.120111=r
+entity.120112=s
+entity.120113=t
+entity.120114=u
+entity.120115=v
+entity.120116=w
+entity.120117=x
+entity.120118=y
+entity.120119=z
+entity.120120=A
+entity.120121=B
+entity.120123=D
+entity.120124=E
+entity.120125=F
+entity.120126=G
+entity.120128=I
+entity.120129=J
+entity.120130=K
+entity.120131=L
+entity.120132=M
+entity.120134=O
+entity.120138=S
+entity.120139=T
+entity.120140=U
+entity.120141=V
+entity.120142=W
+entity.120143=X
+entity.120144=Y
+entity.120146=a
+entity.120147=b
+entity.120148=c
+entity.120149=d
+entity.120150=e
+entity.120151=f
+entity.120152=g
+entity.120153=h
+entity.120154=i
+entity.120155=j
+entity.120156=k
+entity.120157=l
+entity.120158=m
+entity.120159=n
+entity.120160=o
+entity.120161=p
+entity.120162=q
+entity.120163=r
+entity.120164=s
+entity.120165=t
+entity.120166=u
+entity.120167=v
+entity.120168=w
+entity.120169=x
+entity.120170=y
+entity.120171=z
+entity.120172=A
+entity.120173=B
+entity.120174=C
+entity.120175=D
+entity.120176=E
+entity.120177=F
+entity.120178=G
+entity.120179=H
+entity.120180=I
+entity.120181=J
+entity.120182=K
+entity.120183=L
+entity.120184=M
+entity.120185=N
+entity.120186=O
+entity.120187=P
+entity.120188=Q
+entity.120189=R
+entity.120190=S
+entity.120191=T
+entity.120192=U
+entity.120193=V
+entity.120194=W
+entity.120195=X
+entity.120196=Y
+entity.120197=Z
+entity.120198=a
+entity.120199=b
+entity.120200=c
+entity.120201=d
+entity.120202=e
+entity.120203=f
+entity.120204=g
+entity.120205=h
+entity.120206=i
+entity.120207=j
+entity.120208=k
+entity.120209=l
+entity.120210=m
+entity.120211=n
+entity.120212=o
+entity.120213=p
+entity.120214=q
+entity.120215=r
+entity.120216=s
+entity.120217=t
+entity.120218=u
+entity.120219=v
+entity.120220=w
+entity.120221=x
+entity.120222=y
+entity.120223=z
+entity.120224=A
+entity.120225=B
+entity.120226=C
+entity.120227=D
+entity.120228=E
+entity.120229=F
+entity.120230=G
+entity.120231=H
+entity.120232=I
+entity.120233=J
+entity.120234=K
+entity.120235=L
+entity.120236=M
+entity.120237=N
+entity.120238=O
+entity.120239=P
+entity.120240=Q
+entity.120241=R
+entity.120242=S
+entity.120243=T
+entity.120244=U
+entity.120245=V
+entity.120246=W
+entity.120247=X
+entity.120248=Y
+entity.120249=Z
+entity.120250=a
+entity.120251=b
+entity.120252=c
+entity.120253=d
+entity.120254=e
+entity.120255=f
+entity.120256=g
+entity.120257=h
+entity.120258=i
+entity.120259=j
+entity.120260=k
+entity.120261=l
+entity.120262=m
+entity.120263=n
+entity.120264=o
+entity.120265=p
+entity.120266=q
+entity.120267=r
+entity.120268=s
+entity.120269=t
+entity.120270=u
+entity.120271=v
+entity.120272=w
+entity.120273=x
+entity.120274=y
+entity.120275=z
+entity.120276=A
+entity.120277=B
+entity.120278=C
+entity.120279=D
+entity.120280=E
+entity.120281=F
+entity.120282=G
+entity.120283=H
+entity.120284=I
+entity.120285=J
+entity.120286=K
+entity.120287=L
+entity.120288=M
+entity.120289=N
+entity.120290=O
+entity.120291=P
+entity.120292=Q
+entity.120293=R
+entity.120294=S
+entity.120295=T
+entity.120296=U
+entity.120297=V
+entity.120298=W
+entity.120299=X
+entity.120300=Y
+entity.120301=Z
+entity.120302=a
+entity.120303=b
+entity.120304=c
+entity.120305=d
+entity.120306=e
+entity.120307=f
+entity.120308=g
+entity.120309=h
+entity.120310=i
+entity.120311=j
+entity.120312=k
+entity.120313=l
+entity.120314=m
+entity.120315=n
+entity.120316=o
+entity.120317=p
+entity.120318=q
+entity.120319=r
+entity.120320=s
+entity.120321=t
+entity.120322=u
+entity.120323=v
+entity.120324=w
+entity.120325=x
+entity.120326=y
+entity.120327=z
+entity.120328=A
+entity.120329=B
+entity.120330=C
+entity.120331=D
+entity.120332=E
+entity.120333=F
+entity.120334=G
+entity.120335=H
+entity.120336=I
+entity.120337=J
+entity.120338=K
+entity.120339=L
+entity.120340=M
+entity.120341=N
+entity.120342=O
+entity.120343=P
+entity.120344=Q
+entity.120345=R
+entity.120346=S
+entity.120347=T
+entity.120348=U
+entity.120349=V
+entity.120350=W
+entity.120351=X
+entity.120352=Y
+entity.120353=Z
+entity.120354=a
+entity.120355=b
+entity.120356=c
+entity.120357=d
+entity.120358=e
+entity.120359=f
+entity.120360=g
+entity.120361=h
+entity.120362=i
+entity.120363=j
+entity.120364=k
+entity.120365=l
+entity.120366=m
+entity.120367=n
+entity.120368=o
+entity.120369=p
+entity.120370=q
+entity.120371=r
+entity.120372=s
+entity.120373=t
+entity.120374=u
+entity.120375=v
+entity.120376=w
+entity.120377=x
+entity.120378=y
+entity.120379=z
+entity.120380=A
+entity.120381=B
+entity.120382=C
+entity.120383=D
+entity.120384=E
+entity.120385=F
+entity.120386=G
+entity.120387=H
+entity.120388=I
+entity.120389=J
+entity.120390=K
+entity.120391=L
+entity.120392=M
+entity.120393=N
+entity.120394=O
+entity.120395=P
+entity.120396=Q
+entity.120397=R
+entity.120398=S
+entity.120399=T
+entity.120400=U
+entity.120401=V
+entity.120402=W
+entity.120403=X
+entity.120404=Y
+entity.120405=Z
+entity.120406=a
+entity.120407=b
+entity.120408=c
+entity.120409=d
+entity.120410=e
+entity.120411=f
+entity.120412=g
+entity.120413=h
+entity.120414=i
+entity.120415=j
+entity.120416=k
+entity.120417=l
+entity.120418=m
+entity.120419=n
+entity.120420=o
+entity.120421=p
+entity.120422=q
+entity.120423=r
+entity.120424=s
+entity.120425=t
+entity.120426=u
+entity.120427=v
+entity.120428=w
+entity.120429=x
+entity.120430=y
+entity.120431=z
+entity.120432=A
+entity.120433=B
+entity.120434=C
+entity.120435=D
+entity.120436=E
+entity.120437=F
+entity.120438=G
+entity.120439=H
+entity.120440=I
+entity.120441=J
+entity.120442=K
+entity.120443=L
+entity.120444=M
+entity.120445=N
+entity.120446=O
+entity.120447=P
+entity.120448=Q
+entity.120449=R
+entity.120450=S
+entity.120451=T
+entity.120452=U
+entity.120453=V
+entity.120454=W
+entity.120455=X
+entity.120456=Y
+entity.120457=Z
+entity.120458=a
+entity.120459=b
+entity.120460=c
+entity.120461=d
+entity.120462=e
+entity.120463=f
+entity.120464=g
+entity.120465=h
+entity.120466=i
+entity.120467=j
+entity.120468=k
+entity.120469=l
+entity.120470=m
+entity.120471=n
+entity.120472=o
+entity.120473=p
+entity.120474=q
+entity.120475=r
+entity.120476=s
+entity.120477=t
+entity.120478=u
+entity.120479=v
+entity.120480=w
+entity.120481=x
+entity.120482=y
+entity.120483=z
+entity.120782=0
+entity.120783=1
+entity.120784=2
+entity.120785=3
+entity.120786=4
+entity.120787=5
+entity.120788=6
+entity.120789=7
+entity.120790=8
+entity.120791=9
+entity.120792=0
+entity.120793=1
+entity.120794=2
+entity.120795=3
+entity.120796=4
+entity.120797=5
+entity.120798=6
+entity.120799=7
+entity.120800=8
+entity.120801=9
+entity.120802=0
+entity.120803=1
+entity.120804=2
+entity.120805=3
+entity.120806=4
+entity.120807=5
+entity.120808=6
+entity.120809=7
+entity.120810=8
+entity.120811=9
+entity.120812=0
+entity.120813=1
+entity.120814=2
+entity.120815=3
+entity.120816=4
+entity.120817=5
+entity.120818=6
+entity.120819=7
+entity.120820=8
+entity.120821=9
+entity.120822=0
+entity.120823=1
+entity.120824=2
+entity.120825=3
+entity.120826=4
+entity.120827=5
+entity.120828=6
+entity.120829=7
+entity.120830=8
+entity.120831=9
diff --git a/mozilla/intl/unicharutil/tools/gentransliterate.pl b/mozilla/intl/unicharutil/tools/gentransliterate.pl
index 56ebcde0667..0733565dc84 100644
--- a/mozilla/intl/unicharutil/tools/gentransliterate.pl
+++ b/mozilla/intl/unicharutil/tools/gentransliterate.pl
@@ -114,9 +114,9 @@ entity.8221="
# BULLET
entity.8226=.
# EN DASH
-entity.8211=-
+entity.8211=--
# EM DASH
-entity.8212=--
+entity.8212=---
# SMALL TILDE
entity.732=~
# SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
@@ -124,9 +124,9 @@ entity.8250=>
# LATIN SMALL LIGATURE OE
entity.339=oe
# U+2000 EN QUAD
-entity.8192=\u0020
+entity.8192=\\u0020
# U+2001 EM QUAD
-entity.8193=\u0020
+entity.8193=\\u0020
# U+2010 HYPHEN
entity.8208=-
# U+2011 NON-BREAKING HYPHEN
@@ -167,7 +167,7 @@ sub FromLatinComment
{
my ($cmt) = (@_);
$char = "";
- if($cmt =~ /PRESEDED BY APOSTROPHE/) {
+ if($cmt =~ /PRECEDED BY APOSTROPHE/) {
$char = "\'";
}
if($cmt =~ /CAPITAL LETTER ([A-Z]*)/) {