Remove dead code in intl. Bug 559489, r=smontagu
authorEhren Metcalfe <ehren.m@gmail.com>
Sun, 04 Jul 2010 15:42:04 +0300
changeset 47211 4a6b283ec78cdeb50368c7ebf957079a82cc9f66
parent 47210 d2d570a50ddfb311b97cd457705df69e9378d87b
child 47212 846890403c24a28ed5f6dd4c80247f249197758d
push id14274
push usersmontagu@mozilla.com
push dateSun, 04 Jul 2010 12:43:19 +0000
treeherdermozilla-central@4a6b283ec78c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssmontagu
bugs559489
milestone2.0b2pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Remove dead code in intl. Bug 559489, r=smontagu
intl/chardet/public/Makefile.in
intl/chardet/public/nsIMetaCharsetService.h
intl/chardet/public/nsIXMLEncodingService.h
intl/chardet/src/Makefile.in
intl/chardet/src/nsCharDetConstructors.h
intl/chardet/src/nsChardetModule.cpp
intl/chardet/src/nsDetectionAdaptor.cpp
intl/chardet/src/nsDetectionAdaptor.h
intl/chardet/src/nsMetaCharsetObserver.cpp
intl/chardet/src/nsMetaCharsetObserver.h
intl/chardet/src/nsXMLEncodingObserver.cpp
intl/chardet/src/nsXMLEncodingObserver.h
intl/locale/src/nsLocale.cpp
intl/locale/src/nsLocale.h
intl/lwbrk/public/nsIWordBreaker.h
intl/lwbrk/src/nsSampleWordBreaker.cpp
intl/lwbrk/src/nsSampleWordBreaker.h
intl/uconv/native/nsINativeUConvService.idl
intl/uconv/native/nsNativeUConvService.cpp
intl/uconv/native/nsWinCEUConvService.cpp
intl/uconv/public/Makefile.in
intl/uconv/public/nsICharRepresentable.h
intl/uconv/src/nsUTF8ToUnicode.cpp
intl/uconv/src/nsUnicodeToUTF8.cpp
intl/uconv/src/nsUnicodeToUTF8.h
intl/uconv/tests/nsTestUConv.cpp
intl/uconv/ucvcn/nsGBKConvUtil.cpp
intl/uconv/ucvcn/nsGBKConvUtil.h
intl/uconv/ucvcn/nsUnicodeToGB2312V2.cpp
intl/uconv/ucvcn/nsUnicodeToGB2312V2.h
intl/uconv/ucvcn/nsUnicodeToGBK.cpp
intl/uconv/ucvcn/nsUnicodeToGBK.h
intl/uconv/ucvcn/nsUnicodeToHZ.cpp
intl/uconv/ucvcn/nsUnicodeToHZ.h
intl/uconv/ucvja/nsUnicodeToISO2022JP.cpp
intl/uconv/ucvja/nsUnicodeToISO2022JP.h
intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp
intl/uconv/ucvko/nsUnicodeToJamoTTF.h
intl/uconv/ucvlatin/nsUnicodeToTSCII.cpp
intl/uconv/ucvlatin/nsUnicodeToTSCII.h
intl/uconv/ucvlatin/nsUnicodeToUCS2BE.cpp
intl/uconv/ucvlatin/nsUnicodeToUCS2BE.h
intl/uconv/ucvlatin/nsUnicodeToUTF32.cpp
intl/uconv/ucvlatin/nsUnicodeToUTF32.h
intl/uconv/ucvlatin/nsUnicodeToUTF7.cpp
intl/uconv/ucvlatin/nsUnicodeToUTF7.h
intl/uconv/util/nsUCConstructors.h
intl/uconv/util/nsUCSupport.cpp
intl/uconv/util/nsUCSupport.h
intl/uconv/util/nsUnicodeEncodeHelper.cpp
intl/uconv/util/nsUnicodeEncodeHelper.h
intl/uconv/util/umap.c
intl/uconv/util/unicpriv.h
intl/unicharutil/public/nsICaseConversion.h
intl/unicharutil/src/nsCaseConversionImp2.cpp
intl/unicharutil/src/nsCaseConversionImp2.h
intl/unicharutil/src/nsEntityConverter.cpp
intl/unicharutil/src/nsEntityConverter.h
intl/unicharutil/src/nsSaveAsCharset.cpp
intl/unicharutil/src/nsSaveAsCharset.h
intl/unicharutil/tests/UnicharSelfTest.cpp
intl/unicharutil/util/gensymmtable.pl
intl/unicharutil/util/nsBidiUtils.cpp
intl/unicharutil/util/nsBidiUtils.h
intl/unicharutil/util/nsCompressedCharMap.cpp
intl/unicharutil/util/nsCompressedCharMap.h
intl/unicharutil/util/nsUnicharUtils.cpp
intl/unicharutil/util/nsUnicharUtils.h
intl/unicharutil/util/objs.mk
intl/unicharutil/util/symmtable.h
parser/htmlparser/public/nsIElementObserver.h
parser/htmlparser/public/nsIParserFilter.h
tools/trace-malloc/rules.txt
tools/trace-malloc/types.dat
--- a/intl/chardet/public/Makefile.in
+++ b/intl/chardet/public/Makefile.in
@@ -52,17 +52,15 @@ XPIDLSRCS       = \
 
 EXPORTS		= \
 		nsCharsetDetectionAdaptorCID.h \
 		nsDetectionConfident.h \
 		nsDocumentCharsetInfoCID.h \
 		nsICharsetDetectionAdaptor.h \
 		nsICharsetDetectionObserver.h \
 		nsICharsetDetector.h \
-		nsIMetaCharsetService.h \
 		nsIStringCharsetDetector.h \
-		nsIXMLEncodingService.h \
 		nsMetaCharsetCID.h \
 		nsXMLEncodingCID.h \
 		$(NULL)
 
 include $(topsrcdir)/config/rules.mk
 
deleted file mode 100644
--- a/intl/chardet/public/nsIMetaCharsetService.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef nsIMetaCharsetService_h__
-#define nsIMetaCharsetService_h__
-#include "nsISupports.h"
-
-
-// {218F2AC1-0A48-11d3-B3BA-00805F8A6670}
-#define NS_IMETA_CHARSET_SERVICE_IID \
-{ 0x218f2ac1, 0xa48, 0x11d3, { 0xb3, 0xba, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } }
-
-class nsIMetaCharsetService : public nsISupports {
-public:
-   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMETA_CHARSET_SERVICE_IID)
-
-   NS_IMETHOD Start() = 0;
-   NS_IMETHOD End() = 0;
-};
-
-NS_DEFINE_STATIC_IID_ACCESSOR(nsIMetaCharsetService,
-                              NS_IMETA_CHARSET_SERVICE_IID)
-
-#endif // nsIMetaCharsetService_h__
deleted file mode 100644
--- a/intl/chardet/public/nsIXMLEncodingService.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef nsIXMLEncodingService_h__
-#define nsIXMLEncodingService_h__
-#include "nsISupports.h"
-
-
-// {12BB8F11-2389-11d3-B3BF-00805F8A6670}
-#define NS_IXML_ENCODING_SERVICE_IID \
-{ 0x12bb8f11, 0x2389, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } }
-
-
-class nsIXMLEncodingService : public nsISupports {
-public:
-   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXML_ENCODING_SERVICE_IID)
-
-   NS_IMETHOD Start() = 0;
-   NS_IMETHOD End() = 0;
-};
-
-NS_DEFINE_STATIC_IID_ACCESSOR(nsIXMLEncodingService,
-                              NS_IXML_ENCODING_SERVICE_IID)
-
-#endif // nsIXMLEncodingService_h__
--- a/intl/chardet/src/Makefile.in
+++ b/intl/chardet/src/Makefile.in
@@ -48,19 +48,16 @@ EXPORT_LIBRARY = 1
 IS_COMPONENT = 1
 MODULE_NAME = nsChardetModule
 GRE_MODULE = 1
 LIBXUL_LIBRARY  = 1
 
 
 CPPSRCS		= \
 		nsObserverBase.cpp \
-		nsXMLEncodingObserver.cpp \
-		nsMetaCharsetObserver.cpp \
-		nsDetectionAdaptor.cpp \
 		nsDebugDetector.cpp \
 		nsCyrillicDetector.cpp \
 		nsDocumentCharsetInfo.cpp \
 		nsChardetModule.cpp \
 		$(NULL)
 
 EXTRA_DSO_LDOPTS = \
 	$(MOZ_UNICHARUTIL_LIBS) \
--- a/intl/chardet/src/nsCharDetConstructors.h
+++ b/intl/chardet/src/nsCharDetConstructors.h
@@ -44,32 +44,26 @@
 #ifndef nsCharDetConstructors_h__
 #define nsCharDetConstructors_h__
 
 // chardet
 #include "nsISupports.h"
 #include "nsMetaCharsetCID.h"
 #include "nsICharsetDetector.h"
 #include "nsICharsetAlias.h"
-#include "nsMetaCharsetObserver.h"
 #include "nsDocumentCharsetInfo.h"
-#include "nsXMLEncodingObserver.h"
 #include "nsICharsetDetectionAdaptor.h"
 #include "nsICharsetDetectionObserver.h"
-#include "nsDetectionAdaptor.h"
 #include "nsIStringCharsetDetector.h"
 #include "nsCyrillicDetector.h"
 #include "nsDocumentCharsetInfoCID.h"
 #include "nsXMLEncodingCID.h"
 #include "nsCharsetDetectionAdaptorCID.h"
 
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsMetaCharsetObserver)
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsDocumentCharsetInfo)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsXMLEncodingObserver)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsDetectionAdaptor)
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsRUProbDetector)
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUKProbDetector)
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsRUStringProbDetector)
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUKStringProbDetector)
 
 #ifdef INCLUDE_DBGDETECTOR
 NS_GENERIC_FACTORY_CONSTRUCTOR(ns1stBlkDbgDetector)
 NS_GENERIC_FACTORY_CONSTRUCTOR(ns2ndBlkDbgDetector)
--- a/intl/chardet/src/nsChardetModule.cpp
+++ b/intl/chardet/src/nsChardetModule.cpp
@@ -37,52 +37,43 @@
 
 #include "mozilla/ModuleUtils.h"
 #include "nsCOMPtr.h"
 #include "nsICategoryManager.h"
 #include "nsIServiceManager.h"
 
 #include "nsCharDetConstructors.h"
 
-NS_DEFINE_NAMED_CID(NS_META_CHARSET_CID);
 NS_DEFINE_NAMED_CID(NS_DOCUMENTCHARSETINFO_CID);
