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 idunknown
push userunknown
push dateunknown
reviewerssmontagu
bugs559489
milestone2.0b2pre
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>