-NS_DEFINE_NAMED_CID(NS_XML_ENCODING_CID);
-NS_DEFINE_NAMED_CID(NS_CHARSET_DETECTION_ADAPTOR_CID);
 NS_DEFINE_NAMED_CID(NS_RU_PROBDETECTOR_CID);
 NS_DEFINE_NAMED_CID(NS_UK_PROBDETECTOR_CID);
 NS_DEFINE_NAMED_CID(NS_RU_STRING_PROBDETECTOR_CID);
 NS_DEFINE_NAMED_CID(NS_UK_STRING_PROBDETECTOR_CID);
 #ifdef INCLUDE_DBGDETECTOR
 NS_DEFINE_NAMED_CID(NS_1STBLKDBG_DETECTOR_CID);
 NS_DEFINE_NAMED_CID(NS_2NDBLKDBG_DETECTOR_CID);
 NS_DEFINE_NAMED_CID(NS_LASTBLKDBG_DETECTOR_CID);
 #endif /* INCLUDE_DBGDETECTOR */
 
 static const mozilla::Module::CIDEntry kChardetCIDs[] = {
-  { &kNS_META_CHARSET_CID, false, NULL, nsMetaCharsetObserverConstructor },
   { &kNS_DOCUMENTCHARSETINFO_CID, false, NULL, nsDocumentCharsetInfoConstructor },
-  { &kNS_XML_ENCODING_CID, false, NULL, nsXMLEncodingObserverConstructor },
-  { &kNS_CHARSET_DETECTION_ADAPTOR_CID, false, NULL, nsDetectionAdaptorConstructor },
   { &kNS_RU_PROBDETECTOR_CID, false, NULL, nsRUProbDetectorConstructor },
   { &kNS_UK_PROBDETECTOR_CID, false, NULL, nsUKProbDetectorConstructor },
   { &kNS_RU_STRING_PROBDETECTOR_CID, false, NULL, nsRUStringProbDetectorConstructor },
   { &kNS_UK_STRING_PROBDETECTOR_CID, false, NULL, nsUKStringProbDetectorConstructor },
 #ifdef INCLUDE_DBGDETECTOR
   { &kNS_1STBLKDBG_DETECTOR_CID, false, NULL, ns1stBlkDbgDetectorConstructor },
   { &kNS_2NDBLKDBG_DETECTOR_CID, false, NULL, ns2ndBlkDbgDetectorConstructor },
   { &kNS_LASTBLKDBG_DETECTOR_CID, false, NULL, nsLastBlkDbgDetectorConstructor },
 #endif /* INCLUDE_DBGDETECTOR */
   { NULL }
 };
 
 static const mozilla::Module::ContractIDEntry kChardetContracts[] = {
-  { NS_META_CHARSET_CONTRACTID, &kNS_META_CHARSET_CID },
   { NS_DOCUMENTCHARSETINFO_CONTRACTID, &kNS_DOCUMENTCHARSETINFO_CID },
-  { NS_XML_ENCODING_CONTRACTID, &kNS_XML_ENCODING_CID },
-  { NS_CHARSET_DETECTION_ADAPTOR_CONTRACTID, &kNS_CHARSET_DETECTION_ADAPTOR_CID },
   { NS_CHARSET_DETECTOR_CONTRACTID_BASE "ruprob", &kNS_RU_PROBDETECTOR_CID },
   { NS_CHARSET_DETECTOR_CONTRACTID_BASE "ukprob", &kNS_UK_PROBDETECTOR_CID },
   { NS_STRCDETECTOR_CONTRACTID_BASE "ruprob", &kNS_RU_STRING_PROBDETECTOR_CID },
   { NS_STRCDETECTOR_CONTRACTID_BASE "ukprob", &kNS_UK_STRING_PROBDETECTOR_CID },
 #ifdef INCLUDE_DBGDETECTOR
   { NS_CHARSET_DETECTOR_CONTRACTID_BASE "1stblkdbg", &kNS_1STBLKDBG_DETECTOR_CID },
   { NS_CHARSET_DETECTOR_CONTRACTID_BASE "2ndblkdbg", &kNS_2NDBLKDBG_DETECTOR_CID },
   { NS_CHARSET_DETECTOR_CONTRACTID_BASE "lastblkdbg", &kNS_LASTBLKDBG_DETECTOR_CID },
deleted file mode 100644
--- a/intl/chardet/src/nsDetectionAdaptor.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Pierre Phaneuf <pp@ludusdesign.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsString.h"
-#include "plstr.h"
-#include "pratom.h"
-#include "nsCharDetDll.h"
-#include "nsIParser.h"
-#include "nsIDocument.h"
-#include "nsDetectionAdaptor.h"
-#include "nsIContentSink.h"
-
-
-//--------------------------------------------------------------
-NS_IMETHODIMP nsMyObserver::Notify(
-    const char* aCharset, nsDetectionConfident aConf)
-{
-    nsresult rv = NS_OK;
-
-    if(mWeakRefParser) {
-      nsCAutoString existingCharset;
-      PRInt32 existingSource;
-      mWeakRefParser->GetDocumentCharset(existingCharset, existingSource);  
-      if (existingSource >= kCharsetFromAutoDetection) 
-        return NS_OK;
-    }
-     
-    if(!mCharset.Equals(aCharset)) {
-      if(mNotifyByReload) {
-        rv = mWebShellSvc->StopDocumentLoad();
-        rv = mWebShellSvc->ReloadDocument(aCharset, kCharsetFromAutoDetection);
-      } else {
-        nsDependentCString newcharset(aCharset);
-        if (mWeakRefParser) {
-          mWeakRefParser->SetDocumentCharset(newcharset, kCharsetFromAutoDetection);
-          nsCOMPtr<nsIContentSink> contentSink = mWeakRefParser->GetContentSink();
-          if (contentSink)
-            contentSink->SetDocumentCharset(newcharset);
-        }
-        if(mWeakRefDocument) 
-          mWeakRefDocument->SetDocumentCharacterSet(newcharset);
-      }
-    }
-    return NS_OK;
-}
-//--------------------------------------------------------------
-NS_IMETHODIMP nsMyObserver::Init( nsIWebShellServices* aWebShellSvc, 
-                   nsIDocument* aDocument,
-                   nsIParser* aParser,
-                   const char* aCharset,
-                   const char* aCommand)
-{
-    if(aCommand) {
-        mCommand = aCommand;
-    }
-    if(aCharset) {
-        mCharset = aCharset;
-    }
-    if(aDocument) {
-        mWeakRefDocument = aDocument;
-    }
-    if(aParser) {
-        mWeakRefParser = aParser;
-    }
-    if(nsnull != aWebShellSvc)
-    {
-        mWebShellSvc = aWebShellSvc;
-        return NS_OK;
-    }
-    return NS_ERROR_ILLEGAL_VALUE;
-}
-//--------------------------------------------------------------
-NS_IMPL_ISUPPORTS1 ( nsMyObserver ,nsICharsetDetectionObserver)
-
-//--------------------------------------------------------------
-nsDetectionAdaptor::nsDetectionAdaptor( void ) 
-{
-     mDontFeedToDetector = PR_TRUE;
-}
-//--------------------------------------------------------------
-nsDetectionAdaptor::~nsDetectionAdaptor()
-{
-}
-
-//--------------------------------------------------------------
-NS_IMPL_ISUPPORTS2 (nsDetectionAdaptor, nsIParserFilter, nsICharsetDetectionAdaptor)
-
-//--------------------------------------------------------------
-NS_IMETHODIMP nsDetectionAdaptor::Init(
-    nsIWebShellServices* aWebShellSvc, nsICharsetDetector *aDetector,
-    nsIDocument* aDocument, nsIParser* aParser, const char* aCharset,
-    const char* aCommand)
-{
-  if((nsnull != aWebShellSvc) && (nsnull != aDetector) && (nsnull != aCharset))
-  {
-    nsresult rv = NS_OK;
-    mObserver = new nsMyObserver();
-    if(!mObserver)
-       return NS_ERROR_OUT_OF_MEMORY;
-
-    rv = mObserver->Init(aWebShellSvc, aDocument, aParser, aCharset, aCommand);
-    if(NS_SUCCEEDED(rv)) {
-      rv = aDetector->Init(mObserver.get());
-      if(NS_SUCCEEDED(rv)) {
-        mDetector = aDetector;
-        mDontFeedToDetector = PR_FALSE;
-        return NS_OK;
-      }
-    }
-  }
-  return NS_ERROR_ILLEGAL_VALUE;
-}
-//--------------------------------------------------------------
-NS_IMETHODIMP nsDetectionAdaptor::RawBuffer
-    (const char * buffer, PRUint32 * buffer_length) 
-{
-    if((mDontFeedToDetector) || (!mDetector))
-       return NS_OK;
-    nsresult rv = NS_OK;
-    rv = mDetector->DoIt((const char*)buffer, *buffer_length, &mDontFeedToDetector);
-    if(mObserver) 
-       mObserver->SetNotifyByReload(PR_TRUE);
-
-    return NS_OK;
-}
-//--------------------------------------------------------------
-NS_IMETHODIMP nsDetectionAdaptor::Finish()
-{
-    if((mDontFeedToDetector) || (!mDetector))
-       return NS_OK;
-    nsresult rv = NS_OK;
-    rv = mDetector->Done();
-
-    return NS_OK;
-}
-
deleted file mode 100644
--- a/intl/chardet/src/nsDetectionAdaptor.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-#ifndef nsDetectionAdaptor_h__
-#define nsDetectionAdaptor_h__
-
-#include "nsCOMPtr.h"
-#include "nsIWebShellServices.h"
-
-#include "nsIParserFilter.h"
-static NS_DEFINE_IID(kIParserFilterIID, NS_IPARSERFILTER_IID);
-
-class nsIDocument;
-class CToken;
-
-//--------------------------------------------------------------
-class nsMyObserver : public nsICharsetDetectionObserver
-{
- public:
-   NS_DECL_ISUPPORTS
-
- public:
-   nsMyObserver( void )
-   {
-     mWebShellSvc = nsnull;
-     mNotifyByReload = PR_FALSE;
-     mWeakRefDocument = nsnull;
-     mWeakRefParser = nsnull;
-   }
-   virtual  ~nsMyObserver( void )
-   {
-     // do not release nor delete mWeakRefDocument
-     // do not release nor delete mWeakRefParser
-   }
-
-
-   // Methods to support nsICharsetDetectionAdaptor
-   NS_IMETHOD Init(nsIWebShellServices* aWebShellSvc, 
-                   nsIDocument* aDocument,
-                   nsIParser* aParser,
-                   const char* aCharset,
-                   const char* aCommand);
-
-   // Methods to support nsICharsetDetectionObserver
-   NS_IMETHOD Notify(const char* aCharset, nsDetectionConfident aConf);
-   void SetNotifyByReload(PRBool aByReload) { mNotifyByReload = aByReload; }
- private:
-     nsCOMPtr<nsIWebShellServices> mWebShellSvc;
-     PRBool mNotifyByReload;
-
-     //The adaptor is owned by parser as filter, and adaptor owns detector, 
-     //which in turn owns observer. Parser also live within the lifespan of 
-     //document. The ownership tree is like:
-     //  document->parser->adaptor->detector->observer
-     //We do not want to own Document & Parser to avoid ownership loop. That 
-     //will cause memory leakage. 
-     //If in future this chain got changed, ie. parser outlives document, or 
-     //detector outlives parser, we might want to change weak reference here. 
-     nsIDocument* mWeakRefDocument;
-     nsIParser* mWeakRefParser;
-     nsCAutoString mCharset;
-     nsCAutoString mCommand;
-};
-
-class nsDetectionAdaptor : 
-                           public nsIParserFilter,
-                           public nsICharsetDetectionAdaptor
-{
- public:
-   NS_DECL_ISUPPORTS
-
- public:
-   nsDetectionAdaptor( void );
-   virtual  ~nsDetectionAdaptor( void );
-
-   // Methods to support nsICharsetDetectionAdaptor
-   NS_IMETHOD Init(nsIWebShellServices* aWebShellSvc, nsICharsetDetector *aDetector, 
-                   nsIDocument* aDocument,
-                   nsIParser* aParser,
-                   const char* aCharset,
-                   const char* aCommand=nsnull);
-  
-   // Methode to suppor nsIParserFilter
-   NS_IMETHOD RawBuffer(const char * buffer, PRUint32 * buffer_length) ;
-   NS_IMETHOD Finish();
-
-   // really don't care the following two, only because they are defined
-   // in nsIParserFilter.h
-   NS_IMETHOD WillAddToken(CToken & token) { return NS_OK; }
-   NS_IMETHOD ProcessTokens( void ) {return NS_OK;}
-
-  private:
-     nsCOMPtr<nsICharsetDetector> mDetector;
-     PRBool mDontFeedToDetector;
-     nsCOMPtr<nsMyObserver> mObserver; 
-};
-
-#endif /* nsDetectionAdaptor_h__ */
deleted file mode 100644
--- a/intl/chardet/src/nsMetaCharsetObserver.cpp
+++ /dev/null
@@ -1,440 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1999
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-#include "nsDeque.h"
-#include "nsICharsetAlias.h"
-#include "nsMetaCharsetObserver.h"
-#include "nsIMetaCharsetService.h"
-#include "nsIElementObserver.h"
-#include "nsIObserver.h"
-#include "nsIObserverService.h"
-#include "nsISupports.h"
-#include "nsCRT.h"
-#include "nsIParser.h"
-#include "pratom.h"
-#include "nsCharDetDll.h"
-#include "nsIServiceManager.h"
-#include "nsObserverBase.h"
-#include "nsWeakReference.h"
-#include "nsIParserService.h"
-#include "nsParserCIID.h"
-#include "nsMetaCharsetCID.h"
-#include "nsReadableUtils.h"
-#include "nsUnicharUtils.h"
-
-static NS_DEFINE_CID(kCharsetAliasCID, NS_CHARSETALIAS_CID);
- 
-static const eHTMLTags gWatchTags[] = 
-{ eHTMLTag_meta,
-  eHTMLTag_unknown
-};
-
-//-------------------------------------------------------------------------
-nsMetaCharsetObserver::nsMetaCharsetObserver()
-{
-  bMetaCharsetObserverStarted = PR_FALSE;
-  nsresult res;
-  mAlias = nsnull;
-  nsCOMPtr<nsICharsetAlias> calias(do_GetService(kCharsetAliasCID, &res));
-  if(NS_SUCCEEDED(res)) {
-     mAlias = calias;
-  }
-}
-//-------------------------------------------------------------------------
-nsMetaCharsetObserver::~nsMetaCharsetObserver()
-{
-}
-
-//-------------------------------------------------------------------------
-NS_IMPL_ADDREF ( nsMetaCharsetObserver )
-NS_IMPL_RELEASE ( nsMetaCharsetObserver )
-
-// Use the new scheme
-NS_IMPL_QUERY_INTERFACE4(nsMetaCharsetObserver, 
-                         nsIElementObserver, 
-                         nsIObserver, 
-                         nsIMetaCharsetService, 
-                         nsISupportsWeakReference)
-
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsMetaCharsetObserver::Notify(
-                     PRUint32 aDocumentID, 
-                     const PRUnichar* aTag, 
-                     PRUint32 numOfAttributes, 
-                     const PRUnichar* nameArray[], 
-                     const PRUnichar* valueArray[])
-{
-  
-    if(!nsDependentString(aTag).LowerCaseEqualsLiteral("meta")) 
-        return NS_ERROR_ILLEGAL_VALUE;
-    else
-        return Notify(aDocumentID, numOfAttributes, nameArray, valueArray);
-}
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsMetaCharsetObserver::Notify(
-                     PRUint32 aDocumentID, 
-                     eHTMLTags aTag, 
-                     PRUint32 numOfAttributes, 
-                     const PRUnichar* nameArray[], 
-                     const PRUnichar* valueArray[])
-{
-    if(eHTMLTag_meta != aTag) 
-        return NS_ERROR_ILLEGAL_VALUE;
-    else 
-        return Notify(aDocumentID, numOfAttributes, nameArray, valueArray);
-}
-
-NS_IMETHODIMP nsMetaCharsetObserver::Notify(
-                     PRUint32 aDocumentID, 
-                     PRUint32 numOfAttributes, 
-                     const PRUnichar* nameArray[], 
-                     const PRUnichar* valueArray[])
-{
-   nsDeque keys(0);
-   nsDeque values(0);
-   PRUint32 i;
-   for(i=0;i<numOfAttributes;i++)
-   {
-       keys.Push((void*)nameArray[i]);
-       values.Push((void*)valueArray[i]);
-   }
-   return NS_OK;//Notify((nsISupports*)aDocumentID, &keys, &values);
-}
-NS_IMETHODIMP nsMetaCharsetObserver::Notify(
-                     nsISupports* aDocShell,
-                     nsISupports* aChannel,
-                     const PRUnichar* aTag, 
-                     const nsTArray<nsString>* keys, 
-                     const nsTArray<nsString>* values,
-                     const PRUint32 aFlags)
-{
-  nsresult result = NS_OK;
-  // bug 125317 - document.write content is already an unicode content.
-  if (!(aFlags & nsIElementObserver::IS_DOCUMENT_WRITE)) {
-    if(!nsDependentString(aTag).LowerCaseEqualsLiteral("meta")) {
-        result = NS_ERROR_ILLEGAL_VALUE;
-    }
-    else {
-        result = Notify(aDocShell, aChannel, keys, values);
-    }
-  }
-  return result;
-}
-
-#define IS_SPACE_CHARS(ch)  (ch == ' ' || ch == '\b' || ch == '\r' || ch == '\n')
-
-NS_IMETHODIMP nsMetaCharsetObserver::Notify(
-                    nsISupports* aDocShell,
-                    nsISupports* aChannel,
-                    const nsTArray<nsString>* keys, 
-                    const nsTArray<nsString>* values)
-{
-    NS_PRECONDITION(keys!=nsnull && values!=nsnull,"Need key-value pair");
-
-    PRUint32 numOfAttributes = keys->Length();
-    NS_ASSERTION( numOfAttributes == values->Length(), "size mismatch");
-    nsresult res=NS_OK;
-#ifdef DEBUG
-
-    PRUnichar Uxcommand[]={'X','_','C','O','M','M','A','N','D','\0'};
-    PRUnichar UcharsetSource[]={'c','h','a','r','s','e','t','S','o','u','r','c','e','\0'};
-    PRUnichar Ucharset[]={'c','h','a','r','s','e','t','\0'};
-    
-    NS_ASSERTION(numOfAttributes >= 3, "should have at least 3 private attribute");
-    NS_ASSERTION(0==nsCRT::strcmp(Uxcommand,(keys->ElementAt(numOfAttributes-1)).get()),"last name should be 'X_COMMAND'" );
-    NS_ASSERTION(0==nsCRT::strcmp(UcharsetSource,(keys->ElementAt(numOfAttributes-2)).get()),"2nd last name should be 'charsetSource'" );
-    NS_ASSERTION(0==nsCRT::strcmp(Ucharset,(keys->ElementAt(numOfAttributes-3)).get()),"3rd last name should be 'charset'" );
-
-#endif
-    NS_ASSERTION(mAlias, "Didn't get nsICharsetAlias in constructor");
-
-    if(nsnull == mAlias)
-      return NS_ERROR_ABORT;
-
-    // we need at least 5 - HTTP-EQUIV, CONTENT and 3 private
-    if(numOfAttributes >= 5 ) 
-    {
-      const nsString& srcStr =  values->ElementAt(numOfAttributes-2);
-      PRInt32 err;
-      PRInt32  src = srcStr.ToInteger(&err);
-      // if we cannot convert the string into PRInt32, return error
-      NS_ASSERTION(NS_SUCCEEDED(err), "cannot get charset source");
-      if(NS_FAILED(err))
-          return NS_ERROR_ILLEGAL_VALUE;
-
-      if(kCharsetFromMetaTag <= src)
-          return NS_OK; // current charset has higher priority. don't bother to do the following
-
-      const PRUnichar *httpEquivValue=nsnull;
-      const PRUnichar *contentValue=nsnull;
-      const PRUnichar *charsetValue=nsnull;
-
-      for (PRUint32 i = 0; i < numOfAttributes - 3; i++)
-      {
-        const PRUnichar *keyStr;
-        keyStr = keys->ElementAt(i).get();
-
-        //Change 3.190 in nsHTMLTokens.cpp allow  ws/tab/cr/lf exist before 
-        // and after text value, this need to be skipped before comparison
-        while(IS_SPACE_CHARS(*keyStr)) 
-          keyStr++;
-
-        if(Substring(keyStr, keyStr+10).LowerCaseEqualsLiteral("http-equiv"))
-              httpEquivValue = values->ElementAt(i).get();
-        else if(Substring(keyStr, keyStr+7).LowerCaseEqualsLiteral("content"))
-              contentValue = values->ElementAt(i).get();
-        else if (Substring(keyStr, keyStr+7).LowerCaseEqualsLiteral("charset"))
-              charsetValue = values->ElementAt(i).get();
-      }
-      NS_NAMED_LITERAL_STRING(contenttype, "Content-Type");
-      NS_NAMED_LITERAL_STRING(texthtml, "text/html");
-
-      if(nsnull == httpEquivValue || nsnull == contentValue)
-        return NS_OK;
-
-      while(IS_SPACE_CHARS(*httpEquivValue))
-        ++httpEquivValue;
-      // skip opening quote
-      if (*httpEquivValue == '\'' || *httpEquivValue == '\"')
-        ++httpEquivValue;
-
-      while(IS_SPACE_CHARS(*contentValue))
-        ++contentValue;
-      // skip opening quote
-      if (*contentValue == '\'' || *contentValue == '\"')
-        ++contentValue;
-
-      if(
-         Substring(httpEquivValue,
-                   httpEquivValue+contenttype.Length()).Equals(contenttype,
-                                                               nsCaseInsensitiveStringComparator())
-         &&
-         Substring(contentValue,
-                   contentValue+texthtml.Length()).Equals(texthtml,
-                                                          nsCaseInsensitiveStringComparator())
-        )
-      {
-
-         nsCAutoString newCharset;
-
-         if (nsnull == charsetValue) 
-         {
-           nsAutoString contentPart1(contentValue+9); // after "text/html"
-           PRInt32 start = contentPart1.RFind("charset=", PR_TRUE ) ;
-           PRInt32 end = contentPart1.Length();
-           if(kNotFound != start)
-           {
-             start += 8; // 8 = "charset=".length 
-             while (start < end && contentPart1.CharAt(start) == PRUnichar(' '))
-               ++start;
-             if (start < end) {
-               end = contentPart1.FindCharInSet("\'\"; ", start);
-               if(kNotFound == end ) 
-                 end = contentPart1.Length();
-               NS_ASSERTION(end>=start, "wrong index");
-               LossyCopyUTF16toASCII(Substring(contentPart1, start, end-start),
-                                     newCharset);
-             }
-           } 
-         }
-         else   
-         {
-             LossyCopyUTF16toASCII(nsDependentString(charsetValue), newCharset);
-         } 
-
-         nsCAutoString charsetString;
-         charsetString.AssignWithConversion(values->ElementAt(numOfAttributes-3));
-         
-         if (!newCharset.IsEmpty())
-         {    
-             if(! newCharset.Equals(charsetString, nsCaseInsensitiveCStringComparator()))
-             {
-                 PRBool same = PR_FALSE;
-                 nsresult res2 = mAlias->Equals( newCharset, charsetString , &same);
-                 if(NS_SUCCEEDED(res2) && (! same))
-                 {
-                     nsCAutoString preferred;
-                     res2 = mAlias->GetPreferred(newCharset, preferred);
-                     if(NS_SUCCEEDED(res2))
-                     {
-                        // following charset should have been detected by parser
-                        if (!preferred.EqualsLiteral("UTF-16") &&
-                            !preferred.EqualsLiteral("UTF-16BE") &&
-                            !preferred.EqualsLiteral("UTF-16LE") &&
-                            !preferred.EqualsLiteral("UTF-32") &&
-                            !preferred.EqualsLiteral("UTF-32BE") &&
-                            !preferred.EqualsLiteral("UTF-32LE")) {
-                          // Propagate the error message so that the parser can
-                          // shutdown correctly. - Ref. Bug 96440
-                          res = NotifyDocShell(aDocShell,
-                                               aChannel,
-                                               preferred.get(),
-                                               kCharsetFromMetaTag);
-                        }
-                     } // if(NS_SUCCEEDED(res)
-                 }
-             }
-             else {
-               res = NS_HTMLPARSER_VALID_META_CHARSET;
-             } // if EqualIgnoreCase 
-         } // if !newCharset.IsEmpty()
-      } // if
-    }
-    else
-    {
-      nsAutoString compatCharset;
-      if (NS_SUCCEEDED(GetCharsetFromCompatibilityTag(keys, values, compatCharset)))
-      {
-        if (!compatCharset.IsEmpty()) {
-          res = NotifyDocShell(aDocShell,
-                               aChannel,
-                               NS_ConvertUTF16toUTF8(compatCharset).get(), 
-                               kCharsetFromMetaTag);
-        }
-      }
-    }
-    return res;
-}
-
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsMetaCharsetObserver::GetCharsetFromCompatibilityTag(
-                     const nsTArray<nsString>* keys, 
-                     const nsTArray<nsString>* values, 
-                     nsAString& aCharset)
-{
-    if (!mAlias)
-        return NS_ERROR_ABORT;
-
-    aCharset.Truncate(0);
-    nsresult res = NS_OK;
-
-
-    // support for non standard case for compatibility
-    // e.g. <META charset="ISO-8859-1">
-    PRUint32 numOfAttributes = keys->Length();
-    if ((numOfAttributes >= 3) &&
-        (keys->ElementAt(0).LowerCaseEqualsLiteral("charset")))
-    {
-      const nsString& srcStr = values->ElementAt(numOfAttributes-2);
-      PRInt32 err;
-      PRInt32  src = srcStr.ToInteger(&err);
-      // if we cannot convert the string into PRInt32, return error
-      if (NS_FAILED(err))
-          return NS_ERROR_ILLEGAL_VALUE;
-      
-      // current charset have a lower priority
-      if (kCharsetFromMetaTag > src)
-      {
-          nsCAutoString newCharset;
-          newCharset.AssignWithConversion(values->ElementAt(0).get());
-          
-          nsCAutoString preferred;
-          res = mAlias->GetPreferred(newCharset,
-                                     preferred);
-          if (NS_SUCCEEDED(res))
-          {
-              // compare against the current charset, 
-              // also some charsets which should have been found in
-              // the BOM detection.
-              const nsString& currentCharset = values->ElementAt(numOfAttributes-3);
-              if (!preferred.Equals(NS_LossyConvertUTF16toASCII(currentCharset)) &&
-                  !preferred.EqualsLiteral("UTF-16") &&
-                  !preferred.EqualsLiteral("UTF-16BE") &&
-                  !preferred.EqualsLiteral("UTF-16LE") &&
-                  !preferred.EqualsLiteral("UTF-32") &&
-                  !preferred.EqualsLiteral("UTF-32BE") &&
-                  !preferred.EqualsLiteral("UTF-32LE"))
-                  AppendASCIItoUTF16(preferred, aCharset);
-          }
-      }
-    }
-
-  return res;
-}
-
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsMetaCharsetObserver::Observe(nsISupports *aSubject,
-                            const char *aTopic,
-                               const PRUnichar *aData) 
-{
-  nsresult rv = NS_OK;
-  if (!nsCRT::strcmp(aTopic, "parser-service-start")) {
-    rv = Start();
-  }
-  return rv;
-}
-
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsMetaCharsetObserver::Start() 
-{
-  nsresult rv = NS_OK;
-
-  if (!bMetaCharsetObserverStarted)  {
-    bMetaCharsetObserverStarted = PR_TRUE;
-
-    nsCOMPtr<nsIParserService> parserService(do_GetService(NS_PARSERSERVICE_CONTRACTID, &rv));
-
-    if (NS_FAILED(rv))
-      return rv;
-
-    rv = parserService->RegisterObserver(this,
-                                         NS_LITERAL_STRING("text/html"),
-                                         gWatchTags);
-  }
-
-  return rv;
-}
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsMetaCharsetObserver::End() 
-{
-  nsresult rv = NS_OK;
-  if (bMetaCharsetObserverStarted)  {
-    bMetaCharsetObserverStarted = PR_FALSE;
-
-    nsCOMPtr<nsIParserService> parserService(do_GetService(NS_PARSERSERVICE_CONTRACTID, &rv));
-
-    if (NS_FAILED(rv))
-      return rv;
-    
-    rv = parserService->UnregisterObserver(this, NS_LITERAL_STRING("text/html"));
-  }
-  return rv;
-}
-//========================================================================== 
-
-
-
-
deleted file mode 100644
--- a/intl/chardet/src/nsMetaCharsetObserver.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-#ifndef nsMetaCharsetObserverFactory_h__
-#define nsMetaCharsetObserverFactory_h__
-
-#include "nsIFactory.h"
-#include "nsIMetaCharsetService.h"
-#include "nsIElementObserver.h"
-#include "nsIObserver.h"
-#include "nsObserverBase.h"
-#include "nsWeakReference.h"
-#include "nsTArray.h"
-
-//========================================================================== 
-//
-// Class declaration for the class 
-//
-//========================================================================== 
-class nsMetaCharsetObserver: public nsIElementObserver, 
-                             public nsIObserver, 
-                             public nsObserverBase,
-                             public nsIMetaCharsetService,
-                             public nsSupportsWeakReference {
-public:
-  nsMetaCharsetObserver();
-  virtual ~nsMetaCharsetObserver();
-
-  /* methode for nsIElementObserver */
-
-  /*
-   *   Subject call observer when the parser hit the tag
-   *   @param aDocumentID- ID of the document
-   *   @param aTag- the tag
-   *   @param numOfAttributes - number of attributes
-   *   @param nameArray - array of name. 
-   *   @param valueArray - array of value
-   */
-  NS_IMETHOD Notify(PRUint32 aDocumentID, eHTMLTags aTag, PRUint32 numOfAttributes, 
-                    const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
-  NS_IMETHOD Notify(PRUint32 aDocumentID, const PRUnichar* aTag, PRUint32 numOfAttributes, 
-                    const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
-
-  NS_IMETHOD Notify(nsISupports* aWebShell, 
-                    nsISupports* aChannel,
-                    const PRUnichar* aTag, 
-                    const nsTArray<nsString>* keys, 
-                    const nsTArray<nsString>* values,
-                    const PRUint32 aFlags);
-
-  NS_DECL_ISUPPORTS
-
-  /* methode for nsIObserver */
-  NS_DECL_NSIOBSERVER
-
-  /* methode for nsIMetaCharsetService */
-  NS_IMETHOD Start();
-  NS_IMETHOD End();
- 
-private:
-
-  NS_IMETHOD Notify(PRUint32 aDocumentID, PRUint32 numOfAttributes, 
-                    const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
-
-  NS_IMETHOD Notify(nsISupports* aWebShell, 
-                    nsISupports* aChannel,
-                    const nsTArray<nsString>* keys, 
-                    const nsTArray<nsString>* values);
-
-  NS_IMETHOD GetCharsetFromCompatibilityTag(const nsTArray<nsString>* keys, 
-                                            const nsTArray<nsString>* values, 
-                                            nsAString& aCharset);
-
-  nsCOMPtr<nsICharsetAlias> mAlias;
-
-  PRBool bMetaCharsetObserverStarted;
-};
-
-#endif // nsMetaCharsetObserverFactory_h__
deleted file mode 100644
--- a/intl/chardet/src/nsXMLEncodingObserver.cpp
+++ /dev/null
@@ -1,235 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1999
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Pierre Phaneuf <pp@ludusdesign.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-#include "nsICharsetAlias.h"
-#include "nsXMLEncodingObserver.h"
-#include "nsIXMLEncodingService.h"
-#include "nsIElementObserver.h"
-#include "nsIObserver.h"
-#include "nsIObserverService.h"
-#include "nsISupports.h"
-#include "nsCRT.h"
-#include "nsIParser.h"
-#include "pratom.h"
-#include "nsCharDetDll.h"
-#include "nsIServiceManager.h"
-#include "nsObserverBase.h"
-#include "nsWeakReference.h"
-#include "nsReadableUtils.h"
-#include "nsUnicharUtils.h"
-#include "mozilla/Services.h"
-
-static NS_DEFINE_CID(kCharsetAliasCID, NS_CHARSETALIAS_CID);
-
-static const eHTMLTags gTags[] = 
-{ eHTMLTag_instruction,
-  eHTMLTag_unknown
-};
-
-//-------------------------------------------------------------------------
-nsXMLEncodingObserver::nsXMLEncodingObserver()
-{
-  bXMLEncodingObserverStarted = PR_FALSE;
-}
-//-------------------------------------------------------------------------
-nsXMLEncodingObserver::~nsXMLEncodingObserver()
-{
-  // call to end the ObserverService
-  if (bXMLEncodingObserverStarted) {
-    End();
-  }
-}
-
-//-------------------------------------------------------------------------
-NS_IMPL_ADDREF ( nsXMLEncodingObserver )
-NS_IMPL_RELEASE ( nsXMLEncodingObserver )
-
-// Use the new scheme
-NS_IMPL_QUERY_INTERFACE4(nsXMLEncodingObserver, 
-                         nsIElementObserver, 
-                         nsIObserver, 
-                         nsIXMLEncodingService, 
-                         nsISupportsWeakReference)
-
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsXMLEncodingObserver::Notify(
-                     PRUint32 aDocumentID, 
-                     const PRUnichar* aTag, 
-                     PRUint32 numOfAttributes, 
-                     const PRUnichar* nameArray[], 
-                     const PRUnichar* valueArray[])
-{
-    if(!nsDependentString(aTag).LowerCaseEqualsLiteral("?xml")) 
-        return NS_ERROR_ILLEGAL_VALUE;
-    else
-        return Notify(aDocumentID, numOfAttributes, nameArray, valueArray);
-}
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsXMLEncodingObserver::Notify(
-                     PRUint32 aDocumentID, 
-                     eHTMLTags aTag, 
-                     PRUint32 numOfAttributes, 
-                     const PRUnichar* nameArray[], 
-                     const PRUnichar* valueArray[])
-{
-    if(eHTMLTag_meta != aTag) 
-        return NS_ERROR_ILLEGAL_VALUE;
-    else 
-        return Notify(aDocumentID, numOfAttributes, nameArray, valueArray);
-}
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsXMLEncodingObserver::Notify(
-                     PRUint32 aDocumentID, 
-                     PRUint32 numOfAttributes, 
-                     const PRUnichar* nameArray[], 
-                     const PRUnichar* valueArray[])
-{
-
-    nsresult res = NS_OK;
-    PRUint32 i;
-
-    if(numOfAttributes >= 3)
-    {
-      PRBool bGotCurrentCharset=PR_FALSE;
-      PRBool bGotCurrentCharsetSource = PR_FALSE;
-      PRBool bGotEncoding = PR_FALSE;
-
-      nsCAutoString currentCharset(NS_LITERAL_CSTRING("unknown"));
-      nsAutoString charsetSourceStr(NS_LITERAL_STRING("unknown"));
-      nsCAutoString encoding(NS_LITERAL_CSTRING("unknown"));
-
-      for(i=0; i < numOfAttributes; i++) 
-      {
-         if(0==nsCRT::strcmp(nameArray[i], NS_LITERAL_STRING("charset").get())) 
-         {
-           bGotCurrentCharset = PR_TRUE;
-           LossyCopyUTF16toASCII(nsDependentString(valueArray[i]), currentCharset);
-         } else if(0==nsCRT::strcmp(nameArray[i], NS_LITERAL_STRING("charsetSource").get())) {
-           bGotCurrentCharsetSource = PR_TRUE;
-           charsetSourceStr = valueArray[i];
-         } else if(nsDependentString(nameArray[i]).LowerCaseEqualsLiteral("encoding")) { 
-           bGotEncoding = PR_TRUE;
-           LossyCopyUTF16toASCII(nsDependentString(valueArray[i]), encoding);
-         }
-      }
-
-      // if we cannot find currentCharset or currentCharsetSource
-      // return error.
-      if( ! (bGotCurrentCharset && bGotCurrentCharsetSource))
-      {
-         return NS_ERROR_ILLEGAL_VALUE;
-      }
-
-      PRInt32 err;
-      PRInt32 charsetSourceInt = charsetSourceStr.ToInteger(&err);
-
-      // if we cannot convert the string into PRInt32, return error
-      if(NS_FAILED(err))
-         return NS_ERROR_ILLEGAL_VALUE;
-
-      PRInt32 currentCharsetSource = charsetSourceInt;
-
-      if(kCharsetFromMetaTag > currentCharsetSource)
-      {
-           if(! encoding.Equals(currentCharset)) 
-           {
-              nsCOMPtr<nsICharsetAlias> calias = do_GetService(kCharsetAliasCID, &res);
-               if(NS_SUCCEEDED(res) && (nsnull != calias) ) 
-               {
-                    PRBool same = PR_FALSE;
-                    res = calias->Equals( encoding, currentCharset, &same);
-                    if(NS_SUCCEEDED(res) && (! same))
-                    {
-                          nsCAutoString preferred;
-                          res = calias->GetPreferred(encoding,
-                                                     preferred);
-                          if(NS_SUCCEEDED(res))
-                          {
-                            res = NotifyDocShell(0,0, preferred.get(), kCharsetFromMetaTag );
-                            return res;
-                          } // if check for GetPreferred
-                    } // if check res for Equals
-                } // if check res for GetService
-            } // if Equals
-       } // if 
-    } // if 
-
-    return NS_OK;
-}
-
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsXMLEncodingObserver::Observe(nsISupports*, const char*, const PRUnichar*) 
-{
-    return NS_ERROR_NOT_IMPLEMENTED;
-}
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsXMLEncodingObserver::Start() 
-{
-    nsresult res = NS_OK;
-
-    if (bXMLEncodingObserverStarted) 
-      return res;
-
-    nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
-    if (!obs)
-      return NS_ERROR_FAILURE;
-
-    res = obs->AddObserver(this, "xmlparser", PR_TRUE);
-
-    bXMLEncodingObserverStarted = PR_TRUE;
-
-    return res;
-}
-//-------------------------------------------------------------------------
-NS_IMETHODIMP nsXMLEncodingObserver::End() 
-{
-    nsresult res = NS_OK;
-    
-    if (!bXMLEncodingObserverStarted)
-      return res;
-
-    nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
-    if (!obs)
-      return NS_ERROR_FAILURE;
-
-    res = obs->RemoveObserver(this, "xmlparser");
-
-    bXMLEncodingObserverStarted = PR_FALSE;
-
-    return res;
-}
-
deleted file mode 100644
--- a/intl/chardet/src/nsXMLEncodingObserver.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-#ifndef nsXMLEncodingObserverFactory_h__
-#define nsXMLEncodingObserverFactory_h__
-
-#include "nsIFactory.h"
-#include "nsIXMLEncodingService.h"
-#include "nsIElementObserver.h"
-#include "nsIObserver.h"
-#include "nsIObserverService.h"
-#include "nsObserverBase.h"
-#include "nsWeakReference.h"
-#include "nsTArray.h"
-
-class nsXMLEncodingObserver: public nsIElementObserver, 
-                             public nsIObserver, 
-                             public nsObserverBase,
-                             public nsIXMLEncodingService,
-                             public nsSupportsWeakReference {
-public:
-  nsXMLEncodingObserver();
-  virtual ~nsXMLEncodingObserver();
-
-  /* methode for nsIElementObserver */
-
-  /*
-   *   Subject call observer when the parser hit the tag
-   *   @param aDocumentID- ID of the document
-   *   @param aTag- the tag
-   *   @param numOfAttributes - number of attributes
-   *   @param nameArray - array of name. 
-   *   @param valueArray - array of value
-   */
-  NS_IMETHOD Notify(PRUint32 aDocumentID, eHTMLTags aTag, PRUint32 numOfAttributes, 
-                    const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
-  NS_IMETHOD Notify(PRUint32 aDocumentID, const PRUnichar* aTag, PRUint32 numOfAttributes, 
-                    const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
-  NS_IMETHOD Notify(nsISupports* aDocShell,
-                    nsISupports* aChannel,
-                    const PRUnichar* aTag, 
-                    const nsTArray<nsString>* keys, 
-                    const nsTArray<nsString>* values,
-                    const PRUint32 aFlags)
-  { return NS_ERROR_NOT_IMPLEMENTED; }
-
-  NS_DECL_ISUPPORTS
-
-  /* methode for nsIObserver */
-  NS_DECL_NSIOBSERVER
-
-  /* methode for nsIXMLEncodingService */
-  NS_IMETHOD Start();
-  NS_IMETHOD End();
-
-private:
-  NS_IMETHOD Notify(PRUint32 aDocumentID, PRUint32 numOfAttributes, 
-                    const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
-
-  PRBool bXMLEncodingObserverStarted;
-};
-
-#endif // nsXMLEncodingObserverFactory_h__
--- a/intl/locale/src/nsLocale.cpp
+++ b/intl/locale/src/nsLocale.cpp
@@ -58,59 +58,16 @@ nsLocale::nsLocale(void)
 :  fHashtable(nsnull), fCategoryCount(0)
 {
   fHashtable = PL_NewHashTable(LOCALE_HASH_SIZE,&nsLocale::Hash_HashFunction,
                                &nsLocale::Hash_CompareNSString,
                                &nsLocale::Hash_CompareNSString, NULL, NULL);
   NS_ASSERTION(fHashtable, "nsLocale: failed to allocate PR_Hashtable");
 }
 
-nsLocale::nsLocale(nsLocale* other) : fHashtable(nsnull), fCategoryCount(0)
-{
-  fHashtable = PL_NewHashTable(LOCALE_HASH_SIZE,&nsLocale::Hash_HashFunction,
-                               &nsLocale::Hash_CompareNSString,
-                               &nsLocale::Hash_CompareNSString, NULL, NULL);
-  NS_ASSERTION(fHashtable, "nsLocale: failed to allocate PR_Hashtable");
-
-  //
-  // enumerate Hash and copy
-  //
-  PL_HashTableEnumerateEntries(other->fHashtable, 
-                               &nsLocale::Hash_EnumerateCopy, fHashtable);
-}
-
-
-nsLocale::nsLocale(const nsTArray<nsString>& categoryList, 
-                   const nsTArray<nsString>& valueList) 
-                  : fHashtable(NULL), fCategoryCount(0)
-{
-  PRUnichar* key, *value;
-
-  fHashtable = PL_NewHashTable(LOCALE_HASH_SIZE,&nsLocale::Hash_HashFunction,
-                               &nsLocale::Hash_CompareNSString,
-                               &nsLocale::Hash_CompareNSString,
-                               NULL, NULL);
-  NS_ASSERTION(fHashtable, "nsLocale: failed to allocate PR_Hashtable");
-
-  if (fHashtable)
-  {
-    for(PRUint32 i=0; i < categoryList.Length(); ++i) 
-    {
-      key = ToNewUnicode(categoryList[i]);
-      NS_ASSERTION(key, "nsLocale: failed to allocate internal hash key");
-      value = ToNewUnicode(valueList[i]);
-      NS_ASSERTION(value, "nsLocale: failed to allocate internal hash value");
-      if (!PL_HashTableAdd(fHashtable,key,value)) {
-          nsMemory::Free(key);
-          nsMemory::Free(value);
-      }
-    }
-  }
-}
-
 nsLocale::~nsLocale(void)
 {
   // enumerate all the entries with a delete function to
   // safely delete all the keys and values
   PL_HashTableEnumerateEntries(fHashtable, &nsLocale::Hash_EnumerateDelete,
                                NULL);
 
   PL_HashTableDestroy(fHashtable);
@@ -181,30 +138,8 @@ nsLocale::Hash_EnumerateDelete(PLHashEnt
 {
   // delete an entry
   nsMemory::Free((PRUnichar *)he->key);
   nsMemory::Free((PRUnichar *)he->value);
 
   return (HT_ENUMERATE_NEXT | HT_ENUMERATE_REMOVE);
 }
 
-PRIntn
-nsLocale::Hash_EnumerateCopy(PLHashEntry *he, PRIntn hashIndex, void* arg)
-{
-  PRUnichar* newKey = ToNewUnicode(nsDependentString((PRUnichar *)he->key));
-  if (!newKey) 
-    return HT_ENUMERATE_STOP;
-
-  PRUnichar* newValue = ToNewUnicode(nsDependentString((PRUnichar *)he->value));
-  if (!newValue) {
-    nsMemory::Free(newKey);
-    return HT_ENUMERATE_STOP;
-  }
-
-  if (!PL_HashTableAdd((PLHashTable*)arg, newKey, newValue)) {
-    nsMemory::Free(newKey);
-    nsMemory::Free(newValue);
-    return HT_ENUMERATE_STOP;
-  }
-
-  return (HT_ENUMERATE_NEXT);
-}
-
--- a/intl/locale/src/nsLocale.h
+++ b/intl/locale/src/nsLocale.h
@@ -58,31 +58,28 @@
 #include "plhash.h"
 
 class nsLocale : public nsILocale {
 	friend class nsLocaleService;
 	NS_DECL_ISUPPORTS
 
 public:
 	nsLocale(void);
-	nsLocale(const nsTArray<nsString>& categoryList, const nsTArray<nsString>& valueList);
-	nsLocale(nsLocale* other);
 	virtual ~nsLocale(void);
 	
 	/* Declare methods from nsILocale */
 	NS_DECL_NSILOCALE
 
 protected:
 	
 	NS_IMETHOD AddCategory(const nsAString& category, const nsAString& value);
 
 	static PLHashNumber Hash_HashFunction(const void* key);
 	static PRIntn Hash_CompareNSString(const void* s1, const void* s2);
 	static PRIntn Hash_EnumerateDelete(PLHashEntry *he, PRIntn hashIndex, void *arg);
-	static PRIntn Hash_EnumerateCopy(PLHashEntry *he, PRIntn hashIndex, void *arg);
 
 	PLHashTable*	fHashtable;
 	PRUint32		fCategoryCount;
 
 };
 
 
 #endif
--- a/intl/lwbrk/public/nsIWordBreaker.h
+++ b/intl/lwbrk/public/nsIWordBreaker.h
@@ -61,16 +61,13 @@ public:
   virtual PRBool BreakInBetween(const PRUnichar* aText1 , PRUint32 aTextLen1,
                                 const PRUnichar* aText2 ,
                                 PRUint32 aTextLen2) = 0;
   virtual nsWordRange FindWord(const PRUnichar* aText1 , PRUint32 aTextLen1,
                                PRUint32 aOffset) = 0;
   virtual PRInt32 NextWord(const PRUnichar* aText, PRUint32 aLen, 
                            PRUint32 aPos) = 0;
                            
-  virtual PRInt32 PrevWord(const PRUnichar* aText, PRUint32 aLen, 
-                           PRUint32 aPos) = 0;
-
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(nsIWordBreaker, NS_IWORDBREAKER_IID)
 
 #endif  /* nsIWordBreaker_h__ */
--- a/intl/lwbrk/src/nsSampleWordBreaker.cpp
+++ b/intl/lwbrk/src/nsSampleWordBreaker.cpp
@@ -177,36 +177,8 @@ PRInt32 nsSampleWordBreaker::NextWord(
   {
 	// need to call Thai word breaker from here
 	// we should pass the whole Thai segment to the thai word breaker to find a shorter answer
   }
   if (cur == aLen)
     return NS_WORDBREAKER_NEED_MORE_TEXT;
   return cur;
 }
-
-PRInt32 nsSampleWordBreaker::PrevWord(
-  const PRUnichar* aText, PRUint32 aLen, PRUint32 aPos) 
-{
-  PRInt8 c1, c2;
-  PRUint32 cur = aPos;
-  if (cur == aLen) {
-    if (cur == 0)
-      return NS_WORDBREAKER_NEED_MORE_TEXT;
-    --cur;
-  }
-  c1 = this->GetClass(aText[cur]);
-
-  for(; cur > 0; cur--)
-  {
-     c2 = this->GetClass(aText[cur-1]);
-     if(c2 != c1)
-       break;
-  }
-  if(kWbClassThaiLetter == c1)
-  {
-	// need to call Thai word breaker from here
-	// we should pass the whole Thai segment to the thai word breaker to find a shorter answer
-  }
-  if (!cur)
-    return NS_WORDBREAKER_NEED_MORE_TEXT;
-  return cur;
-}
--- a/intl/lwbrk/src/nsSampleWordBreaker.h
+++ b/intl/lwbrk/src/nsSampleWordBreaker.h
@@ -61,15 +61,13 @@ public:
 
   PRBool BreakInBetween(const PRUnichar* aText1 , PRUint32 aTextLen1,
                         const PRUnichar* aText2 , PRUint32 aTextLen2);
   nsWordRange FindWord(const PRUnichar* aText1 , PRUint32 aTextLen1,
                        PRUint32 aOffset);
 
   PRInt32 NextWord(const PRUnichar* aText, PRUint32 aLen, PRUint32 aPos);
 
-  PRInt32 PrevWord(const PRUnichar* aText, PRUint32 aLen, PRUint32 aPos);
-
 protected:
   PRUint8  GetClass(PRUnichar aChar);
 };
 
 #endif  /* nsSampleWordBreaker_h__ */
--- a/intl/uconv/native/nsINativeUConvService.idl
+++ b/intl/uconv/native/nsINativeUConvService.idl
@@ -38,15 +38,14 @@
 
 #include "nsISupports.idl"
 
 /*
  * Returns an object that implements the following interfaces:
  *  
  *  nsIUnicodeDecoder 
  *  nsIUnicodeEncoder 
- *  nsICharRepresentable
  */
 [uuid(c60097ba-c79d-461b-9116-80a66404c0b0)]
 interface nsINativeUConvService : nsISupports
 {
   nsISupports getNativeConverter(in string from, in string to);
 };
--- a/intl/uconv/native/nsNativeUConvService.cpp
+++ b/intl/uconv/native/nsNativeUConvService.cpp
@@ -39,30 +39,28 @@
 #ifdef MOZ_USE_NATIVE_UCONV
 #include "nsString.h"
 #include "nsIGenericFactory.h"
 
 #include "nsINativeUConvService.h"
 
 #include "nsIUnicodeDecoder.h"
 #include "nsIUnicodeEncoder.h"
-#include "nsICharRepresentable.h"
 
 #include "nsNativeUConvService.h"
 #include "nsAutoPtr.h"
 
 #include <nl_types.h> // CODESET
 #include <langinfo.h> // nl_langinfo
 #include <iconv.h>    // iconv_open, iconv, iconv_close
 #include <errno.h>
 
 
 class IConvAdaptor : public nsIUnicodeDecoder, 
-                     public nsIUnicodeEncoder, 
-                     public nsICharRepresentable
+                     public nsIUnicodeEncoder 
 {
 public:
     IConvAdaptor();
     virtual ~IConvAdaptor();
     
     nsresult Init(const char* from, const char* to);
     
     NS_DECL_ISUPPORTS
@@ -98,18 +96,16 @@ public:
                             PRInt32 * aDestLength);
     
     // defined by the Decoder:  NS_IMETHOD Reset();
     
     NS_IMETHOD SetOutputErrorBehavior(PRInt32 aBehavior, 
                                       nsIUnicharEncoder * aEncoder, 
                                       PRUnichar aChar);
     
-    NS_IMETHOD FillInfo(PRUint32* aInfo);
-    
     
 private:
     nsresult ConvertInternal(void * aSrc, 
                              PRInt32 * aSrcLength, 
                              PRInt32 aSrcCharSize,
                              void * aDest, 
                              PRInt32 * aDestLength,
                              PRInt32 aDestCharSize);
@@ -119,20 +115,19 @@ private:
     PRBool    mReplaceOnError;
     PRUnichar mReplaceChar;
 
 #ifdef DEBUG
     nsCString mFrom, mTo;
 #endif
 };
 
-NS_IMPL_ISUPPORTS3(IConvAdaptor, 
+NS_IMPL_ISUPPORTS2(IConvAdaptor, 
                    nsIUnicodeEncoder, 
-                   nsIUnicodeDecoder,
-                   nsICharRepresentable)
+                   nsIUnicodeDecoder)
 
 IConvAdaptor::IConvAdaptor()
 {
     mConverter = 0;
     mReplaceOnError = PR_FALSE;
 }
 
 IConvAdaptor::~IConvAdaptor()
@@ -276,26 +271,16 @@ IConvAdaptor::SetOutputErrorBehavior(PRI
         mReplaceChar = aChar;
         return NS_OK;
     }
 
     NS_WARNING("Uconv Error Behavior not support");
     return NS_ERROR_FAILURE;
 }
 
-nsresult 
-IConvAdaptor::FillInfo(PRUint32* aInfo)
-{
-#ifdef DEBUG
-    printf(" * IConvAdaptor - FillInfo called\n");
-#endif
-    *aInfo = 0;
-    return NS_OK;
-}
-
 
 nsresult 
 IConvAdaptor::ConvertInternal(void * aSrc, 
                              PRInt32 * aSrcLength, 
                              PRInt32 aSrcCharSize,
                              void * aDest, 
                              PRInt32 * aDestLength,
                              PRInt32 aDestCharSize)
--- a/intl/uconv/native/nsWinCEUConvService.cpp
+++ b/intl/uconv/native/nsWinCEUConvService.cpp
@@ -34,17 +34,16 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include <windows.h>
 
 #include "nsNativeUConvService.h"
 #include "nsIUnicodeDecoder.h"
 #include "nsIUnicodeEncoder.h"
-#include "nsICharRepresentable.h"
 #include "nsIPlatformCharset.h"
 #include "nsIServiceManager.h"
 
 #include "nsUCSupport.h"
 #include "nsUTF8ToUnicode.h"
 #include "nsUnicodeToUTF8.h"
 
 #ifdef ALERT_DBG
@@ -69,18 +68,17 @@ void DisplayLastError(const char * msg)
     default:
       MessageBox(0, "other...", msg, flags);
     }
 }
 #endif
 
 
 class WinCEUConvAdapter : public nsIUnicodeDecoder,
-                          public nsIUnicodeEncoder,
-                          public nsICharRepresentable
+                          public nsIUnicodeEncoder
 {
 public:
   
   WinCEUConvAdapter();
   virtual ~WinCEUConvAdapter();
   
   nsresult Init(const char* from, const char* to);
   
@@ -116,25 +114,22 @@ public:
                           PRInt32 * aDestLength);
   
   // defined by the Decoder:  NS_IMETHOD Reset();
   
   NS_IMETHOD SetOutputErrorBehavior(PRInt32 aBehavior, 
                                     nsIUnicharEncoder * aEncoder, 
                                     PRUnichar aChar);
   
-  NS_IMETHOD FillInfo(PRUint32* aInfo);
-  
   PRUint32 mCodepage;
 };
 
-NS_IMPL_ISUPPORTS3(WinCEUConvAdapter,
+NS_IMPL_ISUPPORTS2(WinCEUConvAdapter,
                    nsIUnicodeDecoder,
-                   nsIUnicodeEncoder,
-                   nsICharRepresentable)
+                   nsIUnicodeEncoder)
 
 WinCEUConvAdapter::WinCEUConvAdapter()
 {
   mCodepage = -1;
 }
 
 WinCEUConvAdapter::~WinCEUConvAdapter()
 {
@@ -396,22 +391,16 @@ WinCEUConvAdapter::GetMaxLength(const PR
 NS_IMETHODIMP
 WinCEUConvAdapter::SetOutputErrorBehavior(PRInt32 aBehavior, 
                                           nsIUnicharEncoder * aEncoder, 
                                           PRUnichar aChar)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP
-WinCEUConvAdapter::FillInfo(PRUint32* aInfo)
-{
-  return NS_OK;
-}
-
 // NativeUConvService
 
 NS_IMPL_ISUPPORTS1(NativeUConvService, 
                    nsINativeUConvService);
 
 NS_IMETHODIMP 
 NativeUConvService::GetNativeConverter(const char* from,
                                        const char* to,
--- a/intl/uconv/public/Makefile.in
+++ b/intl/uconv/public/Makefile.in
@@ -44,16 +44,15 @@ include $(DEPTH)/config/autoconf.mk
 
 MODULE		= uconv
 
 EXPORTS		= \
 		nsICharsetAlias.h \
 		nsIPlatformCharset.h \
 		nsIUnicodeDecoder.h \
 		nsIUnicodeEncoder.h \
-		nsICharRepresentable.h \
 		uconvutil.h \
 		nsEncoderDecoderUtils.h \
 		nsUConvCID.h \
 		$(NULL)
 
 include $(topsrcdir)/config/rules.mk
 
deleted file mode 100644
--- a/intl/uconv/public/nsICharRepresentable.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Mozilla Communicator client code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef nsICharRepresentable_h__
-#define nsICharRepresentable_h__
-
-#include "nscore.h"
-#include "nsISupports.h"
-
-// {A4D9A521-185A-11d3-B3BD-00805F8A6670}
-#define NS_ICHARREPRESENTABLE_IID \
-{ 0xa4d9a521, 0x185a, 0x11d3, { 0xb3, 0xbd, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } }
-
-
-/* 
-   The following two macro have been duplicate in umap.c. 
-   You need to change both place to make it work 
-*/
-#define IS_REPRESENTABLE(info, c) (((info)[(c) >> 5] >> ((c) & 0x1f)) & 1L)
-#define SET_REPRESENTABLE(info, c)  (info)[(c) >> 5] |= (1L << ((c) & 0x1f))
-#define CLEAR_REPRESENTABLE(info, c)  (info)[(c) >> 5] &= (~(1L << ((c) & 0x1f)))
-
-// number of PRUint32 in the 64Kbit char map
-#define UCS2_MAP_LEN 2048
-
-/**
- */
-class nsICharRepresentable : public nsISupports
-{
-public:
-  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICHARREPRESENTABLE_IID)
-
-  NS_IMETHOD FillInfo(PRUint32* aInfo) = 0;
-
-};
-
-NS_DEFINE_STATIC_IID_ACCESSOR(nsICharRepresentable, NS_ICHARREPRESENTABLE_IID)
-
-#endif /* nsIUnicodeDecoder_h__ */
--- a/intl/uconv/src/nsUTF8ToUnicode.cpp
+++ b/intl/uconv/src/nsUTF8ToUnicode.cpp
@@ -39,40 +39,16 @@
 #define MOZILLA_SSE_INCLUDE_HEADER_FOR_SSE2
 
 #include "nsUCSupport.h"
 #include "nsUTF8ToUnicode.h"
 #include "mozilla/SSE.h"
 
 #define UNICODE_BYTE_ORDER_MARK    0xFEFF
 
-NS_IMETHODIMP NS_NewUTF8ToUnicode(nsISupports* aOuter,
-                                  const nsIID& aIID,
-                                  void** aResult)
-{
-  if (!aResult) {
-    return NS_ERROR_NULL_POINTER;
-  }
-  if (aOuter) {
-    *aResult = nsnull;
-    return NS_ERROR_NO_AGGREGATION;
-  }
-  nsUTF8ToUnicode * inst = new nsUTF8ToUnicode();
-  if (!inst) {
-    *aResult = nsnull;
-    return NS_ERROR_OUT_OF_MEMORY;
-  }
-  nsresult res = inst->QueryInterface(aIID, aResult);
-  if (NS_FAILED(res)) {
-    *aResult = nsnull;
-    delete inst;
-  }
-  return res;
-}
-
 //----------------------------------------------------------------------
 // Class nsUTF8ToUnicode [implementation]
 
 nsUTF8ToUnicode::nsUTF8ToUnicode()
 : nsBasicDecoderSupport()
 {
   Reset();
 }
--- a/intl/uconv/src/nsUnicodeToUTF8.cpp
+++ b/intl/uconv/src/nsUnicodeToUTF8.cpp
@@ -54,22 +54,16 @@ NS_IMETHODIMP nsUnicodeToUTF8::GetMaxLen
   // But when previous buffer only contains part of the surrogate pair, we 
   // need to complete it here. If the first word in following buffer is not
   // in valid surrogate rang, we need to convert the remaining of last buffer 
   // to 3 bytes.
   *aDestLength = 3*aSrcLength + 3;
   return NS_OK;
 }
 
-NS_IMETHODIMP nsUnicodeToUTF8::FillInfo(PRUint32 *aInfo)
-{
-  memset(aInfo, 0xFF, (0x10000L >> 3));
-  return NS_OK;
-}
-
 NS_IMETHODIMP nsUnicodeToUTF8::Convert(const PRUnichar * aSrc, 
                                 PRInt32 * aSrcLength, 
                                 char * aDest, 
                                 PRInt32 * aDestLength)
 {
   const PRUnichar * src = aSrc;
   const PRUnichar * srcEnd = aSrc + *aSrcLength;
   char * dest = aDest;
--- a/intl/uconv/src/nsUnicodeToUTF8.h
+++ b/intl/uconv/src/nsUnicodeToUTF8.h
@@ -63,18 +63,16 @@ class nsUnicodeToUTF8 : public nsIUnicod
 
 public:
 
   /**
    * Class constructor.
    */
   nsUnicodeToUTF8() {mHighSurrogate = 0;}
 
-  NS_IMETHOD FillInfo(PRUint32* aInfo);
-
   NS_IMETHOD Convert(const PRUnichar * aSrc, 
                      PRInt32 * aSrcLength, 
                      char * aDest, 
                      PRInt32 * aDestLength);
 
   NS_IMETHOD Finish(char * aDest, PRInt32 * aDestLength);
 
   NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength, 
--- a/intl/uconv/tests/nsTestUConv.cpp
+++ b/intl/uconv/tests/nsTestUConv.cpp
@@ -39,26 +39,23 @@
 #include <stdio.h>
 #include <string.h>
 #include "nsXPCOM.h"
 #include "nsIComponentManager.h"
 #include "nsIServiceManager.h"
 #include "nsISupports.h"
 #include "nsICharsetConverterManager.h"
 #include "nsIPlatformCharset.h"
-#include "nsICharRepresentable.h"
 #include "prmem.h"
 #include "nsReadableUtils.h"
 
 
 static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID);
 static NS_DEFINE_CID(kPlatformCharsetCID, NS_PLATFORMCHARSET_CID);
 
-//#define TEST_IS_REPRESENTABLE
-
 /**
  * Test program for the Unicode Converters.
  *
  * Error messages format inside of a test.
  *
  * - silent while all is OK.
  * 
  * - "ERROR at T001.easyConversion.Convert() code=0xfffd.\n"
@@ -213,30 +210,16 @@ nsresult testEncoder(nsIUnicodeEncoder *
       return NS_ERROR_UNEXPECTED;
   }
   for (PRInt32 i=0; i<aResLength; i++) if (aRes[i] != dest[i]) {
       printf("ERROR at %s.easy.EncResChar[%d] expected=0x%x result=0x%x.\n", 
           aTestName, i, aRes[i], dest[i]);
       return NS_ERROR_UNEXPECTED;
   }
   
-#ifdef TEST_IS_REPRESENTABLE
-  nsICharRepresentable* rp = nsnull;
-  res = aEnc->QueryInterface(NS_GET_IID(nsICharRepresentable),(void**) &rp);
-  if(NS_SUCCEEDED(res))  {
-    PRUint32 *info= (PRUint32*)PR_Calloc((0x10000 >> 5), 4);
-    rp->FillInfo(info);
-    for(int i=0;i< 0x10000;i++)
-    {
-       if(IS_REPRESENTABLE(info, i)) 
-           printf("%4x\n", i);
-    }
-  }
-#endif
-
   return NS_OK;
 }
 
 /**
  * Decoder test.
  * 
  * This method will test a given converter under a given set of data and some 
  * very stressful conditions.
--- a/intl/uconv/ucvcn/nsGBKConvUtil.cpp
+++ b/intl/uconv/ucvcn/nsGBKConvUtil.cpp
@@ -33,17 +33,16 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsGBKConvUtil.h"
 #include "gbku.h"
 #include "nsCRT.h"
-#include "nsICharRepresentable.h"
 #define MAX_GBK_LENGTH 24066 /* (0xfe-0x80)*(0xfe-0x3f) */
 //--------------------------------------------------------------------
 // nsGBKConvUtil
 //--------------------------------------------------------------------
 
 static PRBool gInitToGBKTable = PR_FALSE;
 static const PRUnichar gGBKToUnicodeTable[MAX_GBK_LENGTH] = {
 #include "cp936map.h"
@@ -144,72 +143,8 @@ void nsGBKConvUtil::InitToGBKTable()
     {
       unicode -= 0x4E00; 
       gUnicodeToGBKTable[unicode] =  (( i / 0x00BF + 0x0081) << 8) | 
                                     ( i % 0x00BF+ 0x0040);
     }
   }
   gInitToGBKTable = PR_TRUE;
 }
-void nsGBKConvUtil::FillInfo( 
-  PRUint32 *aInfo, 
-  PRUint8 aStart1, PRUint8 aEnd1, 
-  PRUint8 aStart2, PRUint8 aEnd2
-)
-{
-  PRUint16 i,j, k;
-  PRUnichar unicode;
-
-  for ( i=aStart1; i<=aEnd1; i++) 
-  {
-    for( j=aStart2; j<=aEnd2; j++)
-    {
-      k = (i - 0x0081)*0x00BF +(j-0x0040);    
-      unicode = gGBKToUnicodeTable[k];
-      NS_ASSERTION(unicode != 0xFFFF, "somehow the table still use 0xffff");
-      if (unicode != UCS2_NO_MAPPING) 
-      {
-        SET_REPRESENTABLE(aInfo, unicode);
-      }               
-    }
-  }                   
-}
-void nsGBKConvUtil::FillGB2312Info( 
-  PRUint32 *aInfo
-)
-{
-  // The following range is coded by looking at the GB2312 standard
-  // and make sure we do not call FillInfo for undefined code point
-  // Symbol
-  // row 1 - 1 range (full)
-  FillInfo(aInfo, 0x21|0x80, 0x21|0x80, 0x21|0x80, 0x7E|0x80);
-  // row 2 - 3 range
-  FillInfo(aInfo, 0x22|0x80, 0x22|0x80, (0x20+17)|0x80, (0x20+66)|0x80);
-  FillInfo(aInfo, 0x22|0x80, 0x22|0x80, (0x20+69)|0x80, (0x20+78)|0x80);
-  FillInfo(aInfo, 0x22|0x80, 0x22|0x80, (0x20+81)|0x80, (0x20+92)|0x80);
-  // row 3 - 1 range (full)
-  FillInfo(aInfo, 0x23|0x80, 0x23|0x80, 0x21|0x80, 0x7E|0x80);
-  // row 4 - 1 range
-  FillInfo(aInfo, 0x24|0x80, 0x24|0x80, (0x20+ 1)|0x80, (0x20+83)|0x80);
-  // row 5 - 1 range
-  FillInfo(aInfo, 0x25|0x80, 0x25|0x80, (0x20+ 1)|0x80, (0x20+86)|0x80);
-  // row 6 - 2 range
-  FillInfo(aInfo, 0x26|0x80, 0x26|0x80, (0x20+ 1)|0x80, (0x20+24)|0x80);
-  FillInfo(aInfo, 0x26|0x80, 0x26|0x80, (0x20+33)|0x80, (0x20+56)|0x80);
-  // row 7
-  FillInfo(aInfo, 0x27|0x80, 0x27|0x80, (0x20+ 1)|0x80, (0x20+33)|0x80);
-  FillInfo(aInfo, 0x27|0x80, 0x27|0x80, (0x20+49)|0x80, (0x20+81)|0x80);
-  // row 8
-  FillInfo(aInfo, 0x28|0x80, 0x28|0x80, (0x20+ 1)|0x80, (0x20+26)|0x80);
-  FillInfo(aInfo, 0x28|0x80, 0x28|0x80, (0x20+36)|0x80, (0x20+73)|0x80);
-  // row 9
-  FillInfo(aInfo, 0x29|0x80, 0x29|0x80, (0x20+ 4)|0x80, (0x20+79)|0x80);
- 
-  // Frequent used Hanzi
-  // 3021-567e
-  FillInfo(aInfo, 0x30|0x80, 0x56|0x80, 0x21|0x80, 0x7E|0x80);
-  // 5721-5779
-  FillInfo(aInfo, 0x57|0x80, 0x57|0x80, 0x21|0x80, 0x79|0x80);
-
-  // Infrequent used Hanzi
-  // 5821-777e
-  FillInfo(aInfo, 0x58|0x80, 0x77|0x80, 0x21|0x80, 0x7E|0x80);
-}
--- a/intl/uconv/ucvcn/nsGBKConvUtil.h
+++ b/intl/uconv/ucvcn/nsGBKConvUtil.h
@@ -41,13 +41,10 @@
 class nsGBKConvUtil {
 public:
   nsGBKConvUtil() {  }
   ~nsGBKConvUtil() { }
   void InitToGBKTable();
   PRUnichar GBKCharToUnicode(char aByte1, char aByte2);
   PRBool UnicodeToGBKChar(PRUnichar aChar, PRBool aToGL, 
                            char* aOutByte1, char* aOutByte2);
-  void FillInfo(PRUint32 *aInfo, PRUint8 aStart1, PRUint8 aEnd1,
-                                 PRUint8 aStart2, PRUint8 aEnd2);
-  void FillGB2312Info(PRUint32 *aInfo);
 };
 #endif /* nsGBKConvUtil_h__ */
--- a/intl/uconv/ucvcn/nsUnicodeToGB2312V2.cpp
+++ b/intl/uconv/ucvcn/nsUnicodeToGB2312V2.cpp
@@ -32,17 +32,16 @@
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsUnicodeToGB2312V2.h"
-#include "nsICharRepresentable.h"
 #include "nsUCvCnDll.h"
 #include "gbku.h"
 
 //----------------------------------------------------------------------
 // Class nsUnicodeToGB2312V2 [implementation]
 nsUnicodeToGB2312V2::nsUnicodeToGB2312V2() :
   nsEncoderSupport(2)
 {
@@ -94,20 +93,8 @@ NS_IMETHODIMP nsUnicodeToGB2312V2::Conve
       res = NS_OK_UENC_MOREOUTPUT;
       break;
     }
   }
   *aDestLength = iDestLength;
   *aSrcLength = iSrcLength;
   return res;
 }
-
-//----------------------------------------------------------------------
-// Subclassing of nsTableEncoderSupport class [implementation]
-
-NS_IMETHODIMP nsUnicodeToGB2312V2::FillInfo(PRUint32 *aInfo)
-{
-  mUtil.FillGB2312Info(aInfo);
-  //GB2312 font lib also have single byte ASCII characters, set them here
-  for ( PRUint16 u = 0x0000; u <= 0x007F; u++)
-    SET_REPRESENTABLE(aInfo, u);
-  return NS_OK;
-}
--- a/intl/uconv/ucvcn/nsUnicodeToGB2312V2.h
+++ b/intl/uconv/ucvcn/nsUnicodeToGB2312V2.h
@@ -70,14 +70,13 @@ protected:
   // Subclassing of nsEncoderSupport class [declaration]
 
   NS_IMETHOD ConvertNoBuffNoErr(const PRUnichar * aSrc, PRInt32 * aSrcLength, 
                                 char * aDest, PRInt32 * aDestLength)
   {
     return NS_OK;
   }   // just make it not abstract;
 
-  NS_IMETHOD FillInfo(PRUint32 *aInfo);
 protected:
   nsGBKConvUtil mUtil;
 };
 
 #endif /* nsUnicodeToGB2312V2_h___ */
--- a/intl/uconv/ucvcn/nsUnicodeToGBK.cpp
+++ b/intl/uconv/ucvcn/nsUnicodeToGBK.cpp
@@ -41,17 +41,16 @@
  * @created         08/Sept/1999
  * @author  Yueheng Xu, Yueheng.Xu@intel.com
  * Revision History
  * 04/Oct/1999. Yueheng Xu: used table gUnicodeToGBKTable[0x5200] to make 
  *              Unicode to GB mapping fast 
  */
 
 #include "nsUnicodeToGBK.h"
-#include "nsICharRepresentable.h"
 #include "nsUCvCnDll.h"
 #include "gbku.h"
 #include "uconvutil.h"
 #include "nsUnicharUtils.h"
 
 //-------------------------------------------------------------
 // Global table initialization function defined in gbku.h
 //-------------------------------------------------------------
@@ -338,37 +337,8 @@ NS_IMETHODIMP nsUnicodeToGBK::ConvertNoB
       break;
     }
   }
 //afterwhileloop:
   *aDestLength = iDestLength;
   *aSrcLength = iSrcLength;
   return res;
 }
-
-//----------------------------------------------------------------------
-// Subclassing of nsTableEncoderSupport class [implementation]
-
-NS_IMETHODIMP nsUnicodeToGBK::FillInfo(PRUint32 *aInfo)
-{
-  mUtil.FillInfo(aInfo, 0x81, 0xFE, 0x40, 0xFE);
-  if(! mExtensionEncoder )
-    CreateExtensionEncoder();
-  if(mExtensionEncoder) 
-  {
-    nsCOMPtr<nsICharRepresentable> aRep = do_QueryInterface(mExtensionEncoder);
-    aRep->FillInfo(aInfo);
-  }
-  
-  if(! m4BytesEncoder )
-    Create4BytesEncoder();
-  if(m4BytesEncoder) 
-  {
-    nsCOMPtr<nsICharRepresentable> aRep = do_QueryInterface(m4BytesEncoder);
-    aRep->FillInfo(aInfo);
-  }
-
-  //GBK font lib also have single byte ASCII characters, set them here
-  for (PRUint16 SrcUnicode = 0x0000; SrcUnicode <= 0x007F; SrcUnicode++)
-    SET_REPRESENTABLE(aInfo, SrcUnicode);
-  SET_REPRESENTABLE(aInfo, 0x20ac); // euro
-  return NS_OK;
-}
--- a/intl/uconv/ucvcn/nsUnicodeToGBK.h
+++ b/intl/uconv/ucvcn/nsUnicodeToGBK.h
@@ -73,18 +73,16 @@ protected:
                             PRInt32 * aDestLength);
 
   NS_IMETHOD ConvertNoBuffNoErr(const PRUnichar * aSrc, PRInt32 * aSrcLength, 
                                 char * aDest, PRInt32 * aDestLength)
   {
     return NS_OK;
   }  // just make it not abstract;
 
-  NS_IMETHOD FillInfo(PRUint32 *aInfo);
-
   virtual void CreateExtensionEncoder();
   virtual void Create4BytesEncoder();
 
   nsCOMPtr<nsIUnicodeEncoder> mExtensionEncoder;
   nsCOMPtr<nsIUnicodeEncoder> m4BytesEncoder;
 protected:
   PRUnichar mSurrogateHigh;
   nsGBKConvUtil mUtil;
--- a/intl/uconv/ucvcn/nsUnicodeToHZ.cpp
+++ b/intl/uconv/ucvcn/nsUnicodeToHZ.cpp
@@ -143,17 +143,8 @@ NS_IMETHODIMP nsUnicodeToHZ::FinishNoBuf
     aDest[0] = '~';
     aDest[1] = '}';
     *aDestLength = 2;
   } else {
     *aDestLength = 0;
   }
   return NS_OK;
 }
-
-NS_IMETHODIMP nsUnicodeToHZ::FillInfo(PRUint32 *aInfo)
-{
-  mUtil.FillGB2312Info(aInfo);
-  //GB2312 font lib also have single byte ASCII characters, set them here
-  for ( PRUint16 u = 0x0000; u <= 0x007F; u++)
-    SET_REPRESENTABLE(aInfo, u);
-  return NS_OK;
-}
--- a/intl/uconv/ucvcn/nsUnicodeToHZ.h
+++ b/intl/uconv/ucvcn/nsUnicodeToHZ.h
@@ -66,18 +66,16 @@ protected:
   // Subclassing of nsEncoderSupport class [declaration]
   NS_IMETHOD ConvertNoBuff(const PRUnichar * aSrc, 
                             PRInt32 * aSrcLength, 
                             char * aDest, 
                             PRInt32 * aDestLength);
 
   NS_IMETHOD FinishNoBuff(char * aDest, PRInt32 * aDestLength);
 
-  NS_IMETHOD FillInfo(PRUint32 *aInfo);
-
   NS_IMETHOD ConvertNoBuffNoErr(const PRUnichar * aSrc, PRInt32 * aSrcLength, 
                                 char * aDest, PRInt32 * aDestLength)
   {
     return NS_OK;
   }  // just make it not abstract;
 
   PRUint16 mHZState;
 protected:
--- a/intl/uconv/ucvja/nsUnicodeToISO2022JP.cpp
+++ b/intl/uconv/ucvja/nsUnicodeToISO2022JP.cpp
@@ -223,22 +223,16 @@ nsresult nsUnicodeToISO2022JP::ConvertHa
   *aDestLength = dest - aDest;
   *aSrcLength = src - aSrc;
   return res;
 }
 
 //----------------------------------------------------------------------
 // Subclassing of nsTableEncoderSupport class [implementation]
 
-NS_IMETHODIMP nsUnicodeToISO2022JP::FillInfo(PRUint32* aInfo)
-{
-  return nsUnicodeEncodeHelper::FillInfo(aInfo, SIZE_OF_TABLES, 
-                                         (uMappingTable **) g_ufMappingTables);
-
-}
 NS_IMETHODIMP nsUnicodeToISO2022JP::ConvertNoBuffNoErr(
                                     const PRUnichar * aSrc, 
                                     PRInt32 * aSrcLength, 
                                     char * aDest, 
                                     PRInt32 * aDestLength)
 {
   nsresult res = NS_OK;
 
--- a/intl/uconv/ucvja/nsUnicodeToISO2022JP.h
+++ b/intl/uconv/ucvja/nsUnicodeToISO2022JP.h
@@ -74,12 +74,11 @@ protected:
 
   //--------------------------------------------------------------------
   // Subclassing of nsEncoderSupport class [declaration]
 
   NS_IMETHOD ConvertNoBuffNoErr(const PRUnichar * aSrc, PRInt32 * aSrcLength, 
       char * aDest, PRInt32 * aDestLength);
   NS_IMETHOD FinishNoBuff(char * aDest, PRInt32 * aDestLength);
   NS_IMETHOD Reset();
-  NS_IMETHOD FillInfo(PRUint32 *aInfo);
 };
 
 #endif /* nsUnicodeToISO2022JP_h___ */
--- a/intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp
+++ b/intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp
@@ -53,17 +53,16 @@
 #include "nsXPIDLString.h"
 #include "prtypes.h"
 #include "nscore.h"
 #include "nsISupportsUtils.h"
 #include "nsCOMPtr.h"
 #include "nsIUnicodeDecoder.h"
 #include "nsServiceManagerUtils.h"
 #include "nsICharsetConverterManager.h"
-#include "nsICharRepresentable.h"
 #include <string.h>
 
 typedef struct { 
   PRUint8 seq[3];
   PRUint8 liga;
 } JamoNormMap; 
 
 // cluster maps 
@@ -128,43 +127,35 @@ typedef struct {
 #define IS_VO_EXT(wc) ( ((wc) & 0xFF00) == VO_TMPPOS )
 #define IS_TC_EXT(wc) ( ((wc) & 0xFF00) == TC_TMPPOS )
 
 // Glyph code point bases for L,V, and T in  UnBatang-like fonts
 #define UP_LBASE 0xE000  // 0xE000 = Lfill, 0xE006 = Kiyeok 
 #define UP_VBASE 0xE300  // 0xE300 = Vfill, 0xE302 = Ah  
 #define UP_TBASE 0xE404  // 0xE400 = Tfill, 0xE404 = Kiyeok
 
-// EUC-KR decoder for FillInfo.
-static nsCOMPtr<nsIUnicodeDecoder> gDecoder = 0;
-  
-static inline void FillInfoRange     (PRUint32* aInfo, PRUint32 aStart, 
-                                      PRUint32 aEnd);
 static nsresult     JamoNormalize    (const PRUnichar* aInSeq, 
                                       PRUnichar** aOutSeq, PRInt32* aLength);
 static void         JamosToExtJamos  (PRUnichar* aInSeq,  PRInt32* aLength);
 static const JamoNormMap* JamoClusterSearch(JamoNormMap aKey, 
                                             const JamoNormMap* aClusters,
                                             PRInt16 aClustersSize);
-static nsresult     FillInfoEUCKR    (PRUint32 *aInfo, PRUint16 aHigh1, 
-                                      PRUint16 aHigh2);
 
 static PRInt32      JamoNormMapComp  (const JamoNormMap& p1, 
                                       const JamoNormMap& p2);
 static PRInt16      JamoSrchReplace  (const JamoNormMap* aCluster, 
                                       PRUint16 aSize, PRUnichar *aIn, 
                                       PRInt32* aLength, PRUint16 aOffset);
-static nsresult     GetDecoder       (nsIUnicodeDecoder** aDecoder);
 static nsresult     ScanDecomposeSyllable (PRUnichar *aIn, PRInt32* aLength, 
                                            const PRInt32 aMaxLen);
 
 //----------------------------------------------------------------------
 // Class nsUnicodeToJamoTTF [implementation]
   
-NS_IMPL_ISUPPORTS2(nsUnicodeToJamoTTF, nsIUnicodeEncoder, nsICharRepresentable)
+NS_IMPL_ISUPPORTS1(nsUnicodeToJamoTTF, nsIUnicodeEncoder)
 
 NS_IMETHODIMP 
 nsUnicodeToJamoTTF::SetOutputErrorBehavior(PRInt32 aBehavior, 
                                            nsIUnicharEncoder *aEncoder, 
                                            PRUnichar aChar)
 {
   if (aBehavior == kOnError_CallBack && aEncoder == nsnull)
     return NS_ERROR_NULL_POINTER;
@@ -333,60 +324,16 @@ nsUnicodeToJamoTTF::GetMaxLength(const P
                                  PRInt32 * aDestLength)
 {
   // a precomposed Hangul syllable can be decomposed into 3 Jamos, each of
   // which takes 2bytes. 
   *aDestLength = aSrcLength *  6;
   return NS_OK;
 }
 
-
-NS_IMETHODIMP 
-nsUnicodeToJamoTTF::FillInfo(PRUint32* aInfo)
-{
-  FillInfoRange(aInfo, SBASE, SEND);
-
-  PRUnichar i;
-
-  // Hangul Conjoining Jamos
-  for(i = 0x1100; i<= 0x1159; i++)
-     SET_REPRESENTABLE(aInfo, i);
-  SET_REPRESENTABLE(aInfo, 0x115f);
-  for(i = 0x1160; i <= 0x11a2; i++)
-     SET_REPRESENTABLE(aInfo, i);
-  for(i = 0x11a8; i <= 0x11f9; i++)
-     SET_REPRESENTABLE(aInfo, i);
-
-  // Hangul Tone marks
-  SET_REPRESENTABLE(aInfo, HTONE1);
-  SET_REPRESENTABLE(aInfo, HTONE2);
-
-  // UnPark  fonts have US-ASCII chars.
-  for(i=0x20; i < 0x7f; i++)
-     SET_REPRESENTABLE(aInfo, i);
-
-  nsresult rv;
-
-  // UnPark fonts have Hanjas and symbols defined in KS X 1001 as well.
-  
-  // XXX: Do we need to exclude Cyrillic, Greek letters and some Latin letters 
-  // included in KS X 1001 as 'symbol characters'? 
-  // KS X 1001 has only a subset of Greek and Cyrillic alphabets and
-  // Latin letters with diacritic marks so that including them may
-  // result in ransom-note like effect if it is listed *before*
-  // any genuine Greek/Russian/Latin fonts in CSS. 
-    
-  // Lead byte range for symbol chars. in EUC-KR : 0xA1 - 0xAF
-  rv = FillInfoEUCKR(aInfo, 0xA1, 0xAF); 
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  // Lead byte range for Hanja in EUC-KR : 0xCA - 0xFD.
-  return FillInfoEUCKR(aInfo, 0xCA, 0xFD); 
-}
-
 /**
  * Copied from mslvt.otp by Jin-Hwan Cho <chofchof@ktug.or.kr>.
  * Extended by Jungshik Shin <jshin@mailaps.org> to support
  * additional Jamo clusters not encoded in U+1100 Jamo block
  * as precomposed Jamo clsuters. 
  * Corrected by Won-Kyu Park <wkpark@chem.skku.ac.kr>.
  * See http://www.ktug.or.kr for its use in Lambda and swindow/SFontTTF.cpp at  
  * http://www.yudit.org for its use in Yudit.
@@ -679,99 +626,16 @@ nsUnicodeToJamoTTF::RenderAsPrecompSylla
     aResult[mByteOff++] = PRUint8(wc & 0xff);
   }
 
   *aSrcLength -= composed;
 
   return composed;
 }
 
-// Fill up Cmap array quickly for a rather large range.
-/* static */
-inline void FillInfoRange(PRUint32* aInfo, PRUint32 aStart, PRUint32 aEnd)
-{
-
-  PRUint32 b = aStart >> 5; 
-  PRUint32 e = aEnd >> 5;
-
-  if (aStart & 0x1f)
-    aInfo[b++] |= ~ (0xFFFFFFFFL >> (32 - ((aStart) & 0x1f)));
-
-  for( ; b < e ; b++)
-    aInfo[b] |= 0xFFFFFFFFL;
-
-  aInfo[e] |= (0xFFFFFFFFL >> (31 - ((aEnd) & 0x1f)));
-}
-
-
-#define ROWLEN 94
-#define IS_GR94(x) (0xA0 < (x) && (x) < 0xFF)
-
-// Given a range [aHigh1, aHigh2] in high bytes of EUC-KR, convert 
-// rows of 94 characters in the range (row by row) to Unicode and set 
-// representability if the result is not 0xFFFD (Unicode replacement char.).
-/* static */
-nsresult FillInfoEUCKR (PRUint32 *aInfo, PRUint16 aHigh1, PRUint16 aHigh2)
-{
-  char row[ROWLEN * 2];
-  PRUnichar dest[ROWLEN];
-  nsresult rv = NS_OK;
-
-  NS_ENSURE_TRUE(aInfo, NS_ERROR_NULL_POINTER);
-  NS_ENSURE_TRUE(IS_GR94(aHigh1) && IS_GR94(aHigh2), NS_ERROR_INVALID_ARG);
-
-  nsCOMPtr<nsIUnicodeDecoder> decoder;
-  rv = GetDecoder(getter_AddRefs(decoder));
-  NS_ENSURE_SUCCESS(rv,rv);
-
-  for (PRUint16 i = aHigh1 ; i <= aHigh2; i++)
-  {
-    PRUint16 j;
-    // handle a row of 94 char. at a time.
-    for (j = 0 ; j < ROWLEN; j++)
-    {
-      row[j * 2] = char(i);
-      row[j * 2 + 1] = char(j + 0xa1);
-    }
-    PRInt32 srcLen = ROWLEN * 2;
-    PRInt32 destLen = ROWLEN;
-    rv = decoder->Convert(row, &srcLen, dest, &destLen);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    // set representability according to the conversion result.
-    for (j = 0 ; j < ROWLEN; j++)
-      if (dest[j] != 0xFFFD)
-        SET_REPRESENTABLE(aInfo, dest[j]);
-  }
-  return rv;
-}
-
-/* static */
-nsresult GetDecoder(nsIUnicodeDecoder** aDecoder)
-{
-  nsresult rv; 
-
-  if (gDecoder) {
-    *aDecoder = gDecoder.get();
-    NS_ADDREF(*aDecoder);
-    return NS_OK;
-  }
-
-  nsCOMPtr<nsICharsetConverterManager> charsetConverterManager;
-  charsetConverterManager = do_GetService(NS_CHARSETCONVERTERMANAGER_CONTRACTID, &rv);
-  NS_ENSURE_SUCCESS(rv,rv);
-  rv = charsetConverterManager->GetUnicodeDecoderRaw("EUC-KR", getter_AddRefs(gDecoder));
-  NS_ENSURE_SUCCESS(rv,rv);
-
-  *aDecoder = gDecoder.get();
-  NS_ADDREF(*aDecoder);
-  return NS_OK;
-}
-
-
 /* static */
 PRInt32 JamoNormMapComp (const JamoNormMap& p1, const JamoNormMap& p2)
 {
   if (p1.seq[0] != p2.seq[0]) 
     return p1.seq[0] - p2.seq[0];
   if (p1.seq[1] != p2.seq[1]) 
     return p1.seq[1] - p2.seq[1];
   return p1.seq[2] - p2.seq[2];
--- a/intl/uconv/ucvko/nsUnicodeToJamoTTF.h
+++ b/intl/uconv/ucvko/nsUnicodeToJamoTTF.h
@@ -41,17 +41,17 @@
 #ifndef nsUnicodeToJamoTTF_h___
 #define nsUnicodeToJamoTTF_h___
 
 #include "nsUCSupport.h"
 
 //----------------------------------------------------------------------
 // Class nsUnicodeToJamoTTF [declaration]
 
-class nsUnicodeToJamoTTF : public nsIUnicodeEncoder, public nsICharRepresentable
+class nsUnicodeToJamoTTF : public nsIUnicodeEncoder
 {
 
   NS_DECL_ISUPPORTS
 
 public:
 
   /**
    * Class constructor.
@@ -71,18 +71,16 @@ public:
       PRInt32 * aDestLength);
 
   NS_IMETHOD Reset();
 
   NS_IMETHOD SetOutputErrorBehavior(
       PRInt32 aBehavior,
       nsIUnicharEncoder * aEncoder, PRUnichar aChar);
 
-  NS_IMETHOD FillInfo(PRUint32* aInfo);
-
 protected:
   PRUnichar *mJamos;
   PRUnichar mJamosStatic[9];
   PRInt32  mJamoCount;
   PRInt32  mJamosMaxLength;
   PRInt32  mByteOff;
 
   PRInt32 mErrBehavior;
--- a/intl/uconv/ucvlatin/nsUnicodeToTSCII.cpp
+++ b/intl/uconv/ucvlatin/nsUnicodeToTSCII.cpp
@@ -50,19 +50,19 @@
  *  0xA1..0xA5, 0xAA: Tamil combining letters (after the base character)
  *  0xA6..0xA8:       Tamil combining letters (before the base character)
  *  0x91..0x94:       Punctuation
  *  0xA9:             Symbols
  */
 
 //----------------------------------------------------------------------
 // Class nsUnicodeToTSCII [implementation]
+
+NS_IMPL_ISUPPORTS1(nsUnicodeToTSCII, nsIUnicodeEncoder)
   
-NS_IMPL_ISUPPORTS2(nsUnicodeToTSCII, nsIUnicodeEncoder, nsICharRepresentable)
-
 /* 
  * During UCS-4 to TSCII conversion, mState contains 
  * the last byte (or sometimes the last two bytes) to be output.
  * This can be:
  *   0x00                     Nothing pending.
  *   0xB8..0xC9, 0x83..0x86   A consonant.
  *   0xEC, 0x8A               A consonant with VIRAMA sign (final or joining).
  *   0x87, 0xC38A             Two consonants combined through a VIRAMA sign. 
@@ -385,57 +385,16 @@ nsUnicodeToTSCII::GetMaxLength(const PRU
 {
   // Some Tamil letters  can be decomposed into 2 glyphs in TSCII.
   *aDestLength = aSrcLength *  2;
   return NS_OK;
 }
 
 
 NS_IMETHODIMP 
-nsUnicodeToTSCII::FillInfo(PRUint32* aInfo)
-{
-  // Tamil block is so sparse.
-  static const PRUint8 coverage[] = {
-    0xe8, // 11101000  U+0B87 - U+0B80
-    0xc7, // 11000111  U+0B8F - U+0B88
-    0x3d, // 00111101  U+0B97 - U+0B90
-    0xd6, // 11010110  U+0B9F - U+0B98
-    0x18, // 00011000  U+0BA7 - U+0BA0
-    0xc7, // 11000111  U+0BAF - U+0BA8
-    0xbf, // 10111111  U+0BB7 - U+0BB0
-    0xc7, // 11000111  U+0BBF - U+0BB8
-    0xc7, // 11000111  U+0BC7 - U+0BC0
-    0x3d, // 00111101  U+0BCF - U+0BC8
-    0x80, // 10000000  U+0BD7 - U+0BD0
-    0x00, // 00000000  U+0BDF - U+0BD8
-    0x80, // 10000000  U+0BE7 - U+0BE0
-    0xff, // 11111111  U+0BEF - U+0BE8
-    0x07, // 00000111  U+0BF7 - U+0BF0
-  };
-
-  PRUnichar i;
-  for(i = 0; i <  0x78; i++)
-    if (coverage[i / 8] & (1 << (i % 8)))
-      SET_REPRESENTABLE(aInfo, i + UNI_TAMIL_START);
-
-  // TSCII is a superset of US-ASCII.
-  for(i = 0x20; i < 0x7f; i++)
-     SET_REPRESENTABLE(aInfo, i);
-
-  // additional characters in TSCII
-  SET_REPRESENTABLE(aInfo, 0xA9);   // copyright sign
-  SET_REPRESENTABLE(aInfo, UNI_LEFT_SINGLE_QUOTE);
-  SET_REPRESENTABLE(aInfo, UNI_RIGHT_SINGLE_QUOTE);
-  SET_REPRESENTABLE(aInfo, UNI_LEFT_DOUBLE_QUOTE);
-  SET_REPRESENTABLE(aInfo, UNI_RIGHT_DOUBLE_QUOTE);
-
-  return NS_OK;
-}
-
-NS_IMETHODIMP 
 nsUnicodeToTSCII::SetOutputErrorBehavior(PRInt32 aBehavior, 
                                            nsIUnicharEncoder *aEncoder, 
                                            PRUnichar aChar)
 {
   return NS_OK;
 }
 
 
--- a/intl/uconv/ucvlatin/nsUnicodeToTSCII.h
+++ b/intl/uconv/ucvlatin/nsUnicodeToTSCII.h
@@ -39,22 +39,21 @@
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef nsUnicodeToTSCII_h___
 #define nsUnicodeToTSCII_h___
 
 #include "nsCOMPtr.h"
 #include "nsISupports.h"
 #include "nsIUnicodeEncoder.h"
-#include "nsICharRepresentable.h"
 
 //----------------------------------------------------------------------
 // Class nsUnicodeToTSCII [declaration]
 
-class nsUnicodeToTSCII : public nsIUnicodeEncoder, public nsICharRepresentable
+class nsUnicodeToTSCII : public nsIUnicodeEncoder
 {
 
 NS_DECL_ISUPPORTS
 
 public:
   nsUnicodeToTSCII() { mBuffer = 0; }
   virtual ~nsUnicodeToTSCII() {}
 
@@ -67,18 +66,16 @@ public:
                           PRInt32 * aDestLength);
 
   NS_IMETHOD Reset();
 
   NS_IMETHOD SetOutputErrorBehavior(PRInt32 aBehavior,
                                     nsIUnicharEncoder * aEncoder, 
                                     PRUnichar aChar);
 
-  NS_IMETHOD FillInfo(PRUint32* aInfo);
-
 private:
   PRUint32 mBuffer; // buffer for character(s) to be combined with the following
                     // character. Up to 4 single byte characters can be 
                     // stored. 
 };
 
 #define CHAR_BUFFER_SIZE 2048
 
--- a/intl/uconv/ucvlatin/nsUnicodeToUCS2BE.cpp
+++ b/intl/uconv/ucvlatin/nsUnicodeToUCS2BE.cpp
@@ -122,22 +122,16 @@ NS_IMETHODIMP nsUnicodeToUTF16BE::Reset(
 }
 
 NS_IMETHODIMP nsUnicodeToUTF16BE::SetOutputErrorBehavior(PRInt32 aBehavior, 
       nsIUnicharEncoder * aEncoder, PRUnichar aChar)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP nsUnicodeToUTF16BE::FillInfo(PRUint32 *aInfo)
-{
-  ::memset(aInfo, 0xFF, (0x10000L >> 3));
-  return NS_OK;
-}
-
 NS_IMETHODIMP nsUnicodeToUTF16BE::CopyData(char* aDest, const PRUnichar* aSrc, PRInt32 aLen  )
 {
 #ifdef IS_BIG_ENDIAN
   //UnicodeToUTF16SameEndian
   ::memcpy(aDest, (void*) aSrc, aLen * 2);
 #elif defined(IS_LITTLE_ENDIAN)
   //UnicodeToUTF16DiffEndian
   SwapBytes(aDest, aSrc, aLen);
--- a/intl/uconv/ucvlatin/nsUnicodeToUCS2BE.h
+++ b/intl/uconv/ucvlatin/nsUnicodeToUCS2BE.h
@@ -52,20 +52,16 @@ public:
       char * aDest, PRInt32 * aDestLength);
   NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength, 
       PRInt32 * aDestLength);
   NS_IMETHOD Finish(char * aDest, PRInt32 * aDestLength);
   NS_IMETHOD Reset();
   NS_IMETHOD SetOutputErrorBehavior(PRInt32 aBehavior, 
       nsIUnicharEncoder * aEncoder, PRUnichar aChar);
 
-  //--------------------------------------------------------------------
-  // Interface nsICharRepresentable [declaration]
-  NS_IMETHOD FillInfo(PRUint32 *aInfo);
-
 protected:
   PRUnichar mBOM;
   NS_IMETHOD CopyData(char* aDest, const PRUnichar* aSrc, PRInt32 aLen  );
 };
 
 class nsUnicodeToUTF16LE: public nsUnicodeToUTF16BE
 {
 public:
--- a/intl/uconv/ucvlatin/nsUnicodeToUTF32.cpp
+++ b/intl/uconv/ucvlatin/nsUnicodeToUTF32.cpp
@@ -216,22 +216,16 @@ NS_IMPL_ISUPPORTS1(nsUnicodeToUTF32Base,
 NS_IMETHODIMP nsUnicodeToUTF32Base::GetMaxLength(const PRUnichar * aSrc, 
                                                  PRInt32 aSrcLength, 
                                                  PRInt32 * aDestLength)
 {
   *aDestLength = aSrcLength * 4;
   return NS_OK;
 }
 
-NS_IMETHODIMP nsUnicodeToUTF32Base::FillInfo(PRUint32 *aInfo)
-{
-  memset(aInfo, 0xFF, (0x10000L >> 3));
-  return NS_OK;
-}
-
 
 //----------------------------------------------------------------------
 // Class nsUnicodeToUTF32BE [implementation]
 
 //----------------------------------------------------------------------
 // Subclassing of nsUnicodeToUTF32 class [implementation]
   
 
--- a/intl/uconv/ucvlatin/nsUnicodeToUTF32.h
+++ b/intl/uconv/ucvlatin/nsUnicodeToUTF32.h
@@ -67,17 +67,16 @@ protected:
 
   NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength, 
                           PRInt32 * aDestLength);
 
   //--------------------------------------------------------------------
   // Subclassing of nsIUnicodeEncoder class [declaration]
 
   NS_IMETHOD Reset() {mBOM = 0; mHighSurrogate = 0; return NS_OK;}
-  NS_IMETHOD FillInfo(PRUint32* aInfo);
   NS_IMETHOD SetOutputErrorBehavior(PRInt32 aBehavior, 
                                     nsIUnicharEncoder * aEncoder, 
                                     PRUnichar aChar) 
                                     {return NS_OK;}
 
 protected:
   PRUnichar mBOM;
 };
--- a/intl/uconv/ucvlatin/nsUnicodeToUTF7.cpp
+++ b/intl/uconv/ucvlatin/nsUnicodeToUTF7.cpp
@@ -50,22 +50,16 @@
 nsBasicUTF7Encoder::nsBasicUTF7Encoder(char aLastChar, char aEscChar) 
 : nsEncoderSupport(5)
 {
   mLastChar = aLastChar;
   mEscChar = aEscChar;
   Reset();
 }
 
-NS_IMETHODIMP nsBasicUTF7Encoder::FillInfo(PRUint32 *aInfo)
-{
-  memset(aInfo, 0xFF, (0x10000L >> 3));
-  return NS_OK;
-}
-
 nsresult nsBasicUTF7Encoder::ShiftEncoding(PRInt32 aEncoding,
                                           char * aDest, 
                                           PRInt32 * aDestLength)
 {
   if (aEncoding == mEncoding) {
     *aDestLength = 0;
     return NS_OK;
   } 
--- a/intl/uconv/ucvlatin/nsUnicodeToUTF7.h
+++ b/intl/uconv/ucvlatin/nsUnicodeToUTF7.h
@@ -53,18 +53,16 @@ class nsBasicUTF7Encoder : public nsEnco
 {
 public:
 
   /**
    * Class constructor.
    */
   nsBasicUTF7Encoder(char aLastChar, char aEscChar);
 
-  NS_IMETHOD FillInfo(PRUint32 *aInfo);
-
 protected:
 
   PRInt32                   mEncoding;      // current encoding
   PRUint32                  mEncBits;
   PRInt32                   mEncStep;
   char                      mLastChar;
   char                      mEscChar;
 
--- a/intl/uconv/util/nsUCConstructors.h
+++ b/intl/uconv/util/nsUCConstructors.h
@@ -36,17 +36,16 @@
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef __nsUCConstructors_h
 #define __nsUCConstructors_h
 
 #include "nsIUnicodeEncoder.h"
 #include "nsIUnicodeDecoder.h"
 #include "uconvutil.h"
-#include "nsICharRepresentable.h"
 
 // all the useful constructors
 NS_METHOD
 CreateMultiTableDecoder(PRInt32 aTableCount,
                         const uRange * aRangeArray, 
                         uScanClassID * aScanClassArray,
                         uMappingTable ** aMappingTable,
                         PRUint32 aMaxLengthFactor,
--- a/intl/uconv/util/nsUCSupport.cpp
+++ b/intl/uconv/util/nsUCSupport.cpp
@@ -33,17 +33,16 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "pratom.h"
 #include "nsIComponentManager.h"
-#include "nsICharRepresentable.h"
 #include "nsUCSupport.h"
 #include "nsUnicodeDecodeHelper.h"
 #include "nsUnicodeEncodeHelper.h"
 
 #define DEFAULT_BUFFER_CAPACITY 16
 
 // XXX review the buffer growth limitation code
 
@@ -108,25 +107,16 @@ nsBufferDecoderSupport::~nsBufferDecoder
 void nsBufferDecoderSupport::FillBuffer(const char ** aSrc, PRInt32 aSrcLength)
 {
   PRInt32 bcr = PR_MIN(mBufferCapacity - mBufferLength, aSrcLength);
   memcpy(mBuffer + mBufferLength, *aSrc, bcr);
   mBufferLength += bcr;
   (*aSrc) += bcr;
 }
 
-void nsBufferDecoderSupport::DoubleBuffer()
-{
-  mBufferCapacity *= 2;
-  char * newBuffer = new char [mBufferCapacity];
-  if (mBufferLength > 0) memcpy(newBuffer, mBuffer, mBufferLength);
-  delete [] mBuffer;
-  mBuffer = newBuffer;
-}
-
 //----------------------------------------------------------------------
 // Subclassing of nsBasicDecoderSupport class [implementation]
 
 NS_IMETHODIMP nsBufferDecoderSupport::Convert(const char * aSrc,
                                               PRInt32 * aSrcLength,
                                               PRUnichar * aDest,
                                               PRInt32 * aDestLength)
 {
@@ -371,23 +361,22 @@ nsBasicEncoder::~nsBasicEncoder()
 }
 
 //----------------------------------------------------------------------
 // Interface nsISupports [implementation]
 
 NS_IMPL_ADDREF(nsBasicEncoder)
 NS_IMPL_RELEASE(nsBasicEncoder)
 #ifdef NS_DEBUG
-NS_IMPL_QUERY_INTERFACE3(nsBasicEncoder,
-                         nsIUnicodeEncoder,
-                         nsICharRepresentable, nsIBasicEncoder)
-#else
 NS_IMPL_QUERY_INTERFACE2(nsBasicEncoder,
                          nsIUnicodeEncoder,
-                         nsICharRepresentable)
+                         nsIBasicEncoder)
+#else
+NS_IMPL_QUERY_INTERFACE1(nsBasicEncoder,
+                         nsIUnicodeEncoder)
 #endif
 //----------------------------------------------------------------------
 // Class nsEncoderSupport [implementation]
 
 nsEncoderSupport::nsEncoderSupport(PRUint32 aMaxLengthFactor) :
   mMaxLengthFactor(aMaxLengthFactor)
 {
   mBufferCapacity = DEFAULT_BUFFER_CAPACITY;
@@ -624,20 +613,16 @@ nsTableEncoderSupport::nsTableEncoderSup
   mShiftOutTable = nsnull;
   mMappingTable = aMappingTable;
 }
 
 nsTableEncoderSupport::~nsTableEncoderSupport()
 {
 }
 
-NS_IMETHODIMP nsTableEncoderSupport::FillInfo(PRUint32 *aInfo)
-{
-  return nsUnicodeEncodeHelper::FillInfo(aInfo, mMappingTable);
-}
 //----------------------------------------------------------------------
 // Subclassing of nsEncoderSupport class [implementation]
 
 NS_IMETHODIMP nsTableEncoderSupport::ConvertNoBuffNoErr(
                                      const PRUnichar * aSrc,
                                      PRInt32 * aSrcLength,
                                      char * aDest,
                                      PRInt32 * aDestLength)
@@ -664,20 +649,16 @@ nsMultiTableEncoderSupport::nsMultiTable
   mShiftOutTable = aShiftOutTable;
   mMappingTable = aMappingTable;
 }
 
 nsMultiTableEncoderSupport::~nsMultiTableEncoderSupport()
 {
 }
 
-NS_IMETHODIMP nsMultiTableEncoderSupport::FillInfo(PRUint32 *aInfo)
-{
-  return nsUnicodeEncodeHelper::FillInfo(aInfo,mTableCount, mMappingTable);
-}
 //----------------------------------------------------------------------
 // Subclassing of nsEncoderSupport class [implementation]
 
 NS_IMETHODIMP nsMultiTableEncoderSupport::ConvertNoBuffNoErr(
                                           const PRUnichar * aSrc,
                                           PRInt32 * aSrcLength,
                                           char * aDest,
                                           PRInt32 * aDestLength)
--- a/intl/uconv/util/nsUCSupport.h
+++ b/intl/uconv/util/nsUCSupport.h
@@ -36,17 +36,16 @@
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef nsUCvJaSupport_h___
 #define nsUCvJaSupport_h___
 
 #include "nsCOMPtr.h"
 #include "nsIUnicodeEncoder.h"
 #include "nsIUnicodeDecoder.h"
-#include "nsICharRepresentable.h"
 #include "uconvutil.h"
 #include "mozilla/Mutex.h"
 
 #define ONE_BYTE_TABLE_SIZE 256
 
 #ifdef NS_DEBUG
 // {7AFC9F0A-CFE1-44ea-A755-E3B86AB1226E}
 #define NS_IBASICDECODER_IID \
@@ -146,17 +145,16 @@ protected:
   
   /**
    * Convert method but *without* the buffer management stuff.
    */
   NS_IMETHOD ConvertNoBuff(const char * aSrc, PRInt32 * aSrcLength, 
       PRUnichar * aDest, PRInt32 * aDestLength) = 0;
 
   void FillBuffer(const char ** aSrc, PRInt32 aSrcLength);
-  void DoubleBuffer();
 
 public:
 
   /**
    * Class constructor.
    */
   nsBufferDecoderSupport(PRUint32 aMaxLengthFactor);
 
@@ -291,17 +289,17 @@ protected:
   NS_IMETHOD GetMaxLength(const char * aSrc, PRInt32 aSrcLength, 
       PRInt32 * aDestLength);
   NS_IMETHOD Reset();
 };
 
 //----------------------------------------------------------------------
 // Class nsBasicEncoder [declaration]
 
-class nsBasicEncoder : public nsIUnicodeEncoder, public nsICharRepresentable
+class nsBasicEncoder : public nsIUnicodeEncoder
 #ifdef NS_DEBUG
                        ,public nsIBasicEncoder
 #endif
 {
   NS_DECL_ISUPPORTS
 
 public:
   /**
@@ -393,20 +391,16 @@ public:
       char * aDest, PRInt32 * aDestLength);
   NS_IMETHOD Finish(char * aDest, PRInt32 * aDestLength);
   NS_IMETHOD Reset();
   NS_IMETHOD SetOutputErrorBehavior(PRInt32 aBehavior, 
       nsIUnicharEncoder * aEncoder, PRUnichar aChar);
   NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, 
                           PRInt32 aSrcLength, 
                           PRInt32 * aDestLength);
-
-  //--------------------------------------------------------------------
-  // Interface nsICharRepresentable [declaration]
-  NS_IMETHOD FillInfo(PRUint32 *aInfo) = 0;
 };
 
 //----------------------------------------------------------------------
 // Class nsTableEncoderSupport [declaration]
 
 /**
  * Support class for a single-table-driven Unicode encoder.
  * 
@@ -428,17 +422,16 @@ public:
   nsTableEncoderSupport(uScanClassID  aScanClass,
                         uMappingTable  * aMappingTable,
                         PRUint32 aMaxLengthFactor);
 
   /**
    * Class destructor.
    */
   virtual ~nsTableEncoderSupport();
-  NS_IMETHOD FillInfo( PRUint32 *aInfo);
 
 protected:
 
   uScanClassID              mScanClass;
   uShiftOutTable            * mShiftOutTable;
   uMappingTable             * mMappingTable;
 
   //--------------------------------------------------------------------
@@ -469,17 +462,16 @@ public:
                              uShiftOutTable ** aShiftOutTable,
                              uMappingTable  ** aMappingTable,
                              PRUint32 aMaxLengthFactor);
 
   /**
    * Class destructor.
    */
   virtual ~nsMultiTableEncoderSupport();
-  NS_IMETHOD FillInfo( PRUint32 *aInfo);
 
 protected:
 
   PRInt32                   mTableCount;
   uScanClassID              * mScanClassArray;
   uShiftOutTable            ** mShiftOutTable;
   uMappingTable             ** mMappingTable;
 
--- a/intl/uconv/util/nsUnicodeEncodeHelper.cpp
+++ b/intl/uconv/util/nsUnicodeEncodeHelper.cpp
@@ -147,21 +147,8 @@ nsresult nsUnicodeEncodeHelper::ConvertB
     dest += bcw;
     destLen -= bcw;
   }
 
   *aSrcLength = src - aSrc;
   *aDestLength  = dest - aDest;
   return res;
 }
-
-nsresult nsUnicodeEncodeHelper::FillInfo(PRUint32 *aInfo, uMappingTable  * aMappingTable)
-{
-   uFillInfo((uTable*) aMappingTable, aInfo);
-   return NS_OK;
-}
-
-nsresult nsUnicodeEncodeHelper::FillInfo(PRUint32 *aInfo, PRInt32 aTableCount, uMappingTable  ** aMappingTable)
-{
-   for (PRInt32 i=0; i<aTableCount; i++) 
-      uFillInfo((uTable*) aMappingTable[i], aInfo);
-   return NS_OK;
-}
--- a/intl/uconv/util/nsUnicodeEncodeHelper.h
+++ b/intl/uconv/util/nsUnicodeEncodeHelper.h
@@ -62,19 +62,13 @@ public:
 
   /**
    * Converts data using a set of lookup tables and optional shift tables.
    */
   static nsresult ConvertByMultiTable(const PRUnichar * aSrc, PRInt32 * aSrcLength,
       char * aDest, PRInt32 * aDestLength, PRInt32 aTableCount, 
       uScanClassID * aScanClassArray, 
       uShiftOutTable ** aShiftOutTable, uMappingTable  ** aMappingTable);
-
-  /**
-   * Create Char Representable Info
-   */
-  static nsresult FillInfo(PRUint32* aInfo, uMappingTable  * aMappingTable);
-  static nsresult FillInfo(PRUint32* aInfo, PRInt32 aTableCount, uMappingTable  ** aMappingTable);
 };
 
 #endif // nsUnicodeEncodeHelper_h__
 
 
--- a/intl/uconv/util/umap.c
+++ b/intl/uconv/util/umap.c
@@ -85,38 +85,22 @@ PRIVATE const HitFormateFunc m_hit[uNumF
 {
     uHitFormate0,
     uHitFormate0,
     uHitFormate2,
 };
 
 #define uHit(format,in,cell)   (* m_hit[(format)])((in),(cell))
 #define uMap(format,in,uT,cell)  (* m_map[(format)])((in),(uT),(cell))
-#define uFillInfoCell(format,uT,cell,info)  (* m_fillinfo[(format)])((uT),(cell),(info))
 #define uGetMapCell(uT, item) ((uMapCell *)(((PRUint16 *)uT) + (uT)->offsetToMapCellArray + (item)*(UMAPCELL_SIZE/sizeof(PRUint16))))
 #define uGetFormat(uT, item) (((((PRUint16 *)uT) + (uT)->offsetToFormatArray)[(item)>> 2 ] >> (((item)% 4 ) << 2)) & 0x0f)
 
 /*=================================================================================
 
 =================================================================================*/
-MODULE_PRIVATE void uFillInfo(const uTable *uT, PRUint32* aInfo)
-{
-  PRUint16 itemOfList = uT->itemOfList;
-  PRUint16 i;
-  for(i=0;i<itemOfList;i++)
-  {
-    const uMapCell* uCell;
-    PRInt8 format = uGetFormat(uT,i);
-    uCell = uGetMapCell(uT,i);
-    uFillInfoCell(format, uT, uCell, aInfo);
-  }
-}
-/*=================================================================================
-
-=================================================================================*/
 MODULE_PRIVATE PRBool uMapCode(const uTable *uT, PRUint16 in, PRUint16* out)
 {
   PRBool done = PR_FALSE;
   PRUint16 itemOfList = uT->itemOfList;
   PRUint16 i;
   *out = NOMAPPING;
   for(i=0;i<itemOfList;i++)
   {
--- a/intl/uconv/util/unicpriv.h
+++ b/intl/uconv/util/unicpriv.h
@@ -40,19 +40,16 @@
 #include "ubase.h"
 #include "umap.h"
 #include "uconvutil.h"
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-void	uFillInfo(const uTable *uT, 
-                    PRUint32 *info);
-
 PRBool	uMapCode(const uTable *uT, 
                     PRUint16 in, 
                     PRUint16* out);
 
 PRBool 	uGenerate(uScanClassID scanClass,
                   PRInt32* state, 
                   PRUint16 in, 
                   unsigned char* out, 
--- a/intl/unicharutil/public/nsICaseConversion.h
+++ b/intl/unicharutil/public/nsICaseConversion.h
@@ -62,20 +62,16 @@ public:
   NS_IMETHOD ToTitle( PRUnichar aChar, PRUnichar* aReturn) = 0;
 
   // Convert an array of Unicode characters into upper case
   NS_IMETHOD ToUpper( const PRUnichar* anArray, PRUnichar* aReturn, PRUint32 aLen) = 0;
 
   // Convert an array of Unicode characters into lower case
   NS_IMETHOD ToLower( const PRUnichar* anArray, PRUnichar* aReturn, PRUint32 aLen) = 0;
 
-  // Convert an array of Unicode characters into title case
-  NS_IMETHOD ToTitle( const PRUnichar* anArray, PRUnichar* aReturn, 
-                      PRUint32 aLen, PRBool aStartInWordBundary=PR_TRUE) = 0;
-
   // case-insensitive PRUnichar* comparison - aResult returns similar
   // to strcasecmp
   NS_IMETHOD CaseInsensitiveCompare(const PRUnichar* aLeft, const PRUnichar* aRight, PRUint32 aLength, PRInt32* aResult) = 0;
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(nsICaseConversion, NS_ICASECONVERSION_IID)
 
 #endif  /* nsICaseConversion_h__ */
--- a/intl/unicharutil/src/nsCaseConversionImp2.cpp
+++ b/intl/unicharutil/src/nsCaseConversionImp2.cpp
@@ -305,58 +305,16 @@ nsresult nsCaseConversionImp2::ToLower(
 {
   PRUint32 i;
   for(i=0;i<aLen;i++) 
     aReturn[i] = FastToLower(anArray[i]);
   return NS_OK;
 }
 
 
-
-nsresult nsCaseConversionImp2::ToTitle(
-  const PRUnichar* anArray, PRUnichar* aReturn, PRUint32 aLen,
-  PRBool aStartInWordBoundary
-)
-{
-  if(0 == aLen)
-    return NS_OK;
-
-  //
-  // We need to replace this implementation to a real one
-  // Currently, it only do the right thing for ASCII
-  // Howerver, we need a word breaker to do the right job
-  //
-  // this->ToLower(anArray, aReturn, aLen); 
-  // CSS define Capitalize as 
-  //  Uppercases the first character of each word
-  // 
-  
-  PRBool bLastIsSpace =  IS_ASCII_SPACE(anArray[0]);
-  if(aStartInWordBoundary)
-  {
-     this->ToTitle(anArray[0], &aReturn[0]);
-  }
-
-  PRUint32 i;
-  for(i=1;i<aLen;i++)
-  {
-    if(bLastIsSpace)
-    {
-      this->ToTitle(anArray[i], &aReturn[i]);
-    }
-    else
-    {
-      aReturn[i] = anArray[i];
-    }
-
-    bLastIsSpace = IS_ASCII_SPACE(aReturn[i]);
-  }
-  return NS_OK;
-}
-
 // implementation moved from the old nsCRT routine
 NS_IMETHODIMP
 nsCaseConversionImp2::CaseInsensitiveCompare(const PRUnichar *aLeft,
                                              const PRUnichar *aRight,
                                              PRUint32 aCount, PRInt32* aResult)
 {
   if (!aLeft || !aRight)
     return NS_ERROR_INVALID_POINTER;
--- a/intl/unicharutil/src/nsCaseConversionImp2.h
+++ b/intl/unicharutil/src/nsCaseConversionImp2.h
@@ -56,17 +56,14 @@ public:
   NS_IMETHOD ToLower(PRUnichar aChar, PRUnichar* aReturn);
 
   NS_IMETHOD ToTitle(PRUnichar aChar, PRUnichar* aReturn);
 
   NS_IMETHOD ToUpper(const PRUnichar* anArray, PRUnichar* aReturn, PRUint32 aLen);
 
   NS_IMETHOD ToLower(const PRUnichar* anArray, PRUnichar* aReturn, PRUint32 aLen);
 
-  NS_IMETHOD ToTitle(const PRUnichar* anArray, PRUnichar* aReturn, 
-                     PRUint32 aLen, PRBool aStartInWordBoundary = PR_TRUE);
-   
   NS_IMETHOD CaseInsensitiveCompare(const PRUnichar* aLeft, const PRUnichar* aRight, PRUint32 aLength, PRInt32 *aResult);
 };
 
 extern nsCaseConversionImp2* gCaseConv;
 
 #endif
--- a/intl/unicharutil/src/nsEntityConverter.cpp
+++ b/intl/unicharutil/src/nsEntityConverter.cpp
@@ -272,20 +272,8 @@ nsEntityConverter::ConvertToEntities(con
   }
 
   *_retval = ToNewUnicode(outString);
   if (NULL == *_retval) 
     return NS_ERROR_OUT_OF_MEMORY;
 
   return NS_OK;
 }
-
-
-
-nsresult NS_NewEntityConverter(nsISupports** oResult)
-{
-   if(!oResult)
-      return NS_ERROR_NULL_POINTER;
-   *oResult = new nsEntityConverter();
-   if(*oResult)
-      NS_ADDREF(*oResult);
-   return (*oResult) ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
-}
--- a/intl/unicharutil/src/nsEntityConverter.h
+++ b/intl/unicharutil/src/nsEntityConverter.h
@@ -35,18 +35,16 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIEntityConverter.h"
 #include "nsIFactory.h"
 #include "nsIStringBundle.h"
 #include "nsCOMPtr.h"
 
-nsresult NS_NewEntityConverter(nsISupports** oResult);
-
 #define kVERSION_STRING_LEN 128
 
 class nsEntityVersionList
 {
 public:
     nsEntityVersionList() : mEntities(NULL) {}
     
     PRUint32 mVersion;
--- a/intl/unicharutil/src/nsSaveAsCharset.cpp
+++ b/intl/unicharutil/src/nsSaveAsCharset.cpp
@@ -391,21 +391,8 @@ nsresult nsSaveAsCharset::SetupCharsetLi
 const char * nsSaveAsCharset::GetNextCharset()
 {
   if ((mCharsetListIndex + 1) >= PRInt32(mCharsetList.Length()))
     return nsnull;
 
   // bump the index and return the next charset
   return mCharsetList[++mCharsetListIndex].get();
 }
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-nsresult 
-NS_NewSaveAsCharset(nsISupports **inst)
-{
-  if(nsnull == inst )
-    return NS_ERROR_NULL_POINTER;
-  *inst = (nsISupports *) new nsSaveAsCharset;
-   if(*inst)
-      NS_ADDREF(*inst);
-   return (*inst) ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
-}
--- a/intl/unicharutil/src/nsSaveAsCharset.h
+++ b/intl/unicharutil/src/nsSaveAsCharset.h
@@ -95,11 +95,8 @@ protected:
   PRUint32 mAttribute;                    // conversion attribute
   PRUint32 mEntityVersion;                // see nsIEntityConverter
   nsCOMPtr<nsIUnicodeEncoder> mEncoder;   // encoder (convert from unicode)
   nsCOMPtr<nsIEntityConverter> mEntityConverter;
   nsTArray<nsCString> mCharsetList;
   PRInt32        mCharsetListIndex;
 };
 
-
-nsresult NS_NewSaveAsCharset(nsISupports **inst);
-
--- a/intl/unicharutil/tests/UnicharSelfTest.cpp
+++ b/intl/unicharutil/tests/UnicharSelfTest.cpp
@@ -371,39 +371,16 @@ void TestCaseConversion()
           if(buf[i] != t3result[i])
           {
             printf("\tFailed!! result unexpected %d\n", i);
             break;
           }
        }
     }
 
-    /* 
-     * It would be pointless to test ToTitle() with the whole buffer, since
-     *  the expected result would be that only the first character would be
-     *  transformed. Instead, pass a series of 2-character buffers starting
-     *  with each character of the test cases, and check that the first
-     *  character is transformed as expected and the second remains unchanged
-     */
-     printf("Test 7 - ToTitle(PRUnichar*, PRUnichar*, PRUint32):\n");
-     for (i = 0; i < T4LEN; i++)
-     {
-       PRUnichar* titleTest = t4data + i;
-       res = t->ToTitle(titleTest, buf, 2);
-       if(NS_FAILED(res)) {
-         printf("\tFailed!! return value != NS_OK\n");
-       } else {
-         if (buf[0] != t4result[i] || buf[1] != t4data[i + 1])
-         {
-           printf("\tFailed!! result unexpected %d\n", i);
-           break;
-         }
-       }
-     }
-
    NS_RELEASE(t);
    }
    printf("==============================\n");
    printf("Finish nsICaseConversion Test \n");
    printf("==============================\n");
 
 }
 
deleted file mode 100644
--- a/intl/unicharutil/util/gensymmtable.pl
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/usr/local/bin/perl
-#
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is IBM code.
-#
-# The Initial Developer of the Original Code is
-# IBM.
-# Portions created by the Initial Developer are Copyright (C) 2001
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#   Simon Montagu
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either of the GNU General Public License Version 2 or later (the "GPL"),
-# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-
-# This program generates the header file symmtable.h from the Unicode
-# informative data file BidiMirroring.txt.
-# See the comments in that file for details of its structure and contents.
-#
-# At the moment we only handle cases where there is another Unicode
-# character whose glyph can serve as at least an adequate version of
-# the mirror image of the original character's glyph. This leaves open
-# the problem of how to provide mirrored glyphs for characters where
-# this is not the case.
-
-# Process the input file
-$ucp = "[0-9a-fA-F]{4}";               # Unicode code point (4 successive hex digits) as a pattern to match
-open ( UNICODATA , "< BidiMirroring.txt") 
-   || die "Cannot find BidiMirroring.txt.\
-The file should be avaiable here:\
-http://www.unicode.org/Public/UNIDATA/BidiMirroring.txt\n";
-
-while (<UNICODATA>) {
-	chop;
-  if (/^($ucp); ($ucp) # (.+)/) {      # If the line looks like this pattern
-                                       # (example: 0028; 0029 # LEFT PARENTHESIS)
-    if (hex($1) > 0xFFFF) {
-      printf "ALERT! %X There are now symmetric characters outside the BMP\n", $1;
-    }
-    @table[hex($1)]=hex($2);           # Enter the symmetric pair in the table
-    @isblock[hex(substr($1, 0, 2))]=1; # Remember this block
-  }
-}
-close(UNICODATA);
-
-# Generate license and header
-open ( OUT , "> symmtable.h") 
-  || die "cannot open output symmtable.h file";
-$npl = <<END_OF_NPL;
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is IBM code.
- *
- * The Initial Developer of the Original Code is
- * International Business Machines Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2000
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
- 
-/* 
-    DO NOT EDIT THIS DOCUMENT !!! THIS DOCUMENT IS GENERATED BY
-    mozilla/intl/unicharutil/util/gensymmtable.pl
- */
-END_OF_NPL
-print OUT $npl;
-
-# Generate data tables
-$indexed_blocks = 0;
-printf OUT "\n/* Indexes to symmtable by Unicode block */\n";
-printf OUT "const static PRUint8 symmtable_index[256] = {\n";
-print  OUT "/*       ";
-foreach $byte (0 .. 0xf) {
-  printf OUT "_%X ", $byte;
-}
-print OUT "*/\n";
-foreach $row (0 .. 0xf) {
-  printf OUT "/* %X_ */ ", $row;
-  foreach $byte (0 .. 0xf) {
-    if (@isblock[($row << 4) | ($byte)]) {
-      printf OUT " %d,", ++$indexed_blocks;
-    } else {
-      printf OUT " 0,";
-    }
-  }
-  print OUT "\n";
-}
-print OUT "};\n";
-
-printf OUT "const static PRUint16 symmtable[%d] [256] = {\n", ($indexed_blocks);
-foreach $block (0 .. 0xff) {
-  if (@isblock[$block]) {
-    if ($block != 0) {
-      printf OUT ",\n"
-    }
-    printf OUT " {\n/* Block U%02X__ */\n", $block;
-    print OUT "/*      ";
-    foreach $byte (0 .. 0xf) {
-      printf OUT "     _%X ", $byte;
-    }
-    print OUT "*/\n";
-    foreach $row (0 .. 0xf) {
-      printf OUT "/* %X_ */ ", $row;
-      foreach $byte (0 .. 0xf) {
-         $ix = ($block << 8) | ($row << 4) | ($byte);
-         printf OUT ("%#6x", (@table[$ix]) ? @table[$ix] : $ix);
-	 if ((($row << 4) | $byte) < 0xff) {
-	   print OUT ", ";
-	 }
-      }
-      print OUT "\n";
-    }
-    print OUT " }";
-  }
-}
-print OUT "\n};\n";
-
-# Generate conversion method
-print OUT "\nstatic PRUint32 Mirrored(PRUint32 u)\n{\n";
-print OUT "  if (u < 0x10000) {\n";
-print OUT "    PRUint8 index = symmtable_index[(u & 0xFFFFFF00) >> 8];\n";
-print OUT "    if (index) {\n";
-print OUT "      return symmtable[index - 1] [u & 0xFF];\n";
-print OUT "    }\n";
-print OUT "  }\n  return u;\n}\n";
-close(OUT);
--- a/intl/unicharutil/util/nsBidiUtils.cpp
+++ b/intl/unicharutil/util/nsBidiUtils.cpp
@@ -36,17 +36,16 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 #include "nsBidiUtils.h"
-#include "symmtable.h"
 #include "bidicattable.h"
 #include "nsCharTraits.h"
 
 static nsCharType ebc2ucd[15] = {
   eCharType_OtherNeutral, /* Placeholder -- there will never be a 0 index value */
   eCharType_LeftToRight,
   eCharType_RightToLeft,
   eCharType_RightToLeftArabic,
@@ -143,34 +142,16 @@ nsresult HandleNumbers(PRUnichar* aBuffe
       break;
     case IBMBIDI_NUMERAL_NOMINAL:
     default:
       break;
   }
   return NS_OK;
 }
 
-PRUint32 SymmSwap(PRUint32 aChar)
-{
-  return Mirrored(aChar);
-}
-
-eBidiCategory GetBidiCategory(PRUint32 aChar)
-{
-  eBidiCategory oResult = GetBidiCat(aChar);
-  if (eBidiCat_CC == oResult)
-    oResult = (eBidiCategory)(aChar & 0xFF); /* Control codes have special treatment to keep the tables smaller */
-  return oResult;
-}
-
-PRBool IsBidiCategory(PRUint32 aChar, eBidiCategory aBidiCategory)
-{
-  return (GetBidiCategory(aChar) == aBidiCategory);
-}
-
 #define LRM_CHAR 0x200e
 PRBool IsBidiControl(PRUint32 aChar)
 {
   // This method is used when stripping Bidi control characters for
   // display, so it will return TRUE for LRM and RLM as
   // well as the characters with category eBidiCat_CC
   return (eBidiCat_CC == GetBidiCat(aChar) || ((aChar)&0xfffffe)==LRM_CHAR);
 }
--- a/intl/unicharutil/util/nsBidiUtils.h
+++ b/intl/unicharutil/util/nsBidiUtils.h
@@ -137,33 +137,16 @@ typedef enum nsCharType nsCharType;
    *        IBMBIDI_NUMERAL_NOMINAL:      don't do any conversion
    *        IBMBIDI_NUMERAL_HINDI:        convert to Hindi forms (Unicode 0660-0669)
    *        IBMBIDI_NUMERAL_ARABIC:       convert to Arabic forms (Unicode 0030-0039)
    *        IBMBIDI_NUMERAL_HINDICONTEXT: convert numbers in Arabic text to Hindi, otherwise to Arabic
    */
   nsresult HandleNumbers(PRUnichar* aBuffer, PRUint32 aSize, PRUint32  aNumFlag);
 
   /**
-   * Give a Unicode character, return the symmetric equivalent
-   */
-  PRUint32 SymmSwap(PRUint32 aChar);
-
-  /**
-   * Give a UTF-32 codepoint, return an eBidiCategory
-   */
-  eBidiCategory GetBidiCategory(PRUint32 aChar);
-
-  /**
-   * Give a UTF-32 codepoint and an eBidiCategory, 
-   * return PR_TRUE if the codepoint is in that category, 
-   * return PR_FALSE, otherwise
-   */
-  PRBool IsBidiCategory(PRUint32 aChar, eBidiCategory aBidiCategory);
-
-  /**
    * Give a UTF-32 codepoint, return a nsCharType (compatible with ICU)
    */
   nsCharType GetCharType(PRUint32 aChar);
 
   /**
    * Give a UTF-32 codepoint
    * return PR_TRUE if the codepoint is a Bidi control character (LRE, RLE, PDF, LRO, RLO, LRM, RLM)
    * return PR_FALSE, otherwise
deleted file mode 100644
--- a/intl/unicharutil/util/nsCompressedCharMap.cpp
+++ /dev/null
@@ -1,671 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Mozilla Communicator client code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2001
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Brian Stell <bstell@netscape.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include <stdio.h>
-#include "prmem.h"
-#include "nsCRT.h"
-#include "nsICharRepresentable.h"
-#include "nsCompressedCharMap.h"
-
-void
-FreeCCMap(PRUint16* &aMap)
-{
-  if (!aMap)
-    return;
-  PR_Free(aMap - CCMAP_EXTRA);
-  aMap = nsnull;
-}
-
-PRUint16*
-MapToCCMap(PRUint32* aMap)
-{
-  // put the data into a temp map
-  nsCompressedCharMap ccmapObj;
-  ccmapObj.SetChars(aMap);
-
-  PRUint16 *ccmap = (PRUint16*)PR_Malloc((CCMAP_EXTRA + ccmapObj.GetSize()) * sizeof(PRUint16));
-  NS_ASSERTION(ccmap, "failed to alloc new CCMap");
-
-  if (!ccmap)
-    return nsnull;
-
-  ccmap += CCMAP_EXTRA;
-  CCMAP_SIZE(ccmap) = ccmapObj.GetSize();
-  CCMAP_FLAG(ccmap) = CCMAP_NONE_FLAG;
-
-  ccmapObj.FillCCMap(ccmap);
-
-#ifdef DEBUG
-  for (int i=0; i<NUM_UNICODE_CHARS; i++) {
-    PRBool oldb = IS_REPRESENTABLE(aMap, i);
-    PRBool newb = CCMAP_HAS_CHAR(ccmap, i);
-    if ((oldb) != (newb)) {
-      NS_ASSERTION(oldb==newb,"failed to generate map correctly");
-    }
-  }
-#endif
-  return ccmap;
-}
-
-PRUint16* CreateEmptyCCMap()
-{
-  PRUint16 *ccmap = (PRUint16*)PR_Malloc((CCMAP_EXTRA + 16) * sizeof(PRUint16));
-  NS_ASSERTION(ccmap, "failed to alloc new CCMap");
-
-  if (!ccmap)
-    return nsnull;
-
-  memset(ccmap, '\0', CCMAP_EMPTY_SIZE_PER_INT16 * sizeof(PRUint16)+ CCMAP_EXTRA);
-  ccmap += CCMAP_EXTRA;
-  CCMAP_SIZE(ccmap) = CCMAP_EMPTY_SIZE_PER_INT16;
-  CCMAP_FLAG(ccmap) = CCMAP_NONE_FLAG;
-  return ccmap;
-}
-
-PRUint16*
-MapperToCCMap(nsICharRepresentable *aMapper)
-{
-  PRUint32 map[UCS2_MAP_LEN];
-  memset(map, 0, sizeof(map));
-  nsresult res = aMapper->FillInfo(map);
-  if (NS_FAILED(res))
-    return nsnull;
-  PRUint16* ccMap = MapToCCMap(map);
-
-  return ccMap;
-}
-
-PRBool
-NextNonEmptyCCMapPage(const PRUint16* aCCMap, PRUint32 *aPageStart)
-{
-  int i, j, l;
-  int planeend = 0;
-  int planestart = 0;
-  unsigned int k;
-  const PRUint16* ccmap;
-  PRUint32 pagestart = *aPageStart;
-
-  if(CCMAP_FLAG(aCCMap) & CCMAP_SURROGATE_FLAG) {
-    // for SURROGATE
-    planeend = EXTENDED_UNICODE_PLANES;
-  }
-
-  if(pagestart != CCMAP_BEGIN_AT_START_OF_MAP) {
-    planestart = CCMAP_PLANE(pagestart);
-  }
-
-  // checking each plane
-  for(l=planestart; l<=planeend; l++, pagestart = CCMAP_BEGIN_AT_START_OF_MAP) {
-
-    if(l != 0 && CCMAP_FLAG(aCCMap) & CCMAP_SURROGATE_FLAG) {
-      // for SURROGATE - get ccmap per plane
-      ccmap = CCMAP_FOR_PLANE_EXT(aCCMap, l);
-    } else {
-      // only BMP
-      ccmap = aCCMap;
-    }
-    //
-    // Point to the next page
-    //
-    unsigned int upper_index;
-    unsigned int mid_index;
-
-    if (pagestart == CCMAP_BEGIN_AT_START_OF_MAP) {
-      upper_index = 0;
-      mid_index   = 0;
-    } else {
-      upper_index = CCMAP_UPPER_INDEX(pagestart & 0xffff);
-      mid_index   = CCMAP_MID_INDEX(pagestart & 0xffff) + 1;
-    }
-
-    // walk thru the upper pointers
-    const PRUint16 *upper = &ccmap[0];
-    for (i=upper_index; i<CCMAP_NUM_UPPER_POINTERS; i++, mid_index=0) {
-      if (upper[i] == CCMAP_EMPTY_MID) {
-        continue;
-      }
-
-      // walk the mid array
-      const PRUint16 *mid = &ccmap[upper[i]];
-      for (j=mid_index; j<CCMAP_NUM_MID_POINTERS; j++) {
-        if (mid[j] == CCMAP_EMPTY_PAGE)
-          continue;
-  
-        // walk the page
-        const ALU_TYPE *page = (ALU_TYPE*)&ccmap[mid[j]];
-        for (k=0; k<CCMAP_NUM_ALUS_PER_PAGE; k++) {
-          if (page[k] != 0) {
-            PRUint32 base = (i*CCMAP_NUM_UCHARS_PER_MID) + (j*CCMAP_NUM_UCHARS_PER_PAGE);
-            NS_ASSERTION(base<NUM_UNICODE_CHARS, "invalid page address");
-            // return exact UCS4 code point, plane number + base
-            *aPageStart = (((PRUint32)l)<<16)+base;
-            return PR_TRUE;
-          }
-        }
-      }
-    }
-  }
-  return PR_FALSE;
-}
-
-#define CCMAP_MID_OFFSET(m, i) ((m)[i])
-#define CCMAP_PAGE_OFFSET_FROM_MIDOFFSET(m, midoffset, i) ((m)[(i) + (midoffset)])
-
-/***********************************************************************************
- *compare 2 ccmap and see if they are exactly the same
- * Here I assume both ccmap is generated by 
- * nsCompressedCharMap::SetChars(PRUint32* aMap)
- * This funtion rely on current implementation of above function. The that changed, 
- * we might need to revisit this implementation. 
- ***********************************************************************************/
-PRBool IsSameCCMap(PRUint16* ccmap1, PRUint16* ccmap2)
-{
-  PRUint16 len1 = CCMAP_SIZE(ccmap1);
-  PRUint16 len2 = CCMAP_SIZE(ccmap2);
-  
-  if (len1 != len2)
-    return PR_FALSE;
-
-  if (memcmp(ccmap1, ccmap2, sizeof(PRUint16)*len1))
-    return PR_FALSE;
-  return PR_TRUE;
-}
-
-PRUint16*
-nsCompressedCharMap::NewCCMap()
-{
-  if (mExtended) {
-    return MapToCCMapExt(mMap, mExtMap+1, EXTENDED_UNICODE_PLANES);
-  } else {
-    PRUint16 *newMap = (PRUint16*)PR_Malloc((CCMAP_EXTRA + mUsedLen) * sizeof(PRUint16));
-    NS_ASSERTION(newMap, "failed to alloc new CCMap");
-    if (!newMap)
-      return nsnull;
-  
-    newMap += CCMAP_EXTRA;
-    CCMAP_SIZE(newMap) = GetSize();
-    CCMAP_FLAG(newMap) = CCMAP_NONE_FLAG;
-
-    FillCCMap(newMap);
-    return newMap;
-  }
-}
-
-PRUint16*
-nsCompressedCharMap::FillCCMap(PRUint16* aCCMap)
-{
-  // transfer the data
-  for (int i=0; i<mUsedLen; i++)
-    aCCMap[i] = u.mCCMap[i];
-
-  return aCCMap;
-}
-
-nsCompressedCharMap::~nsCompressedCharMap()
-{
-  if(mExtended){
-    int i;
-    for (i = 1; i <= EXTENDED_UNICODE_PLANES; ++i) {
-      if (mExtMap[i]) {
-        PR_Free(mExtMap[i]);
-      }
-    }
-  }
-}
-
-nsCompressedCharMap::nsCompressedCharMap()
-{
-  // initialize map to have:
-  //    1 upper pointer array
-  //    1 empty mid pointer array
-  //    1 empty page
-
-  int i;
-  memset(u.mCCMap, 0, sizeof(u.mCCMap));
-  mUsedLen = 0;
-  mAllOnesPage = 0;
-
-  // init the upper pointers
-  PRUint16 *upper = &u.mCCMap[0];
-  for (i=0; i<CCMAP_NUM_UPPER_POINTERS; i++) {
-    upper[i] = CCMAP_EMPTY_MID;
-  }
-  mUsedLen += CCMAP_NUM_UPPER_POINTERS;
-
-  // init the empty mid
-  NS_ASSERTION(mUsedLen==CCMAP_EMPTY_MID, "empty mid offset misconfigured");
-  PRUint16 *mid = &u.mCCMap[CCMAP_EMPTY_MID];
-  for (i=0; i<CCMAP_NUM_MID_POINTERS; i++) {
-    mid[i] = CCMAP_EMPTY_PAGE;
-  }
-  mUsedLen += CCMAP_NUM_MID_POINTERS;
-
-  // init the empty page
-  NS_ASSERTION(mUsedLen==CCMAP_EMPTY_PAGE, "empty page offset misconfigured");
-  // the page was zero'd by the memset above
-  mUsedLen += CCMAP_NUM_PRUINT16S_PER_PAGE;
-
-  // init extended
-  mExtended = PR_FALSE;
-  memset(mExtMap+1, 0, sizeof(PRUint32*) * EXTENDED_UNICODE_PLANES);
-  memset(mMap, 0, sizeof(mMap));
-  mExtMap[0] = mMap;
-
-}
-
-void
-nsCompressedCharMap::SetChar(PRUint32 aChar)
-{
-  if (mExtended) {
-    PRUint32 plane_num = CCMAP_PLANE(aChar);
-    NS_ASSERTION(plane_num <= EXTENDED_UNICODE_PLANES,"invalid plane");
-    if (plane_num <= EXTENDED_UNICODE_PLANES) {
-      if (mExtMap[plane_num] == 0) {
-        mExtMap[plane_num] = (PRUint32*)PR_Malloc(sizeof(PRUint32)*UCS2_MAP_LEN);
-        NS_ASSERTION(mExtMap[plane_num], "failed to alloc new mExtMap");
-        if (!mExtMap[plane_num]) {
-          return;
-        }
-        memset(mExtMap[plane_num], 0, sizeof(PRUint32)*UCS2_MAP_LEN);
-      }
-      SET_REPRESENTABLE(mExtMap[plane_num], aChar & 0xffff);
-    }
-  } else {
-    NS_ASSERTION(aChar <= 0xffff, "extended char is passed");
-
-    unsigned int i;
-    unsigned int upper_index      = CCMAP_UPPER_INDEX(aChar);
-    unsigned int mid_index        = CCMAP_MID_INDEX(aChar);
-
-    PRUint16 mid_offset = u.mCCMap[upper_index];
-    if (mid_offset == CCMAP_EMPTY_MID) {
-      mid_offset = u.mCCMap[upper_index] = mUsedLen;
-      mUsedLen += CCMAP_NUM_MID_POINTERS;
-      NS_ASSERTION(mUsedLen<=CCMAP_MAX_LEN,"length too long");
-      // init the mid
-      PRUint16 *mid = &u.mCCMap[mid_offset];
-      for (i=0; i<CCMAP_NUM_MID_POINTERS; i++) {
-        NS_ASSERTION(mid[i]==0, "this mid pointer should be unused");
-        mid[i] = CCMAP_EMPTY_PAGE;
-      }
-    }
-
-    PRUint16 page_offset = u.mCCMap[mid_offset+mid_index];
-    if (page_offset == CCMAP_EMPTY_PAGE) {
-      page_offset = u.mCCMap[mid_offset+mid_index] = mUsedLen;
-      mUsedLen += CCMAP_NUM_PRUINT16S_PER_PAGE;
-      NS_ASSERTION(mUsedLen<=CCMAP_MAX_LEN,"length too long");
-      // init the page
-      PRUint16 *page = &u.mCCMap[page_offset];
-      for (i=0; i<CCMAP_NUM_PRUINT16S_PER_PAGE; i++) {
-        NS_ASSERTION(page[i]==0, "this page should be unused");
-        page[i] = 0;
-      }
-    }
-#undef CCMAP_SET_CHAR
-#define CCMAP_SET_CHAR(m,c) (CCMAP_TO_ALU(m,c) |= (CCMAP_POW2(CCMAP_BIT_INDEX(c))))
-    CCMAP_SET_CHAR(u.mCCMap,aChar);
-#undef CCMAP_SET_CHAR
-    NS_ASSERTION(CCMAP_HAS_CHAR(u.mCCMap,aChar), "failed to set bit");
-  }
-}
-
-void
-nsCompressedCharMap::SetChars(PRUint16 aBase, ALU_TYPE* aPage)
-{
-  unsigned int i;
-  unsigned int upper_index = CCMAP_UPPER_INDEX(aBase);
-  unsigned int mid_index   = CCMAP_MID_INDEX(aBase);
-  NS_ASSERTION((aBase&CCMAP_PAGE_MASK)==0, "invalid page address");
-
-  //
-  // check of none/all bits set
-  //
-  PRUint16 num_none_set = 0;
-  PRUint16 num_all_set = 0;
-  for (i=0; i<CCMAP_NUM_ALUS_PER_PAGE; i++) {
-    if (aPage[i] == 0)
-      num_none_set++;
-    else if (aPage[i] == CCMAP_ALU_MASK)
-      num_all_set++;
-  }
-  if (num_none_set == CCMAP_NUM_ALUS_PER_PAGE) {
-    return;
-  }
-
-  //
-  // Alloc mid if necessary
-  //
-  PRUint16 mid_offset = u.mCCMap[upper_index];
-  if (mid_offset == CCMAP_EMPTY_MID) {
-    mid_offset = u.mCCMap[upper_index] = mUsedLen;
-    mUsedLen += CCMAP_NUM_MID_POINTERS;
-    NS_ASSERTION(mUsedLen<=CCMAP_MAX_LEN,"length too long");
-    // init the mid
-    PRUint16 *mid = &u.mCCMap[mid_offset];
-    for (i=0; i<CCMAP_NUM_MID_POINTERS; i++) {
-      NS_ASSERTION(mid[i]==0, "this mid pointer should be unused");
-      mid[i] = CCMAP_EMPTY_PAGE;
-    }
-  }
-
-  //
-  // if all bits set share an "all bits set" page
-  //
-  if (num_all_set == CCMAP_NUM_ALUS_PER_PAGE) {
-    if (mAllOnesPage == 0) {
-      mAllOnesPage = mUsedLen;
-      mUsedLen += CCMAP_NUM_PRUINT16S_PER_PAGE;
-      NS_ASSERTION(mUsedLen<=CCMAP_MAX_LEN,"length too long");
-      ALU_TYPE *all_ones_page = (ALU_TYPE*)&u.mCCMap[mAllOnesPage];
-      for (i=0; i<CCMAP_NUM_ALUS_PER_PAGE; i++) {
-        NS_ASSERTION(all_ones_page[i]==0, "this page should be unused");
-        all_ones_page[i] = CCMAP_ALU_MASK;
-      }
-    }
-    u.mCCMap[mid_offset+mid_index] = mAllOnesPage;
-    return;
-  }
-
-  //
-  // Alloc page if necessary
-  //
-  PRUint16 page_offset = u.mCCMap[mid_offset+mid_index];
-  if (page_offset == CCMAP_EMPTY_PAGE) {
-    page_offset = u.mCCMap[mid_offset+mid_index] = mUsedLen;
-    mUsedLen += CCMAP_NUM_PRUINT16S_PER_PAGE;
-    NS_ASSERTION(mUsedLen<=CCMAP_MAX_LEN,"length too long");
-  }
-
-  // copy the page data
-  ALU_TYPE *page = (ALU_TYPE*)&u.mCCMap[page_offset];
-  for (i=0; i<CCMAP_NUM_ALUS_PER_PAGE; i++) {
-    NS_ASSERTION(page[i]==0, "this page should be unused");
-    page[i] = aPage[i];
-  }
-}
-
-void
-nsCompressedCharMap::SetChars(PRUint16* aCCMap)
-{
-  int i, j;
-  if(mExtended){
-    PRUint32 page = CCMAP_BEGIN_AT_START_OF_MAP;
-    while (NextNonEmptyCCMapPage(aCCMap, &page)) {
-      PRUint32 pagechar = page;
-      for (i=0; i<(CCMAP_BITS_PER_PAGE/8); i++) {
-        for (j=0; j<8; j++) {
-          if (CCMAP_HAS_CHAR_EXT(aCCMap, pagechar)) {
-            SetChar(pagechar);
-          }
-          pagechar++;
-        }
-      }
-    }
-  } else {
-    //
-    // Copy the input CCMap
-    //
-    // walk thru the upper pointers
-    PRUint16 *upper = &aCCMap[0];
-    for (i=0; i<CCMAP_NUM_UPPER_POINTERS; i++) {
-      if (upper[i] == CCMAP_EMPTY_MID)
-        continue;
-
-      // walk the mid array
-      PRUint16 *mid = &aCCMap[upper[i]];
-      for (j=0; j<CCMAP_NUM_MID_POINTERS; j++) {
-        if (mid[j] == CCMAP_EMPTY_PAGE)
-          continue;
-
-        PRUint32 base = (i*CCMAP_NUM_UCHARS_PER_MID) + (j*CCMAP_NUM_UCHARS_PER_PAGE);
-        NS_ASSERTION(base<NUM_UNICODE_CHARS, "invalid page address");
-        ALU_TYPE *page = (ALU_TYPE*)&aCCMap[mid[j]];
-        SetChars((PRUint16)base, page);
-      }
-    }
-  }
-}
-
-void
-nsCompressedCharMap::SetChars(PRUint32* aMap)
-{
-  PRUint32* frommap_page;
-  frommap_page = aMap;
-  PRUint16 base = 0;
-
-  for (int i=0; i<CCMAP_TOTAL_PAGES; i++) {
-
-#if (CCMAP_BITS_PER_ALU == CCMAP_BITS_PER_PRUINT32)
-    SetChars(base, (ALU_TYPE*)frommap_page);
-    frommap_page += CCMAP_PRUINT32S_PER_PAGE;
-
-#elif (CCMAP_BITS_PER_ALU > CCMAP_BITS_PER_PRUINT32)
-    int j, k = CCMAP_BITS_PER_PRUINT32;
-    ALU_TYPE page[CCMAP_NUM_ALUS_PER_PAGE];
-    ALU_TYPE *p = page;
-    for (j=0; j<CCMAP_ALUS_PER_PAGE; j++) {
-      ALU_TYPE alu_val = 0;
-      ALU_TYPE tmp;
-      for (k=0; k<CCMAP_PRUINT32S_PER_ALU; k++) {
-        tmp = *frommap_page;
-        tmp <<= (k*CCMAP_BITS_PER_PRUINT32);
-        //alu_val |= (*frommap_page)<<(k*CCMAP_BITS_PER_PRUINT32);
-        alu_val |= tmp;
-        frommap_page++;
-      }
-      *p++ = alu_val;
-    }
-    SetChars(base, page);
-#elif (CCMAP_BITS_PER_ALU < CCMAP_BITS_PER_PRUINT32)
-    int j, k;
-    ALU_TYPE page[CCMAP_NUM_ALUS_PER_PAGE];
-    int v = CCMAP_PRUINT32S_PER_PAGE;
-    ALU_TYPE *p = page;
-    for (j=0; j<CCMAP_PRUINT32S_PER_PAGE; j++) {
-      PRUint32 pruint32_val = *frommap_page++;
-      for (k=0; k<CCMAP_ALUS_PER_PRUINT32; k++) {
-        *p++ = pruint32_val & CCMAP_ALU_MASK;
-        pruint32_val >>= CCMAP_BITS_PER_ALU; 
-      }
-    }
-    SetChars(base, page);
-#endif
-
-    base += CCMAP_NUM_UCHARS_PER_PAGE;
-  }
-}
-
-#ifdef DEBUG
-void
-printCCMap(PRUint16* aCCMap)
-{
-  PRUint32 page = CCMAP_BEGIN_AT_START_OF_MAP;
-  while (NextNonEmptyCCMapPage(aCCMap, &page)) {
-    int i;
-    PRUint32 pagechar = page;
-  
-    printf("CCMap:0x%04lx=", (long)page);
-    for (i=0; i<(CCMAP_BITS_PER_PAGE/8); i++) {
-      unsigned char val = 0;
-      for (int j=0; j<8; j++) {
-        if (CCMAP_HAS_CHAR(aCCMap, pagechar)) {
-          val |= 1 << j;
-        }
-        pagechar++;
-      }
-      printf("%02x", val);
-    }
-    printf("\n");
-  }
-}
-#endif
-
-// Non-BMP unicode support extension, create ccmap for both BMP and extended planes 
-PRUint16*
-MapToCCMapExt(PRUint32* aBmpPlaneMap, PRUint32** aOtherPlaneMaps, PRUint32 aOtherPlaneNum)
-{
-  nsCompressedCharMap* otherPlaneObj[EXTENDED_UNICODE_PLANES];
-  PRUint32 totalSize;
-  PRUint16 i;
-  PRUint32 *planeCCMapOffsets;
-  PRUint32 currOffset;
-
-  NS_ASSERTION(aOtherPlaneNum <= EXTENDED_UNICODE_PLANES, "illegal argument value");
-  if (aOtherPlaneNum > EXTENDED_UNICODE_PLANES)
-    return nsnull;
-
-  // Put the data into a temp map
-  nsCompressedCharMap bmpCcmapObj;
-  bmpCcmapObj.SetChars(aBmpPlaneMap);
-
-  // Add bmp size
-  totalSize = bmpCcmapObj.GetSize();
-
-  // Add bmp length field
-  totalSize += CCMAP_EXTRA;
-  
-  // Add Plane array 
-  totalSize += EXTENDED_UNICODE_PLANES * sizeof(PRUint32)/sizeof(PRUint16);
-
-  // Add an empty plane ccmap
-  // A totally empty plane ccmap can be represented by 16 *(PRUint16)0. 
-  totalSize += CCMAP_EMPTY_SIZE_PER_INT16;
-
-  // Create ccmap for other planes
-  for (i = 0; i < aOtherPlaneNum; i++) {
-    if (aOtherPlaneMaps[i]) {
-      otherPlaneObj[i] = new nsCompressedCharMap();
-      NS_ASSERTION(otherPlaneObj[i],
-                   "unable to create new nsCompressedCharMap");
-      if(otherPlaneObj[i]) {
-        otherPlaneObj[i]->SetChars(aOtherPlaneMaps[i]);
-        totalSize += otherPlaneObj[i]->GetSize();
-      }
-    } else {
-      otherPlaneObj[i] = nsnull;
-    }
-  }
-
-  PRUint16 *ccmap = (PRUint16*)PR_Malloc(totalSize * sizeof(PRUint16));
-  NS_ASSERTION(ccmap, "failed to alloc new CCMap");
-
-  if (!ccmap)
-    return nsnull;
-
-  // Assign BMP ccmap size
-  ccmap += CCMAP_EXTRA;
-  CCMAP_SIZE(ccmap) = bmpCcmapObj.GetSize();
-  CCMAP_FLAG(ccmap) = CCMAP_SURROGATE_FLAG;
-
-  // Fill bmp plane ccmap 
-  bmpCcmapObj.FillCCMap(ccmap);
-
-  // Get pointer for plane ccmap offset array
-  currOffset = bmpCcmapObj.GetSize();
-  planeCCMapOffsets = (PRUint32*)(ccmap+currOffset);
-  currOffset += sizeof(PRUint32)/sizeof(PRUint16)*EXTENDED_UNICODE_PLANES;
-
-  // Put a empty ccmap there 
-  memset(ccmap+currOffset, '\0', sizeof(PRUint16)*16);
-  PRUint32 emptyCCMapOffset = currOffset;
-  currOffset += CCMAP_EMPTY_SIZE_PER_INT16;
-
-  // Now fill all rest of the planes' ccmap and put off in array
-  for (i = 0; i <aOtherPlaneNum; i++) {
-    if (aOtherPlaneMaps[i] && otherPlaneObj[i]) {
-      *(planeCCMapOffsets+i) = currOffset;
-      otherPlaneObj[i]->FillCCMap(ccmap+currOffset);
-      currOffset += otherPlaneObj[i]->GetSize();
-    }
-    else 
-      *(planeCCMapOffsets+i) = emptyCCMapOffset;
-  }
-  for (; i < EXTENDED_UNICODE_PLANES; i++) {
-    *(planeCCMapOffsets+i) = emptyCCMapOffset;
-  }
-
-  // remove all nsCompressedCharMap objects allocated 
-  for (i = 0; i < aOtherPlaneNum; i++) {
-    if (otherPlaneObj[i]) 
-      delete otherPlaneObj[i];
-  }
-
-#ifdef DEBUG
-  PRUint32 k, h, l, plane, offset;
-  PRBool oldb;
-  PRBool newb;
-
-  // testing for BMP plane
-  for (k=0; k<NUM_UNICODE_CHARS; k++) {
-    oldb = IS_REPRESENTABLE(aBmpPlaneMap, k);
-    newb = CCMAP_HAS_CHAR_EXT(ccmap, k);
-    NS_ASSERTION(oldb==newb,"failed to generate map correctly");
-  }
-
-  //testing for extension plane 
-  for (k = 0x10000; k < 0x100000; k++) {
-    plane = k/0x10000;
-    if (plane > aOtherPlaneNum)
-      break;
-    if (aOtherPlaneMaps[plane-1])
-      oldb = IS_REPRESENTABLE(aOtherPlaneMaps[plane-1], k&0xffff);
-    else
-      oldb = 0;
-    newb = CCMAP_HAS_CHAR_EXT(ccmap, k);
-    NS_ASSERTION(oldb==newb, "failed to generate extension map correctly");
-  }
-
-  
-  // testing for non-BMP plane
-    for (h = 0; h < 0x400; h++) {
-      for (l = 0; l < 0x400; l++) {
-        plane = h >> 6;
-        offset = (h*0x400 + l) & 0xffff;
-        if (aOtherPlaneMaps[plane])
-          oldb = IS_REPRESENTABLE(aOtherPlaneMaps[plane], offset);
-        else
-          oldb = 0;
-        newb = CCMAP_HAS_CHAR_EXT2(ccmap, h+0xd800, l+0xdc00);
-        NS_ASSERTION(oldb==newb, "failed to generate extension map correctly");
-      }
-    }
-#endif
-
-  return ccmap;
-}
--- a/intl/unicharutil/util/nsCompressedCharMap.h
+++ b/intl/unicharutil/util/nsCompressedCharMap.h
@@ -34,17 +34,16 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef NSCOMPRESSEDCHARMAP_H
 #define NSCOMPRESSEDCHARMAP_H
 #include "prtypes.h"
-#include "nsICharRepresentable.h"
 
 #define ALU_SIZE PR_BITS_PER_LONG
 //#define ALU_SIZE 16
 //#define ALU_SIZE 32
 //#define ALU_SIZE 64
 #if (ALU_SIZE==32)
 #   define ALU_TYPE                PRUint32
 #   define CCMAP_POW2(n)           (1L<<(n))
@@ -54,33 +53,18 @@
 #   define CCMAP_POW2(n)           (1L<<(n))
 #   define CCMAP_BITS_PER_ALU_LOG2 6
 #else
 #   define ALU_TYPE                PRUint16
 #   define CCMAP_POW2(n)           (1<<(n))
 #   define CCMAP_BITS_PER_ALU_LOG2 4
 #endif
 
-
-class nsICharRepresentable;
-
-extern PRUint16* CreateEmptyCCMap();
-extern PRUint16* MapToCCMap(PRUint32* aMap);
-extern PRUint16* MapperToCCMap(nsICharRepresentable *aMapper);
-extern void FreeCCMap(PRUint16* &aMap);
-extern PRBool NextNonEmptyCCMapPage(const PRUint16 *, PRUint32 *);
-extern PRBool IsSameCCMap(PRUint16* ccmap1, PRUint16* ccmap2);
-#ifdef DEBUG
-void printCCMap(PRUint16* aCCMap);
-#endif
-
-
-// surrogate support extension
-extern PRUint16*
-MapToCCMapExt(PRUint32* aBmpPlaneMap, PRUint32** aOtherPlaneMaps, PRUint32 aOtherPlaneNum);
+// Note: nsCompressedCharMap.cpp along with class
+// nsCompressedCharMap was removed in bug 559489.
 
 // 
 // nsCompressedCharMap
 // 
 // A Compressed Char Map (CCMap) saves memory by folding all
 // the empty portions of the map on top of each other.
 //
 // Building a Compressed Char Map (CCMap) is more complex than
@@ -98,46 +82,16 @@ MapToCCMapExt(PRUint32* aBmpPlaneMap, PR
 //  (16 upper pointers) + (16 empty mid pointers) +
 //  (16 empty page)     + (16*16 max mid pointers) +
 //  (256*16 max pages)  =  4400 PRUint16
 #define CCMAP_MAX_LEN (16+16+16+256+4096)
 
 // non-bmp unicode support extension
 #define EXTENDED_UNICODE_PLANES    16
 
-class nsCompressedCharMap {
-public:
-  nsCompressedCharMap();
-  ~nsCompressedCharMap();
-
-  PRUint16* NewCCMap();
-  PRUint16* FillCCMap(PRUint16* aCCMap);
-  PRUint16  GetSize() {return mUsedLen;}
-  void      SetChar(PRUint32);
-  void      SetChars(PRUint16*);
-  void      SetChars(PRUint16, ALU_TYPE*);
-  void      SetChars(PRUint32*);
-  void      Extend() {mExtended = PR_TRUE;} // enable surrogate area
-
-protected:
-  union {
-    PRUint16 mCCMap[CCMAP_MAX_LEN];
-    ALU_TYPE used_for_align; // do not use; only here to cause
-                             // alignment
-  } u;
-  PRUint16 mUsedLen;   // in PRUint16
-  PRUint16 mAllOnesPage;
-
-  PRBool mExtended;
-
-  // for surrogate support
-  PRUint32* mExtMap[EXTENDED_UNICODE_PLANES+1];
-  PRUint32  mMap[UCS2_MAP_LEN];
-};
-
 //
 // Character Map Compression
 //
 // Each font requires its own 8k charmap.  On a system with 200 
 // fonts this would take: 200 * 8K = 1600K memory.
 //
 // Since most char maps are mostly empty a significant amount
 // of memory can be saved by not allocating the unused sections.
--- a/intl/unicharutil/util/nsUnicharUtils.cpp
+++ b/intl/unicharutil/util/nsUnicharUtils.cpp
@@ -168,32 +168,16 @@ nsCaseInsensitiveStringComparator::opera
   if (lhs == rhs)
     return 0;
   else if (lhs < rhs)
     return -1;
   else
     return 1;
 }
 
-#else // MOZILLA_INTERNAL_API
-
-PRInt32
-CaseInsensitiveCompare(const PRUnichar *a,
-                       const PRUnichar *b,
-                       PRUint32 len)
-{
-  nsICaseConversion* caseConv = NS_GetCaseConversion();
-  if (!caseConv)
-    return NS_strcmp(a, b);
-
-  PRInt32 result;
-  caseConv->CaseInsensitiveCompare(a, b, len, &result);
-  return result;
-}
-
 #endif // MOZILLA_INTERNAL_API
 
 PRUnichar
 ToLowerCase(PRUnichar aChar)
 {
   PRUnichar result;
   nsICaseConversion* caseConv = NS_GetCaseConversion();
   if (caseConv)
--- a/intl/unicharutil/util/nsUnicharUtils.h
+++ b/intl/unicharutil/util/nsUnicharUtils.h
@@ -102,16 +102,11 @@ CaseInsensitiveFindInReadable(const nsAS
                               const nsAString& aHay)
 {
   nsAString::const_iterator searchBegin, searchEnd;
   return FindInReadable(aPattern, aHay.BeginReading(searchBegin),
                         aHay.EndReading(searchEnd),
                         nsCaseInsensitiveStringComparator());
 }
 
-#else // MOZILLA_INTERNAL_API
-
-NS_HIDDEN_(PRInt32)
-CaseInsensitiveCompare(const PRUnichar *a, const PRUnichar *b, PRUint32 len);
-
 #endif // MOZILLA_INTERNAL_API
 
 #endif  /* nsUnicharUtils_h__ */
--- a/intl/unicharutil/util/objs.mk
+++ b/intl/unicharutil/util/objs.mk
@@ -31,13 +31,12 @@
 # and other provisions required by the GPL or the LGPL. If you do not delete
 # the provisions above, a recipient may use your version of this file under
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
 INTL_UNICHARUTIL_UTIL_LCPPSRCS = \
 	nsUnicharUtils.cpp \
-	nsCompressedCharMap.cpp \
 	nsBidiUtils.cpp \
 	$(NULL)
 
 INTL_UNICHARUTIL_UTIL_CPPSRCS = $(addprefix $(topsrcdir)/intl/unicharutil/util/, $(INTL_UNICHARUTIL_UTIL_LCPPSRCS))
deleted file mode 100644
--- a/intl/unicharutil/util/symmtable.h
+++ /dev/null
@@ -1,336 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is IBM code.
- *
- * The Initial Developer of the Original Code is
- * International Business Machines Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2000
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
- 
-/* 
-    DO NOT EDIT THIS DOCUMENT !!! THIS DOCUMENT IS GENERATED BY
-    mozilla/intl/unicharutil/util/gensymmtable.pl
- */
-
-/* Indexes to symmtable by Unicode block */
-const static PRUint8 symmtable_index[256] = {
-/*       _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
-/* 0_ */  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
-/* 1_ */  0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 2_ */  4, 0, 5, 6, 0, 0, 0, 7, 0, 8, 9, 0, 0, 0, 10, 0,
-/* 3_ */  11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 4_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 5_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 6_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 7_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 8_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 9_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* A_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* B_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* C_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* D_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* E_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* F_ */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
-};
-const static PRUint16 symmtable[13] [256] = {
- {
-/* Block U00__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */      0,    0x1,    0x2,    0x3,    0x4,    0x5,    0x6,    0x7,    0x8,    0x9,    0xa,    0xb,    0xc,    0xd,    0xe,    0xf, 
-/* 1_ */   0x10,   0x11,   0x12,   0x13,   0x14,   0x15,   0x16,   0x17,   0x18,   0x19,   0x1a,   0x1b,   0x1c,   0x1d,   0x1e,   0x1f, 
-/* 2_ */   0x20,   0x21,   0x22,   0x23,   0x24,   0x25,   0x26,   0x27,   0x29,   0x28,   0x2a,   0x2b,   0x2c,   0x2d,   0x2e,   0x2f, 
-/* 3_ */   0x30,   0x31,   0x32,   0x33,   0x34,   0x35,   0x36,   0x37,   0x38,   0x39,   0x3a,   0x3b,   0x3e,   0x3d,   0x3c,   0x3f, 
-/* 4_ */   0x40,   0x41,   0x42,   0x43,   0x44,   0x45,   0x46,   0x47,   0x48,   0x49,   0x4a,   0x4b,   0x4c,   0x4d,   0x4e,   0x4f, 
-/* 5_ */   0x50,   0x51,   0x52,   0x53,   0x54,   0x55,   0x56,   0x57,   0x58,   0x59,   0x5a,   0x5d,   0x5c,   0x5b,   0x5e,   0x5f, 
-/* 6_ */   0x60,   0x61,   0x62,   0x63,   0x64,   0x65,   0x66,   0x67,   0x68,   0x69,   0x6a,   0x6b,   0x6c,   0x6d,   0x6e,   0x6f, 
-/* 7_ */   0x70,   0x71,   0x72,   0x73,   0x74,   0x75,   0x76,   0x77,   0x78,   0x79,   0x7a,   0x7d,   0x7c,   0x7b,   0x7e,   0x7f, 
-/* 8_ */   0x80,   0x81,   0x82,   0x83,   0x84,   0x85,   0x86,   0x87,   0x88,   0x89,   0x8a,   0x8b,   0x8c,   0x8d,   0x8e,   0x8f, 
-/* 9_ */   0x90,   0x91,   0x92,   0x93,   0x94,   0x95,   0x96,   0x97,   0x98,   0x99,   0x9a,   0x9b,   0x9c,   0x9d,   0x9e,   0x9f, 
-/* A_ */   0xa0,   0xa1,   0xa2,   0xa3,   0xa4,   0xa5,   0xa6,   0xa7,   0xa8,   0xa9,   0xaa,   0xbb,   0xac,   0xad,   0xae,   0xaf, 
-/* B_ */   0xb0,   0xb1,   0xb2,   0xb3,   0xb4,   0xb5,   0xb6,   0xb7,   0xb8,   0xb9,   0xba,   0xab,   0xbc,   0xbd,   0xbe,   0xbf, 
-/* C_ */   0xc0,   0xc1,   0xc2,   0xc3,   0xc4,   0xc5,   0xc6,   0xc7,   0xc8,   0xc9,   0xca,   0xcb,   0xcc,   0xcd,   0xce,   0xcf, 
-/* D_ */   0xd0,   0xd1,   0xd2,   0xd3,   0xd4,   0xd5,   0xd6,   0xd7,   0xd8,   0xd9,   0xda,   0xdb,   0xdc,   0xdd,   0xde,   0xdf, 
-/* E_ */   0xe0,   0xe1,   0xe2,   0xe3,   0xe4,   0xe5,   0xe6,   0xe7,   0xe8,   0xe9,   0xea,   0xeb,   0xec,   0xed,   0xee,   0xef, 
-/* F_ */   0xf0,   0xf1,   0xf2,   0xf3,   0xf4,   0xf5,   0xf6,   0xf7,   0xf8,   0xf9,   0xfa,   0xfb,   0xfc,   0xfd,   0xfe,   0xff
- },
- {
-/* Block U0F__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */  0xf00,  0xf01,  0xf02,  0xf03,  0xf04,  0xf05,  0xf06,  0xf07,  0xf08,  0xf09,  0xf0a,  0xf0b,  0xf0c,  0xf0d,  0xf0e,  0xf0f, 
-/* 1_ */  0xf10,  0xf11,  0xf12,  0xf13,  0xf14,  0xf15,  0xf16,  0xf17,  0xf18,  0xf19,  0xf1a,  0xf1b,  0xf1c,  0xf1d,  0xf1e,  0xf1f, 
-/* 2_ */  0xf20,  0xf21,  0xf22,  0xf23,  0xf24,  0xf25,  0xf26,  0xf27,  0xf28,  0xf29,  0xf2a,  0xf2b,  0xf2c,  0xf2d,  0xf2e,  0xf2f, 
-/* 3_ */  0xf30,  0xf31,  0xf32,  0xf33,  0xf34,  0xf35,  0xf36,  0xf37,  0xf38,  0xf39,  0xf3b,  0xf3a,  0xf3d,  0xf3c,  0xf3e,  0xf3f, 
-/* 4_ */  0xf40,  0xf41,  0xf42,  0xf43,  0xf44,  0xf45,  0xf46,  0xf47,  0xf48,  0xf49,  0xf4a,  0xf4b,  0xf4c,  0xf4d,  0xf4e,  0xf4f, 
-/* 5_ */  0xf50,  0xf51,  0xf52,  0xf53,  0xf54,  0xf55,  0xf56,  0xf57,  0xf58,  0xf59,  0xf5a,  0xf5b,  0xf5c,  0xf5d,  0xf5e,  0xf5f, 
-/* 6_ */  0xf60,  0xf61,  0xf62,  0xf63,  0xf64,  0xf65,  0xf66,  0xf67,  0xf68,  0xf69,  0xf6a,  0xf6b,  0xf6c,  0xf6d,  0xf6e,  0xf6f, 
-/* 7_ */  0xf70,  0xf71,  0xf72,  0xf73,  0xf74,  0xf75,  0xf76,  0xf77,  0xf78,  0xf79,  0xf7a,  0xf7b,  0xf7c,  0xf7d,  0xf7e,  0xf7f, 
-/* 8_ */  0xf80,  0xf81,  0xf82,  0xf83,  0xf84,  0xf85,  0xf86,  0xf87,  0xf88,  0xf89,  0xf8a,  0xf8b,  0xf8c,  0xf8d,  0xf8e,  0xf8f, 
-/* 9_ */  0xf90,  0xf91,  0xf92,  0xf93,  0xf94,  0xf95,  0xf96,  0xf97,  0xf98,  0xf99,  0xf9a,  0xf9b,  0xf9c,  0xf9d,  0xf9e,  0xf9f, 
-/* A_ */  0xfa0,  0xfa1,  0xfa2,  0xfa3,  0xfa4,  0xfa5,  0xfa6,  0xfa7,  0xfa8,  0xfa9,  0xfaa,  0xfab,  0xfac,  0xfad,  0xfae,  0xfaf, 
-/* B_ */  0xfb0,  0xfb1,  0xfb2,  0xfb3,  0xfb4,  0xfb5,  0xfb6,  0xfb7,  0xfb8,  0xfb9,  0xfba,  0xfbb,  0xfbc,  0xfbd,  0xfbe,  0xfbf, 
-/* C_ */  0xfc0,  0xfc1,  0xfc2,  0xfc3,  0xfc4,  0xfc5,  0xfc6,  0xfc7,  0xfc8,  0xfc9,  0xfca,  0xfcb,  0xfcc,  0xfcd,  0xfce,  0xfcf, 
-/* D_ */  0xfd0,  0xfd1,  0xfd2,  0xfd3,  0xfd4,  0xfd5,  0xfd6,  0xfd7,  0xfd8,  0xfd9,  0xfda,  0xfdb,  0xfdc,  0xfdd,  0xfde,  0xfdf, 
-/* E_ */  0xfe0,  0xfe1,  0xfe2,  0xfe3,  0xfe4,  0xfe5,  0xfe6,  0xfe7,  0xfe8,  0xfe9,  0xfea,  0xfeb,  0xfec,  0xfed,  0xfee,  0xfef, 
-/* F_ */  0xff0,  0xff1,  0xff2,  0xff3,  0xff4,  0xff5,  0xff6,  0xff7,  0xff8,  0xff9,  0xffa,  0xffb,  0xffc,  0xffd,  0xffe,  0xfff
- },
- {
-/* Block U16__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0x1600, 0x1601, 0x1602, 0x1603, 0x1604, 0x1605, 0x1606, 0x1607, 0x1608, 0x1609, 0x160a, 0x160b, 0x160c, 0x160d, 0x160e, 0x160f, 
-/* 1_ */ 0x1610, 0x1611, 0x1612, 0x1613, 0x1614, 0x1615, 0x1616, 0x1617, 0x1618, 0x1619, 0x161a, 0x161b, 0x161c, 0x161d, 0x161e, 0x161f, 
-/* 2_ */ 0x1620, 0x1621, 0x1622, 0x1623, 0x1624, 0x1625, 0x1626, 0x1627, 0x1628, 0x1629, 0x162a, 0x162b, 0x162c, 0x162d, 0x162e, 0x162f, 
-/* 3_ */ 0x1630, 0x1631, 0x1632, 0x1633, 0x1634, 0x1635, 0x1636, 0x1637, 0x1638, 0x1639, 0x163a, 0x163b, 0x163c, 0x163d, 0x163e, 0x163f, 
-/* 4_ */ 0x1640, 0x1641, 0x1642, 0x1643, 0x1644, 0x1645, 0x1646, 0x1647, 0x1648, 0x1649, 0x164a, 0x164b, 0x164c, 0x164d, 0x164e, 0x164f, 
-/* 5_ */ 0x1650, 0x1651, 0x1652, 0x1653, 0x1654, 0x1655, 0x1656, 0x1657, 0x1658, 0x1659, 0x165a, 0x165b, 0x165c, 0x165d, 0x165e, 0x165f, 
-/* 6_ */ 0x1660, 0x1661, 0x1662, 0x1663, 0x1664, 0x1665, 0x1666, 0x1667, 0x1668, 0x1669, 0x166a, 0x166b, 0x166c, 0x166d, 0x166e, 0x166f, 
-/* 7_ */ 0x1670, 0x1671, 0x1672, 0x1673, 0x1674, 0x1675, 0x1676, 0x1677, 0x1678, 0x1679, 0x167a, 0x167b, 0x167c, 0x167d, 0x167e, 0x167f, 
-/* 8_ */ 0x1680, 0x1681, 0x1682, 0x1683, 0x1684, 0x1685, 0x1686, 0x1687, 0x1688, 0x1689, 0x168a, 0x168b, 0x168c, 0x168d, 0x168e, 0x168f, 
-/* 9_ */ 0x1690, 0x1691, 0x1692, 0x1693, 0x1694, 0x1695, 0x1696, 0x1697, 0x1698, 0x1699, 0x169a, 0x169c, 0x169b, 0x169d, 0x169e, 0x169f, 
-/* A_ */ 0x16a0, 0x16a1, 0x16a2, 0x16a3, 0x16a4, 0x16a5, 0x16a6, 0x16a7, 0x16a8, 0x16a9, 0x16aa, 0x16ab, 0x16ac, 0x16ad, 0x16ae, 0x16af, 
-/* B_ */ 0x16b0, 0x16b1, 0x16b2, 0x16b3, 0x16b4, 0x16b5, 0x16b6, 0x16b7, 0x16b8, 0x16b9, 0x16ba, 0x16bb, 0x16bc, 0x16bd, 0x16be, 0x16bf, 
-/* C_ */ 0x16c0, 0x16c1, 0x16c2, 0x16c3, 0x16c4, 0x16c5, 0x16c6, 0x16c7, 0x16c8, 0x16c9, 0x16ca, 0x16cb, 0x16cc, 0x16cd, 0x16ce, 0x16cf, 
-/* D_ */ 0x16d0, 0x16d1, 0x16d2, 0x16d3, 0x16d4, 0x16d5, 0x16d6, 0x16d7, 0x16d8, 0x16d9, 0x16da, 0x16db, 0x16dc, 0x16dd, 0x16de, 0x16df, 
-/* E_ */ 0x16e0, 0x16e1, 0x16e2, 0x16e3, 0x16e4, 0x16e5, 0x16e6, 0x16e7, 0x16e8, 0x16e9, 0x16ea, 0x16eb, 0x16ec, 0x16ed, 0x16ee, 0x16ef, 
-/* F_ */ 0x16f0, 0x16f1, 0x16f2, 0x16f3, 0x16f4, 0x16f5, 0x16f6, 0x16f7, 0x16f8, 0x16f9, 0x16fa, 0x16fb, 0x16fc, 0x16fd, 0x16fe, 0x16ff
- },
- {
-/* Block U20__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 
-/* 1_ */ 0x2010, 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2018, 0x2019, 0x201a, 0x201b, 0x201c, 0x201d, 0x201e, 0x201f, 
-/* 2_ */ 0x2020, 0x2021, 0x2022, 0x2023, 0x2024, 0x2025, 0x2026, 0x2027, 0x2028, 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f, 
-/* 3_ */ 0x2030, 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, 0x2036, 0x2037, 0x2038, 0x203a, 0x2039, 0x203b, 0x203c, 0x203d, 0x203e, 0x203f, 
-/* 4_ */ 0x2040, 0x2041, 0x2042, 0x2043, 0x2044, 0x2046, 0x2045, 0x2047, 0x2048, 0x2049, 0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x204f, 
-/* 5_ */ 0x2050, 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058, 0x2059, 0x205a, 0x205b, 0x205c, 0x205d, 0x205e, 0x205f, 
-/* 6_ */ 0x2060, 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068, 0x2069, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 
-/* 7_ */ 0x2070, 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x207a, 0x207b, 0x207c, 0x207e, 0x207d, 0x207f, 
-/* 8_ */ 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 0x208a, 0x208b, 0x208c, 0x208e, 0x208d, 0x208f, 
-/* 9_ */ 0x2090, 0x2091, 0x2092, 0x2093, 0x2094, 0x2095, 0x2096, 0x2097, 0x2098, 0x2099, 0x209a, 0x209b, 0x209c, 0x209d, 0x209e, 0x209f, 
-/* A_ */ 0x20a0, 0x20a1, 0x20a2, 0x20a3, 0x20a4, 0x20a5, 0x20a6, 0x20a7, 0x20a8, 0x20a9, 0x20aa, 0x20ab, 0x20ac, 0x20ad, 0x20ae, 0x20af, 
-/* B_ */ 0x20b0, 0x20b1, 0x20b2, 0x20b3, 0x20b4, 0x20b5, 0x20b6, 0x20b7, 0x20b8, 0x20b9, 0x20ba, 0x20bb, 0x20bc, 0x20bd, 0x20be, 0x20bf, 
-/* C_ */ 0x20c0, 0x20c1, 0x20c2, 0x20c3, 0x20c4, 0x20c5, 0x20c6, 0x20c7, 0x20c8, 0x20c9, 0x20ca, 0x20cb, 0x20cc, 0x20cd, 0x20ce, 0x20cf, 
-/* D_ */ 0x20d0, 0x20d1, 0x20d2, 0x20d3, 0x20d4, 0x20d5, 0x20d6, 0x20d7, 0x20d8, 0x20d9, 0x20da, 0x20db, 0x20dc, 0x20dd, 0x20de, 0x20df, 
-/* E_ */ 0x20e0, 0x20e1, 0x20e2, 0x20e3, 0x20e4, 0x20e5, 0x20e6, 0x20e7, 0x20e8, 0x20e9, 0x20ea, 0x20eb, 0x20ec, 0x20ed, 0x20ee, 0x20ef, 
-/* F_ */ 0x20f0, 0x20f1, 0x20f2, 0x20f3, 0x20f4, 0x20f5, 0x20f6, 0x20f7, 0x20f8, 0x20f9, 0x20fa, 0x20fb, 0x20fc, 0x20fd, 0x20fe, 0x20ff
- },
- {
-/* Block U22__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0x2200, 0x2201, 0x2202, 0x2203, 0x2204, 0x2205, 0x2206, 0x2207, 0x220b, 0x220c, 0x220d, 0x2208, 0x2209, 0x220a, 0x220e, 0x220f, 
-/* 1_ */ 0x2210, 0x2211, 0x2212, 0x2213, 0x2214, 0x29f5, 0x2216, 0x2217, 0x2218, 0x2219, 0x221a, 0x221b, 0x221c, 0x221d, 0x221e, 0x221f, 
-/* 2_ */ 0x2220, 0x2221, 0x2222, 0x2223, 0x2224, 0x2225, 0x2226, 0x2227, 0x2228, 0x2229, 0x222a, 0x222b, 0x222c, 0x222d, 0x222e, 0x222f, 
-/* 3_ */ 0x2230, 0x2231, 0x2232, 0x2233, 0x2234, 0x2235, 0x2236, 0x2237, 0x2238, 0x2239, 0x223a, 0x223b, 0x223d, 0x223c, 0x223e, 0x223f, 
-/* 4_ */ 0x2240, 0x2241, 0x2242, 0x22cd, 0x2244, 0x2245, 0x2246, 0x2247, 0x2248, 0x2249, 0x224a, 0x224b, 0x224c, 0x224d, 0x224e, 0x224f, 
-/* 5_ */ 0x2250, 0x2251, 0x2253, 0x2252, 0x2255, 0x2254, 0x2256, 0x2257, 0x2258, 0x2259, 0x225a, 0x225b, 0x225c, 0x225d, 0x225e, 0x225f, 
-/* 6_ */ 0x2260, 0x2261, 0x2262, 0x2263, 0x2265, 0x2264, 0x2267, 0x2266, 0x2269, 0x2268, 0x226b, 0x226a, 0x226c, 0x226d, 0x226f, 0x226e, 
-/* 7_ */ 0x2271, 0x2270, 0x2273, 0x2272, 0x2275, 0x2274, 0x2277, 0x2276, 0x2279, 0x2278, 0x227b, 0x227a, 0x227d, 0x227c, 0x227f, 0x227e, 
-/* 8_ */ 0x2281, 0x2280, 0x2283, 0x2282, 0x2285, 0x2284, 0x2287, 0x2286, 0x2289, 0x2288, 0x228b, 0x228a, 0x228c, 0x228d, 0x228e, 0x2290, 
-/* 9_ */ 0x228f, 0x2292, 0x2291, 0x2293, 0x2294, 0x2295, 0x2296, 0x2297, 0x29b8, 0x2299, 0x229a, 0x229b, 0x229c, 0x229d, 0x229e, 0x229f, 
-/* A_ */ 0x22a0, 0x22a1, 0x22a3, 0x22a2, 0x22a4, 0x22a5, 0x2ade, 0x22a7, 0x2ae4, 0x2ae3, 0x22aa, 0x2ae5, 0x22ac, 0x22ad, 0x22ae, 0x22af, 
-/* B_ */ 0x22b1, 0x22b0, 0x22b3, 0x22b2, 0x22b5, 0x22b4, 0x22b7, 0x22b6, 0x22b8, 0x22b9, 0x22ba, 0x22bb, 0x22bc, 0x22bd, 0x22be, 0x22bf, 
-/* C_ */ 0x22c0, 0x22c1, 0x22c2, 0x22c3, 0x22c4, 0x22c5, 0x22c6, 0x22c7, 0x22c8, 0x22ca, 0x22c9, 0x22cc, 0x22cb, 0x2243, 0x22ce, 0x22cf, 
-/* D_ */ 0x22d1, 0x22d0, 0x22d2, 0x22d3, 0x22d4, 0x22d5, 0x22d7, 0x22d6, 0x22d9, 0x22d8, 0x22db, 0x22da, 0x22dd, 0x22dc, 0x22df, 0x22de, 
-/* E_ */ 0x22e1, 0x22e0, 0x22e3, 0x22e2, 0x22e5, 0x22e4, 0x22e7, 0x22e6, 0x22e9, 0x22e8, 0x22eb, 0x22ea, 0x22ed, 0x22ec, 0x22ee, 0x22ef, 
-/* F_ */ 0x22f1, 0x22f0, 0x22fa, 0x22fb, 0x22fc, 0x22f5, 0x22fd, 0x22fe, 0x22f8, 0x22f9, 0x22f2, 0x22f3, 0x22f4, 0x22f6, 0x22f7, 0x22ff
- },
- {
-/* Block U23__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0x2300, 0x2301, 0x2302, 0x2303, 0x2304, 0x2305, 0x2306, 0x2307, 0x2309, 0x2308, 0x230b, 0x230a, 0x230c, 0x230d, 0x230e, 0x230f, 
-/* 1_ */ 0x2310, 0x2311, 0x2312, 0x2313, 0x2314, 0x2315, 0x2316, 0x2317, 0x2318, 0x2319, 0x231a, 0x231b, 0x231c, 0x231d, 0x231e, 0x231f, 
-/* 2_ */ 0x2320, 0x2321, 0x2322, 0x2323, 0x2324, 0x2325, 0x2326, 0x2327, 0x2328, 0x232a, 0x2329, 0x232b, 0x232c, 0x232d, 0x232e, 0x232f, 
-/* 3_ */ 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, 0x2339, 0x233a, 0x233b, 0x233c, 0x233d, 0x233e, 0x233f, 
-/* 4_ */ 0x2340, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f, 
-/* 5_ */ 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, 0x2359, 0x235a, 0x235b, 0x235c, 0x235d, 0x235e, 0x235f, 
-/* 6_ */ 0x2360, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, 
-/* 7_ */ 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378, 0x2379, 0x237a, 0x237b, 0x237c, 0x237d, 0x237e, 0x237f, 
-/* 8_ */ 0x2380, 0x2381, 0x2382, 0x2383, 0x2384, 0x2385, 0x2386, 0x2387, 0x2388, 0x2389, 0x238a, 0x238b, 0x238c, 0x238d, 0x238e, 0x238f, 
-/* 9_ */ 0x2390, 0x2391, 0x2392, 0x2393, 0x2394, 0x2395, 0x2396, 0x2397, 0x2398, 0x2399, 0x239a, 0x239b, 0x239c, 0x239d, 0x239e, 0x239f, 
-/* A_ */ 0x23a0, 0x23a1, 0x23a2, 0x23a3, 0x23a4, 0x23a5, 0x23a6, 0x23a7, 0x23a8, 0x23a9, 0x23aa, 0x23ab, 0x23ac, 0x23ad, 0x23ae, 0x23af, 
-/* B_ */ 0x23b0, 0x23b1, 0x23b2, 0x23b3, 0x23b4, 0x23b5, 0x23b6, 0x23b7, 0x23b8, 0x23b9, 0x23ba, 0x23bb, 0x23bc, 0x23bd, 0x23be, 0x23bf, 
-/* C_ */ 0x23c0, 0x23c1, 0x23c2, 0x23c3, 0x23c4, 0x23c5, 0x23c6, 0x23c7, 0x23c8, 0x23c9, 0x23ca, 0x23cb, 0x23cc, 0x23cd, 0x23ce, 0x23cf, 
-/* D_ */ 0x23d0, 0x23d1, 0x23d2, 0x23d3, 0x23d4, 0x23d5, 0x23d6, 0x23d7, 0x23d8, 0x23d9, 0x23da, 0x23db, 0x23dc, 0x23dd, 0x23de, 0x23df, 
-/* E_ */ 0x23e0, 0x23e1, 0x23e2, 0x23e3, 0x23e4, 0x23e5, 0x23e6, 0x23e7, 0x23e8, 0x23e9, 0x23ea, 0x23eb, 0x23ec, 0x23ed, 0x23ee, 0x23ef, 
-/* F_ */ 0x23f0, 0x23f1, 0x23f2, 0x23f3, 0x23f4, 0x23f5, 0x23f6, 0x23f7, 0x23f8, 0x23f9, 0x23fa, 0x23fb, 0x23fc, 0x23fd, 0x23fe, 0x23ff
- },
- {
-/* Block U27__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0x2700, 0x2701, 0x2702, 0x2703, 0x2704, 0x2705, 0x2706, 0x2707, 0x2708, 0x2709, 0x270a, 0x270b, 0x270c, 0x270d, 0x270e, 0x270f, 
-/* 1_ */ 0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, 0x2718, 0x2719, 0x271a, 0x271b, 0x271c, 0x271d, 0x271e, 0x271f, 
-/* 2_ */ 0x2720, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2727, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, 0x272e, 0x272f, 
-/* 3_ */ 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, 0x273e, 0x273f, 
-/* 4_ */ 0x2740, 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, 0x274c, 0x274d, 0x274e, 0x274f, 
-/* 5_ */ 0x2750, 0x2751, 0x2752, 0x2753, 0x2754, 0x2755, 0x2756, 0x2757, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, 0x275e, 0x275f, 
-/* 6_ */ 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x2769, 0x2768, 0x276b, 0x276a, 0x276d, 0x276c, 0x276f, 0x276e, 
-/* 7_ */ 0x2771, 0x2770, 0x2773, 0x2772, 0x2775, 0x2774, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e, 0x277f, 
-/* 8_ */ 0x2780, 0x2781, 0x2782, 0x2783, 0x2784, 0x2785, 0x2786, 0x2787, 0x2788, 0x2789, 0x278a, 0x278b, 0x278c, 0x278d, 0x278e, 0x278f, 
-/* 9_ */ 0x2790, 0x2791, 0x2792, 0x2793, 0x2794, 0x2795, 0x2796, 0x2797, 0x2798, 0x2799, 0x279a, 0x279b, 0x279c, 0x279d, 0x279e, 0x279f, 
-/* A_ */ 0x27a0, 0x27a1, 0x27a2, 0x27a3, 0x27a4, 0x27a5, 0x27a6, 0x27a7, 0x27a8, 0x27a9, 0x27aa, 0x27ab, 0x27ac, 0x27ad, 0x27ae, 0x27af, 
-/* B_ */ 0x27b0, 0x27b1, 0x27b2, 0x27b3, 0x27b4, 0x27b5, 0x27b6, 0x27b7, 0x27b8, 0x27b9, 0x27ba, 0x27bb, 0x27bc, 0x27bd, 0x27be, 0x27bf, 
-/* C_ */ 0x27c0, 0x27c1, 0x27c2, 0x27c4, 0x27c3, 0x27c6, 0x27c5, 0x27c7, 0x27c9, 0x27c8, 0x27ca, 0x27cb, 0x27cc, 0x27cd, 0x27ce, 0x27cf, 
-/* D_ */ 0x27d0, 0x27d1, 0x27d2, 0x27d3, 0x27d4, 0x27d6, 0x27d5, 0x27d7, 0x27d8, 0x27d9, 0x27da, 0x27db, 0x27dc, 0x27de, 0x27dd, 0x27df, 
-/* E_ */ 0x27e0, 0x27e1, 0x27e3, 0x27e2, 0x27e5, 0x27e4, 0x27e7, 0x27e6, 0x27e9, 0x27e8, 0x27eb, 0x27ea, 0x27ed, 0x27ec, 0x27ef, 0x27ee, 
-/* F_ */ 0x27f0, 0x27f1, 0x27f2, 0x27f3, 0x27f4, 0x27f5, 0x27f6, 0x27f7, 0x27f8, 0x27f9, 0x27fa, 0x27fb, 0x27fc, 0x27fd, 0x27fe, 0x27ff
- },
- {
-/* Block U29__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0x2900, 0x2901, 0x2902, 0x2903, 0x2904, 0x2905, 0x2906, 0x2907, 0x2908, 0x2909, 0x290a, 0x290b, 0x290c, 0x290d, 0x290e, 0x290f, 
-/* 1_ */ 0x2910, 0x2911, 0x2912, 0x2913, 0x2914, 0x2915, 0x2916, 0x2917, 0x2918, 0x2919, 0x291a, 0x291b, 0x291c, 0x291d, 0x291e, 0x291f, 
-/* 2_ */ 0x2920, 0x2921, 0x2922, 0x2923, 0x2924, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929, 0x292a, 0x292b, 0x292c, 0x292d, 0x292e, 0x292f, 
-/* 3_ */ 0x2930, 0x2931, 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c, 0x293d, 0x293e, 0x293f, 
-/* 4_ */ 0x2940, 0x2941, 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 0x294a, 0x294b, 0x294c, 0x294d, 0x294e, 0x294f, 
-/* 5_ */ 0x2950, 0x2951, 0x2952, 0x2953, 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959, 0x295a, 0x295b, 0x295c, 0x295d, 0x295e, 0x295f, 
-/* 6_ */ 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x296c, 0x296d, 0x296e, 0x296f, 
-/* 7_ */ 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, 0x2975, 0x2976, 0x2977, 0x2978, 0x2979, 0x297a, 0x297b, 0x297c, 0x297d, 0x297e, 0x297f, 
-/* 8_ */ 0x2980, 0x2981, 0x2982, 0x2984, 0x2983, 0x2986, 0x2985, 0x2988, 0x2987, 0x298a, 0x2989, 0x298c, 0x298b, 0x2990, 0x298f, 0x298e, 
-/* 9_ */ 0x298d, 0x2992, 0x2991, 0x2994, 0x2993, 0x2996, 0x2995, 0x2998, 0x2997, 0x2999, 0x299a, 0x299b, 0x299c, 0x299d, 0x299e, 0x299f, 
-/* A_ */ 0x29a0, 0x29a1, 0x29a2, 0x29a3, 0x29a4, 0x29a5, 0x29a6, 0x29a7, 0x29a8, 0x29a9, 0x29aa, 0x29ab, 0x29ac, 0x29ad, 0x29ae, 0x29af, 
-/* B_ */ 0x29b0, 0x29b1, 0x29b2, 0x29b3, 0x29b4, 0x29b5, 0x29b6, 0x29b7, 0x2298, 0x29b9, 0x29ba, 0x29bb, 0x29bc, 0x29bd, 0x29be, 0x29bf, 
-/* C_ */ 0x29c1, 0x29c0, 0x29c2, 0x29c3, 0x29c5, 0x29c4, 0x29c6, 0x29c7, 0x29c8, 0x29c9, 0x29ca, 0x29cb, 0x29cc, 0x29cd, 0x29ce, 0x29d0, 
-/* D_ */ 0x29cf, 0x29d2, 0x29d1, 0x29d3, 0x29d5, 0x29d4, 0x29d6, 0x29d7, 0x29d9, 0x29d8, 0x29db, 0x29da, 0x29dc, 0x29dd, 0x29de, 0x29df, 
-/* E_ */ 0x29e0, 0x29e1, 0x29e2, 0x29e3, 0x29e4, 0x29e5, 0x29e6, 0x29e7, 0x29e8, 0x29e9, 0x29ea, 0x29eb, 0x29ec, 0x29ed, 0x29ee, 0x29ef, 
-/* F_ */ 0x29f0, 0x29f1, 0x29f2, 0x29f3, 0x29f4, 0x2215, 0x29f6, 0x29f7, 0x29f9, 0x29f8, 0x29fa, 0x29fb, 0x29fd, 0x29fc, 0x29fe, 0x29ff
- },
- {
-/* Block U2A__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0x2a00, 0x2a01, 0x2a02, 0x2a03, 0x2a04, 0x2a05, 0x2a06, 0x2a07, 0x2a08, 0x2a09, 0x2a0a, 0x2a0b, 0x2a0c, 0x2a0d, 0x2a0e, 0x2a0f, 
-/* 1_ */ 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x2a14, 0x2a15, 0x2a16, 0x2a17, 0x2a18, 0x2a19, 0x2a1a, 0x2a1b, 0x2a1c, 0x2a1d, 0x2a1e, 0x2a1f, 
-/* 2_ */ 0x2a20, 0x2a21, 0x2a22, 0x2a23, 0x2a24, 0x2a25, 0x2a26, 0x2a27, 0x2a28, 0x2a29, 0x2a2a, 0x2a2c, 0x2a2b, 0x2a2e, 0x2a2d, 0x2a2f, 
-/* 3_ */ 0x2a30, 0x2a31, 0x2a32, 0x2a33, 0x2a35, 0x2a34, 0x2a36, 0x2a37, 0x2a38, 0x2a39, 0x2a3a, 0x2a3b, 0x2a3d, 0x2a3c, 0x2a3e, 0x2a3f, 
-/* 4_ */ 0x2a40, 0x2a41, 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48, 0x2a49, 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 
-/* 5_ */ 0x2a50, 0x2a51, 0x2a52, 0x2a53, 0x2a54, 0x2a55, 0x2a56, 0x2a57, 0x2a58, 0x2a59, 0x2a5a, 0x2a5b, 0x2a5c, 0x2a5d, 0x2a5e, 0x2a5f, 
-/* 6_ */ 0x2a60, 0x2a61, 0x2a62, 0x2a63, 0x2a65, 0x2a64, 0x2a66, 0x2a67, 0x2a68, 0x2a69, 0x2a6a, 0x2a6b, 0x2a6c, 0x2a6d, 0x2a6e, 0x2a6f, 
-/* 7_ */ 0x2a70, 0x2a71, 0x2a72, 0x2a73, 0x2a74, 0x2a75, 0x2a76, 0x2a77, 0x2a78, 0x2a7a, 0x2a79, 0x2a7b, 0x2a7c, 0x2a7e, 0x2a7d, 0x2a80, 
-/* 8_ */ 0x2a7f, 0x2a82, 0x2a81, 0x2a84, 0x2a83, 0x2a85, 0x2a86, 0x2a87, 0x2a88, 0x2a89, 0x2a8a, 0x2a8c, 0x2a8b, 0x2a8d, 0x2a8e, 0x2a8f, 
-/* 9_ */ 0x2a90, 0x2a92, 0x2a91, 0x2a94, 0x2a93, 0x2a96, 0x2a95, 0x2a98, 0x2a97, 0x2a9a, 0x2a99, 0x2a9c, 0x2a9b, 0x2a9d, 0x2a9e, 0x2a9f, 
-/* A_ */ 0x2aa0, 0x2aa2, 0x2aa1, 0x2aa3, 0x2aa4, 0x2aa5, 0x2aa7, 0x2aa6, 0x2aa9, 0x2aa8, 0x2aab, 0x2aaa, 0x2aad, 0x2aac, 0x2aae, 0x2ab0, 
-/* B_ */ 0x2aaf, 0x2ab1, 0x2ab2, 0x2ab4, 0x2ab3, 0x2ab5, 0x2ab6, 0x2ab7, 0x2ab8, 0x2ab9, 0x2aba, 0x2abc, 0x2abb, 0x2abe, 0x2abd, 0x2ac0, 
-/* C_ */ 0x2abf, 0x2ac2, 0x2ac1, 0x2ac4, 0x2ac3, 0x2ac6, 0x2ac5, 0x2ac7, 0x2ac8, 0x2ac9, 0x2aca, 0x2acb, 0x2acc, 0x2ace, 0x2acd, 0x2ad0, 
-/* D_ */ 0x2acf, 0x2ad2, 0x2ad1, 0x2ad4, 0x2ad3, 0x2ad6, 0x2ad5, 0x2ad7, 0x2ad8, 0x2ad9, 0x2ada, 0x2adb, 0x2adc, 0x2add, 0x22a6, 0x2adf, 
-/* E_ */ 0x2ae0, 0x2ae1, 0x2ae2, 0x22a9, 0x22a8, 0x22ab, 0x2ae6, 0x2ae7, 0x2ae8, 0x2ae9, 0x2aea, 0x2aeb, 0x2aed, 0x2aec, 0x2aee, 0x2aef, 
-/* F_ */ 0x2af0, 0x2af1, 0x2af2, 0x2af3, 0x2af4, 0x2af5, 0x2af6, 0x2af8, 0x2af7, 0x2afa, 0x2af9, 0x2afb, 0x2afc, 0x2afd, 0x2afe, 0x2aff
- },
- {
-/* Block U2E__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0x2e00, 0x2e01, 0x2e03, 0x2e02, 0x2e05, 0x2e04, 0x2e06, 0x2e07, 0x2e08, 0x2e0a, 0x2e09, 0x2e0b, 0x2e0d, 0x2e0c, 0x2e0e, 0x2e0f, 
-/* 1_ */ 0x2e10, 0x2e11, 0x2e12, 0x2e13, 0x2e14, 0x2e15, 0x2e16, 0x2e17, 0x2e18, 0x2e19, 0x2e1a, 0x2e1b, 0x2e1d, 0x2e1c, 0x2e1e, 0x2e1f, 
-/* 2_ */ 0x2e21, 0x2e20, 0x2e23, 0x2e22, 0x2e25, 0x2e24, 0x2e27, 0x2e26, 0x2e29, 0x2e28, 0x2e2a, 0x2e2b, 0x2e2c, 0x2e2d, 0x2e2e, 0x2e2f, 
-/* 3_ */ 0x2e30, 0x2e31, 0x2e32, 0x2e33, 0x2e34, 0x2e35, 0x2e36, 0x2e37, 0x2e38, 0x2e39, 0x2e3a, 0x2e3b, 0x2e3c, 0x2e3d, 0x2e3e, 0x2e3f, 
-/* 4_ */ 0x2e40, 0x2e41, 0x2e42, 0x2e43, 0x2e44, 0x2e45, 0x2e46, 0x2e47, 0x2e48, 0x2e49, 0x2e4a, 0x2e4b, 0x2e4c, 0x2e4d, 0x2e4e, 0x2e4f, 
-/* 5_ */ 0x2e50, 0x2e51, 0x2e52, 0x2e53, 0x2e54, 0x2e55, 0x2e56, 0x2e57, 0x2e58, 0x2e59, 0x2e5a, 0x2e5b, 0x2e5c, 0x2e5d, 0x2e5e, 0x2e5f, 
-/* 6_ */ 0x2e60, 0x2e61, 0x2e62, 0x2e63, 0x2e64, 0x2e65, 0x2e66, 0x2e67, 0x2e68, 0x2e69, 0x2e6a, 0x2e6b, 0x2e6c, 0x2e6d, 0x2e6e, 0x2e6f, 
-/* 7_ */ 0x2e70, 0x2e71, 0x2e72, 0x2e73, 0x2e74, 0x2e75, 0x2e76, 0x2e77, 0x2e78, 0x2e79, 0x2e7a, 0x2e7b, 0x2e7c, 0x2e7d, 0x2e7e, 0x2e7f, 
-/* 8_ */ 0x2e80, 0x2e81, 0x2e82, 0x2e83, 0x2e84, 0x2e85, 0x2e86, 0x2e87, 0x2e88, 0x2e89, 0x2e8a, 0x2e8b, 0x2e8c, 0x2e8d, 0x2e8e, 0x2e8f, 
-/* 9_ */ 0x2e90, 0x2e91, 0x2e92, 0x2e93, 0x2e94, 0x2e95, 0x2e96, 0x2e97, 0x2e98, 0x2e99, 0x2e9a, 0x2e9b, 0x2e9c, 0x2e9d, 0x2e9e, 0x2e9f, 
-/* A_ */ 0x2ea0, 0x2ea1, 0x2ea2, 0x2ea3, 0x2ea4, 0x2ea5, 0x2ea6, 0x2ea7, 0x2ea8, 0x2ea9, 0x2eaa, 0x2eab, 0x2eac, 0x2ead, 0x2eae, 0x2eaf, 
-/* B_ */ 0x2eb0, 0x2eb1, 0x2eb2, 0x2eb3, 0x2eb4, 0x2eb5, 0x2eb6, 0x2eb7, 0x2eb8, 0x2eb9, 0x2eba, 0x2ebb, 0x2ebc, 0x2ebd, 0x2ebe, 0x2ebf, 
-/* C_ */ 0x2ec0, 0x2ec1, 0x2ec2, 0x2ec3, 0x2ec4, 0x2ec5, 0x2ec6, 0x2ec7, 0x2ec8, 0x2ec9, 0x2eca, 0x2ecb, 0x2ecc, 0x2ecd, 0x2ece, 0x2ecf, 
-/* D_ */ 0x2ed0, 0x2ed1, 0x2ed2, 0x2ed3, 0x2ed4, 0x2ed5, 0x2ed6, 0x2ed7, 0x2ed8, 0x2ed9, 0x2eda, 0x2edb, 0x2edc, 0x2edd, 0x2ede, 0x2edf, 
-/* E_ */ 0x2ee0, 0x2ee1, 0x2ee2, 0x2ee3, 0x2ee4, 0x2ee5, 0x2ee6, 0x2ee7, 0x2ee8, 0x2ee9, 0x2eea, 0x2eeb, 0x2eec, 0x2eed, 0x2eee, 0x2eef, 
-/* F_ */ 0x2ef0, 0x2ef1, 0x2ef2, 0x2ef3, 0x2ef4, 0x2ef5, 0x2ef6, 0x2ef7, 0x2ef8, 0x2ef9, 0x2efa, 0x2efb, 0x2efc, 0x2efd, 0x2efe, 0x2eff
- },
- {
-/* Block U30__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0x3000, 0x3001, 0x3002, 0x3003, 0x3004, 0x3005, 0x3006, 0x3007, 0x3009, 0x3008, 0x300b, 0x300a, 0x300d, 0x300c, 0x300f, 0x300e, 
-/* 1_ */ 0x3011, 0x3010, 0x3012, 0x3013, 0x3015, 0x3014, 0x3017, 0x3016, 0x3019, 0x3018, 0x301b, 0x301a, 0x301c, 0x301d, 0x301e, 0x301f, 
-/* 2_ */ 0x3020, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, 0x302d, 0x302e, 0x302f, 
-/* 3_ */ 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x303a, 0x303b, 0x303c, 0x303d, 0x303e, 0x303f, 
-/* 4_ */ 0x3040, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 
-/* 5_ */ 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 
-/* 6_ */ 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 
-/* 7_ */ 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 
-/* 8_ */ 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 
-/* 9_ */ 0x3090, 0x3091, 0x3092, 0x3093, 0x3094, 0x3095, 0x3096, 0x3097, 0x3098, 0x3099, 0x309a, 0x309b, 0x309c, 0x309d, 0x309e, 0x309f, 
-/* A_ */ 0x30a0, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 
-/* B_ */ 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 
-/* C_ */ 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 
-/* D_ */ 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 
-/* E_ */ 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 
-/* F_ */ 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x30f7, 0x30f8, 0x30f9, 0x30fa, 0x30fb, 0x30fc, 0x30fd, 0x30fe, 0x30ff
- },
- {
-/* Block UFE__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0xfe00, 0xfe01, 0xfe02, 0xfe03, 0xfe04, 0xfe05, 0xfe06, 0xfe07, 0xfe08, 0xfe09, 0xfe0a, 0xfe0b, 0xfe0c, 0xfe0d, 0xfe0e, 0xfe0f, 
-/* 1_ */ 0xfe10, 0xfe11, 0xfe12, 0xfe13, 0xfe14, 0xfe15, 0xfe16, 0xfe17, 0xfe18, 0xfe19, 0xfe1a, 0xfe1b, 0xfe1c, 0xfe1d, 0xfe1e, 0xfe1f, 
-/* 2_ */ 0xfe20, 0xfe21, 0xfe22, 0xfe23, 0xfe24, 0xfe25, 0xfe26, 0xfe27, 0xfe28, 0xfe29, 0xfe2a, 0xfe2b, 0xfe2c, 0xfe2d, 0xfe2e, 0xfe2f, 
-/* 3_ */ 0xfe30, 0xfe31, 0xfe32, 0xfe33, 0xfe34, 0xfe35, 0xfe36, 0xfe37, 0xfe38, 0xfe39, 0xfe3a, 0xfe3b, 0xfe3c, 0xfe3d, 0xfe3e, 0xfe3f, 
-/* 4_ */ 0xfe40, 0xfe41, 0xfe42, 0xfe43, 0xfe44, 0xfe45, 0xfe46, 0xfe47, 0xfe48, 0xfe49, 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 
-/* 5_ */ 0xfe50, 0xfe51, 0xfe52, 0xfe53, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe58, 0xfe5a, 0xfe59, 0xfe5c, 0xfe5b, 0xfe5e, 0xfe5d, 0xfe5f, 
-/* 6_ */ 0xfe60, 0xfe61, 0xfe62, 0xfe63, 0xfe65, 0xfe64, 0xfe66, 0xfe67, 0xfe68, 0xfe69, 0xfe6a, 0xfe6b, 0xfe6c, 0xfe6d, 0xfe6e, 0xfe6f, 
-/* 7_ */ 0xfe70, 0xfe71, 0xfe72, 0xfe73, 0xfe74, 0xfe75, 0xfe76, 0xfe77, 0xfe78, 0xfe79, 0xfe7a, 0xfe7b, 0xfe7c, 0xfe7d, 0xfe7e, 0xfe7f, 
-/* 8_ */ 0xfe80, 0xfe81, 0xfe82, 0xfe83, 0xfe84, 0xfe85, 0xfe86, 0xfe87, 0xfe88, 0xfe89, 0xfe8a, 0xfe8b, 0xfe8c, 0xfe8d, 0xfe8e, 0xfe8f, 
-/* 9_ */ 0xfe90, 0xfe91, 0xfe92, 0xfe93, 0xfe94, 0xfe95, 0xfe96, 0xfe97, 0xfe98, 0xfe99, 0xfe9a, 0xfe9b, 0xfe9c, 0xfe9d, 0xfe9e, 0xfe9f, 
-/* A_ */ 0xfea0, 0xfea1, 0xfea2, 0xfea3, 0xfea4, 0xfea5, 0xfea6, 0xfea7, 0xfea8, 0xfea9, 0xfeaa, 0xfeab, 0xfeac, 0xfead, 0xfeae, 0xfeaf, 
-/* B_ */ 0xfeb0, 0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4, 0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8, 0xfeb9, 0xfeba, 0xfebb, 0xfebc, 0xfebd, 0xfebe, 0xfebf, 
-/* C_ */ 0xfec0, 0xfec1, 0xfec2, 0xfec3, 0xfec4, 0xfec5, 0xfec6, 0xfec7, 0xfec8, 0xfec9, 0xfeca, 0xfecb, 0xfecc, 0xfecd, 0xfece, 0xfecf, 
-/* D_ */ 0xfed0, 0xfed1, 0xfed2, 0xfed3, 0xfed4, 0xfed5, 0xfed6, 0xfed7, 0xfed8, 0xfed9, 0xfeda, 0xfedb, 0xfedc, 0xfedd, 0xfede, 0xfedf, 
-/* E_ */ 0xfee0, 0xfee1, 0xfee2, 0xfee3, 0xfee4, 0xfee5, 0xfee6, 0xfee7, 0xfee8, 0xfee9, 0xfeea, 0xfeeb, 0xfeec, 0xfeed, 0xfeee, 0xfeef, 
-/* F_ */ 0xfef0, 0xfef1, 0xfef2, 0xfef3, 0xfef4, 0xfef5, 0xfef6, 0xfef7, 0xfef8, 0xfef9, 0xfefa, 0xfefb, 0xfefc, 0xfefd, 0xfefe, 0xfeff
- },
- {
-/* Block UFF__ */
-/*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
-/* 0_ */ 0xff00, 0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff09, 0xff08, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 
-/* 1_ */ 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1e, 0xff1d, 0xff1c, 0xff1f, 
-/* 2_ */ 0xff20, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 
-/* 3_ */ 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff3d, 0xff3c, 0xff3b, 0xff3e, 0xff3f, 
-/* 4_ */ 0xff40, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 
-/* 5_ */ 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xff5d, 0xff5c, 0xff5b, 0xff5e, 0xff60, 
-/* 6_ */ 0xff5f, 0xff61, 0xff63, 0xff62, 0xff64, 0xff65, 0xff66, 0xff67, 0xff68, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 
-/* 7_ */ 0xff70, 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, 0xff78, 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 
-/* 8_ */ 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f, 
-/* 9_ */ 0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, 
-/* A_ */ 0xffa0, 0xffa1, 0xffa2, 0xffa3, 0xffa4, 0xffa5, 0xffa6, 0xffa7, 0xffa8, 0xffa9, 0xffaa, 0xffab, 0xffac, 0xffad, 0xffae, 0xffaf, 
-/* B_ */ 0xffb0, 0xffb1, 0xffb2, 0xffb3, 0xffb4, 0xffb5, 0xffb6, 0xffb7, 0xffb8, 0xffb9, 0xffba, 0xffbb, 0xffbc, 0xffbd, 0xffbe, 0xffbf, 
-/* C_ */ 0xffc0, 0xffc1, 0xffc2, 0xffc3, 0xffc4, 0xffc5, 0xffc6, 0xffc7, 0xffc8, 0xffc9, 0xffca, 0xffcb, 0xffcc, 0xffcd, 0xffce, 0xffcf, 
-/* D_ */ 0xffd0, 0xffd1, 0xffd2, 0xffd3, 0xffd4, 0xffd5, 0xffd6, 0xffd7, 0xffd8, 0xffd9, 0xffda, 0xffdb, 0xffdc, 0xffdd, 0xffde, 0xffdf, 
-/* E_ */ 0xffe0, 0xffe1, 0xffe2, 0xffe3, 0xffe4, 0xffe5, 0xffe6, 0xffe7, 0xffe8, 0xffe9, 0xffea, 0xffeb, 0xffec, 0xffed, 0xffee, 0xffef, 
-/* F_ */ 0xfff0, 0xfff1, 0xfff2, 0xfff3, 0xfff4, 0xfff5, 0xfff6, 0xfff7, 0xfff8, 0xfff9, 0xfffa, 0xfffb, 0xfffc, 0xfffd, 0xfffe, 0xffff
- }
-};
-
-static PRUint32 Mirrored(PRUint32 u)
-{
-  if (u < 0x10000) {
-    PRUint8 index = symmtable_index[(u & 0xFFFFFF00) >> 8];
-    if (index) {
-      return symmtable[index - 1] [u & 0xFF];
-    }
-  }
-  return u;
-}
--- a/parser/htmlparser/public/nsIElementObserver.h
+++ b/parser/htmlparser/public/nsIElementObserver.h
@@ -56,32 +56,18 @@
 { 0x4672aa04, 0xf6ae, 0x11d2, { 0xb3, 0xb7, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } }
 
 
 class nsIElementObserver : public nsISupports {
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IELEMENTOBSERVER_IID)
 
   enum { IS_DOCUMENT_WRITE = 1U };
-  /*
-   *   Subject call observer when the parser hit the tag
-   *   @param aDocumentID- ID of the document
-   *   @param aTag- the tag
-   *   @param numOfAttributes - number of attributes
-   *   @param nameArray - array of name. 
-   *   @param valueArray - array of value
-   */
-  NS_IMETHOD Notify(PRUint32 aDocumentID, eHTMLTags aTag, 
-                    PRUint32 numOfAttributes, const PRUnichar* nameArray[], 
-                    const PRUnichar* valueArray[]) = 0;
 
-  NS_IMETHOD Notify(PRUint32 aDocumentID, const PRUnichar* aTag, 
-                    PRUint32 numOfAttributes, const PRUnichar* nameArray[], 
-                    const PRUnichar* valueArray[]) = 0;
-  
+  /* Subject call observer when the parser hit the tag */
   NS_IMETHOD Notify(nsISupports* aDocShell, 
                     nsISupports* aChannel,
                     const PRUnichar* aTag, 
                     const nsTArray<nsString>* aKeys, 
                     const nsTArray<nsString>* aValues,
                     const PRUint32 aFlags) = 0;
 
 };
--- a/parser/htmlparser/public/nsIParserFilter.h
+++ b/parser/htmlparser/public/nsIParserFilter.h
@@ -59,20 +59,16 @@ class CToken;
 
 class nsIParserFilter : public nsISupports {
   public:
 
    NS_DECLARE_STATIC_IID_ACCESSOR(NS_IPARSERFILTER_IID)
       
    NS_IMETHOD RawBuffer(const char * buffer, PRUint32 * buffer_length) = 0;
 
-   NS_IMETHOD WillAddToken(CToken & token) = 0;
-
-   NS_IMETHOD ProcessTokens( /* don't know what goes here yet */ void ) = 0;
-
    NS_IMETHOD Finish() = 0;
 
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(nsIParserFilter, NS_IPARSERFILTER_IID)
 
 
 #endif
--- a/tools/trace-malloc/rules.txt
+++ b/tools/trace-malloc/rules.txt
@@ -202,19 +202,16 @@ FrameArena::AllocateFrame
 
 <global-history>
 nsGlobalHistory::OpenDB
 
 <font>
 nsFontCache::
 
 <font>
-nsFontMetricsGTK::
-
-<font>
 nsFont::nsFont
 
 <gtk>
 gtk_init
 
 <rdf>
 RDFServiceImpl::GetResource
 
--- a/tools/trace-malloc/types.dat
+++ b/tools/trace-malloc/types.dat
@@ -553,225 +553,16 @@ RDFXMLDataSourceImpl::AddNameSpace(nsIAt
 
 <xptiTypelibGuts>
 __builtin_new
 __builtin_vec_new
 xptiTypelibGuts::xptiTypelibGuts(XPTHeader *)
 
 # ----------------------------------------------------------------------
 #
-# nsFontMetricsGTK
-#
-
-<nsFontMetricsGTK>
-__builtin_new
-nsDrawingSurfaceGTK::Init(_GdkGC *, unsigned int, unsigned int, unsigned int)
-nsFontMetricsGTK::Init(nsFont const &, nsIAtom *, nsIDeviceContext *)
-
-<nsFontMetricsGTK>
-__builtin_new
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Malloc
-nsCompressedCharMap::NewCCMap(void)
-MapToCCMap(unsigned int *)
-MapperToCCMap(nsICharRepresentable *)
-nsFontMetricsGTK::GetFontHandle(void *&)
-
-<nsFontMetricsGTK>
-PR_Malloc
-nsVoidArray::SizeTo(int)
-nsVoidArray::GrowArrayBy(int)
-nsVoidArray::InsertElementAt(void *, int)
-nsTArray<nsCString>::InsertElementAt(int, nsCString const &)
-nsFontMetricsGTK::QueryInterface(nsID const &, void **)
-
-<nsFontMetricsGTK>
-__builtin_new
-nsCStringKey::Clone(void) const
-nsHashtable::Put(nsHashKey *, void *)
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-__builtin_new
-__builtin_vec_new
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Calloc
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-__builtin_vec_new
-nsDrawingSurfaceGTK type_info function
-nsFontMetricsGTK::Init(nsFont const &, nsIAtom *, nsIDeviceContext *)
-
-<nsFontMetricsGTK>
-__builtin_new
-nsFontWeight::operator new(unsigned int)
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-__builtin_new
-nsFontNode::operator new(unsigned int)
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-__builtin_new
-nsFontStretch::operator new(unsigned int)
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-__builtin_new
-nsFontStyle::operator new(unsigned int)
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Malloc
-PL_HashTableFinalize(PLHashTable *)
-PL_HashTableRawAdd
-nsHashtable::Put(nsHashKey *, void *)
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Realloc
-PR_vsxprintf
-PR_WaitForPollableEvent
-PR_vsmprintf
-PR_smprintf
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Malloc
-PR_vsxprintf
-PR_WaitForPollableEvent
-PR_WaitForPollableEvent
-PR_WaitForPollableEvent
-PR_vsmprintf
-PR_smprintf
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Realloc
-PR_vsxprintf
-PR_WaitForPollableEvent
-PR_WaitForPollableEvent
-PR_WaitForPollableEvent
-PR_vsmprintf
-PR_smprintf
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Realloc
-nsFontMetricsGTK::PickASizeAndLoad(nsFontStretch *, nsFontCharSetInfo *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Malloc
-PL_HashTableFinalize(PLHashTable *)
-PL_HashTableInit(PLHashTable *, unsigned int, unsigned int (*)(void const *), int (*)(void const *, void const *), int (*)(void const *, void const *), PLHashAllocOps const *, void *)
-nsHashtable::nsHashtable(unsigned int, int)
-nsDrawingSurfaceGTK type_info function
-nsFontMetricsGTK::Init(nsFont const &, nsIAtom *, nsIDeviceContext *)
-
-<nsFontMetricsGTK>
-PR_Malloc
-PL_HashTableFinalize(PLHashTable *)
-PL_HashTableRawAdd
-nsHashtable::Put(nsHashKey *, void *)
-nsDrawingSurfaceGTK type_info function
-nsFontMetricsGTK::Init(nsFont const &, nsIAtom *, nsIDeviceContext *)
-
-<nsFontMetricsGTK>
-__builtin_new
-nsFontMetricsGTK::SearchNode
-
-<nsFontMetricsGTK>
-PR_Malloc
-PR_vsxprintf
-PR_WaitForPollableEvent
-PR_WaitForPollableEvent
-PR_vsmprintf
-PR_smprintf
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Malloc
-PL_HashTableFinalize(PLHashTable *)
-PL_HashTableRawAdd
-nsHashtable::Put(nsHashKey *, void *)
-nsFontMetricsGTK::TryNodes(nsACString &, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Malloc
-PL_HashTableFinalize(PLHashTable *)
-PL_HashTableRawAdd
-nsHashtable::Put(nsHashKey *, void *)
-nsFontMetricsGTK::TryNode(nsCString *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Realloc
-nsVoidArray::SizeTo(int)
-nsAutoVoidArray::SizeTo(int)
-nsVoidArray::GrowArrayBy(int)
-nsVoidArray::InsertElementAt(void *, int)
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Realloc
-nsFontMetricsGTK::AddToLoadedFontsList(nsFontGTK *)
-
-<nsFontMetricsGTK>
-PR_Realloc
-PR_vsxprintf
-PR_WaitForPollableEvent
-PR_WaitForPollableEvent
-PR_vsmprintf
-PR_smprintf
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Malloc
-nsMemoryImpl::Alloc(unsigned int)
-nsMemory::Alloc(unsigned int)
-nsCStringKey::Clone(void) const
-nsHashtable::Put(nsHashKey *, void *)
-nsFontMetricsGTK::SearchNode(nsFontNode *, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Malloc
-nsMemoryImpl::Alloc(unsigned int)
-nsMemory::Alloc(unsigned int)
-nsCStringKey::Clone(void) const
-nsHashtable::Put(nsHashKey *, void *)
-nsDrawingSurfaceGTK::Init(_GdkGC *, unsigned int, unsigned int, unsigned int)
-nsFontMetricsGTK::Init(nsFont const &, nsIAtom *, nsIDeviceContext *)
-
-<nsFontMetricsGTK>
-PR_Malloc
-nsMemoryImpl::Alloc(unsigned int)
-nsMemory::Alloc(unsigned int)
-nsCStringKey::Clone(void) const
-nsHashtable::Put(nsHashKey *, void *)
-nsFontMetricsGTK::TryNodes(nsACString &, unsigned short)
-
-<nsFontMetricsGTK>
-PR_Malloc
-nsMemoryImpl::Alloc(unsigned int)
-nsMemory::Alloc(unsigned int)
-nsCStringKey::Clone(void) const
-nsHashtable::Put(nsHashKey *, void *)
-nsFontMetricsGTK::TryNode(nsCString *, unsigned short)
-
-<nsFontMetricsGTK>
-__builtin_new
-nsFontMetricsGTK::TryNodes(nsACString &, unsigned short)
-
-# ----------------------------------------------------------------------
-#
 # nsPluginTag
 #
 
 <nsPluginTag>
 __builtin_new
 __builtin_vec_new
 nsPluginTag::nsPluginTag(nsPluginInfo *)
 
@@ -2026,17 +1817,16 @@ nsDrawingSurfaceGTK::Init(_GdkGC *, unsi
 <nsDrawingSurfaceGTK>
 __builtin_new
 nsCStringKey::Clone(void) const
 nsHashtable::Put(nsHashKey *, void *)
 nsDrawingSurfaceGTK type_info function
 
 <nsDrawingSurfaceGTK>
 PR_Malloc
-nsCompressedCharMap::NewCCMap(void)
 nsDrawingSurfaceGTK::Init(_GdkGC *, unsigned int, unsigned int, unsigned int)
 
 # ----------------------------------------------------------------------
 #
 # nsNativeComponentLoader
 #
 
 <nsNativeComponentLoader>