summaryrefslogtreecommitdiff
path: root/moz
diff options
context:
space:
mode:
authorPeter Foley <pefoley2@verizon.net>2013-02-22 21:33:23 -0500
committerDavid Ostrovsky <David.Ostrovsky@gmx.de>2013-02-24 10:34:40 +0000
commit61e7c592faa2d768d599936e57042eb22bcaa16f (patch)
tree2be399d2aa1179fc4d982f3074481ec8fd49a84c /moz
parenta5a24fa0241930ae5f9d8a4c757e479d2de3efb6 (diff)
convert moz to gbuild and add to tail_build
Change-Id: I2d3f5d127f831ee9abc020d46558f7cfbe8c9380 Reviewed-on: https://gerrit.libreoffice.org/2349 Reviewed-by: David Ostrovsky <David.Ostrovsky@gmx.de> Tested-by: David Ostrovsky <David.Ostrovsky@gmx.de>
Diffstat (limited to 'moz')
-rw-r--r--moz/CustomTarget_runtime.mk27
-rw-r--r--moz/ExternalPackage_moz_inc.mk18
-rwxr-xr-xmoz/ExternalPackage_moz_lib.mk21
-rw-r--r--moz/Makefile7
-rw-r--r--moz/Module_moz.mk25
-rw-r--r--moz/Package_runtime.mk14
-rw-r--r--moz/UnpackedTarball_moz_inc.mk15
-rwxr-xr-xmoz/UnpackedTarball_moz_lib.mk15
-rw-r--r--moz/extractfiles.mk187
-rw-r--r--moz/makefile.mk221
-rw-r--r--moz/patches/aix_build_fix.patch203
-rw-r--r--moz/patches/arm_build_fix.patch189
-rw-r--r--moz/patches/brokenmakefile.patch13
-rw-r--r--moz/patches/clang_add_nsCaseInsensitiveStringComparator_default_constructor.patch10
-rw-r--r--moz/patches/clang_missing_this_pointers.patch71
-rw-r--r--moz/patches/consecutive_ldap_queries.patch13
-rw-r--r--moz/patches/cygwin_paths_in_ldap_sdk.patch12
-rw-r--r--moz/patches/dtoa.patch237
-rw-r--r--moz/patches/embed_manifest.patch142
-rw-r--r--moz/patches/index.txt80
-rw-r--r--moz/patches/libpr0n_build_fix.patch14
-rw-r--r--moz/patches/link_fontconfig.patch11
-rw-r--r--moz/patches/macosx_build_fix.patch23
-rw-r--r--moz/patches/no_core_abspath_in_nss.patch52
-rw-r--r--moz/patches/nss-linux3.patch13
-rw-r--r--moz/patches/respect_disable_pango.patch54
-rw-r--r--moz/patches/seamonkey-1.1.14.source-macosx10.6and7.patch33
-rw-r--r--moz/patches/ssl-linux-no_as_needed_linker_option.patch10
-rw-r--r--moz/patches/wchart_on_msvc8.patch20
-rw-r--r--moz/prj/build.lst2
-rw-r--r--moz/prj/d.lst242
-rw-r--r--moz/prj/dmake0
-rw-r--r--moz/seamonkey-source-1.1.14.patch6502
-rw-r--r--moz/zipped/makefile.mk106
34 files changed, 142 insertions, 8460 deletions
diff --git a/moz/CustomTarget_runtime.mk b/moz/CustomTarget_runtime.mk
new file mode 100644
index 000000000000..1296f2ae6ea2
--- /dev/null
+++ b/moz/CustomTarget_runtime.mk
@@ -0,0 +1,27 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+MOZ_DEL_LIST := freebl3.dll \
+ nspr4.dll \
+ nss3.dll \
+ plc4.dll \
+ plds4.dll \
+ smime3.dll \
+ softokn3.dll \
+ ssl3.dll
+
+$(eval $(call gb_CustomTarget_CustomTarget,moz/runtime))
+
+$(eval $(call gb_CustomTarget_register_target,moz/runtime,mozruntime.zip))
+
+$(call gb_CustomTarget_get_workdir,moz/runtime)/mozruntime.zip: $(TARFILE_LOCATION)/$(MOZ_ZIP_RUNTIME)
+ cp $< $@
+ zip -qd $@ $(MOZ_DEL_LIST)
+
+# vim: set noet sw=4 ts=4:
diff --git a/moz/ExternalPackage_moz_inc.mk b/moz/ExternalPackage_moz_inc.mk
new file mode 100644
index 000000000000..dd38f322d68a
--- /dev/null
+++ b/moz/ExternalPackage_moz_inc.mk
@@ -0,0 +1,18 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalPackage_ExternalPackage,moz_inc,moz_inc))
+
+MOZ_INC = $(subst $(call gb_UnpackedTarball_get_dir,moz_inc),,$(shell find $(call gb_UnpackedTarball_get_dir,moz_inc) -type f 2>/dev/null))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,moz_inc,inc/mozilla,\
+ $(MOZ_INC) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/moz/ExternalPackage_moz_lib.mk b/moz/ExternalPackage_moz_lib.mk
new file mode 100755
index 000000000000..85765d330b39
--- /dev/null
+++ b/moz/ExternalPackage_moz_lib.mk
@@ -0,0 +1,21 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalPackage_ExternalPackage,moz_lib,moz_lib))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,moz_lib,lib,\
+ embed_base_s.lib \
+ mozreg_s.lib \
+ nslber32v50.lib \
+ nsldap32v50.lib \
+ xpcom.lib \
+ xpcom_core.lib \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/moz/Makefile b/moz/Makefile
new file mode 100644
index 000000000000..ccb1c85a04da
--- /dev/null
+++ b/moz/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/moz/Module_moz.mk b/moz/Module_moz.mk
new file mode 100644
index 000000000000..4048324d6cf8
--- /dev/null
+++ b/moz/Module_moz.mk
@@ -0,0 +1,25 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Module_Module,moz))
+
+ifeq ($(WITH_MOZAB4WIN),YES)
+
+$(eval $(call gb_Module_add_targets,moz,\
+ ExternalPackage_moz_inc \
+ ExternalPackage_moz_lib \
+ CustomTarget_runtime \
+ Package_runtime \
+ UnpackedTarball_moz_inc \
+ UnpackedTarball_moz_lib \
+))
+
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/moz/Package_runtime.mk b/moz/Package_runtime.mk
new file mode 100644
index 000000000000..59fb894cb0fe
--- /dev/null
+++ b/moz/Package_runtime.mk
@@ -0,0 +1,14 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Package_Package,moz/runtime,$(call gb_CustomTarget_get_workdir,moz/runtime)))
+
+$(eval $(call gb_Package_add_file,moz/runtime,bin/mozruntime.zip,mozruntime.zip))
+
+# vim: set noet sw=4 ts=4:
diff --git a/moz/UnpackedTarball_moz_inc.mk b/moz/UnpackedTarball_moz_inc.mk
new file mode 100644
index 000000000000..94a1615e2b9b
--- /dev/null
+++ b/moz/UnpackedTarball_moz_inc.mk
@@ -0,0 +1,15 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,moz_inc))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,moz_inc,$(MOZ_ZIP_INC),0))
+
+
+# vim: set noet sw=4 ts=4:
diff --git a/moz/UnpackedTarball_moz_lib.mk b/moz/UnpackedTarball_moz_lib.mk
new file mode 100755
index 000000000000..8a324ad9fc25
--- /dev/null
+++ b/moz/UnpackedTarball_moz_lib.mk
@@ -0,0 +1,15 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,moz_lib))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,moz_lib,$(MOZ_ZIP_LIB),0))
+
+
+# vim: set noet sw=4 ts=4:
diff --git a/moz/extractfiles.mk b/moz/extractfiles.mk
deleted file mode 100644
index 7c872a913ec2..000000000000
--- a/moz/extractfiles.mk
+++ /dev/null
@@ -1,187 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-MOZTARGET=$(OS)$(COM)$(CPU)
-MOZ_DIST_DIR=$(MISC)$/build$/mozilla$/$(BUILD_DIR)$/dist
-MOZ_BIN_DIR=$(MOZ_DIST_DIR)$/bin
-RUNTIME_DIR=$(MISC)$/$(MOZTARGET)runtime
-LIB_DIR=$(LB)
-INCLUDE_DIR=$(INCCOM)
-
-BIN_RUNTIMELIST= \
- xpcom \
- xpcom_core \
- xpcom_compat \
- js3250 \
- mozz \
- msgbsutl \
- nsldap32v50 \
- nsldappr32v50
-
-COMPONENT_RUNTIMELIST= \
- addrbook \
- mork \
- mozldap \
- necko \
- profile \
- xpcom_compat_c \
- rdf \
- uconv \
- vcard \
- i18n \
- pipnss \
- xppref32 \
- xpc3250
-
-COMREGISTRY_FILELIST= \
- necko_dns.xpt \
- xpcom_base.xpt \
- xpcom_obsolete.xpt \
- xpcom_components.xpt \
- xpcom_ds.xpt \
- xpcom_io.xpt \
- xpcom_xpti.xpt \
- addrbook.xpt \
- mozldap.xpt \
- pref.xpt \
- xpcom_thread.xpt
-
-DEFAULTS_RUNTIMELIST= \
- defaults$/pref$/browser-prefs.js \
- defaults$/pref$/mailnews.js \
- defaults$/pref$/mdn.js \
- defaults$/pref$/smime.js \
- defaults$/autoconfig$/platform.js \
- defaults$/autoconfig$/prefcalls.js \
- greprefs$/all.js \
- greprefs$/security-prefs.js
-
-
-LIBLIST= \
- embed_base_s.lib \
- mozreg_s.lib \
- nslber32v50.lib \
- nsldap32v50.lib \
- xpcom_core.lib \
- xpcom.lib
-
-INCLUDE_PATH=$(MOZ_DIST_DIR)$/include$/
-PUBLIC_PATH=$(MOZ_DIST_DIR)$/public$/
-
-
-REG_SUBFIX= .exe
-
-# --- Targets ------------------------------------------------------
-
-extract_mozab_files: $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE) \
- make_temp_dir \
- $(MISC)$/build$/so_moz_runtime_files \
- $(MISC)$/build$/so_moz_include_files \
- $(MISC)$/build$/so_moz_lib_files
-
-make_temp_dir:
- @@-$(MKDIRHIER) $(RUNTIME_DIR)
- @@-$(MKDIRHIER) $(RUNTIME_DIR)$/components
- @@-$(MKDIRHIER) $(RUNTIME_DIR)$/defaults
- @@-$(MKDIRHIER) $(RUNTIME_DIR)$/defaults$/pref
- @@-$(MKDIRHIER) $(LIB_DIR)
- @@-$(MKDIRHIER) $(INCLUDE_DIR)
-.IF "$(OS)"=="SOLARIS"
- @@-$(MKDIRHIER) $(RUNTIME_DIR)$/res
-.ENDIF
-
-$(OUT)$/bin$/mozruntime.zip: $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
- noop
-
-$(MISC)$/build$/so_moz_runtime_files: $(OUT)$/bin$/mozruntime.zip
-# copy files in BIN_RUNTIMELIST
- $(foreach,file,$(BIN_RUNTIMELIST) $(COPY) $(MOZ_BIN_DIR)$/$(DLLPRE)$(file)$(DLLPOST) \
- $(RUNTIME_DIR)$/$(DLLPRE)$(file)$(DLLPOST) &&) \
- echo >& $(NULLDEV)
-
-# copy files in COMPONENT_RUNTIMELIST
- $(foreach,file,$(COMPONENT_RUNTIMELIST) $(COPY) $(MOZ_BIN_DIR)$/components$/$(DLLPRE)$(file)$(DLLPOST) \
- $(RUNTIME_DIR)$/components$/$(DLLPRE)$(file)$(DLLPOST) &&) \
- echo >& $(NULLDEV)
-
-# copy files in COMREGISTRY_FILELIST
- $(foreach,file,$(COMREGISTRY_FILELIST) $(COPY) $(MOZ_BIN_DIR)$/components$/$(file) \
- $(RUNTIME_DIR)$/components$/$(file) &&) \
- echo >& $(NULLDEV)
-
-# copy files in DEFAULTS_RUNTIMELIST
- @@-$(MKDIR) $(RUNTIME_DIR)$/defaults$/pref
- @@-$(MKDIR) $(RUNTIME_DIR)$/defaults$/autoconfig
- @@-$(MKDIR) $(RUNTIME_DIR)$/greprefs
- $(foreach,file,$(DEFAULTS_RUNTIMELIST) $(COPY) $(MOZ_BIN_DIR)$/$(file) $(RUNTIME_DIR)$/$(file) &&) \
- echo >& $(NULLDEV)
-
-
-# zip runtime files to mozruntime.zip
- cd $(RUNTIME_DIR) && zip -r ..$/..$/bin$/mozruntime.zip *
-
- $(TOUCH) $@
-
-$(INCCOM)$/nsBuildID.h: $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
- @-echo "You can delete $(INCCOM) to force it copy all include files again."
-
-
-$(MISC)$/build$/so_moz_include_files: $(INCCOM)$/nsBuildID.h
- $(COPY) -pr $(INCLUDE_PATH)* $(INCLUDE_DIR)
- $(COPY) -pr $(PUBLIC_PATH)* $(INCLUDE_DIR)
- $(TOUCH) $@
-
-# On UNX the rules for so_moz_runtime_files copy files into the same directory
-# used here (LIB_DIR), and on MACOSX all those files together need to be
-# processed here, hence the dependency on so_moz_runtime_files:
-$(MISC)$/build$/so_moz_lib_files: $(foreach,file,$(LIBLIST) $(LIB_DIR)$/$(file)) $(MISC)$/build$/so_moz_runtime_files
- echo $(foreach,file,$(LIBLIST) $(MOZ_DIST_DIR)$/lib$/$(file))
- $(foreach,file,$(LIBLIST) $(COPY) $(MOZ_DIST_DIR)$/lib$/$(file) \
- $(LIB_DIR)$/$(file) &&) \
- echo >& $(NULLDEV)
- $(TOUCH) $@
-
-$(BIN_RUNTIMELIST): $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
- @$(COPY) $(MOZ_BIN_DIR)$/$(DLLPRE)$@$(DLLPOST) $(RUNTIME_DIR)$/$(DLLPRE)$@$(DLLPOST)
-
-$(COMPONENT_RUNTIMELIST): $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
- @$(COPY) $(MOZ_BIN_DIR)$/components$/$(DLLPRE)$@$(DLLPOST) $(RUNTIME_DIR)$/components$/$(DLLPRE)$@$(DLLPOST)
-
-$(COMREGISTRY_FILELIST): $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
- @$(COPY) $(MOZ_BIN_DIR)$/components$/$@ $(RUNTIME_DIR)$/components$/$@
-
-$(DEFAULTS_RUNTIMELIST): $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
- @$(COPY) $(MOZ_BIN_DIR)$/$@ $(RUNTIME_DIR)$/$@
-
-$(LIB_DIR)$/%: $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
- noop
-
-$(MISC)$/CREATETARBALL: extract_mozab_files
- @@-$(MKDIR) $(OUT)$/zipped
- $(COPY) $(BIN)$/mozruntime.zip $(OUT)$/zipped$/$(MOZTARGET)runtime.zip
- cd $(LB) && zip -r ..$/zipped$/$(MOZTARGET)lib.zip *
- cd $(INCCOM) && zip -r ..$/zipped$/$(MOZTARGET)inc.zip *
diff --git a/moz/makefile.mk b/moz/makefile.mk
deleted file mode 100644
index e7c8528d6516..000000000000
--- a/moz/makefile.mk
+++ /dev/null
@@ -1,221 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=.
-
-PRJNAME=ooo_mozab
-TARGET=ooo_mozab
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-# ----- pkg-config start -------
-.INCLUDE .IGNORE : pkgroot.mk
-.IF "$(PKGCONFIG_ROOT)"!=""
-PKG_CONFIG:=$(PKGCONFIG_ROOT)$/bin$/pkg-config
-PKG_CONFIG_PATH:=$(PKGCONFIG_ROOT)$/lib$/pkgconfig
-.IF "$(LD_LIBRARY_PATH)"=="" # assume empty implies unset
-LD_LIBRARY_PATH!:=$(PKGCONFIG_ROOT)$/lib
-.ELSE
-LD_LIBRARY_PATH!:=$(LD_LIBRARY_PATH)$(PATH_SEPERATOR)$(PKGCONFIG_ROOT)$/lib
-.ENDIF
-.EXPORT : PKG_CONFIG_PATH PKG_CONFIG LD_LIBRARY_PATH
-.ENDIF # "$(PKGCONFIG_ROOT)"!=""
-
-# reduce prerequisites by disabling mozilla binary
-DISABLE_MOZ_EXECUTABLE=TRUE
-.EXPORT : DISABLE_MOZ_EXECUTABLE
-
-
-# ----- pkg-config end -------
-
-MOZILLA_VERSION=1.1.14
-TARFILE_NAME=seamonkey-$(MOZILLA_VERSION).source
-TARFILE_MD5=a169ab152209200a7bad29a275cb0333
-
-TARFILE_ROOTDIR=mozilla
-PATCH_FILES = \
- seamonkey-source-$(MOZILLA_VERSION).patch \
- patches/dtoa.patch \
- patches/respect_disable_pango.patch \
- patches/link_fontconfig.patch \
- patches/brokenmakefile.patch \
- patches/libpr0n_build_fix.patch \
- patches/clang_add_nsCaseInsensitiveStringComparator_default_constructor.patch \
- patches/clang_missing_this_pointers.patch \
- patches/seamonkey-1.1.14.source-macosx10.6and7.patch \
-
-# This file is needed for the W32 build when BUILD_MOZAB is set
-# (currently only vc8/vs2005 is supported when BUILD_MOZAB is set)
-MOZTOOLS_ZIPFILE_NAME*=vc8-moztools.zip
-
-ADDITIONAL_FILES=mailnews$/addrbook$/src$/nsAbMD5sum.cpp
-
-CONFIGURE_DIR=
-
-MOZILLA_CONFIGURE_FLAGS += --disable-tests \
- --enable-application=suite \
- --enable-ldap \
- --enable-crypto \
- --enable-optimize \
- --enable-strip \
- --disable-profilelocking \
- --disable-activex \
- --disable-activex-scripting \
- --disable-gnomevfs \
- --disable-debug \
- --disable-xprint \
- --disable-postscript \
- --without-system-zlib \
- --with-system-nss \
- --with-system-nspr \
- --disable-installer \
- --disable-accessibility \
- --disable-xpfe-components \
- --disable-mathml \
- --disable-oji \
- --disable-profilesharing \
- --disable-boehm \
- --disable-jsloader \
- --disable-canvas \
- --disable-freetype2 \
- --disable-gnomeui \
- --disable-image-encoders \
- --disable-plugins \
- --disable-printing \
- --disable-pango \
- --enable-extensions="pref"
-
-.IF "$(SYSTEM_NSS)"=="NO"
-
-MOZILLA_CONFIGURE_FLAGS += \
- --with-nss-prefix=$(OUTDIR) \
- --with-nspr-prefix=$(OUTDIR)
-.ENDIF
-
-#disable profilelocking to share profile with mozilla
-#disable activex and activex-scripting to remove the dependence of Microsoft_SDK\src\mfc\atlbase.h
-#disable gnomevfs to remove the needed of gnome develop files
-#disable others to save build times
-
-# create a objdir build = build files in a seperate directory, not in the sourcetree directly
-CONFIGURE_DIR=$(CPU)_objdir
-BUILD_DIR=$(CONFIGURE_DIR)
-MOZ_CROSSCOMPILE=CROSS_COMPILE=1 CC="$(CC) -arch $(MOZ_ARCH)" CXX="$(CXX) -arch $(MOZ_ARCH)" AR=ar
-
-CONFIGURE_ACTION=$(null,$(MOZ_ARCH) $(NULL) $(MOZ_CROSSCOMPILE)) ../configure $(MOZILLA_CONFIGURE_FLAGS)
-
-BUILD_ACTION:=$(GNUMAKE) -j$(EXTMAXPROCESS)
-
-MOZDIR=$(MISC)$/build$/seamonkey
-MOZTARGET=$(OS)$(COM)$(CPU)
-
-# "Our" build environment uses "NO" for the environment variable that
-# indicate if system libraries should be used, the mozilla build uses
-# "" in this case. This conflicts (at least for W32) with mozilla (1.7b)
-# because it disables the library checks for msvc so that
-# --without-system-* is not evaluated. To build the included libraries
-# the affected variables have to be empty and not NO.
-.IF "$(SYSTEM_ZLIB)"=="NO"
-SYSTEM_ZLIB:=
-.EXPORT : SYSTEM_ZLIB
-.ENDIF
-.IF "$(SYSTEM_JPEG)"=="NO"
-SYSTEM_JPEG:=
-.EXPORT : SYSTEM_JPEG
-.ENDIF
-
-CC:=cl.exe
-CXX:=cl.exe
-
-# Variables to install/use our own wintools
-MOZTOOLS_EXTRACT:=$(MISC)$/build$/moztools
-MOZ_TOOLS_DOS:=$(shell @cygpath -ad "$(MISC)")\build\moztools\vc8-moztools
-PATH!:=$(shell @cygpath $(MOZ_TOOLS_DOS))/bin:$(PATH)
-
-MOZ_TOOLS:=$(subst,\,/ $(MOZ_TOOLS_DOS))
-
-.EXPORT : PATH MOZ_TOOLS
-
-# --- Targets ------------------------------------------------------
-
-.IF "$(BUILD_MOZAB)"==""
-all:
- @echo "Never Build Mozilla but copy runtime files $(MSVC80_DLL_DIR) ."
- @echo "Never Build Mozilla but copy runtime files."
- @@-$(MKDIR) $(OUT)$/zipped
- $(COPY) $(TARFILE_LOCATION)$/$(MOZ_ZIP_INC) $(PRJ)$/zipped$/
- $(COPY) $(TARFILE_LOCATION)$/$(MOZ_ZIP_LIB) $(PRJ)$/zipped$/
- $(COPY) $(TARFILE_LOCATION)$/$(MOZ_ZIP_RUNTIME) $(PRJ)$/zipped$/
-.IF "$(EXTMSV80)"!=""
- $(COPY) $(MSVC80_MNFST) $(EXTMSV80)$/Microsoft.VC80.CRT.manifest
- $(COPY) $(MSVC80_DLL_DIR)$/msvcp80.dll $(EXTMSV80)$/
- $(COPY) $(MSVC80_DLL_DIR)$/msvcr80.dll $(EXTMSV80)$/
-.ENDIF
-.ENDIF
-
-.INCLUDE : set_ext.mk
-.INCLUDE : target.mk
-.INCLUDE : tg_ext.mk
-
-NEEDWINTOOLSFLAGFILE:=$(MISC)$/build$/moztools.complete
-
-ALLTAR: $(NEEDWINTOOLSFLAGFILE) \
- $(MISC)$/remove_build.flag \
- extract_mozab_files
-
-$(PACKAGE_DIR)$/$(UNTAR_FLAG_FILE) : $(MISC)$/remove_build.flag
-
-# Since you never know what will be in a patch (for example, it may already
-# patch at configure level), we remove the entire package directory if a patch
-# is newer.
-$(MISC)$/remove_build.flag : $(PATCH_FILES)
- $(REMOVE_PACKAGE_COMMAND)
- $(TOUCH) $(MISC)$/remove_build.flag
-
-# Unpack/setup Windows build tools
-$(PACKAGE_DIR)$/$(UNTAR_FLAG_FILE) : $(MISC)$/build$/moztools.complete
-
-$(MISC)$/build$/moztools.unpack : $(PRJ)$/download$/$(MOZTOOLS_ZIPFILE_NAME)
- -$(RENAME) $(MOZTOOLS_EXTRACT) $(MOZTOOLS_EXTRACT)_removeme
- -rm -rf $(MOZTOOLS_EXTRACT)_removeme
- @-$(MKDIRHIER) $(MOZTOOLS_EXTRACT)
- unzip $(PRJ)$/download$/$(MOZTOOLS_ZIPFILE_NAME) -d $(MOZTOOLS_EXTRACT)
-# chmod is also needed for W32-4nt build (when cygwin unzip is used)
- -chmod -R +x $(MOZTOOLS_EXTRACT)$/vc8-moztools$/bin
- $(TOUCH) $(MISC)$/build$/moztools.unpack
-
-$(MISC)$/build$/moztools.complete : $(MISC)$/build$/moztools.unpack
- $(TOUCH) $(MISC)$/build$/moztools.complete
-
-zip: \
- $(MISC)$/CREATETARBALL
-
-.INCLUDE : extractfiles.mk
diff --git a/moz/patches/aix_build_fix.patch b/moz/patches/aix_build_fix.patch
deleted file mode 100644
index d778532eeb44..000000000000
--- a/moz/patches/aix_build_fix.patch
+++ /dev/null
@@ -1,203 +0,0 @@
---- misc/mozilla/nsprpub/configure 2010-08-19 07:05:19.000000000 -0500
-+++ misc/build/mozilla/nsprpub/configure 2010-08-19 07:34:33.000000000 -0500
-@@ -2938,7 +2938,8 @@
- #define SYSV 1
- EOF
-
-- DSO_LDOPTS='-brtl -bnortllib -bM:SRE -bnoentry -bexpall -blibpath:/usr/lib:/lib'
-+ MKSHLIB='$(CCC) -shared $(DSO_LDOPTS) -o $@'
-+ DSO_LDOPTS='-Wl,-brtl -Wl,-bnortllib -Wl,-blibpath:/usr/lib:/lib'
- ac_safe=`echo "sys/atomic_op.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for sys/atomic_op.h""... $ac_c" 1>&6
- echo "configure:2944: checking for sys/atomic_op.h" >&5
-@@ -3067,7 +3068,6 @@
- AIX_LINK_OPTS='-brtl -bnso -berok'
- ;;
- esac
-- CFLAGS="$CFLAGS -qro -qroconst"
- AIX_WRAP='$(DIST)/lib/aixwrap.o'
- AIX_TMP='./_aix_tmp.o'
- if test -n "$USE_64"; then
---- misc/mozilla/nsprpub/configure.in 2010-08-19 07:05:19.000000000 -0500
-+++ misc/build/mozilla/nsprpub/configure.in 2010-08-19 07:35:35.000000000 -0500
-@@ -811,7 +811,8 @@
- AC_DEFINE(XP_UNIX)
- AC_DEFINE(AIX)
- AC_DEFINE(SYSV)
-- DSO_LDOPTS='-brtl -bnortllib -bM:SRE -bnoentry -bexpall -blibpath:/usr/lib:/lib'
-+ MKSHLIB='$(CCC) -shared $(DSO_LDOPTS) -o $@'
-+ DSO_LDOPTS='-Wl,-brtl -Wl,-bnortllib -Wl,-blibpath:/usr/lib:/lib'
- AC_CHECK_HEADER(sys/atomic_op.h, AC_DEFINE(AIX_HAVE_ATOMIC_OP_H))
- case "${target_os}" in
- aix3.2*)
-@@ -854,7 +855,6 @@
- AIX_LINK_OPTS='-brtl -bnso -berok'
- ;;
- esac
-- CFLAGS="$CFLAGS -qro -qroconst"
- AIX_WRAP='$(DIST)/lib/aixwrap.o'
- AIX_TMP='./_aix_tmp.o'
- if test -n "$USE_64"; then
---- misc/mozilla/security/coreconf/AIX.mk 2010-08-19 07:04:11.000000000 -0500
-+++ misc/build/mozilla/security/coreconf/AIX.mk 2010-08-19 07:38:42.000000000 -0500
-@@ -62,35 +62,30 @@
-
- DEFAULT_COMPILER = xlc_r
-
--CC = xlc_r
--CCC = xlC_r
-+CCC = $(CXX)
-
- CPU_ARCH = rs6000
-
- RANLIB = ranlib
-
- OS_CFLAGS = -DAIX -DSYSV
--OS_LIBS += -blibpath:/usr/lib:/lib -lc -lm
-+OS_LIBS += -Wl,-blibpath:/usr/lib:/lib -lc -lm
-
--DSO_LDOPTS = -brtl -bnortllib -bM:SRE -bnoentry
--MKSHLIB = $(LD) $(DSO_LDOPTS) -blibpath:/usr/lib:/lib -lc -lm
-+DSO_LDOPTS = -Wl,-brtl -Wl,-bnortllib
-+MKSHLIB = $(CC) --shared $(DSO_LDOPTS) -Wl,-blibpath:/usr/lib:/lib -lc -lm
-
- AIX_WRAP = $(DIST)/lib/aixwrap.o
- AIX_TMP = $(OBJDIR)/_aix_tmp.o
-
- ifdef MAPFILE
--DSO_LDOPTS += -bexport:$(MAPFILE)
-+DSO_LDOPTS += -Wl,-bexport:$(MAPFILE)
- else
--DSO_LDOPTS += -bexpall
-+DSO_LDOPTS += -Wl,-bexpall
- endif
-
- PROCESS_MAP_FILE = grep -v ';+' $< | grep -v ';-' | \
- sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' > $@
-
--ifdef BUILD_OPT
-- OPTIMIZER += -qmaxmem=-1
--endif
--
- ifeq ($(USE_64), 1)
- OS_CFLAGS += -DAIX_64BIT
- OBJECT_MODE=64
---- misc/mozilla/security/nss/cmd/platlibs.mk 2010-08-19 07:03:52.000000000 -0500
-+++ misc/build/mozilla/security/nss/cmd/platlibs.mk 2010-08-19 07:39:10.000000000 -0500
-@@ -154,7 +154,7 @@
- $(NULL)
-
- ifeq ($(OS_ARCH), AIX)
--EXTRA_SHARED_LIBS += -brtl
-+EXTRA_SHARED_LIBS += -Wl,-brtl
- endif
-
- # $(PROGRAM) has NO explicit dependencies on $(EXTRA_SHARED_LIBS)
-@@ -207,7 +207,7 @@
- $(NULL)
-
- ifeq ($(OS_ARCH), AIX)
--EXTRA_SHARED_LIBS += -brtl
-+EXTRA_SHARED_LIBS += -Wl,-brtl
- endif
-
- # If GNU ld is used, we must use the -rpath-link option to tell
---- misc/mozilla/security/nss/cmd/shlibsign/Makefile 2010-08-19 07:03:57.000000000 -0500
-+++ misc/build/mozilla/security/nss/cmd/shlibsign/Makefile 2010-08-19 07:42:30.000000000 -0500
-@@ -74,6 +74,10 @@
-
- include $(CORE_DEPTH)/coreconf/rules.mk
-
-+ifeq ($(OS), AIX)
-+EXTRA_SHARED_LIBS += -lpthreads
-+endif
-+
- #######################################################################
- # (6) Execute "component" rules. (OPTIONAL) #
- #######################################################################
---- misc/mozilla/security/nss/cmd/shlibsign/mangle/Makefile 2010-08-19 07:03:57.000000000 -0500
-+++ misc/build/mozilla/security/nss/cmd/shlibsign/mangle/Makefile 2010-08-19 07:41:51.000000000 -0500
-@@ -74,6 +74,8 @@
- # (7) Execute "local" rules. (OPTIONAL). #
- #######################################################################
-
-+ifeq ($(OS), AIX)
-+EXTRA_SHARED_LIBS += -lpthreads
-+endif
-
- include ../../platrules.mk
--
---- misc/mozilla/dbm/include/mcom_db.h 2010-08-19 08:39:18.000000000 -0500
-+++ misc/build/mozilla/dbm/include/mcom_db.h 2010-08-19 08:39:45.000000000 -0500
-@@ -88,7 +88,7 @@
-
- #ifdef __DBINTERFACE_PRIVATE
-
--#ifdef HAVE_SYS_CDEFS_H
-+#if defined(HAVE_SYS_CDEFS_H) && !defined(_AIX)
- #include <sys/cdefs.h>
- #else
- #include "cdefs.h"
---- misc/mozilla/configure 2010-08-19 09:18:07.000000000 -0500
-+++ misc/build/mozilla/configure 2010-08-19 09:11:35.000000000 -0500
-@@ -5884,6 +5884,9 @@
- CC_VERSION=`lslpp -Lcq vac.C 2>/dev/null | awk -F: '{ print $3 }'`
- CXX_VERSION=`lslpp -Lcq vacpp.cmp.core 2>/dev/null | awk -F: '{ print $3 }'`
- fi
-+ else
-+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
-+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
- fi
- case "${target_os}" in
- aix4.1*)
---- misc/mozilla/configure.in 2010-08-19 09:18:07.000000000 -0500
-+++ misc/build/mozilla/configure.in 2010-08-19 09:10:46.000000000 -0500
-@@ -1489,6 +1489,9 @@
- CC_VERSION=`lslpp -Lcq vac.C 2>/dev/null | awk -F: '{ print $3 }'`
- CXX_VERSION=`lslpp -Lcq vacpp.cmp.core 2>/dev/null | awk -F: '{ print $3 }'`
- fi
-+ else
-+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
-+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
- fi
- case "${target_os}" in
- aix4.1*)
---- misc/mozilla/configure 2010-08-19 11:03:27.000000000 -0500
-+++ misc/build/mozilla/configure 2010-08-19 11:05:38.000000000 -0500
-@@ -5887,6 +5887,8 @@
- else
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
-+ MOZ_FIX_LINK_PATHS=
-+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-brtl"
- fi
- case "${target_os}" in
- aix4.1*)
---- misc/mozilla/configure.in 2010-08-19 11:03:36.000000000 -0500
-+++ misc/build/mozilla/configure.in 2010-08-19 11:04:33.000000000 -0500
-@@ -1492,6 +1492,9 @@
- else
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
-+ AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS till we can fix bug 332075.])
-+ MOZ_FIX_LINK_PATHS=
-+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-brtl"
- fi
- case "${target_os}" in
- aix4.1*)
---- misc/mozilla/config/rules.mk 2010-08-20 04:09:51.000000000 -0500
-+++ misc/build/mozilla/config/rules.mk 2010-08-20 05:02:37.000000000 -0500
-@@ -488,8 +488,13 @@
- ifeq ($(OS_ARCH),AIX)
- ifdef IS_COMPONENT
- ifneq ($(HAS_EXTRAEXPORTS),1)
-+ifdef GNU_CC
-+MKSHLIB += -Wl,-bE:$(MOZILLA_DIR)/build/unix/aix.exp -Wl,-bnoexpall
-+MKCSHLIB += -Wl,-bE:$(MOZILLA_DIR)/build/unix/aix.exp -Wl,-bnoexpall
-+else
- MKSHLIB += -bE:$(MOZILLA_DIR)/build/unix/aix.exp -bnoexpall
- MKCSHLIB += -bE:$(MOZILLA_DIR)/build/unix/aix.exp -bnoexpall
-+endif # GNU_CXX
- endif # HAS_EXTRAEXPORTS
- endif # IS_COMPONENT
- endif # AIX
diff --git a/moz/patches/arm_build_fix.patch b/moz/patches/arm_build_fix.patch
deleted file mode 100644
index 79368e5fe6db..000000000000
--- a/moz/patches/arm_build_fix.patch
+++ /dev/null
@@ -1,189 +0,0 @@
---- misc/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2010-01-29 08:39:01.000000000 +0000
-+++ misc/build/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2010-01-29 08:41:01.000000000 +0000
-@@ -44,8 +44,21 @@
- #error "This code is for Linux ARM only. Please check if it works for you, too.\nDepends strongly on gcc behaviour."
- #endif
-
-+#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4))
-+/* This tells gcc3.4+ not to optimize away symbols.
-+ * * @see http://gcc.gnu.org/gcc-3.4/changes.html
-+ * */
-+#define DONT_DROP_OR_WARN __attribute__((used))
-+#else
-+/* This tells older gccs not to warn about unused vairables.
-+ * * @see http://docs.freebsd.org/info/gcc/gcc.info.Variable_Attributes.html
-+ * */
-+#define DONT_DROP_OR_WARN __attribute__((unused))
-+#endif
-+
- /* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */
--static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch");
-+static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch")
-+DONT_DROP_OR_WARN;
-
- static nsresult
- PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args)
---- misc/mozilla/security/nss/cmd/shlibsign/Makefile 2010-02-05 13:13:56.000000000 +0000
-+++ misc/build/mozilla/security/nss/cmd/shlibsign/Makefile 2010-02-05 13:14:16.000000000 +0000
-@@ -124,5 +124,5 @@
- endif
- endif
-
--libs install :: $(CHECKLOC)
-+libs install ::
-
---- misc/mozilla/security/manager/Makefile.in 2010-02-05 13:27:25.000000000 +0000
-+++ misc/build/mozilla/security/manager/Makefile.in 2010-02-05 13:28:00.000000000 +0000
-@@ -53,7 +53,6 @@
- SMIME3_LIB \
- SSL3_LIB \
- SOFTOKEN3_LIB \
-- SOFTOKEN3_CHK \
- LOADABLE_ROOT_MODULE \
- HAVE_FREEBL_LIBS \
- HAVE_FREEBL_LIBS_32 \
-@@ -68,7 +67,6 @@
- SMIME3_LIB = $(DLL_PREFIX)smime3$(DLL_SUFFIX)
- SSL3_LIB = $(DLL_PREFIX)ssl3$(DLL_SUFFIX)
- SOFTOKEN3_LIB = $(DLL_PREFIX)softokn3$(DLL_SUFFIX)
--SOFTOKEN3_CHK = $(DLL_PREFIX)softokn3.chk
-
- # Default
- HAVE_FREEBL_LIBS = 1
-@@ -99,23 +97,17 @@
-
- ifdef HAVE_FREEBL_LIBS
- FREEBL_LIB = $(DLL_PREFIX)freebl3$(DLL_SUFFIX)
--FREEBL_CHK = $(DLL_PREFIX)freebl3.chk
- endif
- ifdef HAVE_FREEBL_LIBS_32
- FREEBL_32INT_LIB = libfreebl_32int_3$(DLL_SUFFIX)
--FREEBL_32INT_CHK = libfreebl_32int_3.chk
- FREEBL_32FPU_LIB = libfreebl_32fpu_3$(DLL_SUFFIX)
--FREEBL_32FPU_CHK = libfreebl_32fpu_3.chk
- endif
- ifdef HAVE_FREEBL_LIBS_32INT64
- FREEBL_32INT64_LIB = libfreebl_32int64_3$(DLL_SUFFIX)
--FREEBL_32INT64_CHK = libfreebl_32int64_3.chk
- endif
- ifdef HAVE_FREEBL_LIBS_64
- FREEBL_64INT_LIB = libfreebl_64int_3$(DLL_SUFFIX)
--FREEBL_64INT_CHK = libfreebl_64int_3.chk
- FREEBL_64FPU_LIB = libfreebl_64fpu_3$(DLL_SUFFIX)
--FREEBL_64FPU_CHK = libfreebl_64fpu_3.chk
- endif
-
- ABS_DIST := $(shell cd $(DIST) && pwd)
-@@ -210,7 +202,6 @@
- OS_ARCH="$(OS_ARCH)" \
- CPU_ARCH="$(TARGET_CPU)" \
- $(NULL)
--SKIP_CHK=1
- endif
- SUBMAKEFILES = boot/Makefile ssl/Makefile pki/Makefile locales/Makefile
-
-@@ -223,10 +214,6 @@
- ifndef MOZ_NATIVE_NSS
- $(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
- $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
--ifndef SKIP_CHK
-- $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
-- $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
--endif
- touch $@
- endif
-
-@@ -262,43 +249,22 @@
- # In NSS 3.11.8-3.11.9, lib/ssl/derive.c includes cmd/lib/secutil.h.
- $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) export
- $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) DIRS="util base dev pki pki1 certdb certhigh pk11wrap cryptohi nss ssl pkcs12 pkcs7 smime crmf jar ckfw ckfw/builtins"
--ifndef SKIP_CHK
-- $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
-- $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS)
--endif
- $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin
--ifndef SKIP_CHK
-- $(INSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DIST)/bin
--endif
- $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin
- ifdef HAVE_FREEBL_LIBS
--ifndef SKIP_CHK
-- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_CHK) $(DIST)/bin
--endif
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin
- endif
- ifdef HAVE_FREEBL_LIBS_32
--ifndef SKIP_CHK
-- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT_CHK) $(DIST)/bin
-- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32FPU_CHK) $(DIST)/bin
--endif
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT_LIB) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32FPU_LIB) $(DIST)/bin
- endif
- ifdef HAVE_FREEBL_LIBS_32INT64
--ifndef SKIP_CHK
-- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT64_CHK) $(DIST)/bin
--endif
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT64_LIB) $(DIST)/bin
- endif
- ifdef HAVE_FREEBL_LIBS_64
--ifndef SKIP_CHK
-- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_64INT_CHK) $(DIST)/bin
-- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_64FPU_CHK) $(DIST)/bin
--endif
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_64INT_LIB) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_64FPU_LIB) $(DIST)/bin
- endif
-@@ -313,38 +279,21 @@
- install::
- ifndef MOZ_NATIVE_NSS
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DESTDIR)$(mozappdir)
--ifndef SKIP_CHK
-- $(SYSINSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DESTDIR)$(mozappdir)
--endif
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DESTDIR)$(mozappdir)
- ifdef HAVE_FREEBL_LIBS
--ifndef SKIP_CHK
-- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_CHK) $(DESTDIR)$(mozappdir)
--endif
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DESTDIR)$(mozappdir)
- endif
- ifdef HAVE_FREEBL_LIBS_32
--ifndef SKIP_CHK
-- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT_CHK) $(DESTDIR)$(mozappdir)
-- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_32FPU_CHK) $(DESTDIR)$(mozappdir)
--endif
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT_LIB) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_32FPU_LIB) $(DESTDIR)$(mozappdir)
- endif
- ifdef HAVE_FREEBL_LIBS_32INT64
--ifndef SKIP_CHK
-- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT64_CHK) $(DESTDIR)$(mozappdir)
--endif
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT64_LIB) $(DESTDIR)$(mozappdir)
- endif
- ifdef HAVE_FREEBL_LIBS_64
--ifndef SKIP_CHK
-- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_64INT_CHK) $(DESTDIR)$(mozappdir)
-- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_64FPU_CHK) $(DESTDIR)$(mozappdir)
--endif
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_64INT_LIB) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_64FPU_LIB) $(DESTDIR)$(mozappdir)
- endif
-@@ -366,10 +315,6 @@
- ifndef MOZ_NATIVE_NSS
- $(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
- $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
--ifndef SKIP_CHK
-- $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
-- $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
--endif
- endif
-
- echo-requires-recursive::
diff --git a/moz/patches/brokenmakefile.patch b/moz/patches/brokenmakefile.patch
deleted file mode 100644
index 20d88014b932..000000000000
--- a/moz/patches/brokenmakefile.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- misc/mozilla/mailnews/extensions/smime/build/Makefile.in 2010-09-04 16:00:38.000000000 +0100
-+++ misc/build/mozilla/mailnews/extensions/smime/build/Makefile.in 2010-09-04 16:02:24.000000000 +0100
-@@ -79,10 +79,6 @@
- $(DIST)/lib/$(LIB_PREFIX)msgsmime_s.$(LIB_SUFFIX) \
- $(NULL)
-
--ifndef MOZ_STATIC_MAIL_BUILD
--SHARED_LIBRARY_LIBS + = $(DIST)/lib/$(LIB_PREFIX)msgbsutl_s.$(LIB_SUFFIX)
--endif
--
- EXTRA_DSO_LDOPTS = \
- $(LIBS_DIR) \
- $(EXTRA_DSO_LIBS) \
diff --git a/moz/patches/clang_add_nsCaseInsensitiveStringComparator_default_constructor.patch b/moz/patches/clang_add_nsCaseInsensitiveStringComparator_default_constructor.patch
deleted file mode 100644
index c2ff5d2cf461..000000000000
--- a/moz/patches/clang_add_nsCaseInsensitiveStringComparator_default_constructor.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- misc/mozilla/intl/unicharutil/util/nsUnicharUtils.h 2008-08-30 00:14:52.000000000 +0100
-+++ misc/build/mozilla/intl/unicharutil/util/nsUnicharUtils.h 2012-02-18 20:12:51.590109117 +0000
-@@ -64,6 +64,7 @@
- : public nsStringComparator
- {
- public:
-+ nsCaseInsensitiveStringComparator(){};
- virtual int operator()( const PRUnichar*, const PRUnichar*, PRUint32 aLength ) const;
- virtual int operator()( PRUnichar, PRUnichar ) const;
- };
diff --git a/moz/patches/clang_missing_this_pointers.patch b/moz/patches/clang_missing_this_pointers.patch
deleted file mode 100644
index d92434fe074f..000000000000
--- a/moz/patches/clang_missing_this_pointers.patch
+++ /dev/null
@@ -1,71 +0,0 @@
---- misc/mozilla/xpcom/glue/nsBaseHashtable.h 2005-09-27 16:44:20.000000000 +0100
-+++ misc/build/mozilla/xpcom/glue/nsBaseHashtable.h 2012-02-18 18:43:55.386109066 +0000
-@@ -123,7 +123,7 @@
- */
- PRBool Get(KeyType aKey, UserDataType* pData) const
- {
-- EntryType* ent = GetEntry(aKey);
-+ EntryType* ent = this->GetEntry(aKey);
-
- if (!ent)
- return PR_FALSE;
-@@ -142,7 +142,7 @@
- */
- PRBool Put(KeyType aKey, UserDataType aData)
- {
-- EntryType* ent = PutEntry(aKey);
-+ EntryType* ent = this->PutEntry(aKey);
-
- if (!ent)
- return PR_FALSE;
-@@ -156,7 +156,7 @@
- * remove the data for the associated key
- * @param aKey the key to remove from the hashtable
- */
-- void Remove(KeyType aKey) { RemoveEntry(aKey); }
-+ void Remove(KeyType aKey) { this->RemoveEntry(aKey); }
-
- /**
- * function type provided by the application for enumeration.
---- misc/mozilla/xpcom/glue/nsClassHashtable.h 2005-08-11 20:42:37.000000000 +0100
-+++ misc/build/mozilla/xpcom/glue/nsClassHashtable.h 2012-02-18 18:40:32.810109050 +0000
-@@ -98,7 +98,7 @@
- nsClassHashtable<KeyClass,T>::Get(KeyType aKey, T** retVal) const
- {
- typename nsBaseHashtable<KeyClass,nsAutoPtr<T>,T*>::EntryType* ent =
-- GetEntry(aKey);
-+ this->GetEntry(aKey);
-
- if (ent)
- {
---- misc/mozilla/xpcom/glue/nsInterfaceHashtable.h 2005-08-11 20:42:48.000000000 +0100
-+++ misc/build/mozilla/xpcom/glue/nsInterfaceHashtable.h 2012-02-18 18:43:01.794109091 +0000
-@@ -111,7 +111,7 @@
- (KeyType aKey, UserDataType* pInterface) const
- {
- typename nsBaseHashtable<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent =
-- GetEntry(aKey);
-+ this->GetEntry(aKey);
-
- if (ent)
- {
-@@ -139,7 +139,7 @@
- (KeyType aKey, PRBool* aFound) const
- {
- typename nsBaseHashtable<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent =
-- GetEntry(aKey);
-+ this->GetEntry(aKey);
-
- if (ent)
- {
---- misc/mozilla/xpcom/glue/nsRefPtrHashtable.h 2005-08-11 20:42:51.000000000 +0100
-+++ misc/build/mozilla/xpcom/glue/nsRefPtrHashtable.h 2012-02-18 19:02:20.634109082 +0000
-@@ -140,7 +140,7 @@
- (KeyType aKey, PRBool* aFound) const
- {
- typename nsBaseHashtable<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent =
-- GetEntry(aKey);
-+ this->GetEntry(aKey);
-
- if (ent)
- {
diff --git a/moz/patches/consecutive_ldap_queries.patch b/moz/patches/consecutive_ldap_queries.patch
deleted file mode 100644
index d82d594bce09..000000000000
--- a/moz/patches/consecutive_ldap_queries.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- mozilla/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp 2009-02-02 09:39:32.054968600 +0100
-+++ mozilla.patched/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp 2009-02-02 09:35:35.633832119 +0100
-@@ -833,6 +833,10 @@
- if (msgListener)
- {
- msgListener->mUrl = url;
-+ msgListener->mQueryListener = listener;
-+ msgListener->mResultLimit = resultLimit;
-+ msgListener->mTimeOut = timeOut;
-+ msgListener->mQueryArguments = arguments;
- return msgListener->DoSearch();
- }
- }
diff --git a/moz/patches/cygwin_paths_in_ldap_sdk.patch b/moz/patches/cygwin_paths_in_ldap_sdk.patch
deleted file mode 100644
index e0983aecbe74..000000000000
--- a/moz/patches/cygwin_paths_in_ldap_sdk.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- mozilla.org/directory/c-sdk/ldap/include/Makefile.in 2006-02-03 15:44:33.000000000 +0100
-+++ mozilla/directory/c-sdk/ldap/include/Makefile.in 2008-10-31 23:34:41.695625000 +0100
-@@ -85,6 +85,9 @@
-
- ###########################################################################
-
-+INCLUDEDIR:=$(shell cygpath -u $(INCLUDEDIR))
-+GENHEADERS:=$(shell cygpath -u $(GENHEADERS))
-+
- all export:: $(INCLUDEDIR) $(GENHEADERS)
- $(NSINSTALL) -D $(PRIVATEINCDIR)
- $(INSTALL) $(INSTALLFLAGS) -m 644 $(HEADERS) $(INCLUDEDIR)
diff --git a/moz/patches/dtoa.patch b/moz/patches/dtoa.patch
deleted file mode 100644
index fce3be38b10b..000000000000
--- a/moz/patches/dtoa.patch
+++ /dev/null
@@ -1,237 +0,0 @@
---- misc/mozilla/nsprpub/pr/src/misc/prdtoa.c 20 Mar 2009 03:41:21 -0000 4.7
-+++ misc/build/mozilla/nsprpub/pr/src/misc/prdtoa.c 15 Sep 2009 00:10:20 -0000
-@@ -169,17 +169,22 @@ void _PR_CleanupDtoa(void)
- * Llong, #define #ULLong to be the corresponding unsigned type.
- * #define KR_headers for old-style C function headers.
- * #define Bad_float_h if your system lacks a float.h or if it does not
- * define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP,
- * FLT_RADIX, FLT_ROUNDS, and DBL_MAX.
- * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n)
- * if memory is available and otherwise does something you deem
- * appropriate. If MALLOC is undefined, malloc will be invoked
-- * directly -- and assumed always to succeed.
-+ * directly -- and assumed always to succeed. Similarly, if you
-+ * want something other than the system's free() to be called to
-+ * recycle memory acquired from MALLOC, #define FREE to be the
-+ * name of the alternate routine. (FREE or free is only called in
-+ * pathological cases, e.g., in a dtoa call after a dtoa return in
-+ * mode 3 with thousands of digits requested.)
- * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making
- * memory allocations from a private pool of memory when possible.
- * When used, the private pool is PRIVATE_MEM bytes long: 2304 bytes,
- * unless #defined to be a different length. This default length
- * suffices to get rid of MALLOC calls except for unusual cases,
- * such as decimal-to-binary conversion of a very long string of
- * digits. The longest string dtoa can return is about 751 bytes
- * long. For conversions by strtod of strings of 800 digits and
-@@ -553,17 +558,17 @@ extern double rnd_prod(double, double),
- #endif
- #endif /* NO_LONG_LONG */
-
- #ifndef MULTIPLE_THREADS
- #define ACQUIRE_DTOA_LOCK(n) /*nothing*/
- #define FREE_DTOA_LOCK(n) /*nothing*/
- #endif
-
--#define Kmax 15
-+#define Kmax 7
-
- struct
- Bigint {
- struct Bigint *next;
- int k, maxwds, sign, wds;
- ULong x[1];
- };
-
-@@ -581,27 +586,28 @@ Balloc
- {
- int x;
- Bigint *rv;
- #ifndef Omit_Private_Memory
- unsigned int len;
- #endif
-
- ACQUIRE_DTOA_LOCK(0);
-- if (rv = freelist[k]) {
-+ /* The k > Kmax case does not need ACQUIRE_DTOA_LOCK(0), */
-+ /* but this case seems very unlikely. */
-+ if (k <= Kmax && (rv = freelist[k]))
- freelist[k] = rv->next;
-- }
- else {
- x = 1 << k;
- #ifdef Omit_Private_Memory
- rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));
- #else
- len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
- /sizeof(double);
-- if (pmem_next - private_mem + len <= PRIVATE_mem) {
-+ if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) {
- rv = (Bigint*)pmem_next;
- pmem_next += len;
- }
- else
- rv = (Bigint*)MALLOC(len*sizeof(double));
- #endif
- rv->k = k;
- rv->maxwds = x;
-@@ -615,20 +621,28 @@ Balloc
- Bfree
- #ifdef KR_headers
- (v) Bigint *v;
- #else
- (Bigint *v)
- #endif
- {
- if (v) {
-- ACQUIRE_DTOA_LOCK(0);
-- v->next = freelist[v->k];
-- freelist[v->k] = v;
-- FREE_DTOA_LOCK(0);
-+ if (v->k > Kmax)
-+#ifdef FREE
-+ FREE((void*)v);
-+#else
-+ free((void*)v);
-+#endif
-+ else {
-+ ACQUIRE_DTOA_LOCK(0);
-+ v->next = freelist[v->k];
-+ freelist[v->k] = v;
-+ FREE_DTOA_LOCK(0);
-+ }
- }
- }
-
- #define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
- y->wds*sizeof(Long) + 2*sizeof(int))
-
- static Bigint *
- multadd
---- misc/mozilla/js/src/jsdtoa.c 2 Sep 2007 22:20:41 -0000 3.41
-+++ misc/build/mozilla/js/src/jsdtoa.c 18 Sep 2009 16:15:13 -0000
-@@ -145,17 +145,22 @@
- * and if "unsigned Llong" does not work as an unsigned version of
- * Llong, #define #ULLong to be the corresponding unsigned type.
- * #define Bad_float_h if your system lacks a float.h or if it does not
- * define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP,
- * FLT_RADIX, FLT_ROUNDS, and DBL_MAX.
- * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n)
- * if memory is available and otherwise does something you deem
- * appropriate. If MALLOC is undefined, malloc will be invoked
-- * directly -- and assumed always to succeed.
-+ * directly -- and assumed always to succeed. Similarly, if you
-+ * want something other than the system's free() to be called to
-+ * recycle memory acquired from MALLOC, #define FREE to be the
-+ * name of the alternate routine. (FREE or free is only called in
-+ * pathological cases, e.g., in a dtoa call after a dtoa return in
-+ * mode 3 with thousands of digits requested.)
- * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making
- * memory allocations from a private pool of memory when possible.
- * When used, the private pool is PRIVATE_MEM bytes long: 2000 bytes,
- * unless #defined to be a different length. This default length
- * suffices to get rid of MALLOC calls except for unusual cases,
- * such as decimal-to-binary conversion of a very long string of
- * digits.
- * #define INFNAN_CHECK on IEEE systems to cause strtod to check for
-@@ -320,17 +325,17 @@ static PRLock *freelist_lock;
- JS_END_MACRO
- #define RELEASE_DTOA_LOCK() PR_Unlock(freelist_lock)
- #else
- #undef MULTIPLE_THREADS
- #define ACQUIRE_DTOA_LOCK() /*nothing*/
- #define RELEASE_DTOA_LOCK() /*nothing*/
- #endif
-
--#define Kmax 15
-+#define Kmax 7
-
- struct Bigint {
- struct Bigint *next; /* Free list link */
- int32 k; /* lg2(maxwds) */
- int32 maxwds; /* Number of words allocated for x */
- int32 sign; /* Zero if positive, 1 if negative. Ignored by most Bigint routines! */
- int32 wds; /* Actual number of words. If value is nonzero, the most significant word must be nonzero. */
- ULong x[1]; /* wds words of number in little endian order */
-@@ -400,26 +405,26 @@ static Bigint *Balloc(int32 k)
-
- #ifdef ENABLE_OOM_TESTING
- if (++allocationNum == desiredFailure) {
- printf("Forced Failing Allocation number %d\n", allocationNum);
- return NULL;
- }
- #endif
-
-- if ((rv = freelist[k]) != NULL)
-+ if (k <= Kmax && (rv = freelist[k]) != NULL)
- freelist[k] = rv->next;
- if (rv == NULL) {
- x = 1 << k;
- #ifdef Omit_Private_Memory
- rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));
- #else
- len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
- /sizeof(double);
-- if (pmem_next - private_mem + len <= PRIVATE_mem) {
-+ if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) {
- rv = (Bigint*)pmem_next;
- pmem_next += len;
- }
- else
- rv = (Bigint*)MALLOC(len*sizeof(double));
- #endif
- if (!rv)
- return NULL;
-@@ -428,18 +433,26 @@ static Bigint *Balloc(int32 k)
- }
- rv->sign = rv->wds = 0;
- return rv;
- }
-
- static void Bfree(Bigint *v)
- {
- if (v) {
-- v->next = freelist[v->k];
-- freelist[v->k] = v;
-+ if (v->k > Kmax)
-+#ifdef FREE
-+ FREE((void*)v);
-+#else
-+ free((void*)v);
-+#endif
-+ else {
-+ v->next = freelist[v->k];
-+ freelist[v->k] = v;
-+ }
- }
- }
-
- #define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
- y->wds*sizeof(Long) + 2*sizeof(int32))
-
- /* Return b*m + a. Deallocate the old b. Both a and m must be between 0 and
- * 65535 inclusive. NOTE: old b is deallocated on memory failure.
---- misc/mozilla/js/src/jsdtoa.c 22 Sep 2009 06:16:27 -0000 3.42
-+++ misc/build/mozilla/js/src/jsdtoa.c 15 Oct 2009 10:34:38 -0000
-@@ -405,19 +405,19 @@ static Bigint *Balloc(int32 k)
-
- #ifdef ENABLE_OOM_TESTING
- if (++allocationNum == desiredFailure) {
- printf("Forced Failing Allocation number %d\n", allocationNum);
- return NULL;
- }
- #endif
-
-- if (k <= Kmax && (rv = freelist[k]) != NULL)
-+ if (k <= Kmax && (rv = freelist[k]))
- freelist[k] = rv->next;
-- if (rv == NULL) {
-+ else {
- x = 1 << k;
- #ifdef Omit_Private_Memory
- rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));
- #else
- len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
- /sizeof(double);
- if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) {
- rv = (Bigint*)pmem_next;
diff --git a/moz/patches/embed_manifest.patch b/moz/patches/embed_manifest.patch
deleted file mode 100644
index 3b0e80b3ab81..000000000000
--- a/moz/patches/embed_manifest.patch
+++ /dev/null
@@ -1,142 +0,0 @@
---- mozilla.pure/configure 2008-06-16 00:25:31.000000000 +0200
-+++ mozilla/configure 2008-11-09 23:59:19.984375000 +0100
-@@ -1068,6 +1068,8 @@
- GCONF_VERSION=1.2.1
- LIBGNOME_VERSION=2.0
-
-+MSMANIFEST_TOOL=
-+
- MISSING_X=
- for ac_prog in gawk mawk nawk awk
- do
-@@ -3025,6 +3027,22 @@
- else
- { echo "configure: error: This version of the MSVC compiler, $CC_VERSION , is unsupported." 1>&2; exit 1; }
- fi
-+
-+ # bug #249782
-+ # ensure that mt.exe is Microsoft (R) Manifest Tool and not magnetic tape manipulation utility (or something else)
-+ if test "$_CC_SUITE" -ge "8"; then
-+ MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
-+ if test -n "MSMT_TOOL"; then
-+ MSMANIFEST_TOOL_VERSION=`echo ${MSMANIFEST_TOOL}|grep -Po "(^|\s)[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?(\s|$)"`
-+ if test -z "MSMANIFEST_TOOL_VERSION"; then
-+ echo "configure: warning: Unknown version of the Microsoft (R) Manifest Tool." 1>&2
-+ fi
-+ MSMANIFEST_TOOL=1
-+ unset MSMT_TOOL
-+ else
-+ { echo "Microsoft (R) Manifest Tool must be in your \$PATH." 1>&2; exit 1; }
-+ fi
-+ fi
-
- # Check linker version
- _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -ne "$_MSVC_VER_FILTER"`
---- mozilla.pure/configure.in 2008-06-16 00:25:32.000000000 +0200
-+++ mozilla/configure.in 2008-11-09 23:59:20.000000000 +0100
-@@ -126,6 +126,8 @@
- GCONF_VERSION=1.2.1
- LIBGNOME_VERSION=2.0
-
-+MSMANIFEST_TOOL=
-+
- dnl Set various checks
- dnl ========================================================
- MISSING_X=
-@@ -428,6 +430,22 @@
- else
- AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.])
- fi
-+
-+ # bug #249782
-+ # ensure that mt.exe is Microsoft (R) Manifest Tool and not magnetic tape manipulation utility (or something else)
-+ if test "$_CC_SUITE" -ge "8"; then
-+ MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
-+ if test -n "MSMT_TOOL"; then
-+ MSMANIFEST_TOOL_VERSION=`echo ${MSMANIFEST_TOOL}|grep -Po "(^|\s)[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?(\s|$)"`
-+ if test -z "MSMANIFEST_TOOL_VERSION"; then
-+ AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
-+ fi
-+ MSMANIFEST_TOOL=1
-+ unset MSMT_TOOL
-+ else
-+ AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
-+ fi
-+ fi
-
- # Check linker version
- _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -ne "$_MSVC_VER_FILTER"`
-@@ -7319,6 +7339,7 @@
- AC_SUBST(USE_N32)
- AC_SUBST(CC_VERSION)
- AC_SUBST(CXX_VERSION)
-+AC_SUBST(MSMANIFEST_TOOL)
-
- if test "$USING_HCC"; then
- CC='${topsrcdir}/build/hcc'
---- mozilla.pure/config/rules.mk 2008-01-29 20:30:22.000000000 +0100
-+++ mozilla/config/rules.mk 2008-11-09 23:59:19.968750000 +0100
-@@ -811,6 +812,12 @@
-
- ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
- $(LD) -NOLOGO -OUT:$@ -PDB:$(PDBFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(PROGOBJS) $(RESFILE) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
-+ifdef MSMANIFEST_TOOL
-+ @if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
-+ rm -f $@.manifest; \
-+ fi
-+endif # MSVC with manifest tool
- else
- ifeq ($(CPP_PROG_LINK),1)
- $(CCC) -o $@ $(CXXFLAGS) $(WRAP_MALLOC_CFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(WRAP_MALLOC_LIB) $(PROFILER_LIBS) $(EXE_DEF_FILE)
-@@ -843,6 +850,12 @@
- else
- ifeq (_WINNT,$(GNU_CC)_$(HOST_OS_ARCH))
- $(HOST_LD) -NOLOGO -OUT:$@ -PDB:$(PDBFILE) $(HOST_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
-+ifdef MSMANIFEST_TOOL
-+ @if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
-+ rm -f $@.manifest; \
-+ fi
-+endif # MSVC with manifest tool
- else
- $(HOST_CC) -o $@ $(HOST_CFLAGS) $(HOST_LDFLAGS) $(HOST_PROGOBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
- endif
-@@ -866,6 +879,12 @@
- else
- ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
- $(LD) -nologo -out:$@ -pdb:$(PDBFILE) $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
-+ifdef MSMANIFEST_TOOL
-+ @if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
-+ rm -f $@.manifest; \
-+ fi
-+endif # MSVC with manifest tool
- else
- ifeq ($(CPP_PROG_LINK),1)
- $(CCC) $(WRAP_MALLOC_CFLAGS) $(CXXFLAGS) -o $@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(WRAP_MALLOC_LIB) $(PROFILER_LIBS) $(BIN_FLAGS)
-@@ -1019,6 +1038,14 @@
- endif # SHARED_LIBRARY_LIBS
- endif # NO_LD_ARCHIVE_FLAGS
- $(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(LOBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE)
-+ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
-+ifdef MSMANIFEST_TOOL
-+ @if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;2; \
-+ rm -f $@.manifest; \
-+ fi
-+endif # MSVC with manifest tool
-+endif # WINNT && !GCC
- @rm -f foodummyfilefoo $(SUB_SHLOBJS) $(DELETE_AFTER_LINK)
- else # os2 vacpp
- $(MKSHLIB) -O:$@ -DLL -INC:_dllentry $(LDFLAGS) $(OBJS) $(LOBJS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE)
---- mozilla.pure/config/autoconf.mk.in 2006-09-14 20:07:03.000000000 +0200
-+++ mozilla/config/autoconf.mk.in 2008-11-09 23:59:19.953125000 +0100
-@@ -543,6 +543,7 @@
- MOZ_TOOLS_DIR = @MOZ_TOOLS_DIR@
- MOZ_DEBUG_SYMBOLS = @MOZ_DEBUG_SYMBOLS@
- MOZ_QUANTIFY = @MOZ_QUANTIFY@
-+MSMANIFEST_TOOL = @MSMANIFEST_TOOL@
-
- #python options
- PYTHON = @MOZ_PYTHON@
diff --git a/moz/patches/index.txt b/moz/patches/index.txt
deleted file mode 100644
index 8eb067718bc8..000000000000
--- a/moz/patches/index.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-====================================================================================
-File name
----------
- embed_manifest.patch
-
-Description
------------
- When building Mozilla with MSVC2005, generated libraries and applications
- require the manifest file (name.dll.manifest) to reside beside the file
- itself, or to be embedded.
-
- The patch does the latter: embedding the manifest file into the
- library/application itself, using the Manifest Tool from the Platform SDK
- resp. MSVC installation.
-
- The patch is effectively the patch as was committed to the Mozilla trunk,
- taken from here: https://bugzilla.mozilla.org/show_bug.cgi?id=249782#c81.
-
-====================================================================================
-File name
----------
- wchart_on_msvc8.patch
-
-Description
------------
- For compiling with MSVC2005: See https://bugzilla.mozilla.org/show_bug.cgi?id=324842.
-
-====================================================================================
-File name
----------
- cygwin_paths_in_ldap_sdk.patch
-
-Description
------------
- make 1.81, as currently part of cygwin, does not support Windows paths anymore.
- So, targets, and target dependencies, in makefile may need to be converted to cygwin
- notation. This patch does this for directory/c-sdk/ldap/include, other occurances are
- not known, yet.
-
-====================================================================================
-File name
----------
- no_core_abspath_in_nss.patch
-
-Description
------------
- On various platforms, building security/nss/cmd/shlibsign fails. In all cases, the
- error messages indicate the core_abspath macro used in the Makefile is not resolved
- properly.
- This patch replaces the usage of core_abspath with platform-specific constructs.
-
-====================================================================================
-File name
----------
- consecutive_ldap_queries.patch
-
-Description
------------
- Consecutive LDAP address book queries (using the same instance of nsAbLDAPDirectoryQuery,
- but different parameters to the DoQuery method) do not work in OOo. The reason is that
- the second call to DoQuery ignores most of its arguments, including the listener which
- is to be notified about the query results, and re-uses the arguments from the first
- call.
- The patch changes the DoQuery behavior to respect the arguments of the second call.
-
-====================================================================================
-File name
----------
- macosx_build_fix.patch.patch
-
-Description
------------
- For one, recently introduced --with-system-nspr/--with-nspr-prefix in
- moz/makefile.mk reveals that directory/c-sdk/build.mk/build.mk uses just a
- hard-coded list of nspr libraries, lacking a proper -L switch (as provided by
- nspr-config).
- For another, disabling the routine use of MOZ_ARCH and resulting
- MOZ_CROSS_COMPILE for Mac OS X in moz/makefile.mk reveals that
- xpcom/build/Makefile.in wants to link against a macmorefiles_s library
- without a proper -L switch.
diff --git a/moz/patches/libpr0n_build_fix.patch b/moz/patches/libpr0n_build_fix.patch
deleted file mode 100644
index 083e493fe782..000000000000
--- a/moz/patches/libpr0n_build_fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- misc/mozilla/modules/libpr0n/build/Makefile.in 2006-05-20 19:20:48.000000000 +0200
-+++ misc/build/mozilla/modules/libpr0n/build/Makefile.in 2011-01-19 05:18:01.318000024 +0100
-@@ -106,9 +106,9 @@
- export::
- @{ \
- $(foreach d,$(filter-out icon,$(MOZ_IMG_DECODERS)), \
-- echo "#define IMG_BUILD_DECODER_${d}";) \
-+ echo "#define IMG_BUILD_DECODER_${d}" ; ) \
- $(foreach d,$(MOZ_IMG_ENCODERS), \
-- echo "#define IMG_BUILD_ENCODER_${d}";) \
-+ echo "#define IMG_BUILD_ENCODER_${d}" ; ) \
- } > nsImgBuildDefines.tmp
- @if `cmp -s nsImgBuildDefines.h nsImgBuildDefines.tmp`; then \
- rm -f nsImgBuildDefines.tmp; \
diff --git a/moz/patches/link_fontconfig.patch b/moz/patches/link_fontconfig.patch
deleted file mode 100644
index 66e82fa63e52..000000000000
--- a/moz/patches/link_fontconfig.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- misc/mozilla/gfx/src/gtk/Makefile.in 2010-03-16 14:44:44.000000000 +0000
-+++ misc/build/mozilla/gfx/src/gtk/Makefile.in 2010-03-16 14:45:08.000000000 +0000
-@@ -183,7 +183,7 @@
- endif
-
- ifdef MOZ_ENABLE_XFT
--EXTRA_DSO_LDOPTS += $(FT2_LIBS)
-+EXTRA_DSO_LDOPTS += $(FT2_LIBS) -lfontconfig
-
- libs:: fontEncoding.properties pangoFontEncoding.properties
- $(INSTALL) $^ $(DIST)/bin/res/fonts
diff --git a/moz/patches/macosx_build_fix.patch b/moz/patches/macosx_build_fix.patch
deleted file mode 100644
index e79f58207fa7..000000000000
--- a/moz/patches/macosx_build_fix.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- misc/mozilla/directory/c-sdk/build.mk 2011-09-27 14:45:02.000000000 +0200
-+++ misc/build/mozilla/directory/c-sdk/build.mk 2011-09-27 14:44:18.000000000 +0200
-@@ -157,8 +157,8 @@
- PLDSBASE=plds$(NSPR_LIBVERSION)
- NSPRBASE=nspr$(NSPR_LIBVERSION)
-
--DYNAMICNSPR = -l$(PLCBASE) -l$(PLDSBASE) -l$(NSPRBASE)
-+DYNAMICNSPR = $(NSPR_LIBS)
-
- PLC_LIBNAME=plc$(NSPR_LIBVERSION)
- PLDS_LIBNAME=plds$(NSPR_LIBVERSION)
- ifeq ($(OS_ARCH), WINNT)
---- misc/mozilla/xpcom/build/Makefile.in 2008-06-16 00:26:11.000000000 +0200
-+++ misc/build/mozilla/xpcom/build/Makefile.in 2011-09-28 10:41:02.000000000 +0200
-@@ -135,7 +135,7 @@
- # pull in MoreFiles for MacOSX
- ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
- EXTRA_DSO_LIBS = macmorefiles_s
--EXTRA_DSO_LDOPTS += $(EXTRA_DSO_LIBS)
-+EXTRA_DSO_LDOPTS += -L$(DIST)/lib $(EXTRA_DSO_LIBS)
- EXTRA_DEPS += $(DIST)/lib/$(LIB_PREFIX)macmorefiles_s.$(LIB_SUFFIX)
- endif
-
diff --git a/moz/patches/no_core_abspath_in_nss.patch b/moz/patches/no_core_abspath_in_nss.patch
deleted file mode 100644
index 026cc7e3eb92..000000000000
--- a/moz/patches/no_core_abspath_in_nss.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- mozilla.pure/security/nss/cmd/shlibsign/Makefile 2007-02-16 03:16:24.000000000 +0100
-+++ mozilla/security/nss/cmd/shlibsign/Makefile 2008-11-05 14:04:54.798875000 +0100
-@@ -86,18 +86,47 @@
-
- include ../platrules.mk
-
--SRCDIR = $(call core_abspath,.)
--
-+ifeq ($(OS_TARGET), Darwin)
-+ SRCDIR = .
-+else
-+ifeq ($(OS_TARGET), Linux)
-+ SRCDIR = .
-+else
-+ifeq ($(OS_TARGET), WIN95)
-+ SRCDIR = $(shell cygpath -d $(SRCDIR))
-+else
-+ SRCDIR = $(call core_abspath,.)
-+endif
-+endif
-+endif
- %.chk: %.$(DLL_SUFFIX)
- ifeq ($(OS_TARGET), OS2)
- cd $(OBJDIR) ; cmd.exe /c $(SRCDIR)/sign.cmd $(DIST) \
- $(call core_abspath,$(OBJDIR)) $(OS_TARGET) \
- $(call core_abspath,$(NSPR_LIB_DIR)) $(call core_abspath,$<)
- else
-+ifeq ($(OS_TARGET), WIN95)
-+ sh $(CYGWIN_WRAPPER) ./sign.sh $(shell cygpath -d -a $(DIST)) \
-+ $(shell cygpath -d -a $(OBJDIR)) $(OS_TARGET) \
-+ $(shell cygpath -d -a $(NSPR_LIB_DIR)) $(shell cygpath -d -a $<)
-+else
-+ifeq ($(OS_TARGET), Darwin)
-+ cd $(SRCDIR) ; sh ./sign.sh $(DIST) \
-+ $(OBJDIR) $(OS_TARGET) \
-+ $(NSPR_LIB_DIR) $<
-+else
-+ifeq ($(OS_TARGET), Linux)
-+ cd $(SRCDIR) ; sh ./sign.sh $(DIST) \
-+ $(OBJDIR) $(OS_TARGET) \
-+ $(NSPR_LIB_DIR) $<
-+else
- cd $(OBJDIR) ; sh $(SRCDIR)/sign.sh $(call core_abspath,$(DIST)) \
- $(call core_abspath,$(OBJDIR)) $(OS_TARGET) \
- $(call core_abspath,$(NSPR_LIB_DIR)) $(call core_abspath,$<)
- endif
-+endif
-+endif
-+endif
-
- libs install :: $(CHECKLOC)
-
diff --git a/moz/patches/nss-linux3.patch b/moz/patches/nss-linux3.patch
deleted file mode 100644
index b73566932323..000000000000
--- a/moz/patches/nss-linux3.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- misc/mozilla/security/coreconf/arch.mk 2011-10-06 19:58:31.808695724 +0200
-+++ misc/build/mozilla/security/coreconf/arch.mk 2011-10-06 19:58:00.074648943 +0200
-@@ -152,6 +152,10 @@
-
- ifeq ($(OS_ARCH),Linux)
- OS_RELEASE := $(subst ., ,$(OS_RELEASE))
-+ # force Linux 3.x to 2.6
-+ ifeq ($(word 1,$(OS_RELEASE)),3)
-+ OS_RELEASE := 2 6
-+ endif
- ifneq ($(words $(OS_RELEASE)),1)
- OS_RELEASE := $(word 1,$(OS_RELEASE)).$(word 2,$(OS_RELEASE))
- endif
diff --git a/moz/patches/respect_disable_pango.patch b/moz/patches/respect_disable_pango.patch
deleted file mode 100644
index 07a83e9dd40a..000000000000
--- a/moz/patches/respect_disable_pango.patch
+++ /dev/null
@@ -1,54 +0,0 @@
---- misc/mozilla/gfx/src/gtk/nsDeviceContextGTK.cpp 2006-02-28 15:55:35.000000000 +0100
-+++ misc/build/mozilla/gfx/src/gtk/nsDeviceContextGTK.cpp 2009-11-13 15:12:24.000000000 +0100
-@@ -66,10 +66,12 @@
- #endif /* MOZ_WIDGET_GTK */
-
- #ifdef MOZ_WIDGET_GTK2
-+#ifdef MOZ_ENABLE_PANGO
- #include <pango/pango.h>
- #include <pango/pangox.h>
- #include <pango/pango-fontmap.h>
- #endif
-+#endif
-
- #ifdef MOZ_ENABLE_XFT
- #include "nsFontMetricsUtils.h"
-@@ -963,9 +965,11 @@
- #ifdef MOZ_WIDGET_GTK2
-
- #ifdef MOZ_ENABLE_COREXFONTS
-+#ifdef MOZ_ENABLE_PANGO
- static void xlfd_from_pango_font_description(GtkWidget *aWidget,
- const PangoFontDescription *aFontDesc,
- nsString& aFontName);
-+#endif
- #endif /* MOZ_ENABLE_COREXFONTS */
-
- nsresult
-@@ -997,10 +1001,12 @@
- #endif /* MOZ_ENABLE_XFT */
-
- #ifdef MOZ_ENABLE_COREXFONTS
-+#ifdef MOZ_ENABLE_PANGO
- // if name already set by Xft, do nothing
- if (!aFont->name.Length()) {
- xlfd_from_pango_font_description(aWidget, desc, aFont->name);
- }
-+#endif /* MOZ_ENABLE_PANGO */
- #endif /* MOZ_ENABLE_COREXFONTS */
- aFont->weight = pango_font_description_get_weight(desc);
-
-@@ -1104,6 +1110,7 @@
- #endif /* MOZ_ENABLE_XFT */
-
- #if defined(MOZ_WIDGET_GTK2) && defined(MOZ_ENABLE_COREXFONTS)
-+#ifdef MOZ_ENABLE_PANGO
- // xlfd_from_pango_font_description copied from vte, which was
- // written by nalin@redhat.com, and added some codes.
- static void
-@@ -1226,4 +1233,5 @@
- g_free(spec);
- g_object_unref(font);
- }
-+#endif
- #endif /* MOZ_WIDGET_GTK2 && MOZ_ENABLE_COREXFONTS */
diff --git a/moz/patches/seamonkey-1.1.14.source-macosx10.6and7.patch b/moz/patches/seamonkey-1.1.14.source-macosx10.6and7.patch
deleted file mode 100644
index e74c4e46c381..000000000000
--- a/moz/patches/seamonkey-1.1.14.source-macosx10.6and7.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- misc/mozilla/widget/src/mac/Makefile.in 2006-08-04 20:52:25.000000000 +0200
-+++ misc/build/mozilla/widget/src/mac/Makefile.in 2012-06-04 23:26:18.000000000 +0200
-@@ -130,7 +130,7 @@
- RES_SRC = $(srcdir)/nsMacWidget.r
-
- $(RES_DEST): $(RES_SRC)
-- /Developer/Tools/Rez -i /Developer/Headers/FlatCarbon -useDF $(RES_SRC) -o $(RES_DEST)
-+ Rez -i $(MACOS_SDK_DIR)/Developer/Headers/FlatCarbon -useDF $(RES_SRC) -o $(RES_DEST)
-
- libs:: $(RES_DEST)
-
---- misc/mozilla/widget/src/mac/nsMacWindow.cpp 2007-11-19 21:40:08.000000000 +0100
-+++ misc/build/mozilla/widget/src/mac/nsMacWindow.cpp 2012-06-04 22:26:29.000000000 +0200
-@@ -1209,7 +1209,7 @@
- if (!sChecked) {
- sChecked = PR_TRUE;
- #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
-- transitionFunc = ::TransitionWindowWithOptions;
-+ transitionFunc = (TransitionWindowWithOptions_type) ::TransitionWindowWithOptions; // last TransitionWindowOptions* param is const* in 10.6
- #else
- CFBundleRef carbonBundle =
- ::CFBundleGetBundleWithIdentifier(CFSTR("com.apple.Carbon"));
---- misc/mozilla/xpfe/bootstrap/appleevents/Makefile.in 2006-01-05 17:41:23.000000000 +0100
-+++ misc/build/mozilla/xpfe/bootstrap/appleevents/Makefile.in 2012-06-04 23:35:22.000000000 +0200
-@@ -112,7 +112,7 @@
-
- # convert AppleScript dictionary .sdef file into .r format, and thence to .rsrc
- SDP_TOOL = $(SDP)
--REZ_TOOL = /Developer/Tools/Rez
-+REZ_TOOL = Rez
- SDEF_SRC = $(srcdir)/mozilla.sdef
- RES_DEST = mozillaSuite.r
- RSRC_DEST = mozillaSuite.rsrc
diff --git a/moz/patches/ssl-linux-no_as_needed_linker_option.patch b/moz/patches/ssl-linux-no_as_needed_linker_option.patch
deleted file mode 100644
index 3abce6da055f..000000000000
--- a/moz/patches/ssl-linux-no_as_needed_linker_option.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- misc/mozilla/security/manager/ssl/src/Makefile.in 2012-06-30 19:47:42.190501730 +0200
-+++ misc/build/mozilla/security/manager/ssl/src/Makefile.in 2012-06-30 19:44:08.654510143 +0200
-@@ -137,6 +137,7 @@
- $(MOZ_UNICHARUTIL_LIBS) \
- $(MOZ_COMPONENT_LIBS) \
- $(MOZ_JS_LIBS) \
-+ $(LDFLAG_NO_AS_NEEDED) \
- $(NSS_LIBS) \
- $(NULL)
-
diff --git a/moz/patches/wchart_on_msvc8.patch b/moz/patches/wchart_on_msvc8.patch
deleted file mode 100644
index a8f31cd4c3e3..000000000000
--- a/moz/patches/wchart_on_msvc8.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- mozilla.pure/configure.in 2008-06-16 00:25:32.000000000 +0200
-+++ mozilla/configure.in 2008-11-10 16:15:36.859375000 +0100
-@@ -425,6 +425,7 @@
- _CC_SUITE=7
- elif test "$_CC_MAJOR_VERSION" = "14"; then
- _CC_SUITE=8
-+ CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
- else
- AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.])
- fi
---- mozilla.pure/configure 2008-06-16 00:25:31.000000000 +0200
-+++ mozilla/configure 2008-11-10 16:15:30.437500000 +0100
-@@ -3022,6 +3022,7 @@
- _CC_SUITE=7
- elif test "$_CC_MAJOR_VERSION" = "14"; then
- _CC_SUITE=8
-+ CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
- else
- { echo "configure: error: This version of the MSVC compiler, $CC_VERSION , is unsupported." 1>&2; exit 1; }
- fi
diff --git a/moz/prj/build.lst b/moz/prj/build.lst
index 02c1bae213df..0694876ac083 100644
--- a/moz/prj/build.lst
+++ b/moz/prj/build.lst
@@ -1,4 +1,2 @@
moz moz : solenv NSS:nss NULL
-moz moz usr1 - all moz_mkout NULL
moz moz nmake - all moz_mozilla NULL
-moz moz\zipped nmake - all moz_zipped moz_mozilla NULL
diff --git a/moz/prj/d.lst b/moz/prj/d.lst
index caceae6af3f3..e69de29bb2d1 100644
--- a/moz/prj/d.lst
+++ b/moz/prj/d.lst
@@ -1,242 +0,0 @@
-mkdir: %_DEST%\inc\mozilla
-mkdir: %COMMON_DEST%\inc\mozilla
-mkdir: %_DEST%\inc\mozilla\moz
-
-mkdir: %_DEST%\inc\mozilla\absync
-mkdir: %_DEST%\inc\mozilla\accessibility
-mkdir: %_DEST%\inc\mozilla\AcctIdl
-mkdir: %_DEST%\inc\mozilla\appcomps
-mkdir: %_DEST%\inc\mozilla\appshell
-mkdir: %_DEST%\inc\mozilla\appstartup
-mkdir: %_DEST%\inc\mozilla\bookmarks
-mkdir: %_DEST%\inc\mozilla\caps
-mkdir: %_DEST%\inc\mozilla\chardet
-mkdir: %_DEST%\inc\mozilla\content_xsl
-mkdir: %_DEST%\inc\mozilla\content_xul
-mkdir: %_DEST%\inc\mozilla\cookie
-mkdir: %_DEST%\inc\mozilla\docshell
-mkdir: %_DEST%\inc\mozilla\dom
-mkdir: %_DEST%\inc\mozilla\editor
-mkdir: %_DEST%\inc\mozilla\expat
-mkdir: %_DEST%\inc\mozilla\exthandler
-mkdir: %_DEST%\inc\mozilla\find
-mkdir: %_DEST%\inc\mozilla\gfx
-mkdir: %_DEST%\inc\mozilla\gfx2
-mkdir: %_DEST%\inc\mozilla\gfxwin
-mkdir: %_DEST%\inc\mozilla\gkplugin
-mkdir: %_DEST%\inc\mozilla\helperAppDlg
-mkdir: %_DEST%\inc\mozilla\history
-mkdir: %_DEST%\inc\mozilla\htmlparser
-mkdir: %_DEST%\inc\mozilla\imgicon
-mkdir: %_DEST%\inc\mozilla\imglib2
-mkdir: %_DEST%\inc\mozilla\import
-mkdir: %_DEST%\inc\mozilla\intlcmpt
-mkdir: %_DEST%\inc\mozilla\jar
-mkdir: %_DEST%\inc\mozilla\java
-mkdir: %_DEST%\inc\mozilla\jpeg
-mkdir: %_DEST%\inc\mozilla\js
-mkdir: %_DEST%\inc\mozilla\jsconsole
-mkdir: %_DEST%\inc\mozilla\jsurl
-mkdir: %_DEST%\inc\mozilla\layout
-mkdir: %_DEST%\inc\mozilla\layout_xul
-mkdir: %_DEST%\inc\mozilla\ldap
-mkdir: %_DEST%\inc\mozilla\ldap\ldap
-mkdir: %_DEST%\inc\mozilla\ldap-nspr
-mkdir: %_DEST%\inc\mozilla\lwbrk
-mkdir: %_DEST%\inc\mozilla\mailnews
-mkdir: %_DEST%\inc\mozilla\mimeemitter
-mkdir: %_DEST%\inc\mozilla\mimetype
-mkdir: %_DEST%\inc\mozilla\mng
-mkdir: %_DEST%\inc\mozilla\mork
-mkdir: %_DEST%\inc\mozilla\mozbrwsr
-mkdir: %_DEST%\inc\mozilla\mozreg
-mkdir: %_DEST%\inc\mozilla\mpfilelocprovider
-mkdir: %_DEST%\inc\mozilla\msgbaseutil
-mkdir: %_DEST%\inc\mozilla\msgcompo
-mkdir: %_DEST%\inc\mozilla\msgdb
-mkdir: %_DEST%\inc\mozilla\msgimap
-mkdir: %_DEST%\inc\mozilla\msglocal
-mkdir: %_DEST%\inc\mozilla\msgnews
-mkdir: %_DEST%\inc\mozilla\msgsearch
-mkdir: %_DEST%\inc\mozilla\necko2
-mkdir: %_DEST%\inc\mozilla\nkcache
-mkdir: %_DEST%\inc\mozilla\nspr
-mkdir: %_DEST%\inc\mozilla\nspr\obsolete
-mkdir: %_DEST%\inc\mozilla\nspr\private
-mkdir: %_DEST%\inc\mozilla\nsprefm
-mkdir: %_DEST%\inc\mozilla\nss
-mkdir: %_DEST%\inc\mozilla\oji
-mkdir: %_DEST%\inc\mozilla\obsolete
-mkdir: %_DEST%\inc\mozilla\plugin
-mkdir: %_DEST%\inc\mozilla\png
-mkdir: %_DEST%\inc\mozilla\prefmigr
-mkdir: %_DEST%\inc\mozilla\rdfutil
-mkdir: %_DEST%\inc\mozilla\regviewer
-mkdir: %_DEST%\inc\mozilla\related
-mkdir: %_DEST%\inc\mozilla\search
-mkdir: %_DEST%\inc\mozilla\setuprsc
-mkdir: %_DEST%\inc\mozilla\shistory
-mkdir: %_DEST%\inc\mozilla\sidebar
-mkdir: %_DEST%\inc\mozilla\signonviewer
-mkdir: %_DEST%\inc\mozilla\timer
-mkdir: %_DEST%\inc\mozilla\transformiix
-mkdir: %_DEST%\inc\mozilla\txmgr
-mkdir: %_DEST%\inc\mozilla\txtsvc
-mkdir: %_DEST%\inc\mozilla\unicharutil
-mkdir: %_DEST%\inc\mozilla\uninstall
-mkdir: %_DEST%\inc\mozilla\uriloader
-mkdir: %_DEST%\inc\mozilla\urlbarhistory
-mkdir: %_DEST%\inc\mozilla\util
-mkdir: %_DEST%\inc\mozilla\view
-mkdir: %_DEST%\inc\mozilla\wallet
-mkdir: %_DEST%\inc\mozilla\walleteditor
-mkdir: %_DEST%\inc\mozilla\walletpreview
-mkdir: %_DEST%\inc\mozilla\webBrowser_core
-mkdir: %_DEST%\inc\mozilla\webshell
-mkdir: %_DEST%\inc\mozilla\widget
-mkdir: %_DEST%\inc\mozilla\windowwatcher
-mkdir: %_DEST%\inc\mozilla\xml-rpc
-mkdir: %_DEST%\inc\mozilla\xmlextras
-mkdir: %_DEST%\inc\mozilla\xpconnect
-mkdir: %_DEST%\inc\mozilla\xpicleanup
-mkdir: %_DEST%\inc\mozilla\xpinstall
-mkdir: %_DEST%\inc\mozilla\xpnet
-mkdir: %_DEST%\inc\mozilla\zlib
-
-..\%__SRC%\inc\*.h %_DEST%\inc\mozilla
-..\%__SRC%\inc\absync\* %_DEST%\inc\mozilla\absync
-..\%__SRC%\inc\accessibility\* %_DEST%\inc\mozilla\accessibility
-..\%__SRC%\inc\AcctIdl\* %_DEST%\inc\mozilla\AcctIdl
-..\%__SRC%\inc\addrbook\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\appcomps\* %_DEST%\inc\mozilla\appcomps
-..\%__SRC%\inc\appshell\* %_DEST%\inc\mozilla\appshell
-..\%__SRC%\inc\appstartup\* %_DEST%\inc\mozilla\appstartup
-..\%__SRC%\inc\bookmarks\* %_DEST%\inc\mozilla\bookmarks
-..\%__SRC%\inc\caps\* %_DEST%\inc\mozilla\caps
-..\%__SRC%\inc\chardet\* %_DEST%\inc\mozilla\chardet
-..\%__SRC%\inc\chrome\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\content\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\content_xsl\* %_DEST%\inc\mozilla\content_xsl
-..\%__SRC%\inc\content_xul\* %_DEST%\inc\mozilla\content_xul
-..\%__SRC%\inc\cookie\* %_DEST%\inc\mozilla\cookie
-..\%__SRC%\inc\docshell\* %_DEST%\inc\mozilla\docshell
-..\%__SRC%\inc\dom\* %_DEST%\inc\mozilla\dom
-..\%__SRC%\inc\editor\* %_DEST%\inc\mozilla\editor
-..\%__SRC%\inc\embed_base\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\expat\* %_DEST%\inc\mozilla\expat
-..\%__SRC%\inc\exthandler\* %_DEST%\inc\mozilla\exthandler
-..\%__SRC%\inc\find\* %_DEST%\inc\mozilla\find
-..\%__SRC%\inc\gfx\* %_DEST%\inc\mozilla\gfx
-..\%__SRC%\inc\gfx2\* %_DEST%\inc\mozilla\gfx2
-..\%__SRC%\inc\gfxwin\* %_DEST%\inc\mozilla\gfxwin
-..\%__SRC%\inc\gkplugin\* %_DEST%\inc\mozilla\gkplugin
-..\%__SRC%\inc\helperAppDlg\* %_DEST%\inc\mozilla\helperAppDlg
-..\%__SRC%\inc\history\* %_DEST%\inc\mozilla\history
-..\%__SRC%\inc\htmlparser\* %_DEST%\inc\mozilla\htmlparser
-..\%__SRC%\inc\imgicon\* %_DEST%\inc\mozilla\imgicon
-..\%__SRC%\inc\imglib2\* %_DEST%\inc\mozilla\imglib2
-..\%__SRC%\inc\import\* %_DEST%\inc\mozilla\import
-..\%__SRC%\inc\intl\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\intlcmpt\* %_DEST%\inc\mozilla\intlcmpt
-..\%__SRC%\inc\jar\* %_DEST%\inc\mozilla\jar
-..\%__SRC%\inc\java\* %_DEST%\inc\mozilla\java
-..\%__SRC%\inc\jpeg\* %_DEST%\inc\mozilla\jpeg
-..\%__SRC%\inc\js\* %_DEST%\inc\mozilla\js
-..\%__SRC%\inc\jsconsole\* %_DEST%\inc\mozilla\jsconsole
-..\%__SRC%\inc\jsurl\* %_DEST%\inc\mozilla\jsurl
-..\%__SRC%\inc\layout\* %_DEST%\inc\mozilla\layout
-..\%__SRC%\inc\layout_xul\* %_DEST%\inc\mozilla\layout_xul
-..\%__SRC%\inc\ldap\* %_DEST%\inc\mozilla\ldap
-..\%__SRC%\inc\ldap\ldap\* %_DEST%\inc\mozilla\ldap\ldap
-..\%__SRC%\inc\ldap-nspr\* %_DEST%\inc\mozilla\ldap-nspr
-..\%__SRC%\inc\locale\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\lwbrk\* %_DEST%\inc\mozilla\lwbrk
-..\%__SRC%\inc\mailnews\* %_DEST%\inc\mozilla\mailnews
-..\%__SRC%\inc\mime\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\mimeemitter\* %_DEST%\inc\mozilla\mimeemitter
-..\%__SRC%\inc\mimetype\* %_DEST%\inc\mozilla\mimetype
-..\%__SRC%\inc\mng\* %_DEST%\inc\mozilla\mng
-..\%__SRC%\inc\mork\* %_DEST%\inc\mozilla\mork
-..\%__SRC%\inc\mozbrwsr\* %_DEST%\inc\mozilla\mozbrwsr
-..\%__SRC%\inc\mozldap\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\mozreg\* %_DEST%\inc\mozilla\mozreg
-..\%__SRC%\inc\mpfilelocprovider\* %_DEST%\inc\mozilla\mpfilelocprovider
-..\%__SRC%\inc\msgbase\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\msgbaseutil\* %_DEST%\inc\mozilla\msgbaseutil
-..\%__SRC%\inc\msgcompo\* %_DEST%\inc\mozilla\msgcompo
-..\%__SRC%\inc\msgdb\* %_DEST%\inc\mozilla\msgdb
-..\%__SRC%\inc\msgimap\* %_DEST%\inc\mozilla\msgimap
-..\%__SRC%\inc\msglocal\* %_DEST%\inc\mozilla\msglocal
-..\%__SRC%\inc\msgnews\* %_DEST%\inc\mozilla\msgnews
-..\%__SRC%\inc\msgsearch\* %_DEST%\inc\mozilla\msgsearch
-..\%__SRC%\inc\necko\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\necko2\* %_DEST%\inc\mozilla\necko2
-..\%__SRC%\inc\nkcache\* %_DEST%\inc\mozilla\nkcache
-..\%__SRC%\inc\nspr\* %_DEST%\inc\mozilla\nspr
-..\%__SRC%\inc\nspr\obsolete\* %_DEST%\inc\mozilla\nspr\obsolete
-..\%__SRC%\inc\nspr\private\* %_DEST%\inc\mozilla\nspr\private
-..\%__SRC%\inc\nsprefm\* %_DEST%\inc\mozilla\nsprefm
-..\%__SRC%\inc\nss\* %_DEST%\inc\mozilla\nss
-..\%__SRC%\inc\oji\* %_DEST%\inc\mozilla\oji
-..\%__SRC%\inc\obsolete\* %_DEST%\inc\mozilla\obsolete
-..\%__SRC%\inc\plugin\* %_DEST%\inc\mozilla\plugin
-..\%__SRC%\inc\png\* %_DEST%\inc\mozilla\png
-..\%__SRC%\inc\pref\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\prefmigr\* %_DEST%\inc\mozilla\prefmigr
-..\%__SRC%\inc\profile\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\rdf\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\rdfutil\* %_DEST%\inc\mozilla\rdfutil
-..\%__SRC%\inc\regviewer\* %_DEST%\inc\mozilla\regviewer
-..\%__SRC%\inc\related\* %_DEST%\inc\mozilla\related
-..\%__SRC%\inc\search\* %_DEST%\inc\mozilla\search
-..\%__SRC%\inc\setuprsc\* %_DEST%\inc\mozilla\setuprsc
-..\%__SRC%\inc\shistory\* %_DEST%\inc\mozilla\shistory
-..\%__SRC%\inc\sidebar\* %_DEST%\inc\mozilla\sidebar
-..\%__SRC%\inc\signonviewer\* %_DEST%\inc\mozilla\signonviewer
-..\%__SRC%\inc\string\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\timer\* %_DEST%\inc\mozilla\timer
-..\%__SRC%\inc\transformiix\* %_DEST%\inc\mozilla\transformiix
-..\%__SRC%\inc\txmgr\* %_DEST%\inc\mozilla\txmgr
-..\%__SRC%\inc\txtsvc\* %_DEST%\inc\mozilla\txtsvc
-..\%__SRC%\inc\uconv\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\unicharutil\* %_DEST%\inc\mozilla\unicharutil
-..\%__SRC%\inc\uninstall\* %_DEST%\inc\mozilla\uninstall
-..\%__SRC%\inc\uriloader\* %_DEST%\inc\mozilla\uriloader
-..\%__SRC%\inc\urlbarhistory\* %_DEST%\inc\mozilla\urlbarhistory
-..\%__SRC%\inc\util\* %_DEST%\inc\mozilla\util
-..\%__SRC%\inc\view\* %_DEST%\inc\mozilla\view
-..\%__SRC%\inc\wallet\* %_DEST%\inc\mozilla\wallet
-..\%__SRC%\inc\walleteditor\* %_DEST%\inc\mozilla\walleteditor
-..\%__SRC%\inc\walletpreview\* %_DEST%\inc\mozilla\walletpreview
-..\%__SRC%\inc\webBrowser_core\* %_DEST%\inc\mozilla\webBrowser_core
-..\%__SRC%\inc\webshell\* %_DEST%\inc\mozilla\webshell
-..\%__SRC%\inc\widget\* %_DEST%\inc\mozilla\widget
-..\%__SRC%\inc\windowwatcher\* %_DEST%\inc\mozilla\windowwatcher
-..\%__SRC%\inc\xml-rpc\* %_DEST%\inc\mozilla\xml-rpc
-..\%__SRC%\inc\xmlextras\* %_DEST%\inc\mozilla\xmlextras
-..\%__SRC%\inc\xpcom\* %_DEST%\inc\mozilla\moz
-..\%__SRC%\inc\xpconnect\* %_DEST%\inc\mozilla\xpconnect
-..\%__SRC%\inc\xpicleanup\* %_DEST%\inc\mozilla\xpicleanup
-..\%__SRC%\inc\xpinstall\* %_DEST%\inc\mozilla\xpinstall
-..\%__SRC%\inc\xpnet\* %_DEST%\inc\mozilla\xpnet
-..\%__SRC%\inc\zlib\* %_DEST%\inc\mozilla\zlib
-..\%__SRC%\inc\xpcom_obsolete\* %_DEST%\inc\mozilla\moz
-
-..\%__SRC%\lib\libldap50.* %_DEST%\lib
-..\%__SRC%\lib\libmozjs.* %_DEST%\lib
-..\%__SRC%\lib\libmozz.* %_DEST%\lib
-..\%__SRC%\lib\libmsgbaseutil.* %_DEST%\lib
-..\%__SRC%\lib\libnssckbi.* %_DEST%\lib
-..\%__SRC%\lib\libnssdbm3.* %_DEST%\lib
-..\%__SRC%\lib\libnssutil3.* %_DEST%\lib
-..\%__SRC%\lib\libprldap50.* %_DEST%\lib
-..\%__SRC%\lib\libxpcom.* %_DEST%\lib
-..\%__SRC%\lib\libxpcom_compat.* %_DEST%\lib
-..\%__SRC%\lib\libxpcom_core.* %_DEST%\lib
-..\%__SRC%\lib\*.a %_DEST%\lib
-..\%__SRC%\lib\*.lib %_DEST%\lib
-
-mkdir: %_DEST%\lib\sqlite
-..\%__SRC%\lib\libsqlite3.* %_DEST%\lib\sqlite
-
-..\%__SRC%\bin\*.zip %_DEST%\bin
diff --git a/moz/prj/dmake b/moz/prj/dmake
deleted file mode 100644
index e69de29bb2d1..000000000000
--- a/moz/prj/dmake
+++ /dev/null
diff --git a/moz/seamonkey-source-1.1.14.patch b/moz/seamonkey-source-1.1.14.patch
deleted file mode 100644
index 1d0db1f5db3e..000000000000
--- a/moz/seamonkey-source-1.1.14.patch
+++ /dev/null
@@ -1,6502 +0,0 @@
---- misc/mozilla/build/autoconf/mozconfig-find 2007-02-16 03:19:06.000000000 +0100
-+++ misc/build/mozilla/build/autoconf/mozconfig-find 2008-08-19 10:12:04.000000000 +0200
-@@ -51,10 +51,7 @@
- "$topsrcdir/.mozconfig" \
- "$topsrcdir/mozconfig" \
- "$topsrcdir/mozconfig.sh" \
-- "$topsrcdir/myconfig.sh" \
-- "$HOME/.mozconfig" \
-- "$HOME/.mozconfig.sh" \
-- "$HOME/.mozmyconfig.sh"
-+ "$topsrcdir/myconfig.sh"
- do
- if test -f "$_config"; then
- echo "$_config";
---- misc/mozilla/build/cygwin-wrapper 2004-08-19 01:18:55.000000000 +0200
-+++ misc/build/mozilla/build/cygwin-wrapper 2008-08-14 16:22:21.000000000 +0200
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/bin/bash
- #
- # Stupid wrapper to avoid win32 dospath/cygdrive issues
- # Try not to spawn programs from within this file. If the stuff in here looks royally
-@@ -57,12 +57,36 @@
- i=-I${mountpoint}/${driveletter}/${pathname}
- fi
- else
-- eval 'leader=${i%%'${mountpoint}'/[a-zA-Z]/*}'
-- if ! test "${leader}" = "${i}"; then
-- eval 'pathname=${i#'${leader}${mountpoint}'/[a-zA-Z]/}'
-- eval 'no_mountpoint=${i#'${leader}${mountpoint}'/}'
-- driveletter=${no_mountpoint%%/*}
-- i=${leader}${driveletter}:/${pathname}
-+ # The original version missed mounted paths, the new version below
-+ # doesn't transform /para as this is most likely a parameter.
-+ eval 'notinpath=${i%%'${mountpoint}'/[a-zA-Z]/*}'
-+ if ! test "$notinpath" = "$i"; then
-+ # found $mountpoint
-+ eval 'restpath=${i#'${notinpath}${mountpoint}'/[a-zA-Z]/}'
-+ eval 'withdrive=${i#'${notinpath}${mountpoint}'/}'
-+ driveletter=${withdrive%%/*}
-+ i=${notinpath}${driveletter}:/${restpath}
-+ else
-+ # check for potential path. Precheck using shell methods
-+ doconvert=""
-+ # Shortcut -X<path> when path does not begin with '/'
-+ noswitch=${i#-[a-zA-Z]}
-+ if test "$noswitch" != "$i"; then
-+ test "${noswitch#/}" != "$noswitch" && doconvert="1"
-+ fi
-+ # Precheck for possible path. Consider only absolute paths that contain at least
-+ # a second / to prevent converting of /abc parameters.
-+ test -z "$doconvert" -a "${i#/[a-zA-Z0-9_.-]*/}" != "$i" && doconvert="1"
-+ if test -n "$doconvert"; then
-+ # Can be a path. If forking grep would be faster or we could require bash 3
-+ # this regexp would be all that's needed to find pathnames that need converting
-+ pathname=`echo $i | grep -oE '^(-[a-zA-Z])?/[a-zA-Z0-9_.-]+/[a-zA-Z0-9_./-]+$'`
-+ eval 'notinpath=${i%'${pathname}'}'
-+ if test "$notinpath" != "$i" -a "$pathname" != "${pathname#/}"; then
-+ pathname=`cygpath -am "$pathname"`
-+ i=${notinpath}${pathname}
-+ fi
-+ fi
- fi
- fi
- fi
---- misc/mozilla/config/Makefile.in 2006-12-22 14:50:41.000000000 +0100
-+++ misc/build/mozilla/config/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -166,7 +166,7 @@
-
- ifdef MOZ_ENABLE_GTK2
- GLIB_CFLAGS = $(MOZ_GTK2_CFLAGS)
-- GLIB_LIBS = $(MOZ_GTK2_LIBS)
-+ GLIB_LIBS = $(filter -lglib% -L%,$(MOZ_GTK2_LIBS))
- endif
-
- build_number: FORCE
---- misc/mozilla/config/autoconf.mk.in 2006-09-14 20:07:03.000000000 +0200
-+++ misc/build/mozilla/config/autoconf.mk.in 2008-11-07 16:08:52.937500000 +0100
-@@ -543,6 +543,7 @@
- MOZ_TOOLS_DIR = @MOZ_TOOLS_DIR@
- MOZ_DEBUG_SYMBOLS = @MOZ_DEBUG_SYMBOLS@
- MOZ_QUANTIFY = @MOZ_QUANTIFY@
-+MSMANIFEST_TOOL = @MSMANIFEST_TOOL@
-
- #python options
- PYTHON = @MOZ_PYTHON@
---- misc/mozilla/config/config.mk 2008-01-29 20:30:22.000000000 +0100
-+++ misc/build/mozilla/config/config.mk 2008-08-14 16:22:21.000000000 +0200
-@@ -758,6 +758,30 @@
- endif
-
- #
-+# Shared library RUNPATH linker option(s)
-+#
-+ifeq ($(OS_ARCH),FreeBSD)
-+EXTRA_DSO_LDOPTS += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
-+ifdef IS_COMPONENT
-+EXTRA_DSO_LDOPTS += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN/..:\$$ORIGIN/../../ure-link/lib
-+endif # IS_COMPONENT
-+endif # FreeBSD
-+
-+ifeq ($(OS_ARCH),Linux)
-+EXTRA_DSO_LDOPTS += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
-+ifdef IS_COMPONENT
-+EXTRA_DSO_LDOPTS += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN/..:\$$ORIGIN/../../ure-link/lib
-+endif # IS_COMPONENT
-+endif # Linux
-+
-+ifeq ($(OS_ARCH),SunOS)
-+EXTRA_DSO_LDOPTS += -R '$$ORIGIN'
-+ifdef IS_COMPONENT
-+EXTRA_DSO_LDOPTS += -R '$$ORIGIN/..'
-+endif # IS_COMPONENT
-+endif # SunOS
-+
-+#
- # Include any personal overrides the user might think are needed.
- #
- -include $(MY_CONFIG)
---- misc/mozilla/config/rules.mk 2008-01-29 20:30:22.000000000 +0100
-+++ misc/build/mozilla/config/rules.mk 2009-02-16 14:05:23.000000000 +0100
-@@ -529,8 +529,9 @@
- ifeq ($(OS_ARCH),WINNT)
- ifdef GNU_CC
- ifndef IS_COMPONENT
--DSO_LDOPTS += -Wl,--out-implib -Wl,$(IMPORT_LIBRARY)
-+DSO_LDOPTS += -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(IMPORT_LIBRARY)
- endif
-+DSO_LDOPTS += -Wl,--enable-runtime-pseudo-reloc -Wl,-Map -Wl,$(LIB_PREFIX)$(LIBRARY_NAME).map
- endif
- endif
-
-@@ -811,6 +810,12 @@
-
- ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
- $(LD) -NOLOGO -OUT:$@ -PDB:$(PDBFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(PROGOBJS) $(RESFILE) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
-+ifdef MSMANIFEST_TOOL
-+ @if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
-+ rm -f $@.manifest; \
-+ fi
-+endif # MSVC with manifest tool
- else
- ifeq ($(CPP_PROG_LINK),1)
- $(CCC) -o $@ $(CXXFLAGS) $(WRAP_MALLOC_CFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(WRAP_MALLOC_LIB) $(PROFILER_LIBS) $(EXE_DEF_FILE)
-@@ -843,6 +848,12 @@
- else
- ifeq (_WINNT,$(GNU_CC)_$(HOST_OS_ARCH))
- $(HOST_LD) -NOLOGO -OUT:$@ -PDB:$(PDBFILE) $(HOST_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
-+ifdef MSMANIFEST_TOOL
-+ @if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
-+ rm -f $@.manifest; \
-+ fi
-+endif # MSVC with manifest tool
- else
- $(HOST_CC) -o $@ $(HOST_CFLAGS) $(HOST_LDFLAGS) $(HOST_PROGOBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
- endif
-@@ -866,6 +877,12 @@
- else
- ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
- $(LD) -nologo -out:$@ -pdb:$(PDBFILE) $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
-+ifdef MSMANIFEST_TOOL
-+ @if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
-+ rm -f $@.manifest; \
-+ fi
-+endif # MSVC with manifest tool
- else
- ifeq ($(CPP_PROG_LINK),1)
- $(CCC) $(WRAP_MALLOC_CFLAGS) $(CXXFLAGS) -o $@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(WRAP_MALLOC_LIB) $(PROFILER_LIBS) $(BIN_FLAGS)
-@@ -1019,6 +1036,14 @@
- endif # SHARED_LIBRARY_LIBS
- endif # NO_LD_ARCHIVE_FLAGS
- $(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(LOBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE)
-+ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
-+ifdef MSMANIFEST_TOOL
-+ @if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;2; \
-+ rm -f $@.manifest; \
-+ fi
-+endif # MSVC with manifest tool
-+endif # WINNT && !GCC
- @rm -f foodummyfilefoo $(SUB_SHLOBJS) $(DELETE_AFTER_LINK)
- else # os2 vacpp
- $(MKSHLIB) -O:$@ -DLL -INC:_dllentry $(LDFLAGS) $(OBJS) $(LOBJS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE)
-@@ -1043,7 +1070,7 @@
- if test -d $(@D); then \
- echo "Building deps for $<"; \
- touch $(_MDDEPFILE) && \
-- $(MKDEPEND) -o'.$(OBJ_SUFFIX)' -f$(_MDDEPFILE) $(DEFINES) $(ACDEFINES) $(INCLUDES) $< >/dev/null 2>&1 && \
-+ $(MKDEPEND) -o'.$(OBJ_SUFFIX)' -f$(_MDDEPFILE) $(DEFINES) $(ACDEFINES) $(filter-out -I/so/env% ,$(INCLUDES)) $< >/dev/null 2>&1 && \
- mv $(_MDDEPFILE) $(_MDDEPFILE).old && \
- cat $(_MDDEPFILE).old | sed -e "s|^$(srcdir)/||" -e "s|^$(win_srcdir)/||" > $(_MDDEPFILE) && rm -f $(_MDDEPFILE).old ; \
- fi
-@@ -1053,7 +1080,7 @@
- if test -d $(@D); then \
- echo "Building deps for $<"; \
- touch $(_MDDEPFILE) && \
-- $(MKDEPEND) -o'.$(OBJ_SUFFIX)' -f$(_MDDEPFILE) $(DEFINES) $(ACDEFINES) $(INCLUDES) $< >/dev/null 2>&1 && \
-+ $(MKDEPEND) -o'.$(OBJ_SUFFIX)' -f$(_MDDEPFILE) $(DEFINES) $(ACDEFINES) $(filter-out -I/so/env% ,$(INCLUDES)) $< >/dev/null 2>&1 && \
- mv $(_MDDEPFILE) $(_MDDEPFILE).old && \
- cat $(_MDDEPFILE).old | sed -e "s|^$(<D)/||g" > $(_MDDEPFILE) && rm -f $(_MDDEPFILE).old ; \
- fi
-@@ -1696,14 +1724,14 @@
- define MAKE_DEPS_NOAUTO
- set -e ; \
- touch $@ && \
-- $(MKDEPEND) -w1024 -o'.$(OBJ_SUFFIX)' -f$@ $(DEFINES) $(ACDEFINES) $(INCLUDES) $(srcdir)/$(<F) >/dev/null 2>&1 && \
-+ $(MKDEPEND) -w1024 -o'.$(OBJ_SUFFIX)' -f$@ $(DEFINES) $(ACDEFINES) $(filter-out -I/so/env% ,$(INCLUDES)) $(srcdir)/$(<F) >/dev/null 2>&1 && \
- mv $@ $@.old && cat $@.old | sed "s|^$(srcdir)/||g" > $@ && rm -f $@.old
- endef
- else
- define MAKE_DEPS_NOAUTO
- set -e ; \
- touch $@ && \
-- $(MKDEPEND) -w1024 -o'.$(OBJ_SUFFIX)' -f$@ $(DEFINES) $(ACDEFINES) $(INCLUDES) $< >/dev/null 2>&1 && \
-+ $(MKDEPEND) -w1024 -o'.$(OBJ_SUFFIX)' -f$@ $(DEFINES) $(ACDEFINES) $(filter-out -I/so/env% ,$(INCLUDES)) $< >/dev/null 2>&1 && \
- mv $@ $@.old && cat $@.old | sed "s|^$(<D)/||g" > $@ && rm -f $@.old
- endef
- endif # WINNT
---- misc/mozilla/configure 2008-10-30 23:05:30.000000000 +0100
-+++ misc/build/mozilla/configure 2009-02-12 15:20:18.597579000 +0100
-@@ -1068,6 +1068,8 @@
- GCONF_VERSION=1.2.1
- LIBGNOME_VERSION=2.0
-
-+MSMANIFEST_TOOL=
-+
- MISSING_X=
- for ac_prog in gawk mawk nawk awk
- do
-@@ -3022,9 +3024,26 @@
- _CC_SUITE=7
- elif test "$_CC_MAJOR_VERSION" = "14"; then
- _CC_SUITE=8
-+ CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
- else
- { echo "configure: error: This version of the MSVC compiler, $CC_VERSION , is unsupported." 1>&2; exit 1; }
- fi
-+
-+ # bug #249782
-+ # ensure that mt.exe is Microsoft (R) Manifest Tool and not magnetic tape manipulation utility (or something else)
-+ if test "$_CC_SUITE" -ge "8"; then
-+ MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
-+ if test -n "MSMT_TOOL"; then
-+ MSMANIFEST_TOOL_VERSION=`echo ${MSMANIFEST_TOOL}|grep -Po "(^|\s)[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?(\s|$)"`
-+ if test -z "MSMANIFEST_TOOL_VERSION"; then
-+ echo "configure: warning: Unknown version of the Microsoft (R) Manifest Tool." 1>&2
-+ fi
-+ MSMANIFEST_TOOL=1
-+ unset MSMT_TOOL
-+ else
-+ { echo "Microsoft (R) Manifest Tool must be in your \$PATH." 1>&2; exit 1; }
-+ fi
-+ fi
-
- # Check linker version
- _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -ne "$_MSVC_VER_FILTER"`
-@@ -3422,6 +3441,8 @@
- ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
- cross_compiling=$ac_cv_prog_cc_cross
- fi
-+else
-+ ac_cv_prog_CXXCPP="$CXXCPP"
- fi
- CXXCPP="$ac_cv_prog_CXXCPP"
- echo "$ac_t""$CXXCPP" 1>&6
-@@ -5726,6 +5747,7 @@
- if test "`echo ${srcdir} | grep -c ^/ 2>/dev/null`" = 0; then
- _pwd=`pwd`
- CYGWIN_WRAPPER="${_pwd}/${srcdir}/build/cygwin-wrapper"
-+ CYGWIN_WRAPPER=`cygpath -u $CYGWIN_WRAPPER`
- fi
- if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then
- AS_PERL=1
-@@ -6036,7 +6058,7 @@
- CXXFLAGS="$CXXFLAGS -fpascal-strings -no-cpp-precomp -fno-common"
- DLL_SUFFIX=".dylib"
- DSO_LDOPTS=''
-- STRIP="$STRIP -x -S"
-+ STRIP="$STRIP -X -S" # MACOSX 10.5 strip -x sometimes fails
- _PLATFORM_DEFAULT_TOOLKIT='mac'
- MOZ_ENABLE_POSTSCRIPT=
- TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
-@@ -6075,7 +6097,7 @@
- ;;
-
- *-freebsd*)
-- if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` != "elf"; then
-+ if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo elf` != "elf"; then
- DLL_SUFFIX=".so.1.0"
- DSO_LDOPTS="-shared"
- fi
-@@ -6455,12 +6477,12 @@
-
-
- case "$host" in
-- *-mingw*)
-- CYGPATH_W=echo
-+ *-cygwin*|*-mingw*)
-+ CYGPATH_W="cygpath -u"
- CYGPATH_S=cat
-- MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
-+ MOZ_BUILD_ROOT=`$CYGPATH_W $MOZ_BUILD_ROOT | $CYGPATH_S`
- ;;
-- *-cygwin*|*-msvc*|*-mks*)
-+ *-msvc*|*-mks*)
- CYGPATH_W="cygpath -a -w"
- CYGPATH_S="sed -e s|\\\\|/|g"
- MOZ_BUILD_ROOT=`$CYGPATH_W $MOZ_BUILD_ROOT | $CYGPATH_S`
-@@ -6718,7 +6740,7 @@
- MOZ_USER_DIR="Mozilla"
-
- if test "$MOZTOOLS"; then
-- MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'`
-+ MOZ_TOOLS_DIR=`echo $MOZTOOLS`
- else
- { echo "configure: error: MOZTOOLS is not set" 1>&2; exit 1; }
- fi
-@@ -8614,6 +8636,8 @@
- case $target in
- *-hpux11.*)
- ;;
-+*-freebsd*)
-+ ;;
- *)
- echo $ac_n "checking for gethostbyname_r in -lc_r""... $ac_c" 1>&6
- echo "configure:8620: checking for gethostbyname_r in -lc_r" >&5
-@@ -19233,7 +19257,8 @@
- MOZ_CAIRO_LIBS="-lmozcairo -lmozlibpixman $CAIRO_FT_LIBS"
-
- if test "$MOZ_X11"; then
-- MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS -lXrender $XLIBS -lfontconfig -lfreetype"
-+# MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS -lXrender $XLIBS -lfontconfig -lfreetype"
-+ MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS $XLIBS -lfontconfig -lfreetype"
- fi
- if test "$MOZ_WIDGET_TOOLKIT" = "windows"; then
- MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS -lgdi32"
-@@ -20076,8 +20101,12 @@
- WIN_TOP_SRC=`cd $srcdir; pwd -W`
- ;;
- cygwin*|msvc*|mks*)
-- HOST_CC="\$(CYGWIN_WRAPPER) $HOST_CC"
-- HOST_CXX="\$(CYGWIN_WRAPPER) $HOST_CXX"
-+# Don't add the wrapper for the HOST_* versions as they contain an
-+# unexpanded $CC and therfore wil get the wrapper below.
-+ if test -n "$GNU_CC"; then
-+ HOST_CC="\$(CYGWIN_WRAPPER) $HOST_CC"
-+ HOST_CXX="\$(CYGWIN_WRAPPER) $HOST_CXX"
-+ fi
- CC="\$(CYGWIN_WRAPPER) $CC"
- CXX="\$(CYGWIN_WRAPPER) $CXX"
- CPP="\$(CYGWIN_WRAPPER) $CPP"
---- misc/mozilla/configure.in 2008-10-30 23:05:31.000000000 +0100
-+++ misc/build/mozilla/configure.in 2009-02-05 20:12:45.456777753 +0100
-@@ -126,6 +126,8 @@
- GCONF_VERSION=1.2.1
- LIBGNOME_VERSION=2.0
-
-+MSMANIFEST_TOOL=
-+
- dnl Set various checks
- dnl ========================================================
- MISSING_X=
-@@ -425,9 +427,26 @@
- _CC_SUITE=7
- elif test "$_CC_MAJOR_VERSION" = "14"; then
- _CC_SUITE=8
-+ CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
- else
- AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.])
- fi
-+
-+ # bug #249782
-+ # ensure that mt.exe is Microsoft (R) Manifest Tool and not magnetic tape manipulation utility (or something else)
-+ if test "$_CC_SUITE" -ge "8"; then
-+ MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
-+ if test -n "MSMT_TOOL"; then
-+ MSMANIFEST_TOOL_VERSION=`echo ${MSMANIFEST_TOOL}|grep -Po "(^|\s)[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?(\s|$)"`
-+ if test -z "MSMANIFEST_TOOL_VERSION"; then
-+ AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
-+ fi
-+ MSMANIFEST_TOOL=1
-+ unset MSMT_TOOL
-+ else
-+ AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
-+ fi
-+ fi
-
- # Check linker version
- _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -ne "$_MSVC_VER_FILTER"`
-@@ -1530,7 +1549,7 @@
- CXXFLAGS="$CXXFLAGS -fpascal-strings -no-cpp-precomp -fno-common"
- DLL_SUFFIX=".dylib"
- DSO_LDOPTS=''
-- STRIP="$STRIP -x -S"
-+ STRIP="$STRIP -X -S" # MACOSX 10.5 strip -x sometimes fails
- _PLATFORM_DEFAULT_TOOLKIT='mac'
- MOZ_ENABLE_POSTSCRIPT=
- TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
-@@ -1552,7 +1571,7 @@
- ;;
-
- *-freebsd*)
-- if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` != "elf"; then
-+ if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo elf` != "elf"; then
- DLL_SUFFIX=".so.1.0"
- DSO_LDOPTS="-shared"
- fi
-@@ -1853,10 +1872,10 @@
-
- dnl MinGW/MSYS doesn't provide or need cygpath
- case "$host" in
-- *-mingw*)
-- CYGPATH_W=echo
-+ *-cygwin*|*-mingw*)
-+ CYGPATH_W="cygpath -u"
- CYGPATH_S=cat
-- MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
-+ MOZ_BUILD_ROOT=`$CYGPATH_W $MOZ_BUILD_ROOT | $CYGPATH_S`
- ;;
- *-cygwin*|*-msvc*|*-mks*)
- CYGPATH_W="cygpath -a -w"
-@@ -2749,6 +2768,8 @@
- case $target in
- *-hpux11.*)
- ;;
-+*-freebsd*)
-+ ;;
- *)
- AC_CHECK_LIB(c_r, gethostbyname_r)
- ;;
-@@ -7321,6 +7342,7 @@
- AC_SUBST(USE_N32)
- AC_SUBST(CC_VERSION)
- AC_SUBST(CXX_VERSION)
-+AC_SUBST(MSMANIFEST_TOOL)
-
- if test "$USING_HCC"; then
- CC='${topsrcdir}/build/hcc'
-@@ -7416,8 +7438,12 @@
- WIN_TOP_SRC=`cd $srcdir; pwd -W`
- ;;
- cygwin*|msvc*|mks*)
-- HOST_CC="\$(CYGWIN_WRAPPER) $HOST_CC"
-- HOST_CXX="\$(CYGWIN_WRAPPER) $HOST_CXX"
-+# Don't add the wrapper for the HOST_* versions as they contain an
-+# unexpanded $CC and therfore wil get the wrapper below.
-+ if test -n "$GNU_CC"; then
-+ HOST_CC="\$(CYGWIN_WRAPPER) $HOST_CC"
-+ HOST_CXX="\$(CYGWIN_WRAPPER) $HOST_CXX"
-+ fi
- CC="\$(CYGWIN_WRAPPER) $CC"
- CXX="\$(CYGWIN_WRAPPER) $CXX"
- CPP="\$(CYGWIN_WRAPPER) $CPP"
---- misc/mozilla/directory/c-sdk/build.mk 2006-02-03 15:44:29.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/build.mk 2008-08-14 16:22:21.000000000 +0200
-@@ -384,7 +384,7 @@
- ifdef NS_USE_GCC
- LINK_EXE = $(CC) -o $@ $(LDFLAGS) $(LCFLAGS) $(DEPLIBS) $(OBJS) $(EXTRA_LIBS) $(PLATFORMLIBS)
- LINK_LIB = $(AR) cr $@ $(OBJS)
--LINK_DLL = $(CC) -shared -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(@:.$(DLL_SUFFIX)=.$(LIB_SUFFIX)) $(LLFLAGS) $(DLL_LDFLAGS) -o $@ $(OBJS) $(EXTRA_LIBS) $(EXTRA_DLL_LIBS)
-+LINK_DLL = $(CC) -shared -Wl,--enable-runtime-pseudo-reloc -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(LIB_PREFIX)$(@:.$(DLL_SUFFIX)=.$(LIB_SUFFIX)) $(LLFLAGS) $(DLL_LDFLAGS) -o $@ $(OBJS) $(EXTRA_LIBS) $(EXTRA_DLL_LIBS)
- else
- DEBUG_LINK_OPT=-DEBUG
- ifeq ($(BUILD_OPT), 1)
---- misc/mozilla/directory/c-sdk/config/FreeBSD.mk 2006-02-03 15:41:11.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/config/FreeBSD.mk 2008-08-14 16:22:21.000000000 +0200
-@@ -70,7 +70,7 @@
-
- ARCH = freebsd
-
--MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo aout)
-+MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo elf)
-
- ifeq ($(MOZ_OBJFORMAT),elf)
- DLL_SUFFIX = so
---- misc/mozilla/directory/c-sdk/config/autoconf.mk.in 2006-02-23 00:58:25.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/config/autoconf.mk.in 2008-08-14 16:22:21.000000000 +0200
-@@ -25,6 +25,7 @@
- LIB_SUFFIX = @LIB_SUFFIX@
- LIB_PREFIX = @LIB_PREFIX@
- DLL_SUFFIX = @DLL_SUFFIX@
-+DLL_PREFIX = @DLL_PREFIX@
- ASM_SUFFIX = @ASM_SUFFIX@
- PROG_SUFFIX = @PROG_SUFFIX@
- MOD_NAME = @NSPR_MODNAME@
---- misc/mozilla/directory/c-sdk/config/cygwin-wrapper 2004-08-19 01:18:55.000000000 +0200
-+++ misc/build/mozilla/directory/c-sdk/config/cygwin-wrapper 2008-08-14 16:22:21.000000000 +0200
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/bin/bash
- #
- # Stupid wrapper to avoid win32 dospath/cygdrive issues
- # Try not to spawn programs from within this file. If the stuff in here looks royally
---- misc/mozilla/directory/c-sdk/configure 2006-02-23 01:58:13.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/configure 2008-08-14 16:22:21.000000000 +0200
-@@ -2738,6 +2738,7 @@
- LIB_SUFFIX=a
- LIB_PREFIX=lib
- DLL_SUFFIX=so
-+DLL_PREFIX=lib
- ASM_SUFFIX=s
- MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
- PR_MD_ASFILES=
-@@ -3444,7 +3445,7 @@
- EOF
-
- CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
-- MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
- if test "$MOZ_OBJFORMAT" = "elf"; then
- DLL_SUFFIX=so
- else
-@@ -3811,6 +3812,7 @@
- MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
- DSO_CFLAGS=-fPIC
- DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
-+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,origin -Wl,-rpath,'$\$ORIGIN:$\$ORIGIN/../ure-link/lib'"
- OS_LIBS="$OS_LIBS -lc"
- _OPTIMIZE_FLAGS=-O2
- _DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that
-@@ -3880,7 +3882,8 @@
- CC="$CC -mno-cygwin"
- CXX="$CXX -mno-cygwin"
- DLL_SUFFIX=dll
-- MKSHLIB='$(CC) -shared -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(IMPORT_LIBRARY) -o $@'
-+ DLL_PREFIX=
-+ MKSHLIB='$(CC) -shared -Wl,--enable-runtime-pseudo-reloc -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(IMPORT_LIBRARY) -o $@'
- # Use temp file for windres (bug 213281)
- RC="$WINDRES -O coff --use-temp-file"
- else
-@@ -3897,6 +3900,7 @@
- LIB_SUFFIX=lib
- LIB_PREFIX=
- DLL_SUFFIX=dll
-+ DLL_PREFIX=
-
- CFLAGS="$CFLAGS -W3 -nologo -GF -Gy"
- DLLFLAGS='-OUT:"$@"'
-@@ -4293,6 +4297,7 @@
- NSINSTALL=nsinstall
- LIB_PREFIX=
- LIB_SUFFIX=lib
-+ DLL_PREFIX=
- DLL_SUFFIX=dll
- DLLTOOL=''
- RC=rc.exe
-@@ -4660,6 +4665,7 @@
- LD=/usr/ccs/bin/ld
- RANLIB=/usr/ccs/bin/ranlib
- DSO_LDOPTS='-G -h $(notdir $@)'
-+ DSO_LDOPTS="$DSO_LDOPTS -R '$\$ORIGIN'"
- if test -n "$GNU_CC"; then
- DSO_CFLAGS=-fPIC
- else
-@@ -5844,6 +5850,7 @@
- s%@LIB_SUFFIX@%$LIB_SUFFIX%g
- s%@LIB_PREFIX@%$LIB_PREFIX%g
- s%@DLL_SUFFIX@%$DLL_SUFFIX%g
-+s%@DLL_PREFIX@%$DLL_PREFIX%g
- s%@ASM_SUFFIX@%$ASM_SUFFIX%g
- s%@PROG_SUFFIX@%$PROG_SUFFIX%g
- s%@MKSHLIB@%$MKSHLIB%g
---- misc/mozilla/directory/c-sdk/configure.in 2007-07-15 16:41:07.000000000 +0200
-+++ misc/build/mozilla/directory/c-sdk/configure.in 2008-08-14 16:22:21.000000000 +0200
-@@ -549,6 +549,7 @@
- LIB_SUFFIX=a
- LIB_PREFIX=lib
- DLL_SUFFIX=so
-+DLL_PREFIX=lib
- ASM_SUFFIX=s
- MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
- PR_MD_ASFILES=
-@@ -1037,7 +1038,7 @@
- AC_DEFINE(FREEBSD)
- AC_DEFINE(HAVE_BSD_FLOCK)
- CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
-- MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
- if test "$MOZ_OBJFORMAT" = "elf"; then
- DLL_SUFFIX=so
- else
-@@ -1285,6 +1286,7 @@
- MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
- DSO_CFLAGS=-fPIC
- DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
-+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,origin -Wl,-rpath,'$\$ORIGIN:$\$ORIGIN/../ure-link/lib'"
- OS_LIBS="$OS_LIBS -lc"
- _OPTIMIZE_FLAGS=-O2
- _DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that
-@@ -1336,6 +1338,8 @@
- CC="$CC -mno-cygwin"
- CXX="$CXX -mno-cygwin"
- DLL_SUFFIX=dll
-+ DLL_SUFFIX=dll
-+ DLL_PREFIX=
- MKSHLIB='$(CC) -shared -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(IMPORT_LIBRARY) -o $@'
- # Use temp file for windres (bug 213281)
- RC="$WINDRES -O coff --use-temp-file"
-@@ -1353,6 +1357,7 @@
- LIB_SUFFIX=lib
- LIB_PREFIX=
- DLL_SUFFIX=dll
-+ DLL_PREFIX=
-
- CFLAGS="$CFLAGS -W3 -nologo -GF -Gy"
- DLLFLAGS='-OUT:"$@"'
-@@ -1820,6 +1825,7 @@
- LD=/usr/ccs/bin/ld
- RANLIB=/usr/ccs/bin/ranlib
- DSO_LDOPTS='-G -h $(notdir $@)'
-+ DSO_LDOPTS="$DSO_LDOPTS -R '$\$ORIGIN'"
- if test -n "$GNU_CC"; then
- DSO_CFLAGS=-fPIC
- else
-@@ -2410,6 +2416,7 @@
- AC_SUBST(LIB_SUFFIX)
- AC_SUBST(LIB_PREFIX)
- AC_SUBST(DLL_SUFFIX)
-+AC_SUBST(DLL_PREFIX)
- AC_SUBST(ASM_SUFFIX)
- AC_SUBST(PROG_SUFFIX)
- AC_SUBST(MKSHLIB)
---- misc/mozilla/directory/c-sdk/ldap/include/Makefile.in 2006-02-03 15:44:33.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/ldap/include/Makefile.in 2008-11-02 21:55:34.929250000 +0100
-@@ -85,6 +85,11 @@
-
- ###########################################################################
-
-+ifeq ($(TERM),cygwin)
-+INCLUDEDIR:=$(shell cygpath -u $(INCLUDEDIR))
-+GENHEADERS:=$(shell cygpath -u $(GENHEADERS))
-+endif
-+
- all export:: $(INCLUDEDIR) $(GENHEADERS)
- $(NSINSTALL) -D $(PRIVATEINCDIR)
- $(INSTALL) $(INSTALLFLAGS) -m 644 $(HEADERS) $(INCLUDEDIR)
---- misc/mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 2006-02-03 15:44:42.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -109,7 +109,7 @@
- HDIR = $(topsrcdir)/ldap/include
-
- LIBLDAP = $(addprefix $(OBJDIR_NAME)/, $(LIB_PREFIX)$(LDAP_LIBNAME).$(LIB_SUFFIX))
--DLLLDAP = $(addprefix $(OBJDIR_NAME)/, $(LIB_PREFIX)$(LDAP_LIBNAME).$(DLL_SUFFIX))
-+DLLLDAP = $(addprefix $(OBJDIR_NAME)/, $(DLL_PREFIX)$(LDAP_LIBNAME).$(DLL_SUFFIX))
-
- INSTALLDIR = $(DIST)/$(OBJDIR_NAME)
-
-@@ -320,6 +320,10 @@
- -$(RM) $(SO_FILES_TO_REMOVE)
- endif
- $(LINK_DLL) $(LDAP_EXPORT_FLAGS) $(EXTRA_LIBS)
-+ if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;2; \
-+ rm -f $@.manifest; \
-+ fi
-
- veryclean:: clean
-
---- misc/mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 2006-02-03 15:44:49.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -62,7 +62,7 @@
- LIBPRLDAP =
- endif
- DLLPRLDAP = $(addprefix $(OBJDIR_NAME)/, \
-- $(LIB_PREFIX)$(PRLDAP_LIBNAME).$(DLL_SUFFIX))
-+ $(DLL_PREFIX)$(PRLDAP_LIBNAME).$(DLL_SUFFIX))
-
- INSTALLDIR = $(DIST)/$(OBJDIR_NAME)
-
---- misc/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 2004-08-26 01:02:30.000000000 +0200
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 2008-08-14 16:22:21.000000000 +0200
-@@ -41,7 +41,7 @@
- HDIR = $(topsrcdir)/ldap/include
-
- LIBSSLDAP = $(addprefix $(SSLOBJDEST)/, $(LIB_PREFIX)$(SSLDAP_LIBNAME).$(LIB_SUFFIX))
--DLLSSLDAP = $(addprefix $(SSLOBJDEST)/, $(LIB_PREFIX)$(SSLDAP_LIBNAME).$(DLL_SUFFIX))
-+DLLSSLDAP = $(addprefix $(SSLOBJDEST)/, $(DLL_PREFIX)$(SSLDAP_LIBNAME).$(DLL_SUFFIX))
-
- INSTALLDIR = $(DIST)/$(OBJDIR_NAME)
-
-@@ -76,7 +92,7 @@
-
- # variable definitions for exported symbols
- ifeq ($(OS_ARCH), WINNT)
-- SSLDAP_EXPORT_DEFS= $(srcdir)/../msdos/winsock/nsldapssl32.def
-+ SSLDAP_EXPORT_DEFS= $(win_srcdir)/../msdos/winsock/nsldapssl32.def
- else
- SSLDAP_EXPORT_DEFS= $(SSLOBJDEST)/libldap_ssl.exp
- endif
---- misc/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 2006-02-03 15:44:49.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -56,7 +56,7 @@
- HDIR = $(topsrcdir)/ldap/include
-
- LIBSSLDAP = $(addprefix $(SSLOBJDEST)/, $(LIB_PREFIX)$(SSLDAP_LIBNAME).$(LIB_SUFFIX))
--DLLSSLDAP = $(addprefix $(SSLOBJDEST)/, $(LIB_PREFIX)$(SSLDAP_LIBNAME).$(DLL_SUFFIX))
-+DLLSSLDAP = $(addprefix $(SSLOBJDEST)/, $(DLL_PREFIX)$(SSLDAP_LIBNAME).$(DLL_SUFFIX))
-
- INSTALLDIR = $(DIST)/$(OBJDIR_NAME)
-
---- misc/mozilla/embedding/browser/gtk/src/Makefile.in 2006-03-22 19:22:41.000000000 +0100
-+++ misc/build/mozilla/embedding/browser/gtk/src/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -112,14 +112,14 @@
- gtkmozembed_internal.h
-
- ifdef MOZ_ENABLE_GTK
--EXTRA_DSO_LDOPTS = \
-+EXTRA_DSO_LDOPTS += \
- $(MOZ_COMPONENT_LIBS) \
- -lgtksuperwin \
- $(NULL)
- endif
-
- ifdef MOZ_ENABLE_GTK2
--EXTRA_DSO_LDOPTS = \
-+EXTRA_DSO_LDOPTS += \
- $(MOZ_COMPONENT_LIBS) \
- $(NULL)
- endif
---- misc/mozilla/embedding/browser/gtk/tests/Makefile.in 2006-03-24 17:10:37.000000000 +0100
-+++ misc/build/mozilla/embedding/browser/gtk/tests/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -63,10 +63,11 @@
- TestGtkEmbedNotebook.cpp \
- TestGtkEmbedSocket.cpp \
- TestGtkEmbedChild.cpp
--endif
-
- SIMPLE_PROGRAMS = $(CPPSRCS:.cpp=)
-
-+endif
-+
- # ENABLE_GNOME=1
-
- ifdef ENABLE_GNOME
---- misc/mozilla/embedding/components/printingui/src/mac/printpde/Makefile.in 2005-06-20 21:24:51.000000000 +0200
-+++ misc/build/mozilla/embedding/components/printingui/src/mac/printpde/Makefile.in 2009-02-19 13:11:39.000000000 +0100
-@@ -68,25 +68,15 @@
-
- unexport CC CXX
-
--ABS_topsrcdir := $(shell cd $(topsrcdir); pwd)
--ifneq ($(ABS_topsrcdir),$(MOZ_BUILD_ROOT))
--export::
-- rsync -a --exclude .DS_Store --exclude "CVS/" $(srcdir)/$(PROJECT) .
-- ln -fs $(srcdir)/src
-- ln -fs $(srcdir)/res
-- ln -fs $(srcdir)/public
-- ln -fs $(srcdir)/Info-*.plist .
--endif
--
- libs::
- # Bug 297227: The next line doesn't need to stay around forever, only
- # long enough to clean up existing depend builds from when xcodebuild
- # was being instructed to "install"
- if test -e build/UninstalledProducts ; then $(MAKE) clean ; rm -rf $(DIST)/package/PrintPDE.plugin ; fi
-
-- $(PBBUILD) $(PROJECT_ARG) -target PrintPDE -buildstyle $(BUILDSTYLE) $(PBBUILD_ARG)
-- mkdir -p $(DIST)/package
-- $(INSTALL) $(XCODE_PRODUCT_DIR)/PrintPDE.plugin $(DIST)/package
-+# $(PBBUILD) $(PROJECT_ARG) -target PrintPDE -buildstyle $(BUILDSTYLE) $(PBBUILD_ARG)
-+# mkdir -p $(DIST)/package
-+# $(INSTALL) $(XCODE_PRODUCT_DIR)/PrintPDE.plugin $(DIST)/package
-
- clean clobber::
- rm -rf build
---- misc/mozilla/embedding/config/Makefile.in 2007-10-08 21:08:15.000000000 +0200
-+++ misc/build/mozilla/embedding/config/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -110,7 +110,7 @@
- $(NSINSTALL) -t $(srcdir)/installed-chrome.txt $(DIST)/Embed/chrome
- $(NSINSTALL) -t $(srcdir)/readme.html $(DIST)/Embed
- ifndef MINIMO
-- -$(NSINSTALL) -t $(DEPTH)/embedding/lite/$(LIB_PREFIX)embed_lite$(DLL_SUFFIX) $(DIST)/Embed/components
-+ -$(NSINSTALL) -t $(DEPTH)/embedding/lite/$(DLL_PREFIX)embed_lite$(DLL_SUFFIX) $(DIST)/Embed/components
- endif
- ifeq ($(OS_ARCH),WINNT)
- ifeq ($(WINAPP),mfcembed)
---- misc/mozilla/extensions/pref/autoconfig/src/Makefile.in 2006-02-03 15:41:09.000000000 +0100
-+++ misc/build/mozilla/extensions/pref/autoconfig/src/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -85,7 +85,7 @@
- endif
-
-
--EXTRA_DSO_LDOPTS = \
-+EXTRA_DSO_LDOPTS += \
- $(LIBS_DIR) \
- $(MOZ_JS_LIBS) \
- $(MOZ_COMPONENT_LIBS) \
---- misc/mozilla/extensions/sql/build/Makefile.in 2004-11-29 18:39:08.000000000 +0100
-+++ misc/build/mozilla/extensions/sql/build/Makefile.in 2008-08-18 14:03:04.000000000 +0200
-@@ -55,5 +55,5 @@
- bin/components/sqlpgsql.xpt \
- bin/components/sqlsqlite.xpt \
- bin/components/sqlmysql.xpt \
-- bin/components/$(LIB_PREFIX)sql$(DLL_SUFFIX) \
-+ bin/components/$(DLL_PREFIX)sql$(DLL_SUFFIX) \
- bin/chrome/sql.jar
---- misc/mozilla/gfx/idl/nsIFreeType2.idl 2004-04-16 01:30:02.000000000 +0200
-+++ misc/build/mozilla/gfx/idl/nsIFreeType2.idl 2008-08-14 16:22:21.000000000 +0200
-@@ -76,10 +76,11 @@
- native FT_Sfnt_Tag(FT_Sfnt_Tag);
- native FT_Size(FT_Size);
-
--[ptr] native FTC_Image_Desc_p(FTC_Image_Desc);
-+[ptr] native FTC_ImageType_p(FTC_ImageType);
- native FTC_Face_Requester(FTC_Face_Requester);
- native FTC_Font(FTC_Font);
--native FTC_Image_Cache(FTC_Image_Cache);
-+native FTC_FaceID(FTC_FaceID);
-+native FTC_ImageCache(FTC_ImageCache);
- native FTC_Manager(FTC_Manager);
-
- // #ifdef MOZ_SVG
-@@ -99,7 +100,7 @@
-
- readonly attribute FT_Library library;
- readonly attribute FTC_Manager FTCacheManager;
-- readonly attribute FTC_Image_Cache ImageCache;
-+ readonly attribute FTC_ImageCache ImageCache;
-
- void doneFace(in FT_Face face);
- void doneFreeType(in FT_Library lib);
-@@ -115,16 +116,16 @@
- void outlineDecompose(in FT_Outline_p outline,
- in const_FT_Outline_Funcs_p funcs, in voidPtr p);
- void setCharmap(in FT_Face face, in FT_CharMap charmap);
-- void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_p desc,
-+ void imageCacheLookup(in FTC_ImageCache cache, in FTC_ImageType_p desc,
- in FT_UInt gindex, out FT_Glyph glyph);
-- void managerLookupSize(in FTC_Manager manager, in FTC_Font font,
-- out FT_Face face, out FT_Size size);
-+ void managerLookupFace(in FTC_Manager manager, in FTC_FaceID face_id,
-+ out FT_Face face);
- void managerDone(in FTC_Manager manager);
- void managerNew(in FT_Library lib, in FT_UInt max_faces,
- in FT_UInt max_sizes, in FT_ULong max_bytes,
- in FTC_Face_Requester requester, in FT_Pointer req_data,
- out FTC_Manager manager);
-- void imageCacheNew(in FTC_Manager manager, out FTC_Image_Cache cache);
-+ void imageCacheNew(in FTC_Manager manager, out FTC_ImageCache cache);
- /* #ifdef MOZ_SVG */
- void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix,
- in FT_Vector_p delta);
---- misc/mozilla/gfx/src/freetype/nsFreeType.cpp 2005-07-13 20:21:10.000000000 +0200
-+++ misc/build/mozilla/gfx/src/freetype/nsFreeType.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -111,7 +111,7 @@
- {"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE},
- {"FT_Set_Charmap", NS_FT2_OFFSET(nsFT_Set_Charmap), PR_TRUE},
- {"FTC_Image_Cache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE},
-- {"FTC_Manager_Lookup_Size", NS_FT2_OFFSET(nsFTC_Manager_Lookup_Size), PR_TRUE},
-+ {"FTC_Manager_LookupFace", NS_FT2_OFFSET(nsFTC_Manager_LookupFace), PR_TRUE},
- {"FTC_Manager_Done", NS_FT2_OFFSET(nsFTC_Manager_Done), PR_TRUE},
- {"FTC_Manager_New", NS_FT2_OFFSET(nsFTC_Manager_New), PR_TRUE},
- {"FTC_Image_Cache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE},
-@@ -288,7 +288,7 @@
- }
-
- NS_IMETHODIMP
--nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc,
-+nsFreeType2::ImageCacheLookup(FTC_ImageCache cache, FTC_ImageType *desc,
- FT_UInt glyphID, FT_Glyph *glyph)
- {
- // call the FreeType2 function via the function pointer
-@@ -297,11 +297,11 @@
- }
-
- NS_IMETHODIMP
--nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font,
-- FT_Face *face, FT_Size *size)
-+nsFreeType2::ManagerLookupFace(FTC_Manager manager, FTC_FaceID font,
-+ FT_Face *face)
- {
- // call the FreeType2 function via the function pointer
-- FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size);
-+ FT_Error error = nsFTC_Manager_LookupFace(manager, font, face);
- return error ? NS_ERROR_FAILURE : NS_OK;
- }
-
-@@ -326,7 +326,7 @@
- }
-
- NS_IMETHODIMP
--nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache)
-+nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_ImageCache *cache)
- {
- // call the FreeType2 function via the function pointer
- FT_Error error = nsFTC_Image_Cache_New(manager, cache);
-@@ -395,7 +395,7 @@
- }
-
- NS_IMETHODIMP
--nsFreeType2::GetImageCache(FTC_Image_Cache *aCache)
-+nsFreeType2::GetImageCache(FTC_ImageCache *aCache)
- {
- *aCache = mImageCache;
- return NS_OK;
---- misc/mozilla/gfx/src/freetype/nsFreeType.h 2005-05-01 19:36:19.000000000 +0200
-+++ misc/build/mozilla/gfx/src/freetype/nsFreeType.h 2008-08-14 16:22:21.000000000 +0200
-@@ -120,13 +120,13 @@
- typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*);
- typedef FT_Error (*FT_Set_Charmap_t)(FT_Face face, FT_CharMap charmap);
- typedef FT_Error (*FTC_Image_Cache_Lookup_t)
-- (FTC_Image_Cache, FTC_Image_Desc*, FT_UInt, FT_Glyph*);
--typedef FT_Error (*FTC_Manager_Lookup_Size_t)
-- (FTC_Manager, FTC_Font, FT_Face*, FT_Size*);
-+ (FTC_ImageCache, FTC_ImageType*, FT_UInt, FT_Glyph*);
-+typedef FT_Error (*FTC_Manager_LookupFace_t)
-+ (FTC_Manager, FTC_FaceID, FT_Face*);
- typedef FT_Error (*FTC_Manager_Done_t)(FTC_Manager);
- typedef FT_Error (*FTC_Manager_New_t)(FT_Library, FT_UInt, FT_UInt, FT_ULong,
- FTC_Face_Requester, FT_Pointer, FTC_Manager*);
--typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_Image_Cache*);
-+typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_ImageCache*);
- // #ifdef MOZ_SVG
- typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*);
- typedef FT_Error (*FT_Get_Kerning_t)
-@@ -181,7 +181,7 @@
- FT_Outline_Decompose_t nsFT_Outline_Decompose;
- FT_Set_Charmap_t nsFT_Set_Charmap;
- FTC_Image_Cache_Lookup_t nsFTC_Image_Cache_Lookup;
-- FTC_Manager_Lookup_Size_t nsFTC_Manager_Lookup_Size;
-+ FTC_Manager_LookupFace_t nsFTC_Manager_LookupFace;
- FTC_Manager_Done_t nsFTC_Manager_Done;
- FTC_Manager_New_t nsFTC_Manager_New;
- FTC_Image_Cache_New_t nsFTC_Image_Cache_New;
-@@ -229,7 +229,7 @@
- PRLibrary *mSharedLib;
- FT_Library mFreeTypeLibrary;
- FTC_Manager mFTCacheManager;
-- FTC_Image_Cache mImageCache;
-+ FTC_ImageCache mImageCache;
-
- static nsHashtable *sFontFamilies;
- static nsHashtable *sRange1CharSetNames;
---- misc/mozilla/gfx/src/gtk/Makefile.in 2006-07-20 07:12:33.000000000 +0200
-+++ misc/build/mozilla/gfx/src/gtk/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -211,6 +211,10 @@
- CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS)
- CFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS)
-
-+ifeq ($(OS_ARCH), Darwin)
-+EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS)
-+endif
-+
- ifeq ($(OS_ARCH), SunOS)
- ifndef GNU_CC
- # When using Sun's WorkShop compiler, including
---- misc/mozilla/gfx/src/ps/nsFontMetricsPS.cpp 2006-12-22 14:51:16.000000000 +0100
-+++ misc/build/mozilla/gfx/src/ps/nsFontMetricsPS.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -1870,10 +1870,10 @@
-
- mPixelSize = NSToIntRound(app2dev * mFont->size);
-
-- mImageDesc.font.face_id = (void*)mEntry;
-- mImageDesc.font.pix_width = mPixelSize;
-- mImageDesc.font.pix_height = mPixelSize;
-- mImageDesc.image_type = 0;
-+ mImageDesc->face_id = (FTC_FaceID)&mEntry;
-+ mImageDesc->width = mPixelSize;
-+ mImageDesc->height = mPixelSize;
-+ mImageDesc->flags = 0;
-
- nsresult rv;
- mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv);
-@@ -1907,7 +1907,7 @@
- if (!face)
- return 0;
-
-- FTC_Image_Cache iCache;
-+ FTC_ImageCache iCache;
- nsresult rv = mFt2->GetImageCache(&iCache);
- if (NS_FAILED(rv)) {
- NS_ERROR("Failed to get Image Cache");
-@@ -1945,8 +1945,8 @@
-
- FTC_Manager cManager;
- mFt2->GetFTCacheManager(&cManager);
-- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font,
-- &face, nsnull);
-+ nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id,
-+ &face);
- NS_ASSERTION(rv==0, "failed to get face/size");
- if (rv)
- return nsnull;
-@@ -2392,16 +2392,16 @@
- mEntry->GetFamilyName(fontName);
- mEntry->GetStyleName(styleName);
-
-- mImageDesc.font.face_id = (void*)mEntry;
-+ mImageDesc->face_id = (FTC_FaceID)&mEntry;
- // TT glyph has no relation to size
-- mImageDesc.font.pix_width = 16;
-- mImageDesc.font.pix_height = 16;
-- mImageDesc.image_type = 0;
-+ mImageDesc->width = 16;
-+ mImageDesc->height = 16;
-+ mImageDesc->flags = 0;
- FT_Face face = nsnull;
- FTC_Manager cManager;
- mFt2->GetFTCacheManager(&cManager);
-- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font,
-- &face, nsnull);
-+ nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id,
-+ &face);
- if (NS_FAILED(rv))
- return;
-
---- misc/mozilla/gfx/src/ps/nsFontMetricsPS.h 2005-06-28 20:29:10.000000000 +0200
-+++ misc/build/mozilla/gfx/src/ps/nsFontMetricsPS.h 2008-08-20 15:42:50.000000000 +0200
-@@ -424,7 +424,7 @@
- nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID;
- nsCOMPtr<nsIFreeType2> mFt2;
- PRUint16 mPixelSize;
-- FTC_Image_Desc mImageDesc;
-+ FTC_ImageType mImageDesc;
- nsCString mFontNameBase; // the base name of type 1 (sub) fonts
- nscoord mHeight;
-
-@@ -493,7 +493,7 @@
- protected:
- nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry;
- nsCOMPtr<nsIFreeType2> mFt2;
-- FTC_Image_Desc mImageDesc;
-+ FTC_ImageType mImageDesc;
- };
- #endif // MOZ_ENABLE_FREETYPE2
- #endif // MOZ_ENABLE_XFT
---- misc/mozilla/gfx/src/x11shared/nsFontFreeType.cpp 2004-04-17 23:52:34.000000000 +0200
-+++ misc/build/mozilla/gfx/src/x11shared/nsFontFreeType.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -177,7 +177,7 @@
- FTC_Manager mgr;
- nsresult rv;
- mFt2->GetFTCacheManager(&mgr);
-- rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull);
-+ rv = mFt2->ManagerLookupFace(mgr, mImageDesc->face_id, &face);
- NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size");
- if (NS_FAILED(rv))
- return nsnull;
-@@ -191,22 +191,15 @@
- PRBool embedded_bimap = PR_FALSE;
- mFaceID = aFaceID;
- mPixelSize = aPixelSize;
-- mImageDesc.font.face_id = (void*)mFaceID;
-- mImageDesc.font.pix_width = aPixelSize;
-- mImageDesc.font.pix_height = aPixelSize;
-- mImageDesc.image_type = 0;
-+ mImageDesc->face_id = (FTC_FaceID)&mFaceID;
-+ mImageDesc->width = aPixelSize;
-+ mImageDesc->height = aPixelSize;
-+ mImageDesc->flags = 0;
-
- if (aPixelSize < nsFreeType2::gAntiAliasMinimum) {
-- mImageDesc.image_type |= ftc_image_mono;
- anti_alias = PR_FALSE;
- }
-
-- if (nsFreeType2::gFreeType2Autohinted)
-- mImageDesc.image_type |= ftc_image_flag_autohinted;
--
-- if (nsFreeType2::gFreeType2Unhinted)
-- mImageDesc.image_type |= ftc_image_flag_unhinted;
--
- PRUint32 num_embedded_bitmaps, i;
- PRInt32* embedded_bitmapheights;
- mFaceID->GetEmbeddedBitmapHeights(&num_embedded_bitmaps,
-@@ -218,7 +211,6 @@
- if (embedded_bitmapheights[i] == aPixelSize) {
- embedded_bimap = PR_TRUE;
- // unhinted must be set for embedded bitmaps to be used
-- mImageDesc.image_type |= ftc_image_flag_unhinted;
- break;
- }
- }
-@@ -312,7 +304,7 @@
- if (!face)
- return NS_ERROR_FAILURE;
-
-- FTC_Image_Cache icache;
-+ FTC_ImageCache icache;
- mFt2->GetImageCache(&icache);
- if (!icache)
- return NS_ERROR_FAILURE;
-@@ -401,7 +393,7 @@
- if (!face)
- return 0;
-
-- FTC_Image_Cache icache;
-+ FTC_ImageCache icache;
- mFt2->GetImageCache(&icache);
- if (!icache)
- return 0;
-@@ -723,7 +715,7 @@
- if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2);
- #endif
-
-- FTC_Image_Cache icache;
-+ FTC_ImageCache icache;
- mFt2->GetImageCache(&icache);
- if (!icache)
- return 0;
---- misc/mozilla/gfx/src/x11shared/nsFontFreeType.h 2004-04-17 23:52:34.000000000 +0200
-+++ misc/build/mozilla/gfx/src/x11shared/nsFontFreeType.h 2008-08-14 16:22:21.000000000 +0200
-@@ -110,7 +110,7 @@
- XImage *GetXImage(PRUint32 width, PRUint32 height);
- nsITrueTypeFontCatalogEntry *mFaceID;
- PRUint16 mPixelSize;
-- FTC_Image_Desc mImageDesc;
-+ FTC_ImageType mImageDesc;
- nsCOMPtr<nsIFreeType2> mFt2;
- };
-
---- misc/mozilla/jpeg/jmorecfg.h 2004-12-12 01:57:39.000000000 +0100
-+++ misc/build/mozilla/jpeg/jmorecfg.h 2008-08-18 09:06:05.000000000 +0200
-@@ -108,7 +108,7 @@
- /* Defines for MMX/SSE2 support. */
-
- #if defined(XP_WIN32) && defined(_M_IX86) && !defined(__GNUC__)
--#define HAVE_MMX_INTEL_MNEMONICS
-+//#define HAVE_MMX_INTEL_MNEMONICS
-
- /* SSE2 code appears broken for some cpus (bug 247437) */
- /* #define HAVE_SSE2_INTEL_MNEMONICS */
---- misc/mozilla/layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp 2006-03-16 18:09:14.000000000 +0100
-+++ misc/build/mozilla/layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -423,19 +423,19 @@
- return;
- }
-
-- FTC_Image_Desc imageDesc;
-- imageDesc.font.face_id=(void*)font_data.font_entry.get(); // XXX do we need to addref?
-+ FTC_ImageType imageDesc;
-+ imageDesc->face_id=(FTC_FaceID)font_data.font_entry.get(); // XXX do we need to addref?
- float twipstopixel = GetTwipsToPixels();
- float scale = GetPixelScale();
-- imageDesc.font.pix_width = (int)((float)(font_data.font.size)*twipstopixel/scale);
-- imageDesc.font.pix_height = (int)((float)(font_data.font.size)*twipstopixel/scale);
-- imageDesc.image_type |= ftc_image_grays;
-+ imageDesc->width = (int)((float)(font_data.font.size)*twipstopixel/scale);
-+ imageDesc->height = (int)((float)(font_data.font.size)*twipstopixel/scale);
-+ imageDesc->flags |= /* ftc_image_grays */0;
-
- // get the face
- nsresult rv;
- FTC_Manager mgr;
- nsSVGLibartFreetype::ft2->GetFTCacheManager(&mgr);
-- rv = nsSVGLibartFreetype::ft2->ManagerLookupSize(mgr, &imageDesc.font, &mFace, nsnull);
-+ rv = nsSVGLibartFreetype::ft2->ManagerLookupFace(mgr, imageDesc->face_id, &mFace);
- NS_ASSERTION(mFace, "failed to get face/size");
- }
-
---- misc/mozilla/mailnews/addrbook/src/Makefile.in 2007-05-03 03:39:37.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/Makefile.in 2008-10-16 12:59:35.000000000 +0200
-@@ -106,6 +106,7 @@
- nsVCard.cpp \
- nsVCardObj.cpp \
- nsMsgVCardService.cpp \
-+ nsAbMD5sum.cpp \
- nsAbLDIFService.cpp \
- $(NULL)
-
-@@ -114,7 +115,9 @@
- nsDirPrefs.h \
- nsAbCardProperty.h \
- nsAbMDBCardProperty.h \
-- nsVCardObj.h \
-+ nsVCardObj.h \
-+ nsAbAddressCollecter.h \
-+ nsAbDirectoryQuery.h \
- $(NULL)
-
- ifeq ($(OS_ARCH),WINNT)
---- misc/mozilla/mailnews/addrbook/src/nsAbBoolExprToLDAPFilter.h 2005-05-11 06:16:53.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbBoolExprToLDAPFilter.h 2008-08-14 16:22:21.000000000 +0200
-@@ -43,6 +43,7 @@
- #include "nsIAbBooleanExpression.h"
- #include "nsCOMPtr.h"
- #include "nsString.h"
-+#include "nsAbUtils.h"
-
- class nsIAbLDAPAttributeMap;
-
-@@ -74,6 +75,16 @@
- nsIAbBooleanConditionString* condition,
- nsCString& filter,
- int flags);
-+ static void GenerateMultipleFilter(
-+ nsAbBooleanConditionType conditionType,
-+ nsCString& filter,
-+ NS_ConvertUCS2toUTF8 &vUTF8,
-+ CharPtrArrayGuard *pAttrs);
-+ static void GenerateSingleFilter(
-+ nsAbBooleanConditionType conditionType,
-+ nsCString& filter,
-+ NS_ConvertUCS2toUTF8 &vUTF8,
-+ const char *ldapProperty);
- };
-
- #endif
---- misc/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.cpp 2007-02-18 23:18:13.000000000 +0100
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.cpp 2008-08-20 12:16:50.000000000 +0200
-@@ -126,11 +126,13 @@
-
- // use mURINoQuery to get a prefName
- nsCAutoString prefName;
-- prefName = nsDependentCString(mURINoQuery.get() + kLDAPDirectoryRootLen) + NS_LITERAL_CSTRING(".uri");
-+ prefName = nsDependentCString(mURINoQuery.get() + kLDAPDirectoryRootLen);
-
- // turn moz-abldapdirectory://ldap_2.servers.nscpphonebook into -> "ldap_2.servers.nscpphonebook.uri"
- nsXPIDLCString URI;
-- rv = prefs->GetCharPref(prefName.get(), getter_Copies(URI));
-+ nsCAutoString uriPrefName;
-+ uriPrefName = prefName + NS_LITERAL_CSTRING(".uri");
-+ rv = prefs->GetCharPref(uriPrefName.get(), getter_Copies(URI));
- if (NS_FAILED(rv))
- {
- /*
-@@ -154,6 +156,27 @@
- nsCAutoString tempLDAPURL(mURINoQuery);
- tempLDAPURL.ReplaceSubstring("moz-abldapdirectory:", "ldap:");
- rv = mURL->SetSpec(tempLDAPURL);
-+ NS_ENSURE_SUCCESS(rv,rv);
-+
-+ nsCAutoString aHost;
-+ mURL->GetHost(aHost);
-+ aHost.ReplaceChar('.','_');
-+ prefName = nsDependentCString("ldap_2.servers.") + aHost;
-+ PRBool useSSL=0;
-+ rv = prefs->GetBoolPref(
-+ PromiseFlatCString(prefName
-+ + NS_LITERAL_CSTRING(".UseSSL")).get(),
-+ &useSSL
-+ );
-+
-+ // If use SSL,ldap url will look like this ldaps://host:port/.....
-+ if (!NS_FAILED(rv) && useSSL)
-+ {
-+ tempLDAPURL.ReplaceSubstring("ldap:", "ldaps:");
-+ rv = mURL->SetSpec(tempLDAPURL);
-+ }
-+ //NS_FAILED(rv) means ldap_2.servers.nscpphonebook.UseSSL not exist
-+ rv = 0;
- }
- else
- {
-@@ -164,24 +187,29 @@
- // get the login information, if there is any
- //
- rv = prefs->GetCharPref(
-- PromiseFlatCString(
-- Substring(mURINoQuery, kLDAPDirectoryRootLen,
-- mURINoQuery.Length() - kLDAPDirectoryRootLen)
-+ PromiseFlatCString(prefName
- + NS_LITERAL_CSTRING(".auth.dn")).get(),
- getter_Copies(mLogin));
- if (NS_FAILED(rv)) {
- mLogin.Truncate(); // zero out mLogin
- }
-
-+ // get the password information, if there is any
-+ //
-+ rv = prefs->GetCharPref(
-+ PromiseFlatCString(prefName
-+ + NS_LITERAL_CSTRING(".auth.pwd")).get(),
-+ getter_Copies(mPassword));
-+ if (NS_FAILED(rv)) {
-+ mPassword.Truncate(); // zero out mLogin
-+ }
- // get the protocol version, if there is any. using a string pref
- // here instead of an int, as protocol versions sometimes have names like
- // "4bis".
- //
- nsXPIDLCString protocolVersion;
- rv = prefs->GetCharPref(
-- PromiseFlatCString(
-- Substring(mURINoQuery, kLDAPDirectoryRootLen,
-- mURINoQuery.Length() - kLDAPDirectoryRootLen)
-+ PromiseFlatCString(prefName
- + NS_LITERAL_CSTRING(".protocolVersion")).get(),
- getter_Copies(protocolVersion));
-
---- misc/mozilla/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp 2006-12-22 14:51:38.000000000 +0100
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp 2008-08-20 15:01:16.000000000 +0200
-@@ -74,7 +74,7 @@
- PRInt32 resultLimit = -1,
- PRInt32 timeOut = 0);
- virtual ~nsAbQueryLDAPMessageListener ();
--
-+ void SetPassword(const nsAString& aPassword){m_sPassword = aPassword;};
- protected:
- nsresult OnLDAPMessageBind (nsILDAPMessage *aMessage);
- nsresult OnLDAPMessageSearchEntry (nsILDAPMessage *aMessage,
-@@ -108,6 +108,8 @@
- PRBool mCanceled;
- PRBool mWaitingForPrevQueryToFinish;
-
-+ nsAutoString m_sPassword;
-+
- nsCOMPtr<nsILDAPOperation> mSearchOperation;
-
- PRLock* mLock;
-@@ -272,7 +274,7 @@
-
- // If mLogin is set, we're expected to use it to get a password.
- //
-- if (!mDirectoryQuery->mLogin.IsEmpty()) {
-+ if (!mDirectoryQuery->mLogin.IsEmpty() && !m_sPassword.Length()) {
- // XXX hack until nsUTF8AutoString exists
- #define nsUTF8AutoString nsCAutoString
- nsUTF8AutoString spec;
-@@ -415,10 +417,13 @@
- rv = ldapOperation->Init(mConnection, proxyListener, nsnull);
- NS_ENSURE_SUCCESS(rv, rv);
-
-- // Bind
-- rv = ldapOperation->SimpleBind(NS_ConvertUCS2toUTF8(passwd));
-+
-+ // Bind
-+ if (m_sPassword.Length())
-+ rv = ldapOperation->SimpleBind(NS_ConvertUCS2toUTF8(m_sPassword));
-+ else
-+ rv = ldapOperation->SimpleBind(NS_ConvertUCS2toUTF8(passwd));
- NS_ENSURE_SUCCESS(rv, rv);
--
- return rv;
- }
-
-@@ -707,7 +712,7 @@
- rv = getLdapReturnAttributes (arguments, returnAttributes);
- NS_ENSURE_SUCCESS(rv, rv);
-
--
-+
- // Get the filter
- nsCOMPtr<nsISupports> supportsExpression;
- rv = arguments->GetExpression (getter_AddRefs (supportsExpression));
-@@ -828,6 +833,10 @@
- if (msgListener)
- {
- msgListener->mUrl = url;
-+ msgListener->mQueryListener = listener;
-+ msgListener->mResultLimit = resultLimit;
-+ msgListener->mTimeOut = timeOut;
-+ msgListener->mQueryArguments = arguments;
- return msgListener->DoSearch();
- }
- }
-@@ -845,6 +854,11 @@
- timeOut);
- if (_messageListener == NULL)
- return NS_ERROR_OUT_OF_MEMORY;
-+
-+ nsAutoString wPassword;
-+ wPassword.AssignWithConversion(mPassword.get());
-+ _messageListener->SetPassword(wPassword);
-+
- mListener = _messageListener;
- *_retval = 1;
-
---- misc/mozilla/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.h 2004-07-24 21:50:29.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.h 2008-08-14 16:22:21.000000000 +0200
-@@ -72,6 +72,7 @@
- friend class nsAbQueryLDAPMessageListener;
- nsresult Initiate ();
- nsXPIDLCString mLogin; // authenticate to the LDAP server as...
-+ nsXPIDLCString mPassword; // password to the LDAP server as...
- nsCOMPtr<nsILDAPURL> mDirectoryUrl; // the URL for the server
- PRUint32 mProtocolVersion; // version of LDAP (see nsILDAPConnection.idl)
-
---- misc/mozilla/mailnews/addrbook/src/nsAbMD5sum.cpp 2008-08-14 16:30:14.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbMD5sum.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -1 +1,633 @@
--dummy
-+/*
-+ * 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 the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#include "prerr.h"
-+
-+#include "prtypes.h"
-+#include "prlong.h"
-+#include "plstr.h"
-+#include "nsMemory.h"
-+
-+#define MD5_HASH_LEN 16
-+#define MD5_BUFFER_SIZE 64
-+#define MD5_END_BUFFER (MD5_BUFFER_SIZE - 8)
-+
-+#define CV0_1 0x67452301
-+#define CV0_2 0xefcdab89
-+#define CV0_3 0x98badcfe
-+#define CV0_4 0x10325476
-+
-+#define T1_0 0xd76aa478
-+#define T1_1 0xe8c7b756
-+#define T1_2 0x242070db
-+#define T1_3 0xc1bdceee
-+#define T1_4 0xf57c0faf
-+#define T1_5 0x4787c62a
-+#define T1_6 0xa8304613
-+#define T1_7 0xfd469501
-+#define T1_8 0x698098d8
-+#define T1_9 0x8b44f7af
-+#define T1_10 0xffff5bb1
-+#define T1_11 0x895cd7be
-+#define T1_12 0x6b901122
-+#define T1_13 0xfd987193
-+#define T1_14 0xa679438e
-+#define T1_15 0x49b40821
-+
-+#define T2_0 0xf61e2562
-+#define T2_1 0xc040b340
-+#define T2_2 0x265e5a51
-+#define T2_3 0xe9b6c7aa
-+#define T2_4 0xd62f105d
-+#define T2_5 0x02441453
-+#define T2_6 0xd8a1e681
-+#define T2_7 0xe7d3fbc8
-+#define T2_8 0x21e1cde6
-+#define T2_9 0xc33707d6
-+#define T2_10 0xf4d50d87
-+#define T2_11 0x455a14ed
-+#define T2_12 0xa9e3e905
-+#define T2_13 0xfcefa3f8
-+#define T2_14 0x676f02d9
-+#define T2_15 0x8d2a4c8a
-+
-+#define T3_0 0xfffa3942
-+#define T3_1 0x8771f681
-+#define T3_2 0x6d9d6122
-+#define T3_3 0xfde5380c
-+#define T3_4 0xa4beea44
-+#define T3_5 0x4bdecfa9
-+#define T3_6 0xf6bb4b60
-+#define T3_7 0xbebfbc70
-+#define T3_8 0x289b7ec6
-+#define T3_9 0xeaa127fa
-+#define T3_10 0xd4ef3085
-+#define T3_11 0x04881d05
-+#define T3_12 0xd9d4d039
-+#define T3_13 0xe6db99e5
-+#define T3_14 0x1fa27cf8
-+#define T3_15 0xc4ac5665
-+
-+#define T4_0 0xf4292244
-+#define T4_1 0x432aff97
-+#define T4_2 0xab9423a7
-+#define T4_3 0xfc93a039
-+#define T4_4 0x655b59c3
-+#define T4_5 0x8f0ccc92
-+#define T4_6 0xffeff47d
-+#define T4_7 0x85845dd1
-+#define T4_8 0x6fa87e4f
-+#define T4_9 0xfe2ce6e0
-+#define T4_10 0xa3014314
-+#define T4_11 0x4e0811a1
-+#define T4_12 0xf7537e82
-+#define T4_13 0xbd3af235
-+#define T4_14 0x2ad7d2bb
-+#define T4_15 0xeb86d391
-+
-+#define R1B0 0
-+#define R1B1 1
-+#define R1B2 2
-+#define R1B3 3
-+#define R1B4 4
-+#define R1B5 5
-+#define R1B6 6
-+#define R1B7 7
-+#define R1B8 8
-+#define R1B9 9
-+#define R1B10 10
-+#define R1B11 11
-+#define R1B12 12
-+#define R1B13 13
-+#define R1B14 14
-+#define R1B15 15
-+
-+#define R2B0 1
-+#define R2B1 6
-+#define R2B2 11
-+#define R2B3 0
-+#define R2B4 5
-+#define R2B5 10
-+#define R2B6 15
-+#define R2B7 4
-+#define R2B8 9
-+#define R2B9 14
-+#define R2B10 3
-+#define R2B11 8
-+#define R2B12 13
-+#define R2B13 2
-+#define R2B14 7
-+#define R2B15 12
-+
-+#define R3B0 5
-+#define R3B1 8
-+#define R3B2 11
-+#define R3B3 14
-+#define R3B4 1
-+#define R3B5 4
-+#define R3B6 7
-+#define R3B7 10
-+#define R3B8 13
-+#define R3B9 0
-+#define R3B10 3
-+#define R3B11 6
-+#define R3B12 9
-+#define R3B13 12
-+#define R3B14 15
-+#define R3B15 2
-+
-+#define R4B0 0
-+#define R4B1 7
-+#define R4B2 14
-+#define R4B3 5
-+#define R4B4 12
-+#define R4B5 3
-+#define R4B6 10
-+#define R4B7 1
-+#define R4B8 8
-+#define R4B9 15
-+#define R4B10 6
-+#define R4B11 13
-+#define R4B12 4
-+#define R4B13 11
-+#define R4B14 2
-+#define R4B15 9
-+
-+#define S1_0 7
-+#define S1_1 12
-+#define S1_2 17
-+#define S1_3 22
-+
-+#define S2_0 5
-+#define S2_1 9
-+#define S2_2 14
-+#define S2_3 20
-+
-+#define S3_0 4
-+#define S3_1 11
-+#define S3_2 16
-+#define S3_3 23
-+
-+#define S4_0 6
-+#define S4_1 10
-+#define S4_2 15
-+#define S4_3 21
-+
-+struct MD5ContextStr {
-+ PRUint32 lsbInput;
-+ PRUint32 msbInput;
-+ PRUint32 cv[4];
-+ union {
-+ PRUint8 b[64];
-+ PRUint32 w[16];
-+ } u;
-+};
-+typedef struct MD5ContextStr MD5Context;
-+
-+#define inBuf u.b
-+
-+int MD5_Hash(unsigned char *dest, const char *src);
-+int MD5_HashBuf(unsigned char *dest, const unsigned char *src, uint32 src_length);
-+MD5Context * MD5_NewContext(void);
-+void MD5_DestroyContext(MD5Context *cx, PRBool freeit);
-+void MD5_Begin(MD5Context *cx);
-+static void md5_compress(MD5Context *cx);
-+void MD5_Update(MD5Context *cx, const unsigned char *input, unsigned int inputLen);
-+void MD5_End(MD5Context *cx, unsigned char *digest,
-+ unsigned int *digestLen, unsigned int maxDigestLen);
-+unsigned int MD5_FlattenSize(MD5Context *cx);
-+int MD5_Flatten(MD5Context *cx, unsigned char *space);
-+MD5Context * MD5_Resurrect(unsigned char *space, void *arg);
-+void MD5_TraceState(MD5Context *cx);
-+
-+int
-+MD5_Hash(unsigned char *dest, const char *src)
-+{
-+ return MD5_HashBuf(dest, (unsigned char *)src, PL_strlen(src));
-+}
-+
-+int
-+MD5_HashBuf(unsigned char *dest, const unsigned char *src, uint32 src_length)
-+{
-+ unsigned int len;
-+ MD5Context *cx = MD5_NewContext();
-+ if (cx == NULL) {
-+// PORT_SetError(PR_OUT_OF_MEMORY_ERROR);
-+ return -1;
-+ }
-+ MD5_Begin(cx);
-+ MD5_Update(cx, src, src_length);
-+ MD5_End(cx, dest, &len, MD5_HASH_LEN);
-+ MD5_DestroyContext(cx, PR_TRUE);
-+ return 0;
-+}
-+
-+MD5Context *
-+MD5_NewContext(void)
-+{
-+ MD5Context *cx = (MD5Context *)malloc(sizeof(MD5Context));
-+ if (cx == NULL) {
-+// PORT_SetError(PR_OUT_OF_MEMORY_ERROR);
-+ return NULL;
-+ }
-+ return cx;
-+}
-+
-+void
-+MD5_DestroyContext(MD5Context *cx, PRBool freeit)
-+{
-+ if (freeit) {
-+ free(cx);
-+ }
-+}
-+
-+void
-+MD5_Begin(MD5Context *cx)
-+{
-+ cx->lsbInput = 0;
-+ cx->msbInput = 0;
-+ memset(cx->inBuf, 0, sizeof(cx->inBuf));
-+ cx->cv[0] = CV0_1;
-+ cx->cv[1] = CV0_2;
-+ cx->cv[2] = CV0_3;
-+ cx->cv[3] = CV0_4;
-+}
-+
-+#define cls(i32, s) (tmp = i32, tmp << s | tmp >> (32 - s))
-+
-+#define MASK 0x00ff00ff
-+#ifdef IS_LITTLE_ENDIAN
-+#define lendian(i32) \
-+ (i32)
-+#else
-+#define lendian(i32) \
-+ (tmp = i32 >> 16 | i32 << 16, (tmp & MASK) << 8 | tmp >> 8 & MASK)
-+#endif
-+
-+#if defined(SOLARIS) || defined(HPUX)
-+#define addto64(sumhigh, sumlow, addend) \
-+ sumlow += addend; sumhigh += (sumlow < addend);
-+#else
-+#define addto64(sumhigh, sumlow, addend) \
-+ sumlow += addend; if (sumlow < addend) ++sumhigh;
-+#endif
-+
-+#define F(X, Y, Z) \
-+ ((X & Y) | ((~X) & Z))
-+
-+#define G(X, Y, Z) \
-+ ((X & Z) | (Y & (~Z)))
-+
-+#define H(X, Y, Z) \
-+ (X ^ Y ^ Z)
-+
-+#define I(X, Y, Z) \
-+ (Y ^ (X | (~Z)))
-+
-+#define FF(a, b, c, d, bufint, s, ti) \
-+ a = b + cls(a + F(b, c, d) + bufint + ti, s)
-+
-+#define GG(a, b, c, d, bufint, s, ti) \
-+ a = b + cls(a + G(b, c, d) + bufint + ti, s)
-+
-+#define HH(a, b, c, d, bufint, s, ti) \
-+ a = b + cls(a + H(b, c, d) + bufint + ti, s)
-+
-+#define II(a, b, c, d, bufint, s, ti) \
-+ a = b + cls(a + I(b, c, d) + bufint + ti, s)
-+
-+static void
-+md5_compress(MD5Context *cx)
-+{
-+ PRUint32 a, b, c, d;
-+ PRUint32 tmp;
-+ a = cx->cv[0];
-+ b = cx->cv[1];
-+ c = cx->cv[2];
-+ d = cx->cv[3];
-+#ifndef IS_LITTLE_ENDIAN
-+ cx->u.w[0] = lendian(cx->u.w[0]);
-+ cx->u.w[1] = lendian(cx->u.w[1]);
-+ cx->u.w[2] = lendian(cx->u.w[2]);
-+ cx->u.w[3] = lendian(cx->u.w[3]);
-+ cx->u.w[4] = lendian(cx->u.w[4]);
-+ cx->u.w[5] = lendian(cx->u.w[5]);
-+ cx->u.w[6] = lendian(cx->u.w[6]);
-+ cx->u.w[7] = lendian(cx->u.w[7]);
-+ cx->u.w[8] = lendian(cx->u.w[8]);
-+ cx->u.w[9] = lendian(cx->u.w[9]);
-+ cx->u.w[10] = lendian(cx->u.w[10]);
-+ cx->u.w[11] = lendian(cx->u.w[11]);
-+ cx->u.w[12] = lendian(cx->u.w[12]);
-+ cx->u.w[13] = lendian(cx->u.w[13]);
-+ cx->u.w[14] = lendian(cx->u.w[14]);
-+ cx->u.w[15] = lendian(cx->u.w[15]);
-+#endif
-+ FF(a, b, c, d, cx->u.w[R1B0 ], S1_0, T1_0);
-+ FF(d, a, b, c, cx->u.w[R1B1 ], S1_1, T1_1);
-+ FF(c, d, a, b, cx->u.w[R1B2 ], S1_2, T1_2);
-+ FF(b, c, d, a, cx->u.w[R1B3 ], S1_3, T1_3);
-+ FF(a, b, c, d, cx->u.w[R1B4 ], S1_0, T1_4);
-+ FF(d, a, b, c, cx->u.w[R1B5 ], S1_1, T1_5);
-+ FF(c, d, a, b, cx->u.w[R1B6 ], S1_2, T1_6);
-+ FF(b, c, d, a, cx->u.w[R1B7 ], S1_3, T1_7);
-+ FF(a, b, c, d, cx->u.w[R1B8 ], S1_0, T1_8);
-+ FF(d, a, b, c, cx->u.w[R1B9 ], S1_1, T1_9);
-+ FF(c, d, a, b, cx->u.w[R1B10], S1_2, T1_10);
-+ FF(b, c, d, a, cx->u.w[R1B11], S1_3, T1_11);
-+ FF(a, b, c, d, cx->u.w[R1B12], S1_0, T1_12);
-+ FF(d, a, b, c, cx->u.w[R1B13], S1_1, T1_13);
-+ FF(c, d, a, b, cx->u.w[R1B14], S1_2, T1_14);
-+ FF(b, c, d, a, cx->u.w[R1B15], S1_3, T1_15);
-+ GG(a, b, c, d, cx->u.w[R2B0 ], S2_0, T2_0);
-+ GG(d, a, b, c, cx->u.w[R2B1 ], S2_1, T2_1);
-+ GG(c, d, a, b, cx->u.w[R2B2 ], S2_2, T2_2);
-+ GG(b, c, d, a, cx->u.w[R2B3 ], S2_3, T2_3);
-+ GG(a, b, c, d, cx->u.w[R2B4 ], S2_0, T2_4);
-+ GG(d, a, b, c, cx->u.w[R2B5 ], S2_1, T2_5);
-+ GG(c, d, a, b, cx->u.w[R2B6 ], S2_2, T2_6);
-+ GG(b, c, d, a, cx->u.w[R2B7 ], S2_3, T2_7);
-+ GG(a, b, c, d, cx->u.w[R2B8 ], S2_0, T2_8);
-+ GG(d, a, b, c, cx->u.w[R2B9 ], S2_1, T2_9);
-+ GG(c, d, a, b, cx->u.w[R2B10], S2_2, T2_10);
-+ GG(b, c, d, a, cx->u.w[R2B11], S2_3, T2_11);
-+ GG(a, b, c, d, cx->u.w[R2B12], S2_0, T2_12);
-+ GG(d, a, b, c, cx->u.w[R2B13], S2_1, T2_13);
-+ GG(c, d, a, b, cx->u.w[R2B14], S2_2, T2_14);
-+ GG(b, c, d, a, cx->u.w[R2B15], S2_3, T2_15);
-+ HH(a, b, c, d, cx->u.w[R3B0 ], S3_0, T3_0);
-+ HH(d, a, b, c, cx->u.w[R3B1 ], S3_1, T3_1);
-+ HH(c, d, a, b, cx->u.w[R3B2 ], S3_2, T3_2);
-+ HH(b, c, d, a, cx->u.w[R3B3 ], S3_3, T3_3);
-+ HH(a, b, c, d, cx->u.w[R3B4 ], S3_0, T3_4);
-+ HH(d, a, b, c, cx->u.w[R3B5 ], S3_1, T3_5);
-+ HH(c, d, a, b, cx->u.w[R3B6 ], S3_2, T3_6);
-+ HH(b, c, d, a, cx->u.w[R3B7 ], S3_3, T3_7);
-+ HH(a, b, c, d, cx->u.w[R3B8 ], S3_0, T3_8);
-+ HH(d, a, b, c, cx->u.w[R3B9 ], S3_1, T3_9);
-+ HH(c, d, a, b, cx->u.w[R3B10], S3_2, T3_10);
-+ HH(b, c, d, a, cx->u.w[R3B11], S3_3, T3_11);
-+ HH(a, b, c, d, cx->u.w[R3B12], S3_0, T3_12);
-+ HH(d, a, b, c, cx->u.w[R3B13], S3_1, T3_13);
-+ HH(c, d, a, b, cx->u.w[R3B14], S3_2, T3_14);
-+ HH(b, c, d, a, cx->u.w[R3B15], S3_3, T3_15);
-+ II(a, b, c, d, cx->u.w[R4B0 ], S4_0, T4_0);
-+ II(d, a, b, c, cx->u.w[R4B1 ], S4_1, T4_1);
-+ II(c, d, a, b, cx->u.w[R4B2 ], S4_2, T4_2);
-+ II(b, c, d, a, cx->u.w[R4B3 ], S4_3, T4_3);
-+ II(a, b, c, d, cx->u.w[R4B4 ], S4_0, T4_4);
-+ II(d, a, b, c, cx->u.w[R4B5 ], S4_1, T4_5);
-+ II(c, d, a, b, cx->u.w[R4B6 ], S4_2, T4_6);
-+ II(b, c, d, a, cx->u.w[R4B7 ], S4_3, T4_7);
-+ II(a, b, c, d, cx->u.w[R4B8 ], S4_0, T4_8);
-+ II(d, a, b, c, cx->u.w[R4B9 ], S4_1, T4_9);
-+ II(c, d, a, b, cx->u.w[R4B10], S4_2, T4_10);
-+ II(b, c, d, a, cx->u.w[R4B11], S4_3, T4_11);
-+ II(a, b, c, d, cx->u.w[R4B12], S4_0, T4_12);
-+ II(d, a, b, c, cx->u.w[R4B13], S4_1, T4_13);
-+ II(c, d, a, b, cx->u.w[R4B14], S4_2, T4_14);
-+ II(b, c, d, a, cx->u.w[R4B15], S4_3, T4_15);
-+ cx->cv[0] += a;
-+ cx->cv[1] += b;
-+ cx->cv[2] += c;
-+ cx->cv[3] += d;
-+}
-+
-+void
-+MD5_Update(MD5Context *cx, const unsigned char *input, unsigned int inputLen)
-+{
-+ PRUint32 bytesToConsume;
-+ PRUint32 inBufIndex = cx->lsbInput & 63;
-+
-+ /* Add the number of input bytes to the 64-bit input counter. */
-+ addto64(cx->msbInput, cx->lsbInput, inputLen);
-+ if (inBufIndex) {
-+ /* There is already data in the buffer. Fill with input. */
-+ bytesToConsume = PR_MIN(inputLen, MD5_BUFFER_SIZE - inBufIndex);
-+ memcpy(&cx->inBuf[inBufIndex], input, bytesToConsume);
-+ if (inBufIndex + bytesToConsume >= MD5_BUFFER_SIZE)
-+ /* The buffer is filled. Run the compression function. */
-+ md5_compress(cx);
-+ /* Remaining input. */
-+ inputLen -= bytesToConsume;
-+ input += bytesToConsume;
-+ }
-+
-+ /* Iterate over 64-byte chunks of the message. */
-+ while (inputLen >= MD5_BUFFER_SIZE) {
-+ memcpy(cx->inBuf, input, MD5_BUFFER_SIZE);
-+ md5_compress(cx);
-+ inputLen -= MD5_BUFFER_SIZE;
-+ input += MD5_BUFFER_SIZE;
-+ }
-+
-+ /* Tail of message (message bytes mod 64). */
-+ if (inputLen)
-+ memcpy(cx->inBuf, input, inputLen);
-+}
-+
-+static const unsigned char padbytes[] = {
-+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-+};
-+
-+void
-+MD5_End(MD5Context *cx, unsigned char *digest,
-+ unsigned int *digestLen, unsigned int maxDigestLen)
-+{
-+#ifndef IS_LITTLE_ENDIAN
-+ PRUint32 tmp;
-+#endif
-+ PRUint32 lowInput, highInput;
-+ PRUint32 inBufIndex = cx->lsbInput & 63;
-+
-+ if (maxDigestLen < MD5_HASH_LEN) {
-+// PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return;
-+ }
-+
-+ /* Copy out the length of bits input before padding. */
-+ lowInput = cx->lsbInput;
-+ highInput = (cx->msbInput << 3) | (lowInput >> 29);
-+ lowInput <<= 3;
-+
-+ if (inBufIndex < MD5_END_BUFFER) {
-+ MD5_Update(cx, padbytes, MD5_END_BUFFER - inBufIndex);
-+ } else {
-+ MD5_Update(cx, padbytes,
-+ MD5_END_BUFFER + MD5_BUFFER_SIZE - inBufIndex);
-+ }
-+
-+ /* Store the number of bytes input (before padding) in final 64 bits. */
-+ cx->u.w[14] = lendian(lowInput);
-+ cx->u.w[15] = lendian(highInput);
-+
-+ /* Final call to compress. */
-+ md5_compress(cx);
-+
-+ /* Copy the resulting values out of the chain variables into return buf. */
-+ *digestLen = MD5_HASH_LEN;
-+#ifndef IS_LITTLE_ENDIAN
-+ cx->cv[0] = lendian(cx->cv[0]);
-+ cx->cv[1] = lendian(cx->cv[1]);
-+ cx->cv[2] = lendian(cx->cv[2]);
-+ cx->cv[3] = lendian(cx->cv[3]);
-+#endif
-+ memcpy(digest, cx->cv, MD5_HASH_LEN);
-+}
-+
-+unsigned int
-+MD5_FlattenSize(MD5Context *cx)
-+{
-+ return sizeof(*cx);
-+}
-+
-+int
-+MD5_Flatten(MD5Context *cx, unsigned char *space)
-+{
-+ memcpy(space, cx, sizeof(*cx));
-+ return 0;
-+}
-+
-+MD5Context *
-+MD5_Resurrect(unsigned char *space, void *arg)
-+{
-+ MD5Context *cx = MD5_NewContext();
-+ if (cx)
-+ memcpy(cx, space, sizeof(*cx));
-+ return cx;
-+}
-+
-+void
-+MD5_TraceState(MD5Context *cx)
-+{
-+// PORT_SetError(PR_NOT_IMPLEMENTED_ERROR);
-+}
-+
-+int
-+md5_stream (FILE *stream, unsigned char *dest)
-+{
-+ /* Important: BLOCKSIZE must be a multiple of 64. */
-+#define BLOCKSIZE 4096
-+ unsigned int len;
-+ MD5Context *cx = MD5_NewContext();
-+ if (cx == NULL) {
-+// PORT_SetError(PR_OUT_OF_MEMORY_ERROR);
-+ return -1;
-+ }
-+
-+ unsigned char buffer[BLOCKSIZE + 72];
-+ size_t sum;
-+
-+ /* Initialize the computation context. */
-+ MD5_Begin(cx);
-+
-+ /* Iterate over full file contents. */
-+ while (1)
-+ {
-+ /* We read the file in blocks of BLOCKSIZE bytes. One call of the
-+ computation function processes the whole buffer so that with the
-+ next round of the loop another block can be read. */
-+ size_t n;
-+ sum = 0;
-+
-+ /* Read block. Take care for partial reads. */
-+ do
-+ {
-+ n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
-+
-+ sum += n;
-+ }
-+ while (sum < BLOCKSIZE && n != 0);
-+ if (n == 0 && ferror (stream))
-+ return 1;
-+
-+ /* If end of file is reached, end the loop. */
-+ if (n == 0)
-+ break;
-+
-+ /* Process buffer with BLOCKSIZE bytes. Note that
-+ BLOCKSIZE % 64 == 0
-+ */
-+ MD5_Update(cx, buffer, BLOCKSIZE);
-+ }
-+
-+ /* Add the last bytes if necessary. */
-+ if (sum > 0)
-+ MD5_Update(cx, buffer, sum);
-+
-+ MD5_End(cx, dest, &len, MD5_HASH_LEN);
-+ MD5_DestroyContext(cx, PR_TRUE);
-+ return len;
-+
-+}
-+
-+int getMD5sum(const char * fileName,char * sum)
-+{
-+ unsigned char bin_sum[16];
-+ int len=0;
-+ if (fileName)
-+ {
-+ FILE *fp=fopen(fileName,"rb");
-+ if (fp)
-+ {
-+ len=md5_stream(fp,bin_sum);
-+ memset(sum,0,33);
-+ for (int i = 0; i < len; ++i)
-+ sprintf (sum,"%s%02x",sum, bin_sum[i]);
-+ fclose(fp);
-+ return 0;
-+ }
-+ }
-+ return 1;
-+}
-+
-+int testMD5sum(const char * fileName,char * sum)
-+{
-+ char newSum[33]="";
-+ if (getMD5sum(fileName,newSum))
-+ return 1;
-+ return strcmp(newSum,sum);
-+}
---- misc/mozilla/mailnews/addrbook/src/nsAbMDBCardProperty.cpp 2006-12-22 14:51:38.000000000 +0100
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbMDBCardProperty.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -273,8 +273,7 @@
- if (mCardDatabase)
- {
- mCardDatabase->EditCard(this, PR_TRUE);
-- mCardDatabase->Commit(nsAddrDBCommitType::kLargeCommit);
-- return NS_OK;
-+ return mCardDatabase->Commit(nsAddrDBCommitType::kLargeCommit);
- }
- else
- return NS_ERROR_FAILURE;
---- misc/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.cpp 2008-01-29 20:31:58.000000000 +0100
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -561,7 +561,7 @@
- }
- }
- }
-- mDatabase->Commit(nsAddrDBCommitType::kLargeCommit);
-+ rv = mDatabase->Commit(nsAddrDBCommitType::kLargeCommit);
- }
- return rv;
- }
-@@ -707,6 +707,7 @@
- return NS_ERROR_NOT_IMPLEMENTED;
-
- nsresult rv = NS_OK;
-+
- if (!mDatabase)
- rv = GetAbDatabase();
-
-@@ -736,10 +737,11 @@
- mDatabase->CreateNewListCardAndAddToDB(this, m_dbRowID, newCard, PR_TRUE /* notify */);
- else
- mDatabase->CreateNewCardAndAddToDB(newCard, PR_TRUE);
-- mDatabase->Commit(nsAddrDBCommitType::kLargeCommit);
-+ rv = mDatabase->Commit(nsAddrDBCommitType::kLargeCommit);
-
-+ NS_ENSURE_SUCCESS(rv, rv);
- NS_IF_ADDREF(*addedCard = newCard);
-- return NS_OK;
-+ return rv;
- }
-
- NS_IMETHODIMP nsAbMDBDirectory::DropCard(nsIAbCard* aCard, PRBool needToCopyCard)
---- misc/mozilla/mailnews/addrbook/src/nsAbOutlookCard.cpp 2004-07-31 20:04:18.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbOutlookCard.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -94,6 +94,7 @@
- {
- index_DisplayName = 0,
- index_EmailAddress,
-+ index_SecondEmailAddress,
- index_FirstName,
- index_LastName,
- index_NickName,
-@@ -121,32 +122,34 @@
-
- static const ULONG OutlookCardMAPIProps [] =
- {
-- PR_DISPLAY_NAME_W,
-- PR_EMAIL_ADDRESS_W,
-- PR_GIVEN_NAME_W,
-- PR_SURNAME_W,
-- PR_NICKNAME_W,
-- PR_BUSINESS_TELEPHONE_NUMBER_W,
-- PR_HOME_TELEPHONE_NUMBER_W,
-- PR_BUSINESS_FAX_NUMBER_W,
-- PR_PAGER_TELEPHONE_NUMBER_W,
-- PR_MOBILE_TELEPHONE_NUMBER_W,
-- PR_HOME_ADDRESS_CITY_W,
-- PR_HOME_ADDRESS_STATE_OR_PROVINCE_W,
-- PR_HOME_ADDRESS_POSTAL_CODE_W,
-- PR_HOME_ADDRESS_COUNTRY_W,
-- PR_BUSINESS_ADDRESS_CITY_W,
-- PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_W,
-- PR_BUSINESS_ADDRESS_POSTAL_CODE_W,
-- PR_BUSINESS_ADDRESS_COUNTRY_W,
-- PR_TITLE_W,
-- PR_DEPARTMENT_NAME_W,
-- PR_COMPANY_NAME_W,
-- PR_BUSINESS_HOME_PAGE_W,
-- PR_PERSONAL_HOME_PAGE_W,
-- PR_COMMENT_W
-+ PR_DISPLAY_NAME_A,//0x8035001E
-+ PR_EMAIL_ADDRESS_A,//0x8034001E
-+ PR_SECOND_EMAIL_ADDRESS_A,//Second Email Address
-+ PR_GIVEN_NAME_A,
-+ PR_SURNAME_A,
-+ PR_NICKNAME_A,
-+ PR_BUSINESS_TELEPHONE_NUMBER_A,
-+ PR_HOME_TELEPHONE_NUMBER_A,
-+ PR_BUSINESS_FAX_NUMBER_A,
-+ PR_PAGER_TELEPHONE_NUMBER_A,
-+ PR_MOBILE_TELEPHONE_NUMBER_A,
-+ PR_HOME_ADDRESS_CITY_A,
-+ PR_HOME_ADDRESS_STATE_OR_PROVINCE_A,
-+ PR_HOME_ADDRESS_POSTAL_CODE_A,
-+ PR_HOME_ADDRESS_COUNTRY_A,
-+ PR_BUSINESS_ADDRESS_CITY_A,
-+ PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_A,
-+ PR_BUSINESS_ADDRESS_POSTAL_CODE_A,
-+ PR_BUSINESS_ADDRESS_COUNTRY_A,
-+ PR_TITLE_A,
-+ PR_DEPARTMENT_NAME_A,
-+ PR_COMPANY_NAME_A,
-+ PR_BUSINESS_HOME_PAGE_A,
-+ PR_PERSONAL_HOME_PAGE_A,
-+ PR_COMMENT_A
- } ;
-
-+
- nsresult nsAbOutlookCard::Init(const char *aUri)
- {
- nsresult retCode = nsRDFResource::Init(aUri) ;
-@@ -173,6 +176,7 @@
- SetDisplayName(unichars [index_DisplayName]->get()) ;
- SetNickName(unichars [index_NickName]->get()) ;
- SetPrimaryEmail(unichars [index_EmailAddress]->get()) ;
-+ SetSecondEmail(unichars [index_SecondEmailAddress]->get()) ;
- SetWorkPhone(unichars [index_WorkPhoneNumber]->get()) ;
- SetHomePhone(unichars [index_HomePhoneNumber]->get()) ;
- SetFaxNumber(unichars [index_WorkFaxNumber]->get()) ;
-@@ -207,12 +211,12 @@
- nsAutoString unichar ;
- nsAutoString unicharBis ;
-
-- if (mapiAddBook->GetPropertyUString(*mMapiData, PR_HOME_ADDRESS_STREET_W, unichar)) {
-+ if (mapiAddBook->GetPropertyUString(*mMapiData, PR_HOME_ADDRESS_STREET_A, unichar)) {
- splitString(unichar, unicharBis) ;
- SetHomeAddress(unichar.get()) ;
- SetHomeAddress2(unicharBis.get()) ;
- }
-- if (mapiAddBook->GetPropertyUString(*mMapiData, PR_BUSINESS_ADDRESS_STREET_W, unichar)) {
-+ if (mapiAddBook->GetPropertyUString(*mMapiData, PR_BUSINESS_ADDRESS_STREET_A, unichar)) {
- splitString(unichar, unicharBis) ;
- SetWorkAddress(unichar.get()) ;
- SetWorkAddress2(unicharBis.get()) ;
-@@ -290,6 +294,7 @@
- SetDisplayName(properties [index_DisplayName]) ;
- GetNickName(getter_Copies(properties [index_NickName])) ;
- GetPrimaryEmail(getter_Copies(properties [index_EmailAddress])) ;
-+ GetSecondEmail(getter_Copies(properties [index_SecondEmailAddress])) ;
- GetWorkPhone(getter_Copies(properties [index_WorkPhoneNumber])) ;
- GetHomePhone(getter_Copies(properties [index_HomePhoneNumber])) ;
- GetFaxNumber(getter_Copies(properties [index_WorkFaxNumber])) ;
-@@ -309,9 +314,16 @@
- GetWebPage1(getter_Copies(properties [index_WorkWebPage])) ;
- GetWebPage2(getter_Copies(properties [index_HomeWebPage])) ;
- GetNotes(getter_Copies(properties [index_Comments])) ;
-- if (!mapiAddBook->SetPropertiesUString(*mMapiData, OutlookCardMAPIProps,
-- index_LastProp, properties)) {
-- PRINTF(("Cannot set general properties.\n")) ;
-+
-+ int i=0;
-+ for (i=0;i<index_LastProp;i++)
-+ {
-+ if (!mapiAddBook->SetPropertyUString(*mMapiData,
-+ OutlookCardMAPIProps[i],
-+ properties[i]))
-+ {
-+ PRINTF(("Cannot set properties:%d.\n",OutlookCardMAPIProps[i])) ;
-+ }
- }
- delete [] properties ;
- nsXPIDLString unichar ;
---- misc/mozilla/mailnews/addrbook/src/nsAbOutlookDirFactory.cpp 2004-04-17 20:32:14.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbOutlookDirFactory.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -124,8 +124,8 @@
- nsCAutoString uri ;
- nsCOMPtr<nsIRDFResource> resource ;
-
-- for (ULONG i = 0 ; i < folders.mNbEntries ; ++ i) {
-- folders.mEntries [i].ToString(entryId) ;
-+ for (ULONG i = 0 ; i < folders.GetSize() ; ++ i) {
-+ folders[i].ToString(entryId) ;
- buildAbWinUri(kOutlookDirectoryScheme, abType, uri) ;
- uri.Append(entryId) ;
-
---- misc/mozilla/mailnews/addrbook/src/nsAbOutlookDirectory.cpp 2006-12-22 14:51:38.000000000 +0100
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbOutlookDirectory.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -126,7 +126,7 @@
- PRINTF(("Cannot get type.\n")) ;
- return NS_ERROR_FAILURE ;
- }
-- if (!mapiAddBook->GetPropertyUString(*mMapiData, PR_DISPLAY_NAME_W, unichars)) {
-+ if (!mapiAddBook->GetPropertyUString(*mMapiData, PR_DISPLAY_NAME_A, unichars)) {
- PRINTF(("Cannot get name.\n")) ;
- return NS_ERROR_FAILURE ;
- }
-@@ -163,45 +163,85 @@
- return retCode;
- }
-
-+nsresult nsAbOutlookDirectory::BuildCardFromURI(const nsCString& uriName,nsIAbCard **aNewCard,
-+ PRBool aSearchForOld, PRBool& aIsNewCard)
-+{
-+ nsresult retCode = NS_OK ;
-+ if (aSearchForOld) {
-+ nsCStringKey key(uriName) ;
-+ nsCOMPtr<nsISupports> existingCard = mCardList.Get(&key) ;
-+
-+ if (existingCard) {
-+ nsCOMPtr<nsIAbCard> card(do_QueryInterface(existingCard, &retCode)) ;
-+
-+ NS_ENSURE_SUCCESS(retCode, retCode) ;
-+ NS_IF_ADDREF(*aNewCard = card) ;
-+ aIsNewCard = PR_FALSE ;
-+ return retCode ;
-+ }
-+ }
-+ aIsNewCard = PR_TRUE ;
-+ nsCOMPtr<nsIRDFResource> resource ;
-+
-+ nsCOMPtr<nsIAbCard> childCard = do_CreateInstance(NS_ABOUTLOOKCARD_CONTRACTID, &retCode);
-+ NS_ENSURE_SUCCESS(retCode, retCode) ;
-+ resource = do_QueryInterface(childCard, &retCode) ;
-+ NS_ENSURE_SUCCESS(retCode, retCode) ;
-+ retCode = resource->Init(uriName.get()) ;
-+ NS_ENSURE_SUCCESS(retCode, retCode) ;
-+ NS_IF_ADDREF(*aNewCard = childCard);
-+ return retCode ;
-+}
-+
- NS_IMETHODIMP nsAbOutlookDirectory::GetChildCards(nsIEnumerator **aCards)
- {
- if (!aCards) { return NS_ERROR_NULL_POINTER ; }
- *aCards = nsnull ;
- nsCOMPtr<nsISupportsArray> cardList ;
-+ nsCStringArray uriList ;
-+ nsAbWinHelperGuard mapiAddBook (mAbWinType) ;
- nsresult retCode ;
-
-- mCardList.Reset() ;
- if (mIsQueryURI) {
- retCode = StartSearch() ;
-- NS_NewISupportsArray(getter_AddRefs(cardList)) ;
- }
- else {
-- retCode = GetChildCards(getter_AddRefs(cardList), nsnull) ;
-+ retCode = GetChildCards(uriList, nsnull) ;
- }
-+ NS_NewISupportsArray(getter_AddRefs(cardList)) ;
- if (NS_SUCCEEDED(retCode)) {
- // Fill the results array and update the card list
- // Also update the address list and notify any changes.
- PRUint32 nbCards = 0 ;
-- nsCOMPtr<nsISupports> element ;
-+ nsCAutoString uriName;
-+ nsCOMPtr <nsIAbCard> childCard;
-+ PRBool searchForOldCards = 0; //(mCardList.Count() != 0) ;
-+
-+ nbCards = uriList.Count();
-+ NS_NewISupportsArray(getter_AddRefs(m_AddressList));
-
-- cardList->Enumerate(aCards) ;
-- cardList->Count(&nbCards) ;
- for (PRUint32 i = 0 ; i < nbCards ; ++ i) {
-- cardList->GetElementAt(i, getter_AddRefs(element)) ;
-- nsVoidKey newKey (NS_STATIC_CAST(void *, element)) ;
-- nsCOMPtr<nsISupports> oldElement = mCardList.Get(&newKey) ;
-+ PRBool isNewCard = PR_FALSE ;
-
-- if (!oldElement) {
-+ uriList.CStringAt(i,uriName);
-+ retCode = BuildCardFromURI(uriName,getter_AddRefs(childCard), searchForOldCards, isNewCard);
-+ NS_ENSURE_SUCCESS(retCode, retCode) ;
-+ cardList->AppendElement(childCard);
-+
-+ if (isNewCard) {
- // We are dealing with a new element (probably directly
- // added from Outlook), we may need to sync m_AddressList
-- mCardList.Put(&newKey, element) ;
-- nsCOMPtr<nsIAbCard> card (do_QueryInterface(element, &retCode)) ;
-+ nsCStringKey newKey(uriName) ;
-+
-+ mCardList.Put(&newKey, childCard) ;
-+ nsCOMPtr<nsIAbCard> card (do_QueryInterface(childCard, &retCode)) ;
-
- NS_ENSURE_SUCCESS(retCode, retCode) ;
- PRBool isMailList = PR_FALSE ;
-
- retCode = card->GetIsMailList(&isMailList) ;
- NS_ENSURE_SUCCESS(retCode, retCode) ;
-+
- if (isMailList) {
- // We can have mailing lists only in folder,
- // we must add the directory to m_AddressList
-@@ -224,18 +264,33 @@
- NotifyItemAddition(card) ;
- }
- }
-- else {
-- NS_ASSERTION(oldElement == element, "Different card stored") ;
- }
- }
-+ return cardList->Enumerate(aCards) ;
- }
-+
-+static nsresult ExtractUriFromCard(nsIAbCard *aCard, nsCString& aUri) {
-+ nsresult retCode = NS_OK ;
-+ nsCOMPtr<nsIRDFResource> resource (do_QueryInterface(aCard, &retCode)) ;
-+
-+ // Receiving a non-RDF card is accepted
-+ if (NS_FAILED(retCode)) { return NS_OK ; }
-+ nsXPIDLCString uri ;
-+
-+ retCode = resource->GetValue(getter_Copies(uri)) ;
-+ NS_ENSURE_SUCCESS(retCode, retCode) ;
-+ aUri = uri.get() ;
- return retCode ;
- }
-
- NS_IMETHODIMP nsAbOutlookDirectory::HasCard(nsIAbCard *aCard, PRBool *aHasCard)
- {
- if (!aCard || !aHasCard) { return NS_ERROR_NULL_POINTER ; }
-- nsVoidKey key (NS_STATIC_CAST(void *, aCard)) ;
-+ *aHasCard = PR_FALSE ;
-+ nsCString uri ;
-+
-+ ExtractUriFromCard(aCard, uri) ;
-+ nsCStringKey key(uri) ;
-
- *aHasCard = mCardList.Exists(&key) ;
- return NS_OK ;
-@@ -317,7 +372,10 @@
- PRINTF(("Cannot delete card %s.\n", entryString.get())) ;
- }
- else {
-- nsVoidKey key (NS_STATIC_CAST(void *, element)) ;
-+ nsCString uri ;
-+
-+ ExtractUriFromCard(card, uri) ;
-+ nsCStringKey key(uri) ;
-
- mCardList.Remove(&key) ;
- if (m_IsMailList) { m_AddressList->RemoveElement(element) ; }
-@@ -386,7 +444,10 @@
- }
- retCode = CreateCard(aData, addedCard) ;
- NS_ENSURE_SUCCESS(retCode, retCode) ;
-- nsVoidKey newKey (NS_STATIC_CAST(void *, *addedCard)) ;
-+ nsCString uri ;
-+
-+ ExtractUriFromCard(*addedCard, uri) ;
-+ nsCStringKey newKey(uri) ;
-
- mCardList.Put(&newKey, *addedCard) ;
- if (m_IsMailList) { m_AddressList->AppendElement(*addedCard) ; }
-@@ -457,7 +518,7 @@
- if (!mapiAddBook->IsOK()) { return NS_ERROR_FAILURE ; }
- retCode = GetDirName(getter_Copies(name)) ;
- NS_ENSURE_SUCCESS(retCode, retCode) ;
-- if (!mapiAddBook->SetPropertyUString(*mMapiData, PR_DISPLAY_NAME_W, name.get())) {
-+ if (!mapiAddBook->SetPropertyUString(*mMapiData, PR_DISPLAY_NAME_A, name.get())) {
- return NS_ERROR_FAILURE ;
- }
- retCode = CommitAddressList() ;
-@@ -518,6 +579,7 @@
- {"DisplayName", PR_DISPLAY_NAME_A},
- {"NickName", PR_NICKNAME_A},
- {"PrimaryEmail", PR_EMAIL_ADDRESS_A},
-+ {"SecondEmail",PR_SECOND_EMAIL_ADDRESS_A},
- {"WorkPhone", PR_BUSINESS_TELEPHONE_NUMBER_A},
- {"HomePhone", PR_HOME_TELEPHONE_NUMBER_A},
- {"FaxNumber", PR_BUSINESS_FAX_NUMBER_A},
-@@ -1027,7 +1089,10 @@
-
- nsresult nsAbOutlookDirectory::OnSearchFoundCard(nsIAbCard *aCard)
- {
-- nsVoidKey newKey (NS_STATIC_CAST(void *, aCard)) ;
-+ nsCString uri ;
-+
-+ ExtractUriFromCard(aCard, uri) ;
-+ nsCStringKey newKey(uri) ;
- nsresult retCode = NS_OK ;
-
- mCardList.Put(&newKey, aCard) ;
-@@ -1051,14 +1116,14 @@
- retCode = BuildRestriction(aArguments, arguments) ;
- NS_ENSURE_SUCCESS(retCode, retCode) ;
- nsCOMPtr<nsISupportsArray> resultsArray ;
-+ nsCStringArray uriArray ;
- PRUint32 nbResults = 0 ;
-
-- retCode = GetChildCards(getter_AddRefs(resultsArray),
-+ retCode = GetChildCards(uriArray,
- arguments.rt == RES_COMMENT ? nsnull : &arguments) ;
- DestroyRestriction(arguments) ;
- NS_ENSURE_SUCCESS(retCode, retCode) ;
-- retCode = resultsArray->Count(&nbResults) ;
-- NS_ENSURE_SUCCESS(retCode, retCode) ;
-+ nbResults = uriArray.Count() ;
- nsCOMPtr<nsIAbDirectoryQueryResult> result ;
- nsAbDirectoryQueryResult *newResult = nsnull ;
-
-@@ -1066,15 +1131,18 @@
- nbResults = NS_STATIC_CAST(PRUint32, aResultLimit) ;
- }
- PRUint32 i = 0 ;
-- nsCOMPtr<nsISupports> element ;
- nsCOMPtr<nsISupportsArray> propertyValues ;
-
-+ nsCAutoString uriName;
-+ nsCOMPtr <nsIAbCard> card;
-+
- for (i = 0 ; i < nbResults ; ++ i) {
-- retCode = resultsArray->GetElementAt(i, getter_AddRefs(element)) ;
-- NS_ENSURE_SUCCESS(retCode, retCode) ;
-- nsCOMPtr<nsIAbCard> card (do_QueryInterface(element, &retCode)) ;
-+ PRBool isNewCard = PR_FALSE ;
-
-+ uriArray.CStringAt(i,uriName);
-+ retCode = BuildCardFromURI(uriName,getter_AddRefs(card), PR_FALSE, isNewCard);
- NS_ENSURE_SUCCESS(retCode, retCode) ;
-+
- FillPropertyValues(card, aArguments, getter_AddRefs(propertyValues)) ;
- newResult = new nsAbDirectoryQueryResult(0, aArguments,
- nsIAbDirectoryQueryResult::queryResultMatch,
-@@ -1099,13 +1167,43 @@
- if (!aCards) { return NS_ERROR_NULL_POINTER ; }
- *aCards = nsnull ;
- nsresult retCode = NS_OK ;
-- nsCOMPtr<nsISupportsArray> cards ;
-+
-+ nsCOMPtr<nsISupportsArray> cards;
-+ retCode = NS_NewISupportsArray(getter_AddRefs(cards));
-+ NS_ENSURE_SUCCESS(retCode, retCode) ;
-+
-+ nsCStringArray uriList;
-+ retCode = GetChildCards(uriList,aRestriction);
-+ NS_ENSURE_SUCCESS(retCode, retCode) ;
-+
-+ nsCAutoString uriName;
-+ nsCOMPtr <nsIAbCard> childCard;
-+ PRUint32 nbURIs = 0 ;
-+ nbURIs = uriList.Count();
-+ PRUint32 i = 0 ;
-+
-+ for (i = 0 ; i < nbURIs ; ++ i) {
-+ PRBool isNewCard = PR_FALSE ;
-+
-+ uriList.CStringAt(i,uriName);
-+ retCode = BuildCardFromURI(uriName,getter_AddRefs(childCard), PR_TRUE, isNewCard);
-+ NS_ENSURE_SUCCESS(retCode, retCode) ;
-+ cards->AppendElement(childCard);
-+ }
-+
-+ NS_IF_ADDREF(*aCards = cards);
-+ return retCode ;
-+}
-+
-+nsresult nsAbOutlookDirectory::GetChildCards(nsCStringArray& aURI,
-+ void *aRestriction)
-+{
-+ nsresult retCode = NS_OK ;
- nsAbWinHelperGuard mapiAddBook (mAbWinType) ;
- nsMapiEntryArray cardEntries ;
- LPSRestriction restriction = (LPSRestriction) aRestriction ;
-
- if (!mapiAddBook->IsOK()) { return NS_ERROR_FAILURE ; }
-- retCode = NS_NewISupportsArray(getter_AddRefs(cards)) ;
- NS_ENSURE_SUCCESS(retCode, retCode) ;
- if (!mapiAddBook->GetCards(*mMapiData, restriction, cardEntries)) {
- PRINTF(("Cannot get cards.\n")) ;
-@@ -1114,22 +1212,14 @@
- nsCAutoString entryId ;
- nsCAutoString uriName ;
- nsCOMPtr<nsIRDFResource> resource ;
-- nsCOMPtr <nsIAbCard> childCard;
--
-- for (ULONG card = 0 ; card < cardEntries.mNbEntries ; ++ card) {
-- cardEntries.mEntries [card].ToString(entryId) ;
-+ aURI.Clear();
-+
-+ for (ULONG card = 0 ; card < cardEntries.GetSize() ; ++ card) {
-+ cardEntries [card].ToString(entryId) ;
- buildAbWinUri(kOutlookCardScheme, mAbWinType, uriName) ;
- uriName.Append(entryId) ;
-- childCard = do_CreateInstance(NS_ABOUTLOOKCARD_CONTRACTID, &retCode);
-- NS_ENSURE_SUCCESS(retCode, retCode) ;
-- resource = do_QueryInterface(childCard, &retCode) ;
-- NS_ENSURE_SUCCESS(retCode, retCode) ;
-- retCode = resource->Init(uriName.get()) ;
-- NS_ENSURE_SUCCESS(retCode, retCode) ;
-- cards->AppendElement(childCard) ;
-+ aURI.AppendCString(uriName);
- }
-- *aCards = cards ;
-- NS_ADDREF(*aCards) ;
- return retCode ;
- }
-
-@@ -1153,8 +1243,8 @@
- nsCAutoString uriName ;
- nsCOMPtr <nsIRDFResource> resource ;
-
-- for (ULONG node = 0 ; node < nodeEntries.mNbEntries ; ++ node) {
-- nodeEntries.mEntries [node].ToString(entryId) ;
-+ for (ULONG node = 0 ; node < nodeEntries.GetSize() ; ++ node) {
-+ nodeEntries [node].ToString(entryId) ;
- buildAbWinUri(kOutlookDirectoryScheme, mAbWinType, uriName) ;
- uriName.Append(entryId) ;
- retCode = gRDFService->GetResource(uriName, getter_AddRefs(resource)) ;
-@@ -1275,7 +1365,7 @@
- // In the case of a mailing list, we cannot directly create a new card,
- // we have to create a temporary one in a real folder (to be able to use
- // templates) and then copy it to the mailing list.
-- if (m_IsMailList) {
-+ if (m_IsMailList && mAbWinType == nsAbWinType_OutlookExp) {
- nsMapiEntry parentEntry ;
- nsMapiEntry temporaryEntry ;
-
---- misc/mozilla/mailnews/addrbook/src/nsAbOutlookDirectory.h 2004-04-17 20:32:14.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbOutlookDirectory.h 2008-08-14 16:22:21.000000000 +0200
-@@ -46,6 +46,7 @@
- #include "nsHashtable.h"
-
- #include "nsISupportsArray.h"
-+#include "nsVoidArray.h"
-
- struct nsMapiEntry ;
-
-@@ -92,6 +93,8 @@
- protected:
- // Retrieve hierarchy as cards, with an optional restriction
- nsresult GetChildCards(nsISupportsArray **aCards, void *aRestriction) ;
-+ // Retrieve hierarchy as URIs, with an optional restriction
-+ nsresult GetChildCards(nsCStringArray& aURI, void *aRestriction) ;
- // Retrieve hierarchy as directories
- nsresult GetChildNodes(nsISupportsArray **aNodes) ;
- // Create a new card
-@@ -103,6 +106,9 @@
- nsresult CommitAddressList(void) ;
- // Read MAPI repository
- nsresult UpdateAddressList(void) ;
-+ // Search for an existing card or build a new one
-+ nsresult BuildCardFromURI(const nsCString& uriName,nsIAbCard **aNewCard,
-+ PRBool aSearchForOld, PRBool& aIsNewCard) ;
-
- nsMapiEntry *mMapiData ;
- // Container for the query threads
---- misc/mozilla/mailnews/addrbook/src/nsAbWinHelper.cpp 2005-05-07 08:11:28.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbWinHelper.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -42,6 +42,9 @@
- #define USES_IID_IABContainer
- #define USES_IID_IMAPITable
- #define USES_IID_IDistList
-+#define USES_IID_IMsgStore
-+#define USES_IID_IMessage
-+#define USES_IID_IMAPIFolder
-
- #include "nsAbWinHelper.h"
- #include "nsMapiAddressBook.h"
-@@ -59,19 +62,6 @@
-
- #define PRINTF(args) PR_LOG(gAbWinHelperLog, PR_LOG_DEBUG, args)
-
--// Small utility to ensure release of all MAPI interfaces
--template <class tInterface> struct nsMapiInterfaceWrapper
--{
-- tInterface mInterface ;
--
-- nsMapiInterfaceWrapper(void) : mInterface(NULL) {}
-- ~nsMapiInterfaceWrapper(void) {
-- if (mInterface != NULL) { mInterface->Release() ; }
-- }
-- operator LPUNKNOWN *(void) { return NS_REINTERPRET_CAST(LPUNKNOWN *, &mInterface) ; }
-- tInterface operator -> (void) const { return mInterface ; }
-- operator tInterface *(void) { return &mInterface ; }
--} ;
-
- static void assignEntryID(LPENTRYID& aTarget, LPENTRYID aSource, ULONG aByteCount)
- {
-@@ -249,24 +239,28 @@
- MOZ_DECL_CTOR_COUNTER(nsMapiEntryArray)
-
- nsMapiEntryArray::nsMapiEntryArray(void)
--: mEntries(NULL), mNbEntries(0)
- {
- MOZ_COUNT_CTOR(nsMapiEntryArray) ;
- }
-
- nsMapiEntryArray::~nsMapiEntryArray(void)
- {
-- if (mEntries) { delete [] mEntries ; }
-+ CleanUp();
- MOZ_COUNT_DTOR(nsMapiEntryArray) ;
- }
--
-+void nsMapiEntryArray::AddItem(nsMapiEntry * aEntries)
-+{
-+ m_array.AppendElement(aEntries);
-+}
- void nsMapiEntryArray::CleanUp(void)
- {
-- if (mEntries != NULL) {
-- delete [] mEntries ;
-- mEntries = NULL ;
-- mNbEntries = 0 ;
-+ nsMapiEntry *pEntries;
-+ for (int i = 0; i < m_array.Count(); i++)
-+ {
-+ pEntries = (nsMapiEntry *)m_array.ElementAt( i);
-+ delete pEntries;
- }
-+ m_array.Clear();
- }
-
- MOZ_DECL_CTOR_COUNTER(nsAbWinHelper)
-@@ -280,100 +274,55 @@
- // same protection (MAPI is supposed to be thread-safe).
- PRLock *nsAbWinHelper::mMutex = PR_NewLock() ;
-
-+int nsAbWinHelper::m_clients = 0;
-+
-+PRUnichar * nsAbWinHelper::m_pUniBuff = NULL;
-+int nsAbWinHelper::m_uniBuffLen = 0;
-+char * nsAbWinHelper::m_pCStrBuff = NULL;
-+int nsAbWinHelper::m_cstrBuffLen = 0;
-+
- nsAbWinHelper::nsAbWinHelper(void)
--: mAddressBook(NULL), mLastError(S_OK)
-+:mLastError(S_OK)
- {
- MOZ_COUNT_CTOR(nsAbWinHelper) ;
-+ m_clients++;
- }
-
- nsAbWinHelper::~nsAbWinHelper(void)
- {
- MOZ_COUNT_DTOR(nsAbWinHelper) ;
--}
--
--BOOL nsAbWinHelper::GetFolders(nsMapiEntryArray& aFolders)
-+ m_clients--;
-+ if (!m_clients)
- {
-- aFolders.CleanUp() ;
-- nsMapiInterfaceWrapper<LPABCONT> rootFolder ;
-- nsMapiInterfaceWrapper<LPMAPITABLE> folders ;
-- ULONG objType = 0 ;
-- ULONG rowCount = 0 ;
-- SRestriction restriction ;
-- SPropTagArray folderColumns ;
--
-- mLastError = mAddressBook->OpenEntry(0, NULL, NULL, 0, &objType,
-- rootFolder) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot open root %08x.\n", mLastError)) ;
-- return FALSE ;
-+ delete [] m_pUniBuff;
-+ m_pUniBuff = NULL;
-+ m_uniBuffLen = 0;
-+ delete [] m_pCStrBuff;
-+ m_pCStrBuff = NULL;
-+ m_cstrBuffLen = 0;
- }
-- mLastError = rootFolder->GetHierarchyTable(0, folders) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot get hierarchy %08x.\n", mLastError)) ;
-- return FALSE ;
- }
-- // We only take into account modifiable containers,
-- // otherwise, we end up with all the directory services...
-- restriction.rt = RES_BITMASK ;
-- restriction.res.resBitMask.ulPropTag = PR_CONTAINER_FLAGS ;
-- restriction.res.resBitMask.relBMR = BMR_NEZ ;
-- restriction.res.resBitMask.ulMask = AB_MODIFIABLE ;
-- mLastError = folders->Restrict(&restriction, 0) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot restrict table %08x.\n", mLastError)) ;
-- }
-- folderColumns.cValues = 1 ;
-- folderColumns.aulPropTag [0] = PR_ENTRYID ;
-- mLastError = folders->SetColumns(&folderColumns, 0) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot set columns %08x.\n", mLastError)) ;
-- return FALSE ;
-- }
-- mLastError = folders->GetRowCount(0, &rowCount) ;
-- if (HR_SUCCEEDED(mLastError)) {
-- aFolders.mEntries = new nsMapiEntry [rowCount] ;
-- aFolders.mNbEntries = 0 ;
-- do {
-- LPSRowSet rowSet = NULL ;
--
-- rowCount = 0 ;
-- mLastError = folders->QueryRows(1, 0, &rowSet) ;
-- if (HR_SUCCEEDED(mLastError)) {
-- rowCount = rowSet->cRows ;
-- if (rowCount > 0) {
-- nsMapiEntry& current = aFolders.mEntries [aFolders.mNbEntries ++] ;
-- SPropValue& currentValue = rowSet->aRow->lpProps [0] ;
--
-- current.Assign(currentValue.Value.bin.cb,
-- NS_REINTERPRET_CAST(LPENTRYID, currentValue.Value.bin.lpb)) ;
-- }
-- MyFreeProws(rowSet) ;
-- }
-- else {
-- PRINTF(("Cannot query rows %08x.\n", mLastError)) ;
-- }
-- } while (rowCount > 0) ;
-- }
-- return HR_SUCCEEDED(mLastError) ;
--}
-+
-
- BOOL nsAbWinHelper::GetCards(const nsMapiEntry& aParent, LPSRestriction aRestriction,
- nsMapiEntryArray& aCards)
- {
- aCards.CleanUp() ;
-- return GetContents(aParent, aRestriction, &aCards.mEntries, aCards.mNbEntries, 0) ;
-+ return GetContents(aParent, aRestriction, &aCards, 0) ;
- }
-
- BOOL nsAbWinHelper::GetNodes(const nsMapiEntry& aParent, nsMapiEntryArray& aNodes)
- {
- aNodes.CleanUp() ;
-- return GetContents(aParent, NULL, &aNodes.mEntries, aNodes.mNbEntries, MAPI_DISTLIST) ;
-+ return GetContents(aParent, NULL, &aNodes, MAPI_DISTLIST) ;
- }
-
- BOOL nsAbWinHelper::GetCardsCount(const nsMapiEntry& aParent, ULONG& aNbCards)
- {
-- aNbCards = 0 ;
-- return GetContents(aParent, NULL, NULL, aNbCards, 0) ;
-+ nsMapiEntryArray aCards;
-+ BOOL ret=GetContents(aParent, NULL, &aCards, 0) ;
-+ aNbCards=aCards.GetSize();
-+ return ret;
- }
-
- BOOL nsAbWinHelper::GetPropertyString(const nsMapiEntry& aObject,
-@@ -390,7 +339,7 @@
- aName = values->Value.lpszA ;
- }
- else if (PROP_TYPE(values->ulPropTag) == PT_UNICODE) {
-- aName.AssignWithConversion(values->Value.lpszW) ;
-+ UnicodeToCStr(values->Value.lpszW,aName) ;
- }
- }
- FreeBuffer(values) ;
-@@ -410,7 +359,7 @@
- aName = values->Value.lpszW ;
- }
- else if (PROP_TYPE(values->ulPropTag) == PT_STRING8) {
-- aName.AssignWithConversion(values->Value.lpszA) ;
-+ CStrToUnicode(values->Value.lpszA,aName) ;
- }
- }
- FreeBuffer(values) ;
-@@ -431,16 +380,22 @@
- ULONG i = 0 ;
-
- for (i = 0 ; i < valueCount ; ++ i) {
-- if (PROP_ID(values [i].ulPropTag) == PROP_ID(aPropertyTags [i])) {
-+ if (PROP_TYPE( values [i].ulPropTag) != PT_ERROR && values [i].Value.l != MAPI_E_NOT_FOUND){
- if (PROP_TYPE(values [i].ulPropTag) == PT_STRING8) {
- nsAutoString temp ;
-
-- temp.AssignWithConversion (values [i].Value.lpszA) ;
-+ CStrToUnicode(values [i].Value.lpszA,temp) ;
- aNames.AppendString(temp) ;
- }
- else if (PROP_TYPE(values [i].ulPropTag) == PT_UNICODE) {
- aNames.AppendString(nsAutoString (values [i].Value.lpszW)) ;
- }
-+ else if (aPropertyTags [i] == PR_EMAIL_ADDRESS_A) {
-+ nsAutoString temp ;
-+
-+ CStrToUnicode (values [i].Value.lpszA,temp) ;
-+ aNames.AppendString(temp) ;
-+ }
- else {
- aNames.AppendString(nsAutoString((const PRUnichar *) "")) ;
- }
-@@ -466,7 +421,6 @@
- if (!GetMAPIProperties(aObject, &aPropertyTag, 1, values, valueCount)) { return FALSE ; }
- if (valueCount == 1 && values != NULL && PROP_TYPE(values->ulPropTag) == PT_SYSTIME) {
- SYSTEMTIME readableTime ;
--
- if (FileTimeToSystemTime(&values->Value.ft, &readableTime)) {
- aYear = readableTime.wYear ;
- aMonth = readableTime.wMonth ;
-@@ -518,7 +472,7 @@
- nsMapiInterfaceWrapper<LPMAPIPROP> subObject ;
- ULONG objType = 0 ;
-
-- mLastError = mAddressBook->OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
-+ mLastError = OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
- &IID_IMAPIContainer, 0, &objType,
- container) ;
- if (HR_FAILED(mLastError)) {
-@@ -537,7 +491,7 @@
- SBinary entry ;
- SBinaryArray entryArray ;
-
-- mLastError = mAddressBook->OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
-+ mLastError = OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
- &IID_IABContainer, MAPI_MODIFY, &objType,
- container) ;
- if (HR_FAILED(mLastError)) {
-@@ -567,14 +521,15 @@
- value.Value.lpszW = NS_CONST_CAST(WCHAR *, aValue) ;
- }
- else if (PROP_TYPE(aPropertyTag) == PT_STRING8) {
-- alternativeValue.AssignWithConversion(aValue) ;
-+ UnicodeToCStr(aValue,alternativeValue) ;
- value.Value.lpszA = NS_CONST_CAST(char *, alternativeValue.get()) ;
- }
- else {
- PRINTF(("Property %08x is not a string.\n", aPropertyTag)) ;
- return TRUE ;
- }
-- return SetMAPIProperties(aObject, 1, &value) ;
-+ LPSPropValue values=&value;
-+ return SetMAPIProperties(aObject, 1, values) ;
- }
-
- BOOL nsAbWinHelper::SetPropertiesUString(const nsMapiEntry& aObject, const ULONG *aPropertiesTag,
-@@ -595,7 +550,7 @@
- values [currentValue ++].Value.lpszW = NS_CONST_CAST(WCHAR *, aValues [i].get()) ;
- }
- else if (PROP_TYPE(aPropertiesTag [i]) == PT_STRING8) {
-- alternativeValue.AssignWithConversion(aValues [i].get()) ;
-+ UnicodeToCStr(aValues [i].get(),alternativeValue) ;
- char *av = nsCRT::strdup(alternativeValue.get()) ;
- if (!av) {
- retCode = FALSE ;
-@@ -633,7 +588,8 @@
- readableTime.wSecond = 0 ;
- readableTime.wMilliseconds = 0 ;
- if (SystemTimeToFileTime(&readableTime, &value.Value.ft)) {
-- return SetMAPIProperties(aObject, 1, &value) ;
-+ LPSPropValue values=&value;
-+ return SetMAPIProperties(aObject, 1, values) ;
- }
- return TRUE ;
- }
-@@ -645,7 +601,7 @@
- nsMapiInterfaceWrapper<LPABCONT> container ;
- ULONG objType = 0 ;
-
-- mLastError = mAddressBook->OpenEntry(aParent.mByteCount, aParent.mEntryId,
-+ mLastError = OpenEntry(aParent.mByteCount, aParent.mEntryId,
- &IID_IABContainer, MAPI_MODIFY, &objType,
- container) ;
- if (HR_FAILED(mLastError)) {
-@@ -708,7 +664,7 @@
- nsMapiInterfaceWrapper<LPABCONT> container ;
- ULONG objType = 0 ;
-
-- mLastError = mAddressBook->OpenEntry(aParent.mByteCount, aParent.mEntryId,
-+ mLastError = OpenEntry(aParent.mByteCount, aParent.mEntryId,
- &IID_IABContainer, MAPI_MODIFY, &objType,
- container) ;
- if (HR_FAILED(mLastError)) {
-@@ -773,7 +729,7 @@
- nsMapiInterfaceWrapper<LPABCONT> container ;
- ULONG objType = 0 ;
-
-- mLastError = mAddressBook->OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
-+ mLastError = OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
- &IID_IABContainer, MAPI_MODIFY, &objType,
- container) ;
- if (HR_FAILED(mLastError)) {
-@@ -810,194 +766,77 @@
- return TRUE ;
- }
-
--BOOL nsAbWinHelper::GetDefaultContainer(nsMapiEntry& aContainer)
--{
-- LPENTRYID entryId = NULL ;
-- ULONG byteCount = 0 ;
--
-- mLastError = mAddressBook->GetPAB(&byteCount, &entryId) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot get PAB %08x.\n", mLastError)) ;
-- return FALSE ;
-- }
-- aContainer.Assign(byteCount, entryId) ;
-- FreeBuffer(entryId) ;
-- return TRUE ;
--}
-
--enum
--{
-- ContentsColumnEntryId = 0,
-- ContentsColumnObjectType,
-- ContentsColumnsSize
--} ;
-
--static const SizedSPropTagArray(ContentsColumnsSize, ContentsColumns) =
--{
-- ContentsColumnsSize,
-- {
-- PR_ENTRYID,
-- PR_OBJECT_TYPE
-- }
--} ;
-
--BOOL nsAbWinHelper::GetContents(const nsMapiEntry& aParent, LPSRestriction aRestriction,
-- nsMapiEntry **aList, ULONG& aNbElements, ULONG aMapiType)
-+void nsAbWinHelper::MyFreeProws(LPSRowSet aRowset)
- {
-- if (aList != NULL) { *aList = NULL ; }
-- aNbElements = 0 ;
-- nsMapiInterfaceWrapper<LPMAPICONTAINER> parent ;
-- nsMapiInterfaceWrapper<LPMAPITABLE> contents ;
-- ULONG objType = 0 ;
-- ULONG rowCount = 0 ;
-+ if (aRowset == NULL) { return ; }
-+ ULONG i = 0 ;
-
-- mLastError = mAddressBook->OpenEntry(aParent.mByteCount, aParent.mEntryId,
-- &IID_IMAPIContainer, 0, &objType,
-- parent) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot open parent %08x.\n", mLastError)) ;
-- return FALSE ;
-- }
-- // Here, flags for WAB and MAPI could be different, so this works
-- // only as long as we don't want to use any flag in GetContentsTable
-- mLastError = parent->GetContentsTable(0, contents) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot get contents %08x.\n", mLastError)) ;
-- return FALSE ;
-+ for (i = 0 ; i < aRowset->cRows ; ++ i) {
-+ FreeBuffer(aRowset->aRow [i].lpProps) ;
- }
-- if (aRestriction != NULL) {
-- mLastError = contents->Restrict(aRestriction, 0) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot set restriction %08x.\n", mLastError)) ;
-- return FALSE ;
-- }
-- }
-- mLastError = contents->SetColumns((LPSPropTagArray) &ContentsColumns, 0) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot set columns %08x.\n", mLastError)) ;
-- return FALSE ;
-- }
-- mLastError = contents->GetRowCount(0, &rowCount) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot get result count %08x.\n", mLastError)) ;
-- return FALSE ;
-- }
-- if (aList != NULL) { *aList = new nsMapiEntry [rowCount] ; }
-- aNbElements = 0 ;
-- do {
-- LPSRowSet rowSet = NULL ;
--
-- rowCount = 0 ;
-- mLastError = contents->QueryRows(1, 0, &rowSet) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot query rows %08x.\n", mLastError)) ;
-- return FALSE ;
-- }
-- rowCount = rowSet->cRows ;
-- if (rowCount > 0 &&
-- (aMapiType == 0 ||
-- rowSet->aRow->lpProps[ContentsColumnObjectType].Value.ul == aMapiType)) {
-- if (aList != NULL) {
-- nsMapiEntry& current = (*aList) [aNbElements] ;
-- SPropValue& currentValue = rowSet->aRow->lpProps[ContentsColumnEntryId] ;
--
-- current.Assign(currentValue.Value.bin.cb,
-- NS_REINTERPRET_CAST(LPENTRYID, currentValue.Value.bin.lpb)) ;
-+ FreeBuffer(aRowset) ;
-+ }
-+void nsAbWinHelper::CStrToUnicode( const char *pStr, nsString& result)
-+{
-+ result.Truncate( 0);
-+ int wLen = MultiByteToWideChar( CP_ACP, 0, pStr, -1, m_pUniBuff, 0);
-+ if (wLen >= m_uniBuffLen)
-+ {
-+ delete [] m_pUniBuff;
-+ m_pUniBuff = new PRUnichar[wLen + 64];
-+ m_uniBuffLen = wLen + 64;
- }
-- ++ aNbElements ;
-+ if (wLen)
-+ {
-+ MultiByteToWideChar( CP_ACP, 0, pStr, -1, m_pUniBuff, m_uniBuffLen);
-+ result = m_pUniBuff;
- }
-- MyFreeProws(rowSet) ;
-- } while (rowCount > 0) ;
-- return TRUE ;
- }
--
--BOOL nsAbWinHelper::GetMAPIProperties(const nsMapiEntry& aObject, const ULONG *aPropertyTags,
-- ULONG aNbProperties, LPSPropValue& aValue,
-- ULONG& aValueCount)
-+void nsAbWinHelper::UnicodeToCStr( const PRUnichar *pUStr,nsCString& result)
- {
-- nsMapiInterfaceWrapper<LPMAPIPROP> object ;
-- ULONG objType = 0 ;
-- LPSPropTagArray properties = NULL ;
-- ULONG i = 0 ;
--
-- mLastError = mAddressBook->OpenEntry(aObject.mByteCount, aObject.mEntryId,
-- &IID_IMAPIProp, 0, &objType,
-- object) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-- return FALSE ;
-+ result.Truncate( 0);
-+ int cLen = WideCharToMultiByte( CP_ACP, 0, pUStr, -1, m_pCStrBuff, 0,NULL,NULL);
-+ if (cLen >= m_cstrBuffLen) {
-+ if (m_pCStrBuff)
-+ delete [] m_pCStrBuff;
-+ m_pCStrBuff = new char[cLen + 64];
-+ m_cstrBuffLen = cLen + 64;
- }
-- AllocateBuffer(CbNewSPropTagArray(aNbProperties),
-- NS_REINTERPRET_CAST(void **, &properties)) ;
-- properties->cValues = aNbProperties ;
-- for (i = 0 ; i < aNbProperties ; ++ i) {
-- properties->aulPropTag [i] = aPropertyTags [i] ;
-- }
-- mLastError = object->GetProps(properties, 0, &aValueCount, &aValue) ;
-- FreeBuffer(properties) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot get props %08x.\n", mLastError)) ;
-+ if (cLen) {
-+ WideCharToMultiByte( CP_ACP, 0, pUStr, -1, m_pCStrBuff, m_cstrBuffLen,NULL,NULL);
-+ result = m_pCStrBuff;
- }
-- return HR_SUCCEEDED(mLastError) ;
- }
-
--BOOL nsAbWinHelper::SetMAPIProperties(const nsMapiEntry& aObject, ULONG aNbProperties,
-- const LPSPropValue& aValues)
--{
-- nsMapiInterfaceWrapper<LPMAPIPROP> object ;
-- ULONG objType = 0 ;
-- LPSPropProblemArray problems = NULL ;
-+static nsAbWinHelper *getOutlookAddressBook(void) {
-+ static nsMapiAddressBook *addressBook = NULL ;
-
-- mLastError = mAddressBook->OpenEntry(aObject.mByteCount, aObject.mEntryId,
-- &IID_IMAPIProp, MAPI_MODIFY, &objType,
-- object) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-- return FALSE ;
-- }
-- mLastError = object->SetProps(aNbProperties, aValues, &problems) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot update the object %08x.\n", mLastError)) ;
-- return FALSE ;
-- }
-- if (problems != NULL) {
-- for (ULONG i = 0 ; i < problems->cProblem ; ++ i) {
-- PRINTF(("Problem %d: index %d code %08x.\n", i,
-- problems->aProblem [i].ulIndex,
-- problems->aProblem [i].scode)) ;
-- }
-- }
-- mLastError = object->SaveChanges(0) ;
-- if (HR_FAILED(mLastError)) {
-- PRINTF(("Cannot commit changes %08x.\n", mLastError)) ;
-- }
-- return HR_SUCCEEDED(mLastError) ;
-+ if (addressBook == NULL) { addressBook = new nsMapiAddressBook ; }
-+ return addressBook ;
- }
-
--void nsAbWinHelper::MyFreeProws(LPSRowSet aRowset)
--{
-- if (aRowset == NULL) { return ; }
-- ULONG i = 0 ;
-+static nsAbWinHelper *getOutlookExpAddressBook(void) {
-+ static nsWabAddressBook *addressBook = NULL ;
-
-- for (i = 0 ; i < aRowset->cRows ; ++ i) {
-- FreeBuffer(aRowset->aRow [i].lpProps) ;
-- }
-- FreeBuffer(aRowset) ;
-+ if (addressBook == NULL) { addressBook = new nsWabAddressBook ; }
-+ return addressBook ;
- }
-
- nsAbWinHelperGuard::nsAbWinHelperGuard(PRUint32 aType)
- : mHelper(NULL)
- {
- switch(aType) {
-- case nsAbWinType_Outlook: mHelper = new nsMapiAddressBook ; break ;
-- case nsAbWinType_OutlookExp: mHelper = new nsWabAddressBook ; break ;
-+ case nsAbWinType_Outlook: mHelper = getOutlookAddressBook() ; break ;
-+ case nsAbWinType_OutlookExp: mHelper = getOutlookExpAddressBook() ; break ;
- default: break ;
- }
- }
-
- nsAbWinHelperGuard::~nsAbWinHelperGuard(void)
- {
-- delete mHelper ;
- }
-
- const char *kOutlookDirectoryScheme = "moz-aboutlookdirectory://" ;
---- misc/mozilla/mailnews/addrbook/src/nsAbWinHelper.h 2004-04-17 20:32:14.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAbWinHelper.h 2008-08-14 16:22:21.000000000 +0200
-@@ -45,6 +45,24 @@
- #include "nsVoidArray.h"
- #include "nsXPIDLString.h"
-
-+#define PR_SECOND_EMAIL_ADDRESS_A 0x8033001E
-+#define PR_SCREEN_NAME_A 0x805B001E
-+
-+
-+// Small utility to ensure release of all MAPI interfaces
-+template <class tInterface> struct nsMapiInterfaceWrapper
-+{
-+ tInterface mInterface ;
-+
-+ nsMapiInterfaceWrapper(void) : mInterface(NULL) {}
-+ ~nsMapiInterfaceWrapper(void) {
-+ if (mInterface ) { mInterface->Release() ; }
-+ }
-+ operator LPUNKNOWN *(void) { return NS_REINTERPRET_CAST(LPUNKNOWN *, &mInterface) ; }
-+ tInterface operator -> (void) const { return mInterface ; }
-+ operator tInterface *(void) { return &mInterface ; }
-+} ;
-+
- struct nsMapiEntry
- {
- ULONG mByteCount ;
-@@ -62,14 +80,28 @@
-
- struct nsMapiEntryArray
- {
-- nsMapiEntry *mEntries ;
-- ULONG mNbEntries ;
-
- nsMapiEntryArray(void) ;
- ~nsMapiEntryArray(void) ;
-
-- const nsMapiEntry& operator [] (int aIndex) const { return mEntries [aIndex] ; }
-+ void AddItem(nsMapiEntry * aEntries);
-+ void AddItem( ULONG mByteCount , LPENTRYID mEntryId )
-+ {
-+ nsMapiEntry * aEntries=new nsMapiEntry();
-+ aEntries->Assign(mByteCount,mEntryId);
-+ AddItem(aEntries);
-+ }
-+
-+ ULONG GetSize( void) { return( m_array.Count());}
-+ nsMapiEntry& operator [] (int aIndex) { return *(nsMapiEntry*)m_array.ElementAt(aIndex); }
-+ nsMapiEntry* ElementAt(int aIndex) { return (nsMapiEntry*)m_array.ElementAt(aIndex); }
- void CleanUp(void) ;
-+ void Remove(nsMapiEntry * aEntries){ m_array.RemoveElement(aEntries); }
-+ void Remove(int index){ m_array.RemoveElementAt(index); }
-+ ULONG IndexOf(nsMapiEntry * aEntries){return m_array.IndexOf(aEntries);};
-+private:
-+ nsVoidArray m_array;
-+
- } ;
-
- class nsAbWinHelper
-@@ -79,7 +111,7 @@
- virtual ~nsAbWinHelper(void) ;
-
- // Get the top address books
-- BOOL GetFolders(nsMapiEntryArray& aFolders) ;
-+ virtual BOOL GetFolders(nsMapiEntryArray& aFolders) =0;
- // Get a list of entries for cards/mailing lists in a folder/mailing list
- BOOL GetCards(const nsMapiEntry& aParent, LPSRestriction aRestriction,
- nsMapiEntryArray& aCards) ;
-@@ -97,18 +129,14 @@
- BOOL GetPropertiesUString(const nsMapiEntry& aObject, const ULONG *aPropertiesTag,
- ULONG aNbProperties, nsStringArray& aValues) ;
- // Get the value of a MAPI property of type SYSTIME
-- BOOL GetPropertyDate(const nsMapiEntry& aObject, ULONG aPropertyTag,
-+ virtual BOOL GetPropertyDate(const nsMapiEntry& aObject, ULONG aPropertyTag,
- WORD& aYear, WORD& aMonth, WORD& aDay) ;
-- // Get the value of a MAPI property of type LONG
-- BOOL GetPropertyLong(const nsMapiEntry& aObject, ULONG aPropertyTag, ULONG& aValue) ;
- // Get the value of a MAPI property of type BIN
- BOOL GetPropertyBin(const nsMapiEntry& aObject, ULONG aPropertyTag, nsMapiEntry& aValue) ;
- // Tests if a container contains an entry
- BOOL TestOpenEntry(const nsMapiEntry& aContainer, const nsMapiEntry& aEntry) ;
-- // Delete an entry in the address book
-- BOOL DeleteEntry(const nsMapiEntry& aContainer, const nsMapiEntry& aEntry) ;
- // Set the value of a MAPI property of type string in unicode
-- BOOL SetPropertyUString (const nsMapiEntry& aObject, ULONG aPropertyTag,
-+ virtual BOOL SetPropertyUString (const nsMapiEntry& aObject, ULONG aPropertyTag,
- const PRUnichar *aValue) ;
- // Same as previous, but with a bunch of properties in one call
- BOOL SetPropertiesUString(const nsMapiEntry& aObject, const ULONG *aPropertiesTag,
-@@ -117,32 +145,44 @@
- BOOL SetPropertyDate(const nsMapiEntry& aObject, ULONG aPropertyTag,
- WORD aYear, WORD aMonth, WORD aDay) ;
- // Create entry in the address book
-- BOOL CreateEntry(const nsMapiEntry& aParent, nsMapiEntry& aNewEntry) ;
-+ virtual BOOL CreateEntry(const nsMapiEntry& aParent, nsMapiEntry& aNewEntry) ;
-+ // Delete an entry in the address book
-+ virtual BOOL DeleteEntry(const nsMapiEntry& aContainer, const nsMapiEntry& aEntry) ;
- // Create a distribution list in the address book
-- BOOL CreateDistList(const nsMapiEntry& aParent, nsMapiEntry& aNewEntry) ;
-+ virtual BOOL CreateDistList(const nsMapiEntry& aParent, nsMapiEntry& aNewEntry) ;
- // Copy an existing entry in the address book
-- BOOL CopyEntry(const nsMapiEntry& aContainer, const nsMapiEntry& aSource, nsMapiEntry& aTarget) ;
-+ virtual BOOL CopyEntry(const nsMapiEntry& aContainer, const nsMapiEntry& aSource, nsMapiEntry& aTarget) ;
- // Get a default address book container
-- BOOL GetDefaultContainer(nsMapiEntry& aContainer) ;
-+ virtual BOOL GetDefaultContainer(nsMapiEntry& aContainer) =0;
- // Is the helper correctly initialised?
-- BOOL IsOK(void) const { return mAddressBook != NULL ; }
-+ virtual BOOL IsOK(void) =0;/*const { return mAddressBook != NULL ; }*/
-+
-+ // Get the value of a MAPI property of type LONG
-+ virtual BOOL GetPropertyLong(const nsMapiEntry& aObject, ULONG aPropertyTag, ULONG& aValue) ;
-
- protected:
- HRESULT mLastError ;
-- LPADRBOOK mAddressBook ;
- static PRUint32 mEntryCounter ;
- static PRLock *mMutex ;
-
-+ virtual HRESULT OpenEntry(ULONG cbEntryID,
-+ LPENTRYID lpEntryID,
-+ LPCIID lpInterface,
-+ ULONG ulFlags,
-+ ULONG FAR * lpulObjType,
-+ LPUNKNOWN FAR * lppUnk
-+ ) = 0;
-+
- // Retrieve the contents of a container, with an optional restriction
-- BOOL GetContents(const nsMapiEntry& aParent, LPSRestriction aRestriction,
-- nsMapiEntry **aList, ULONG &aNbElements, ULONG aMapiType) ;
-+ virtual BOOL GetContents(const nsMapiEntry& aParent, LPSRestriction aRestriction,
-+ nsMapiEntryArray *aList, ULONG aMapiType) =0;
- // Retrieve the values of a set of properties on a MAPI object
-- BOOL GetMAPIProperties(const nsMapiEntry& aObject, const ULONG *aPropertyTags,
-+ virtual BOOL GetMAPIProperties(const nsMapiEntry& aObject, const ULONG *aPropertyTags,
- ULONG aNbProperties,
-- LPSPropValue& aValues, ULONG& aValueCount) ;
-+ LPSPropValue& aValues, ULONG& aValueCount) =0;
- // Set the values of a set of properties on a MAPI object
-- BOOL SetMAPIProperties(const nsMapiEntry& aObject, ULONG aNbProperties,
-- const LPSPropValue& aValues) ;
-+ virtual BOOL SetMAPIProperties(const nsMapiEntry& aObject, ULONG aNbProperties,
-+ LPSPropValue& aValues) =0;
- // Clean-up a rowset returned by QueryRows
- void MyFreeProws(LPSRowSet aSet) ;
- // Allocation of a buffer for transmission to interfaces
-@@ -150,7 +190,16 @@
- // Destruction of a buffer provided by the interfaces
- virtual void FreeBuffer(LPVOID aBuffer) = 0 ;
-
-+ static void CStrToUnicode( const char *pStr, nsString& result);
-+ static void UnicodeToCStr( const PRUnichar *pStr, nsCString& result);
-+
- private:
-+ static int m_clients;
-+ static PRUnichar * m_pUniBuff;
-+ static int m_uniBuffLen;
-+ static char * m_pCStrBuff;
-+ static int m_cstrBuffLen;
-+
- } ;
-
- enum nsAbWinType
-@@ -168,6 +217,7 @@
-
- nsAbWinHelper *operator ->(void) { return mHelper ; }
-
-+ static void FreeWinAbLibrarys();
- private:
- nsAbWinHelper *mHelper ;
- } ;
---- misc/mozilla/mailnews/addrbook/src/nsAddrDatabase.cpp 2006-12-22 14:51:39.000000000 +0100
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAddrDatabase.cpp 2008-08-20 15:09:45.000000000 +0200
-@@ -100,6 +100,9 @@
-
- static const char kMailListAddressFormat[] = "Address%d";
-
-+extern int getMD5sum(const char * fileName,char * sum);
-+extern int testMD5sum(const char * fileName,char * sum);
-+
- static NS_DEFINE_CID(kCMorkFactory, NS_MORK_CID);
-
- nsAddrDatabase::nsAddrDatabase()
-@@ -171,6 +174,7 @@
- m_LastRecordKey(0),
- m_dbDirectory(nsnull)
- {
-+ memset(m_dbMd5Sum,0,33);
- }
-
- nsAddrDatabase::~nsAddrDatabase()
-@@ -790,7 +794,11 @@
- if (NS_FAILED(ret))
- ret = NS_ERROR_FILE_ACCESS_DENIED;
- }
--
-+
-+ ret = getMD5sum(nativeFileName,m_dbMd5Sum);
-+ if (ret == 1)
-+ ret = NS_ERROR_FAILURE;
-+
- nsCRT::free(nativeFileName);
-
- if (NS_SUCCEEDED(ret) && thumb)
-@@ -883,6 +891,17 @@
- {
- nsresult err = NS_OK;
- nsIMdbThumb *commitThumb = nsnull;
-+
-+ const char *pFilename = m_dbName.GetCString(); /* do not free */
-+ char *nativeFileName = nsCRT::strdup(pFilename);
-+#if defined(XP_PC) || defined(XP_MAC)
-+ UnixToNative(nativeFileName);
-+#endif
-+ if (testMD5sum(nativeFileName,m_dbMd5Sum))
-+ {
-+ nsCRT::free(nativeFileName);
-+ return NS_ERROR_FILE_ACCESS_DENIED;
-+ }
-
- if (commitType == nsAddrDBCommitType::kLargeCommit ||
- commitType == nsAddrDBCommitType::kSessionCommit)
-@@ -936,6 +955,10 @@
- // ### do something with error, but clear it now because mork errors out on commits.
- if (m_mdbEnv)
- m_mdbEnv->ClearErrors();
-+ if (NS_SUCCEEDED(err) && getMD5sum(nativeFileName,m_dbMd5Sum))
-+ err = NS_ERROR_FAILURE;
-+ nsCRT::free(nativeFileName);
-+
- return err;
- }
-
---- misc/mozilla/mailnews/addrbook/src/nsAddrDatabase.h 2006-12-22 14:51:39.000000000 +0100
-+++ misc/build/mozilla/mailnews/addrbook/src/nsAddrDatabase.h 2008-08-14 16:29:20.000000000 +0200
-@@ -394,6 +394,7 @@
- nsIMdbTable *m_mdbPabTable;
- nsIMdbTable *m_mdbDeletedCardsTable;
- nsFileSpec m_dbName;
-+ char m_dbMd5Sum[33];
- PRBool m_mdbTokensInitialized;
- nsVoidArray /*<nsIAddrDBListener>*/ *m_ChangeListeners;
-
---- misc/mozilla/mailnews/addrbook/src/nsMapiAddressBook.cpp 2004-11-05 16:13:32.000000000 +0100
-+++ misc/build/mozilla/mailnews/addrbook/src/nsMapiAddressBook.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -40,6 +40,22 @@
-
- #include "prlog.h"
-
-+static char * stristr(const char *big, const char *little)
-+{
-+ PRUint32 len;
-+
-+ if (!big || !little || !*big || !*little)
-+ return 0;
-+ len = strlen(little);
-+
-+ for( ; *big; big++ )
-+ if(!_strnicmp (big, little, 1) && ! _strnicmp (big, little, len) )
-+ return (char *)big;
-+
-+ return (char *)0;
-+
-+}
-+
- #ifdef PR_LOGGING
- static PRLogModuleInfo* gMapiAddressBookLog
- = PR_NewLogModule("nsMapiAddressBookLog");
-@@ -47,6 +63,60 @@
-
- #define PRINTF(args) PR_LOG(gMapiAddressBookLog, PR_LOG_DEBUG, args)
-
-+#define OUTLOOK_EMAIL_DIAPLAY_MAPI_ID 0x00008005 //use to get and set display
-+#define OUTLOOK_EMAIL1_MAPI_ID 0x00008084 //use to get and set primary email address
-+#define OUTLOOK_EMAIL2_MAPI_ID 0x00008094 //use to get and set second email address
-+#define OUTLOOK_EMAIL_SCREEN_NAME 0x8061001E //use to get and set screen name
-+#define OUTLOOK_EMAIL_ORGID 0x00008085 //use to get orginal entryid to add to distlist
-+#define OUTLOOK_EMAIL_LIST1 0x00008054 //use to get distlist table
-+#define OUTLOOK_EMAIL_LIST2 0x00008055 //use to set distlist table
-+
-+static const TagMap TagMaps[]={
-+ {PR_DISPLAY_NAME_A, OUTLOOK_EMAIL_DIAPLAY_MAPI_ID, PT_STRING8},
-+ {PR_EMAIL_ADDRESS_A, OUTLOOK_EMAIL1_MAPI_ID, PT_STRING8},
-+ {PR_SECOND_EMAIL_ADDRESS_A, OUTLOOK_EMAIL2_MAPI_ID, PT_STRING8},
-+ {PR_SCREEN_NAME_A, OUTLOOK_EMAIL_SCREEN_NAME, PT_STRING8}};
-+
-+enum {
-+ ieidPR_ENTRYID = 0,
-+ ieidPR_OBJECT_TYPE,
-+ ieidPR_DISPLAY_NAME,
-+ ieidPR_MESSAGE_CLASS,
-+ ieidPR_STORE_ENTRYID,
-+ ieidPR_MESSAGE_RECIPIENTS,
-+ ieidMax
-+};
-+
-+static const SizedSPropTagArray(ieidMax, ptaEid)=
-+{
-+ ieidMax,
-+ {
-+ PR_ENTRYID,
-+ PR_OBJECT_TYPE,
-+ PR_DISPLAY_NAME,
-+ PR_MESSAGE_CLASS,
-+ PR_STORE_ENTRYID,
-+ PR_MESSAGE_RECIPIENTS
-+ }
-+};
-+
-+enum
-+{
-+ ContentsColumnEntryId = 0,
-+ ContentsColumnObjectType,
-+ ContentsColumnMessageClass,
-+ ContentsColumnsSize
-+} ;
-+
-+static const SizedSPropTagArray(ContentsColumnsSize, ContentsColumns) =
-+{
-+ ContentsColumnsSize,
-+ {
-+ PR_ENTRYID,
-+ PR_OBJECT_TYPE,
-+ PR_MESSAGE_CLASS
-+ }
-+} ;
-
- HMODULE nsMapiAddressBook::mLibrary = NULL ;
- PRInt32 nsMapiAddressBook::mLibUsage = 0 ;
-@@ -59,7 +129,7 @@
- BOOL nsMapiAddressBook::mInitialized = FALSE ;
- BOOL nsMapiAddressBook::mLogonDone = FALSE ;
- LPMAPISESSION nsMapiAddressBook::mRootSession = NULL ;
--LPADRBOOK nsMapiAddressBook::mRootBook = NULL ;
-+#define MAPI_NO_COINIT 8
-
- BOOL nsMapiAddressBook::LoadMapiLibrary(void)
- {
-@@ -91,7 +161,7 @@
- mMAPILogonEx = NS_REINTERPRET_CAST(LPMAPILOGONEX,
- GetProcAddress(mLibrary, "MAPILogonEx")) ;
- if (!mMAPILogonEx) { return FALSE ; }
-- MAPIINIT_0 mapiInit = { MAPI_INIT_VERSION, MAPI_MULTITHREAD_NOTIFICATIONS } ;
-+ MAPIINIT_0 mapiInit = { MAPI_INIT_VERSION, MAPI_MULTITHREAD_NOTIFICATIONS | MAPI_NO_COINIT } ;
- HRESULT retCode = mMAPIInitialize(&mapiInit) ;
-
- if (HR_FAILED(retCode)) {
-@@ -105,22 +175,19 @@
- MAPI_NEW_SESSION,
- &mRootSession) ;
- if (HR_FAILED(retCode)) {
-- PRINTF(("Cannot logon to MAPI %08x.\n", retCode)) ; return FALSE ;
-+ PRINTF(("Cannot logon to MAPI %08x.\n", retCode)) ;
-+ return FALSE ;
- }
- mLogonDone = TRUE ;
-- retCode = mRootSession->OpenAddressBook(0, NULL, 0, &mRootBook) ;
-- if (HR_FAILED(retCode)) {
-- PRINTF(("Cannot open MAPI address book %08x.\n", retCode)) ;
-- }
-+
- return HR_SUCCEEDED(retCode) ;
- }
-
- void nsMapiAddressBook::FreeMapiLibrary(void)
- {
- if (mLibrary) {
-- if (-- mLibUsage == 0) {
-+ if (--mLibUsage < 0) {
- {
-- if (mRootBook) { mRootBook->Release() ; }
- if (mRootSession) {
- if (mLogonDone) {
- mRootSession->Logoff(NULL, 0, 0) ;
-@@ -134,6 +201,7 @@
- }
- }
- FreeLibrary(mLibrary) ;
-+ mRootSession = NULL;
- mLibrary = NULL ;
- }
- }
-@@ -145,7 +213,6 @@
- : nsAbWinHelper()
- {
- BOOL result = Initialize() ;
--
- NS_ASSERTION(result == TRUE, "Couldn't initialize Mapi Helper") ;
- MOZ_COUNT_CTOR(nsMapiAddressBook) ;
- }
-@@ -153,22 +220,882 @@
- nsMapiAddressBook::~nsMapiAddressBook(void)
- {
- nsAutoLock guard(mMutex) ;
--
-+ CleanUpMDB();
- FreeMapiLibrary() ;
- MOZ_COUNT_DTOR(nsMapiAddressBook) ;
- }
-
-+LPSPropValue nsMapiAddressBook::GetMapiProperty( LPMAPIPROP pProp, ULONG tag)
-+{
-+ if (!pProp)
-+ return( NULL);
-+
-+ int sz = CbNewSPropTagArray( 1);
-+ SPropTagArray *pTag = (SPropTagArray *) new char[sz];
-+ pTag->cValues = 1;
-+ pTag->aulPropTag[0] = tag;
-+ LPSPropValue lpProp = NULL;
-+ ULONG cValues = 0;
-+ HRESULT hr = pProp->GetProps( pTag, 0, &cValues, &lpProp);
-+ delete pTag;
-+ if (HR_FAILED( hr) || (cValues != 1)) {
-+ if (lpProp)
-+ mMAPIFreeBuffer( lpProp);
-+ return( NULL);
-+ }
-+ else {
-+ if (PROP_TYPE( lpProp->ulPropTag) == PT_ERROR) {
-+ if (lpProp->Value.l == MAPI_E_NOT_FOUND) {
-+ mMAPIFreeBuffer( lpProp);
-+ lpProp = NULL;
-+ }
-+ }
-+ }
-+
-+ return( lpProp);
-+}
-+BOOL nsMapiAddressBook::GetEntryIdFromProp( LPSPropValue pVal, ULONG& cbEntryId, LPENTRYID& lpEntryId, BOOL delVal)
-+{
-+ if (!pVal)
-+ return( FALSE);
-+
-+ BOOL bResult = TRUE;
-+ switch (PROP_TYPE(pVal->ulPropTag))
-+ {
-+ case PT_BINARY:
-+ cbEntryId = pVal->Value.bin.cb;
-+ mMAPIAllocateBuffer( cbEntryId, (LPVOID *) &lpEntryId);
-+ memcpy( lpEntryId, pVal->Value.bin.lpb, cbEntryId);
-+ break;
-+
-+ default:
-+ PRINTF(( "EntryId not in BINARY prop value\n"));
-+ bResult = FALSE;
-+ break;
-+ }
-+
-+ if (pVal && delVal)
-+ mMAPIFreeBuffer( pVal);
-+
-+ return( bResult);
-+}
-+
-+BOOL nsMapiAddressBook::HandleContentsItem(ULONG oType, ULONG cb, LPENTRYID pEntry,nsMapiEntryArray& aFolders)
-+{
-+ LPMDB lpMsgStore;
-+ ULONG objType=0;
-+ HRESULT hr;
-+
-+ if (oType == MAPI_MESSAGE)
-+ return FALSE;
-+ if (oType == MAPI_STORE)
-+ {
-+ hr=mRootSession->OpenEntry(
-+ cb,
-+ pEntry,
-+ &IID_IMsgStore,
-+ MAPI_BEST_ACCESS,
-+ &objType,
-+ (IUnknown**)&lpMsgStore);
-+ if (FAILED(hr))
-+ return FALSE ;
-+ //Add MDB to a list to make it can be released when class destroyed.
-+ //We must leave it openned or else we can't open address store in it.
-+ AddToMDBArray(lpMsgStore);
-+
-+ LPSPropValue pVal;
-+ pVal=GetMapiProperty(lpMsgStore,PR_IPM_SUBTREE_ENTRYID);
-+
-+
-+ if (pVal) {
-+ ULONG cbEntry;
-+ LPENTRYID pEntry;
-+ nsMapiInterfaceWrapper<LPMAPICONTAINER> lpSubTree;
-+
-+ if (GetEntryIdFromProp( pVal, cbEntry, pEntry)) {
-+ // Open up the folder!
-+ BOOL bResult = TRUE;
-+ bResult = lpMsgStore->OpenEntry(
-+ cbEntry,
-+ pEntry,
-+ NULL,
-+ MAPI_BEST_ACCESS,
-+ &objType,
-+ lpSubTree);
-+ mMAPIFreeBuffer( pEntry);
-+ if (!bResult && *(LPMAPICONTAINER*)&lpSubTree) {
-+ // Iterate the subtree with the results going into the folder list
-+ bResult = IterateHierarchy(*(LPMAPICONTAINER*)&lpSubTree,aFolders);
-+ }
-+ else {
-+ PRINTF(( "GetStoreFolders: Error opening sub tree.\n"));
-+ }
-+ }
-+ else {
-+ PRINTF(( "GetStoreFolders: Error getting entryID from sub tree property val.\n"));
-+ }
-+ }
-+ else {
-+ PRINTF(( "GetStoreFolders: Error getting sub tree property.\n"));
-+ }
-+ }
-+ else
-+ {
-+ PRINTF(("Type:%d\n",oType));
-+ }
-+
-+ return TRUE ;
-+}
-+
-+BOOL nsMapiAddressBook::IterateHierarchy(LPMAPICONTAINER pFolder,nsMapiEntryArray& aFolders, ULONG flags)
-+{
-+ // flags can be CONVENIENT_DEPTH or 0
-+ // CONVENIENT_DEPTH will return all depths I believe instead
-+ // of just children
-+ HRESULT hr;
-+ nsMapiInterfaceWrapper<LPMAPITABLE> lpTable;
-+ hr = pFolder->GetHierarchyTable( CONVENIENT_DEPTH , lpTable);
-+ if (HR_FAILED(hr)) {
-+ PRINTF(( "IterateHierarchy: GetContentsTable failed: 0x%lx, %d\n", (long)hr, (int)hr));
-+ return( FALSE);
-+}
-+
-+ ULONG rowCount;
-+ hr = lpTable->GetRowCount( 0, &rowCount);
-+ if (!rowCount) {
-+ return( TRUE);
-+ }
-+
-+ hr = lpTable->SetColumns( (LPSPropTagArray)&ptaEid, 0);
-+ if (HR_FAILED(hr)) {
-+ PRINTF(( "IterateHierarchy: SetColumns failed: 0x%lx, %d\n", (long)hr, (int)hr));
-+ return( FALSE);
-+ }
-+
-+ hr = lpTable->SeekRow( BOOKMARK_BEGINNING, 0, NULL);
-+ if (HR_FAILED(hr)) {
-+ PRINTF(( "IterateHierarchy: SeekRow failed: 0x%lx, %d\n", (long)hr, (int)hr));
-+ return( FALSE);
-+ }
-+
-+ int cNumRows = 0;
-+ LPSRowSet lpRow;
-+ BOOL keepGoing = TRUE;
-+ BOOL bResult = TRUE;
-+ do {
-+
-+ lpRow = NULL;
-+ hr = lpTable->QueryRows( 1, 0, &lpRow);
-+
-+ if (HR_FAILED(hr))
-+{
-+ PRINTF(( "QueryRows failed: 0x%lx, %d\n", (long)hr, (int)hr));
-+ bResult = FALSE;
-+ break;
-+ }
-+
-+ if (lpRow){
-+ cNumRows = lpRow->cRows;
-+
-+ if (cNumRows) {
-+ LPENTRYID lpEntry = (LPENTRYID) lpRow->aRow[0].lpProps[ieidPR_ENTRYID].Value.bin.lpb;
-+ ULONG cb = lpRow->aRow[0].lpProps[ieidPR_ENTRYID].Value.bin.cb;
-+ ULONG oType = lpRow->aRow[0].lpProps[ieidPR_OBJECT_TYPE].Value.ul;
-+
-+ keepGoing = HandleHierarchyItem( oType, cb, lpEntry,aFolders);
-+
-+ }
-+ MyFreeProws(lpRow);
-+ }
-+
-+ } while ( SUCCEEDED(hr) && cNumRows && lpRow && keepGoing);
-+
-+
-+ if (bResult && !keepGoing)
-+ bResult = FALSE;
-+
-+ return( bResult);
-+}
-+BOOL nsMapiAddressBook::HandleHierarchyItem( ULONG oType, ULONG cb, LPENTRYID pEntry,nsMapiEntryArray& aFolders)
-+{
-+ ULONG objType=0;
-+ if (oType == MAPI_FOLDER)
-+ {
-+ nsMapiInterfaceWrapper<LPMAPICONTAINER> pFolder ;
-+ if (!mRootSession->OpenEntry(
-+ cb,
-+ pEntry,
-+ 0,
-+ MAPI_BEST_ACCESS,
-+ &objType,
-+ pFolder))
-+ {
-+ LPSPropValue pVal;
-+
-+
-+ pVal = GetMapiProperty(*(LPMAPICONTAINER*)&pFolder, PR_CONTAINER_CLASS);
-+ if (pVal)
-+ {
-+ if (strcmp("IPF.Contact",pVal->Value.lpszA) == 0)
-+ {
-+ SPropValue *currentValue=GetMapiProperty( *(LPMAPICONTAINER*)&pFolder, PR_ENTRYID);
-+
-+ aFolders.AddItem(currentValue->Value.bin.cb,
-+ NS_REINTERPRET_CAST(LPENTRYID, currentValue->Value.bin.lpb)) ;
-+
-+ }
-+ }
-+ }
-+ }
-+ else
-+ {
-+ PRINTF(( "GetStoreFolders - HandleHierarchyItem: Unhandled ObjectType: %ld\n", oType));
-+ }
-+
-+ return( TRUE);
-+}
-+
-+
-+BOOL nsMapiAddressBook::GetFolders(nsMapiEntryArray& aFolders)
-+{
-+ aFolders.CleanUp() ;
-+ nsMapiInterfaceWrapper<LPMAPICONTAINER> rootFolder ;
-+ nsMapiInterfaceWrapper<LPMAPITABLE> folders ;
-+ ULONG objType = 0 ;
-+ ULONG rowCount = 0 ;
-+
-+ nsMapiInterfaceWrapper<LPMAPITABLE> lpTable;
-+
-+ mLastError = mRootSession->GetMsgStoresTable( 0, lpTable);
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open MAPI MsgStores %08x.\n", mLastError));
-+ return mLastError;
-+ }
-+
-+ mLastError = lpTable->GetRowCount( 0, &rowCount);
-+
-+ mLastError = lpTable->SetColumns( (LPSPropTagArray)&ptaEid, 0);
-+ if (FAILED(mLastError))
-+ return( mLastError);
-+ mLastError = lpTable->SeekRow( BOOKMARK_BEGINNING, 0, NULL);
-+ if (FAILED(mLastError))
-+ return mLastError;
-+
-+ int cNumRows = 0;
-+ LPSRowSet lpRow;
-+ BOOL keepGoing = TRUE;
-+ BOOL bResult = TRUE;
-+ do {
-+
-+ lpRow = NULL;
-+ mLastError = lpTable->QueryRows( 1, 0, &lpRow);
-+
-+ if (HR_FAILED(mLastError)){
-+ bResult = FALSE;
-+ break;
-+ }
-+
-+ if (lpRow){
-+ cNumRows = lpRow->cRows;
-+
-+ if (cNumRows) {
-+ LPENTRYID lpEID = (LPENTRYID) lpRow->aRow[0].lpProps[ieidPR_ENTRYID].Value.bin.lpb;
-+ ULONG cbEID = lpRow->aRow[0].lpProps[ieidPR_ENTRYID].Value.bin.cb;
-+ ULONG oType = lpRow->aRow[0].lpProps[ieidPR_OBJECT_TYPE].Value.ul;
-+
-+
-+ keepGoing = HandleContentsItem( oType, cbEID, lpEID,aFolders);
-+ }
-+ MyFreeProws( lpRow);
-+ }
-+
-+ } while ( SUCCEEDED(mLastError) && cNumRows && lpRow && keepGoing);
-+
-+
-+ return HR_SUCCEEDED(mLastError) ;
-+}
-+BOOL nsMapiAddressBook::CorrectRestriction(const LPMAPIPROP aMapiProp,ULONG aRestrictionNum, LPSRestriction aRestriction)
-+{
-+ ULONG conditionType = 0 ;
-+ ULONG ulResIndex;
-+ if (!aRestriction)
-+ return FALSE;
-+ for (ulResIndex=0;ulResIndex < aRestrictionNum;ulResIndex++)
-+ {
-+ conditionType = aRestriction[ulResIndex].rt;
-+ switch (conditionType)
-+ {
-+ case RES_EXIST :
-+ aRestriction[ulResIndex].res.resExist.ulPropTag =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resExist.ulPropTag);
-+ break ;
-+ case RES_BITMASK :
-+ aRestriction[ulResIndex].res.resBitMask.ulPropTag =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resBitMask.ulPropTag);
-+ break ;
-+ case RES_CONTENT :
-+ aRestriction[ulResIndex].res.resContent.ulPropTag =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resContent.ulPropTag);
-+ aRestriction[ulResIndex].res.resContent.lpProp->ulPropTag =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resContent.lpProp->ulPropTag);
-+ break ;
-+ case RES_PROPERTY :
-+ aRestriction[ulResIndex].res.resProperty.ulPropTag =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resProperty.ulPropTag);
-+ aRestriction[ulResIndex].res.resProperty.lpProp->ulPropTag =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resProperty.lpProp->ulPropTag);
-+ break ;
-+ case RES_SIZE :
-+ aRestriction[ulResIndex].res.resSize.ulPropTag =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resSize.ulPropTag);
-+ break ;
-+ case RES_COMPAREPROPS :
-+ aRestriction[ulResIndex].res.resCompareProps.ulPropTag1 =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resCompareProps.ulPropTag1);
-+ aRestriction[ulResIndex].res.resCompareProps.ulPropTag2 =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resCompareProps.ulPropTag2);
-+ break ;
-+ case RES_NOT :
-+ CorrectRestriction(aMapiProp,1,aRestriction[ulResIndex].res.resNot.lpRes);
-+ break;
-+ case RES_AND :
-+ CorrectRestriction(aMapiProp,
-+ aRestriction[ulResIndex].res.resAnd.cRes,
-+ aRestriction[ulResIndex].res.resAnd.lpRes);
-+ break;
-+ case RES_OR :
-+ CorrectRestriction(aMapiProp,
-+ aRestriction[ulResIndex].res.resOr.cRes,
-+ aRestriction[ulResIndex].res.resOr.lpRes);
-+ break;
-+
-+ case RES_COMMENT :
-+ CorrectRestriction(aMapiProp,1,aRestriction[ulResIndex].res.resComment.lpRes);
-+ aRestriction[ulResIndex].res.resComment.lpProp->ulPropTag =
-+ GetRealMapiPropertyTag(aMapiProp,aRestriction[ulResIndex].res.resComment.lpProp->ulPropTag);
-+ break;
-+ case RES_SUBRESTRICTION :
-+ CorrectRestriction(aMapiProp,1,aRestriction[ulResIndex].res.resSub.lpRes);
-+ break;
-+ default:
-+ return FALSE;
-+ }
-+ }
-+ return TRUE;
-+}
-+BOOL nsMapiAddressBook::Filter( LPSRestriction aRestriction,nsMapiEntryArray * aList)
-+{
-+ if (!aRestriction)
-+ return FALSE;
-+
-+ ULONG conditionType = 0 ;
-+
-+ nsMapiEntryArray listOut;
-+ ULONG listindex=0;
-+
-+ nsMapiEntryArray listDel;
-+ ULONG delindex=0;
-+
-+ ULONG listsize;
-+ ULONG resCount = 0;
-+ ULONG resIndex = 0;
-+
-+ listsize = aList->GetSize();
-+ conditionType = aRestriction->rt;
-+ switch (conditionType)
-+ {
-+ case RES_EXIST :
-+ case RES_BITMASK :
-+ case RES_CONTENT :
-+ case RES_PROPERTY :
-+ case RES_SIZE :
-+ case RES_COMPAREPROPS :
-+ case RES_COMMENT :
-+ case RES_SUBRESTRICTION :
-+ {
-+ while(listindex < aList->GetSize())
-+ {
-+ if (!FilterOnOneRow(aList->ElementAt(listindex),aRestriction))
-+ aList->Remove(listindex);
-+ else
-+ listindex++;
-+ }
-+ }
-+ break;
-+ case RES_NOT :
-+ aRestriction->res.resNot.ulReserved = 1;
-+ case RES_AND :
-+ case RES_OR :
-+ {
-+ if (conditionType == RES_OR)
-+ {
-+ for(listindex=0;listindex<aList->GetSize();listindex++)
-+ {
-+ listDel.AddItem(aList->ElementAt(listindex));
-+ }
-+ }
-+
-+ resCount = aRestriction->res.resAnd.cRes;
-+ //notice that SAndRestriction ,SNotRestriction ,SOrRestriction
-+ //use the same struct
-+ for (resIndex = 0;resIndex < resCount;resIndex++)
-+ {
-+ //can't call listOut.CleanUp() here
-+ //because it will destroy all Element too
-+ while(listOut.GetSize())
-+ {
-+ listOut.Remove(0);
-+ }
-+
-+ for(listindex=0;listindex<aList->GetSize();listindex++)
-+ {
-+ listOut.AddItem(aList->ElementAt(listindex));
-+ }
-+
-+ Filter(&aRestriction->res.resAnd.lpRes[resIndex],&listOut);
-+ if (conditionType == RES_NOT)
-+ {
-+ for(listindex=0;listindex<listOut.GetSize();listindex++)
-+ {
-+ aList->Remove(listOut.ElementAt(listindex));
-+ }
-+ }
-+ else if (conditionType == RES_AND )
-+ {
-+ for(listindex=0;listindex<listOut.GetSize();listindex++)
-+ {
-+ if (!aList->IndexOf(listOut.ElementAt(listindex)))
-+ {
-+ aList->Remove(listOut.ElementAt(listindex));
-+ }
-+ }
-+ }
-+ else if (conditionType == RES_OR )
-+ {
-+ for(listindex=0;listindex<listOut.GetSize();listindex++)
-+ {
-+ listDel.Remove(listOut.ElementAt(listindex));
-+ }
-+ if (listDel.GetSize() == 0)
-+ {
-+ break;
-+ }
-+ }
-+ }
-+ if (conditionType == RES_OR)
-+ {
-+ for(listindex=0;listindex<listDel.GetSize();listindex++)
-+ {
-+ aList->Remove(listDel.ElementAt(listindex));
-+ }
-+ }
-+ }
-+
-+ }
-+ while(listDel.GetSize())
-+ {
-+ listDel.Remove(0);
-+ }
-+ while(listOut.GetSize())
-+ {
-+ listOut.Remove(0);
-+ }
-+
-+
-+ return TRUE;
-+}
-+
-+BOOL nsMapiAddressBook::FilterOnOneRow(nsMapiEntry *aEntry,LPSRestriction aRestriction)
-+{
-+ LPMAPIPROP object ;
-+ ULONG objType = 0 ;
-+ LPSPropValue realValue = NULL ;
-+ LPSPropValue resValue = NULL ;
-+ ULONG valueCount = 0 ;
-+
-+ mLastError = OpenEntry(aEntry->mByteCount, aEntry->mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS, &objType,
-+ (IUnknown **)&object) ;
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ ULONG conditionType = 0 ;
-+ conditionType = aRestriction->rt;
-+
-+ switch (conditionType)
-+ {
-+ case RES_EXIST :
-+ if (!GetMAPIProperties(*aEntry,&aRestriction->res.resExist.ulPropTag,1,realValue,valueCount))
-+ return FALSE;
-+ resValue = NULL;
-+ break ;
-+ case RES_CONTENT :
-+ if (!GetMAPIProperties(*aEntry,&aRestriction->res.resContent.ulPropTag,1,realValue,valueCount))
-+ return FALSE;
-+ resValue = aRestriction->res.resContent.lpProp;
-+ break ;
-+ case RES_PROPERTY :
-+ if (!GetMAPIProperties(*aEntry,&aRestriction->res.resProperty.ulPropTag,1,realValue,valueCount))
-+ return FALSE;
-+ resValue = aRestriction->res.resProperty.lpProp;
-+ break ;
-+ case RES_BITMASK :
-+ return FALSE; //not support
-+ break ;
-+ case RES_SIZE :
-+ return FALSE;//not been used now
-+ break ;
-+ case RES_COMPAREPROPS :
-+ return FALSE;//not been used now
-+ break ;
-+ case RES_NOT :
-+ return FALSE;//not need care here
-+ break;
-+ case RES_AND :
-+ return FALSE;//not need care here
-+ break;
-+ case RES_OR :
-+ return FALSE;//not need care here
-+ break;
-+ case RES_COMMENT :
-+ return TRUE;//comment
-+ break;
-+ case RES_SUBRESTRICTION :
-+ return FALSE;//not been used now
-+ break ;
-+}
-+ return AtomyFilter(aRestriction,realValue,resValue);
-+
-+}
-+
-+BOOL nsMapiAddressBook::AtomyFilter(LPSRestriction aRestriction,LPSPropValue aRealValue,LPSPropValue aFilterValue)
-+{
-+ ULONG conditionType = 0 ;
-+ conditionType = aRestriction->rt;
-+
-+ BOOL bTagEq=(aRealValue &&
-+ PROP_TYPE( aRealValue->ulPropTag ) != PT_ERROR) &&
-+ aFilterValue;
-+ // PROP_TYPE( aRealValue->ulPropTag ) == PROP_TYPE( aFilterValue->ulPropTag ));
-+ switch (conditionType)
-+ {
-+ case RES_EXIST :
-+ return (aRealValue && PROP_TYPE( aRealValue->ulPropTag ) != PT_ERROR) ;
-+ break ;
-+ case RES_CONTENT :
-+ if (bTagEq)
-+ {
-+ switch(aRestriction->res.resContent.ulFuzzyLevel)
-+ {
-+ case FL_FULLSTRING :
-+ return !stricmp(aRealValue->Value.lpszA,aFilterValue->Value.lpszA);
-+ break;
-+ case FL_PREFIX :
-+ return stristr(aRealValue->Value.lpszA,aFilterValue->Value.lpszA) == aRealValue->Value.lpszA;
-+ break;
-+ case FL_SUBSTRING :
-+ default:
-+ return stristr(aRealValue->Value.lpszA,aFilterValue->Value.lpszA) != NULL;
-+ break;
-+ }
-+ }
-+ return FALSE;
-+ break ;
-+ case RES_PROPERTY :
-+ if (bTagEq)
-+ {
-+ switch(aRestriction->res.resProperty.relop)
-+ {
-+ case RELOP_GE :
-+ return stricmp(aRealValue->Value.lpszA,aFilterValue->Value.lpszA) >= 0;
-+ break;
-+ case RELOP_GT :
-+ return stricmp(aRealValue->Value.lpszA,aFilterValue->Value.lpszA) > 0;
-+ break;
-+ case RELOP_LE :
-+ return stricmp(aRealValue->Value.lpszA,aFilterValue->Value.lpszA) <= 0;
-+ break;
-+ case RELOP_LT :
-+ return stricmp(aRealValue->Value.lpszA,aFilterValue->Value.lpszA) < 0;
-+ break;
-+ case RELOP_EQ :
-+ return stricmp(aRealValue->Value.lpszA,aFilterValue->Value.lpszA) == 0;
-+ break;
-+ case RELOP_NE :
-+ return stricmp(aRealValue->Value.lpszA,aFilterValue->Value.lpszA) != 0;
-+ break;
-+ case RELOP_RE :
-+ default:
-+ return stristr(aRealValue->Value.lpszA,aFilterValue->Value.lpszA) != NULL;
-+ break;
-+
-+ }
-+ }
-+ return FALSE;
-+ break ;
-+ case RES_BITMASK :
-+ return FALSE; //not support
-+ break ;
-+ case RES_SIZE :
-+ return FALSE;//not been used now
-+ break ;
-+ case RES_COMPAREPROPS :
-+ return FALSE;//not been used now
-+ break ;
-+ case RES_NOT :
-+ return FALSE;//not need care here
-+ break;
-+ case RES_AND :
-+ return FALSE;//not need care here
-+ break;
-+ case RES_OR :
-+ return FALSE;//not need care here
-+ break;
-+ case RES_COMMENT :
-+ return TRUE;//comment
-+ break;
-+ case RES_SUBRESTRICTION :
-+ return FALSE;//not been used now
-+ break ;
-+ }
-+ return TRUE;
-+}
-+
-+BOOL nsMapiAddressBook::GetContents(const nsMapiEntry& aParent, LPSRestriction aRestriction,
-+ nsMapiEntryArray *aList, ULONG aMapiType)
-+{
-+ if (aList)
-+ aList->CleanUp();
-+
-+ nsMapiInterfaceWrapper<LPMAPICONTAINER> parent ;
-+ nsMapiInterfaceWrapper<LPMAPITABLE> contents ;
-+ ULONG objType = 0 ;
-+ ULONG rowCount = 0 ;
-+
-+
-+ nsMapiInterfaceWrapper<LPMAPIPROP> pFolder;
-+ nsCString cs;
-+ aParent.ToString(cs);
-+
-+ mLastError = OpenEntry(aParent.mByteCount, aParent.mEntryId,
-+ 0, MAPI_BEST_ACCESS, &objType, pFolder);
-+ if (HR_FAILED(mLastError))
-+ {
-+ PRINTF(("Cannot open folder %08x.\n", mLastError)) ;
-+ return FALSE;
-+ }
-+
-+
-+ LPSPropValue msgClass=GetMapiProperty(*(LPMAPIPROP*)&pFolder,PR_MESSAGE_CLASS);
-+ if (msgClass && strcmp("IPM.DistList",msgClass->Value.lpszA) == 0)
-+ {
-+ HRESULT hr;
-+ LPSPropValue aValue = NULL ;
-+ ULONG aValueCount = 0 ;
-+
-+ LPSPropTagArray properties = NULL ;
-+ mMAPIAllocateBuffer(CbNewSPropTagArray(1),
-+ (void **)&properties);
-+ properties->cValues = 1;
-+ properties->aulPropTag [0] = GetEmailPropertyTag(*(LPMAPIPROP*)&pFolder,OUTLOOK_EMAIL_LIST1);
-+ hr = pFolder->GetProps(properties, 0, &aValueCount, &aValue) ;
-+
-+ SBinaryArray *sa=&aValue->Value.MVbin;
-+
-+ LPENTRYID lpEID;
-+ ULONG cbEID;
-+
-+ ULONG idx;
-+ nsMapiEntry testEntry;
-+ nsCString sClass;
-+ for (idx=0;sa->lpbin && idx<sa->cValues ;idx++)
-+ {
-+ lpEID= (LPENTRYID) sa->lpbin[idx].lpb;
-+ cbEID = sa->lpbin[idx].cb;
-+ testEntry.Assign(sa->lpbin[idx].cb,NS_REINTERPRET_CAST(LPENTRYID,sa->lpbin[idx].lpb));
-+
-+ if (GetPropertyString(testEntry,PR_MESSAGE_CLASS,sClass)) //Error get property
-+ {
-+ aList->AddItem(cbEID,lpEID);
-+ }
-+ }
-+ Filter(aRestriction,aList);
-+ }
-+ else
-+ {
-+ if (aRestriction && !CorrectRestriction(*(LPMAPICONTAINER*)&pFolder,1,aRestriction))
-+ return FALSE;
-+ mLastError = OpenEntry(aParent.mByteCount, aParent.mEntryId,
-+ &IID_IMAPIContainer, MAPI_BEST_ACCESS, &objType,
-+ parent) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open parent %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ mLastError = parent->GetContentsTable(0, contents) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot get contents %08x.\n", mLastError)) ;
-+ return FALSE;
-+ }
-+ if (aRestriction) {
-+ mLastError = contents->Restrict(aRestriction, TBL_BATCH) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set restriction %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ }
-+ mLastError = contents->SetColumns((LPSPropTagArray)&ContentsColumns, 0);
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set columns %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ mLastError = contents->GetRowCount(0, &rowCount) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot get result count %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ do {
-+ LPSRowSet rowSet = NULL ;
-+
-+ rowCount = 0 ;
-+ mLastError = contents->QueryRows(1, 0, &rowSet) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot query rows %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ rowCount = rowSet->cRows ;
-+ if (rowCount > 0 && aList)
-+ {
-+ if (aMapiType == 0 || rowSet->aRow->lpProps[ContentsColumnObjectType].Value.ul == aMapiType)
-+ {
-+ SPropValue& currentValue = rowSet->aRow->lpProps[ContentsColumnEntryId] ;
-+ aList->AddItem(currentValue.Value.bin.cb,
-+ NS_REINTERPRET_CAST(LPENTRYID, currentValue.Value.bin.lpb)) ;
-+ }
-+ else if (aMapiType == MAPI_DISTLIST)
-+ {
-+ if (strcmp("IPM.DistList",rowSet->aRow->lpProps[ContentsColumnMessageClass].Value.lpszA)==0)
-+ {
-+ SPropValue& currentValue = rowSet->aRow->lpProps[ContentsColumnEntryId] ;
-+ aList->AddItem(currentValue.Value.bin.cb,
-+ NS_REINTERPRET_CAST(LPENTRYID, currentValue.Value.bin.lpb)) ;
-+
-+ }
-+}
-+
-+ }
-+ MyFreeProws(rowSet) ;
-+ } while (rowCount > 0) ;
-+ }
-+
-+
-+ return TRUE ;
-+}
-+
-+BOOL nsMapiAddressBook::GetMAPIProperties(const nsMapiEntry& aObject, const ULONG *aPropertyTags,
-+ ULONG aNbProperties, LPSPropValue& aValue,
-+ ULONG& aValueCount)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIPROP> object ;
-+ ULONG objType = 0 ;
-+ LPSPropTagArray properties = NULL ;
-+ ULONG i = 0 ;
-+
-+ mLastError = OpenEntry(aObject.mByteCount, aObject.mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS, &objType,
-+ object) ;
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ AllocateBuffer(CbNewSPropTagArray(aNbProperties),
-+ NS_REINTERPRET_CAST(void **, &properties));
-+ properties->cValues = aNbProperties ;
-+ for (i = 0 ; i < aNbProperties ; ++ i)
-+ {
-+ properties->aulPropTag [i] = GetRealMapiPropertyTag(*(LPMAPIPROP*)&object,aPropertyTags [i],TRUE);
-+ }
-+ mLastError = object->GetProps(properties, 0 , &aValueCount, &aValue) ;
-+ FreeBuffer(properties) ;
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Error get props %08x.\n", mLastError)) ;
-+ }
-+ return HR_SUCCEEDED(mLastError);
-+}
-+
-+BOOL nsMapiAddressBook::SetMAPIProperties(const nsMapiEntry& aObject, ULONG aNbProperties,
-+ LPSPropValue& aValues)
-+{
-+ nsMapiInterfaceWrapper<LPMESSAGE> object;
-+ ULONG objType = 0 ;
-+ LPSPropProblemArray problems = NULL ;
-+ ULONG i = 0 ;
-+
-+ LPMDB lpMsgStore=GetMsgStore(aObject);
-+
-+ if (!lpMsgStore)
-+ {
-+ return FALSE;
-+ }
-+ mLastError = lpMsgStore->OpenEntry(aObject.mByteCount, aObject.mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS , &objType,
-+ object) ;
-+ lpMsgStore->Release();
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ for (i = 0 ; i < aNbProperties ; ++ i)
-+ {
-+ aValues[i].ulPropTag = GetRealMapiPropertyTag(*(LPMESSAGE*)&object,aValues[i].ulPropTag,TRUE);
-+ }
-+ mLastError = object->SetProps(aNbProperties, aValues, &problems) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot update the object %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ if (problems) {
-+ for (ULONG i = 0 ; i < problems->cProblem ; ++ i) {
-+ PRINTF(("Problem %d: index %d code %08x.\n", i,
-+ problems->aProblem [i].ulIndex,
-+ problems->aProblem [i].scode)) ;
-+ }
-+ }
-+ mLastError = object->SaveChanges(0) ;
-+ if (MAPI_E_OBJECT_CHANGED == mLastError)
-+ {
-+ mLastError = object->SaveChanges(FORCE_SAVE ) ;
-+ }
-+ return HR_SUCCEEDED(mLastError) ;
-+}
-+
-+BOOL nsMapiAddressBook::GetDefaultContainer(nsMapiEntry& aContainer)
-+{
-+ return FALSE ;
-+}
-+
-+BOOL nsMapiAddressBook::IsOK(void)
-+{
-+ return mRootSession && mLibUsage;
-+}
-+
- BOOL nsMapiAddressBook::Initialize(void)
- {
-- if (mAddressBook) { return TRUE ; }
-+
- nsAutoLock guard(mMutex) ;
-
- if (!LoadMapiLibrary()) {
- PRINTF(("Cannot load library.\n")) ;
- return FALSE ;
- }
-- mAddressBook = mRootBook ;
-- return TRUE ;
-+ return TRUE;
- }
-
- void nsMapiAddressBook::AllocateBuffer(ULONG aByteCount, LPVOID *aBuffer)
-@@ -181,7 +1108,803 @@
- mMAPIFreeBuffer(aBuffer) ;
- }
-
-+ULONG nsMapiAddressBook::GetEmailPropertyTag(LPMAPIPROP lpProp, LONG nameID)
-+{
-+ static GUID emailGUID =
-+ {
-+ 0x00062004, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46
-+ };
-+
-+
-+ MAPINAMEID mapiNameID;
-+ mapiNameID.lpguid = &emailGUID;
-+ mapiNameID.ulKind = MNID_ID;
-+ mapiNameID.Kind.lID = nameID;
-+
-+ LPMAPINAMEID lpMapiNames = &mapiNameID;
-+ LPSPropTagArray lpMailTagArray = NULL;
-+
-+ HRESULT result = lpProp->GetIDsFromNames(1L, &lpMapiNames, 0, &lpMailTagArray);
-+ if (result == S_OK)
-+ {
-+ ULONG lTag = lpMailTagArray->aulPropTag[0];
-+ mMAPIFreeBuffer(lpMailTagArray);
-+ return lTag;
-+ }
-+ return 0L;
-+}
-+ULONG nsMapiAddressBook::GetRealMapiPropertyTag(LPMAPIPROP lpProp, LONG aPropertyTag,BOOL aTest)
-+{
-+ LPSPropValue addr;
-+ ULONG upRealTag=aPropertyTag;
-+ ULONG lSize=sizeof(TagMaps) / sizeof(TagMap);
-+
-+ for(int i=0; i<lSize; i++)
-+ {
-+ if (TagMaps[i].AddressTag == aPropertyTag)
-+ {
-+
-+ ULONG kPriEmailColumn=GetEmailPropertyTag(lpProp,TagMaps[i].NameID);
-+ if (aTest)
-+ {
-+ if (PR_DISPLAY_NAME_A == aPropertyTag)
-+ {
-+ //We need not change PR_DISPLAY_NAME_A tag if we are not using an address
-+ LPSPropValue msgClass=GetMapiProperty(lpProp,PR_MESSAGE_CLASS);
-+ if (msgClass && !strcmp("IPM.Contact",msgClass->Value.lpszA))
-+ {
-+ if (kPriEmailColumn)
-+ upRealTag = kPriEmailColumn | TagMaps[i].TypeMask;
-+ }
-+ else
-+ {
-+ FreeBuffer(msgClass);
-+ upRealTag = aPropertyTag;
-+ }
-+ }
-+ else //PR_DISPLAY_NAME_A == aPropertyTag
-+ {
-+ addr=GetMapiProperty(lpProp,aPropertyTag);
-+ if (!addr || PROP_TYPE( addr->ulPropTag) == PT_ERROR ||
-+ addr->Value.l == MAPI_E_NOT_FOUND)
-+ {
-+ if (kPriEmailColumn)
-+ upRealTag = kPriEmailColumn | TagMaps[i].TypeMask;
-+ }
-+ }
-+ }
-+ else //aTest
-+ {
-+ if (kPriEmailColumn)
-+ upRealTag = kPriEmailColumn | TagMaps[i].TypeMask;
-+ }
-+
-+ break; //we find it,exit
-+ }
-+ }
-+
-+ return upRealTag;
-+}
-+
-+BOOL nsMapiAddressBook::GetPropertyLong(const nsMapiEntry& aObject,
-+ ULONG aPropertyTag,
-+ ULONG& aValue)
-+{
-+ aValue = 0 ;
-+ LPSPropValue values = NULL ;
-+ ULONG valueCount = 0 ;
-+
-+ if (PR_OBJECT_TYPE == aPropertyTag)
-+ {
-+ nsMapiInterfaceWrapper<LPMAPIFOLDER> pFolder ;
-+ ULONG objType=0;
-+ mLastError = OpenEntry(aObject.mByteCount,aObject.mEntryId,
-+ NULL,MAPI_BEST_ACCESS,&objType, pFolder);
-+ if (HR_FAILED(mLastError))
-+ {
-+ PRINTF(("Cannot open folder %08x.\n", mLastError)) ;
-+ return FALSE;
-+ }
-+ LPSPropValue msgClass=GetMapiProperty(*(LPMAPIFOLDER*)&pFolder,PR_MESSAGE_CLASS);
-+ if (msgClass && strcmp("IPM.DistList",msgClass->Value.lpszA) == 0)
-+ {
-+ FreeBuffer(msgClass);
-+ aValue = MAPI_DISTLIST;
-+ return TRUE;
-+ }
-+ }
-
-+ if (!GetMAPIProperties(aObject, &aPropertyTag, 1, values, valueCount))
-+ return FALSE ;
-
-+ if (valueCount == 1 && values && PROP_TYPE(values->ulPropTag) == PT_LONG) {
-+ aValue = values->Value.ul ;
-+ }
-+ FreeBuffer(values) ;
-+ return TRUE ;
-+}
-+
-+BOOL nsMapiAddressBook::GetPropertyDate(const nsMapiEntry& aObject, ULONG aPropertyTag,
-+ WORD& aYear, WORD& aMonth, WORD& aDay)
-+{
-+ aYear = 0;
-+ aMonth = 0;
-+ aDay = 0;
-+ LPSPropValue values = NULL ;
-+ ULONG valueCount = 0 ;
-+
-+ if (!GetMAPIProperties(aObject, &aPropertyTag, 1, values, valueCount))
-+ return FALSE ;
-+
-+ if (valueCount == 1 && values && PROP_TYPE(values->ulPropTag) == PT_SYSTIME) {
-+ SYSTEMTIME readableTime ;
-+ FILETIME localTime ;
-+ FileTimeToLocalFileTime(&values->Value.ft,&localTime);
-+ if (FileTimeToSystemTime(&localTime, &readableTime)) {
-+ aYear = readableTime.wYear ;
-+ aMonth = readableTime.wMonth ;
-+ aDay = readableTime.wDay ;
-+ }
-+ }
-+ FreeBuffer(values) ;
-+ return TRUE ;
-+}
-+
-+HRESULT nsMapiAddressBook::OpenEntry(ULONG cbEntryID,
-+ LPENTRYID lpEntryID,
-+ LPCIID lpInterface,
-+ ULONG ulFlags,
-+ ULONG FAR * lpulObjType,
-+ LPUNKNOWN FAR * lppUnk
-+ )
-+{
-+
-+ int err;
-+ HRESULT rv;
-+ __try
-+ {
-+ rv=mRootSession->OpenEntry(cbEntryID,
-+ lpEntryID,
-+ lpInterface,
-+ ulFlags ,
-+ lpulObjType,
-+ lppUnk
-+ );
-+ }__except(err)
-+ {
-+ return (-1);
-+ }
-+
-+ if (HR_FAILED(rv) && !m_MDBArray.Count())
-+ {
-+ //There are no openned Message store,so we have to open them all
-+ nsMapiEntryArray aFolders;
-+ if (GetFolders(aFolders))
-+ {
-+ __try
-+ {
-+ rv=mRootSession->OpenEntry(cbEntryID,
-+ lpEntryID,
-+ lpInterface,
-+ ulFlags ,
-+ lpulObjType,
-+ lppUnk
-+ );
-+ }__except(err)
-+ {
-+ return (-1);
-+ }
-+ }
-+ }
-+ return rv;
-+
-+}
-+
-+BOOL nsMapiAddressBook::AddEntryToList(const nsMapiEntry& aDistlist, const nsMapiEntry& aNewEntry)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIPROP> container ;
-+ ULONG objType = 0 ;
-+
-+ nsMapiEntry parentEntry;
-+ if (!GetEntryParent(aDistlist,parentEntry))
-+ return FALSE;
-+
-+ LPMDB lpMsgStore=GetMsgStore(parentEntry);
-+
-+ if (!lpMsgStore)
-+ return FALSE;
-+ mLastError = lpMsgStore->OpenEntry(aDistlist.mByteCount, aDistlist.mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS, &objType,
-+ container) ;
-+ lpMsgStore->Release();
-+
-+ if (HR_FAILED(mLastError))
-+ return FALSE ;
-+
-+
-+ /*
-+ When add mail address to distlist,Mapi need update 2 tag.
-+ */
-+ //update OUTLOOK_EMAIL_LIST1
-+ ULONG listTag=GetEmailPropertyTag(*(LPMAPIPROP*)&container,OUTLOOK_EMAIL_LIST1) | PT_MV_BINARY;
-+ SBinaryArray oldChildren;
-+ LPSBinary bins=NULL;
-+ SBinaryArray newChildren;
-+ LPSPropValue oldChildValue = NULL ;
-+ ULONG valueCount = 0 ;
-+
-+ if (!GetMAPIProperties(aDistlist, &listTag, 1, oldChildValue, valueCount))
-+ {
-+ PRINTF(("Cannot get old children %08x.\n", mLastError)) ;
-+ return FALSE;
-+ }
-+
-+ if (! (oldChildValue->Value.l == MAPI_E_NOT_FOUND))
-+ {
-+ oldChildren = oldChildValue->Value.MVbin;
-+ newChildren.cValues=oldChildren.cValues + 1;
-+ mMAPIAllocateBuffer(sizeof(SBinary) * newChildren.cValues,(void**)& bins);
-+ newChildren.lpbin = bins;
-+ for (ULONG i=0;i<oldChildren.cValues;i++)
-+ {
-+ newChildren.lpbin[i].lpb = oldChildren.lpbin[i].lpb;
-+ newChildren.lpbin[i].cb = oldChildren.lpbin[i].cb;
-+ }
-+ }
-+ else
-+ {
-+ newChildren.cValues = 1;
-+ mMAPIAllocateBuffer(sizeof(SBinary) * newChildren.cValues,(void**)& bins);
-+ newChildren.lpbin = bins;
-+ }
-+
-+ nsMapiEntry orgEntryID;
-+ if (!GetPropertyBin(aNewEntry,
-+ GetEmailPropertyTag(*(LPMAPIPROP*)&container,OUTLOOK_EMAIL_ORGID) | PT_BINARY,
-+ orgEntryID))
-+ {
-+ return FALSE;
-+ }
-+ newChildren.lpbin[newChildren.cValues-1].lpb = NS_REINTERPRET_CAST(unsigned char *, orgEntryID.mEntryId);
-+ newChildren.lpbin[newChildren.cValues-1].cb = orgEntryID.mByteCount;
-+
-+ SPropValue children;
-+ children.ulPropTag = listTag;
-+ children.Value.MVbin = newChildren;
-+
-+ LPSPropProblemArray problems = NULL ;
-+ mLastError = container->SetProps(1, &children, &problems) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set children %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ //update OUTLOOK_EMAIL_LIST2
-+ listTag = GetEmailPropertyTag(*(LPMAPIPROP*)&container,OUTLOOK_EMAIL_LIST2) | PT_MV_BINARY;
-+ if (!GetMAPIProperties(aDistlist, &listTag, 1, oldChildValue, valueCount))
-+ {
-+ PRINTF(("Cannot get old children %08x.\n", mLastError)) ;
-+ return FALSE;
-+ }
-+
-+ if (! (oldChildValue->Value.l == MAPI_E_NOT_FOUND))
-+ {
-+ oldChildren = oldChildValue->Value.MVbin;
-+ newChildren.cValues=oldChildren.cValues + 1;
-+ mMAPIAllocateBuffer(sizeof(SBinary) * newChildren.cValues,(void**)& bins);
-+ newChildren.lpbin = bins;
-+ for (ULONG i=0;i<oldChildren.cValues;i++)
-+ {
-+ newChildren.lpbin[i].lpb = oldChildren.lpbin[i].lpb;
-+ newChildren.lpbin[i].cb = oldChildren.lpbin[i].cb;
-+ }
-+ }
-+ else
-+ {
-+ newChildren.cValues = 1;
-+ mMAPIAllocateBuffer(sizeof(SBinary) * newChildren.cValues,(void**)& bins);
-+ newChildren.lpbin = bins;
-+ }
-+
-+ /*
-+ Need more work here.
-+ There are two kind of mail address in outlook DistList.
-+ One is sample,not include in parent folder.
-+ The other is a link to a unattached address in parents folders.
-+ Currently we can only add first kind of address to a outlook distlist.
-+ */
-+
-+ newChildren.lpbin[newChildren.cValues-1].lpb = NS_REINTERPRET_CAST(unsigned char *, orgEntryID.mEntryId);
-+ newChildren.lpbin[newChildren.cValues-1].cb = orgEntryID.mByteCount;
-+
-+ children.ulPropTag = listTag;
-+ children.Value.MVbin = newChildren;
-+
-+ mLastError = container->SetProps(1, &children, &problems) ;
-+ if (HR_FAILED(mLastError))
-+ {
-+ PRINTF(("Cannot set children %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ mMAPIFreeBuffer(bins);
-+
-+ mLastError = container->SaveChanges(KEEP_OPEN_READONLY) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot commit new entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ return TRUE ;
-+}
-+BOOL nsMapiAddressBook::DeleteEntryFromList(const nsMapiEntry& aDistlist, const nsMapiEntry& aNewEntry)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIPROP> container ;
-+ ULONG objType = 0 ;
-+
-+ nsMapiEntry parentEntry;
-+ if (!GetEntryParent(aDistlist,parentEntry))
-+ return FALSE;
-+
-+ LPMDB lpMsgStore=GetMsgStore(parentEntry);
-+ if (!lpMsgStore)
-+ return FALSE;
-+
-+ mLastError = lpMsgStore->OpenEntry(aDistlist.mByteCount, aDistlist.mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS, &objType,
-+ container) ;
-+ lpMsgStore->Release();
-+
-+ if (HR_FAILED(mLastError))
-+ return FALSE ;
-+ /*
-+ When delete mail address from distlist,Mapi need update 2 tag.
-+ */
-+ //update OUTLOOK_EMAIL_LIST1
-+ ULONG listTag=GetEmailPropertyTag(*(LPMAPIPROP*)&container,OUTLOOK_EMAIL_LIST1) | PT_MV_BINARY;
-+
-+ SBinaryArray oldChildren;
-+ LPSBinary bins=NULL;
-+ SBinaryArray newChildren;
-+ LPSPropValue oldChildValue = NULL ;
-+ ULONG valueCount = 0 ;
-+
-+ newChildren.lpbin=NULL;
-+
-+ ULONG lDeleteEntry=0;
-+ ULONG newIndex=0;
-+ ULONG oldIndex=0;
-+ if (!GetMAPIProperties(aDistlist, &listTag, 1, oldChildValue, valueCount))
-+ {
-+ PRINTF(("Cannot get old children %08x.\n", mLastError)) ;
-+ return FALSE;
-+ }
-+
-+ if (! (oldChildValue->Value.l == MAPI_E_NOT_FOUND))
-+ {
-+ oldChildren = oldChildValue->Value.MVbin;
-+ newChildren.cValues=oldChildren.cValues - 1;
-+ mMAPIAllocateBuffer(sizeof(SBinary) * newChildren.cValues,(void**)& bins);
-+ newChildren.lpbin = bins;
-+ for (oldIndex=0;oldIndex<oldChildren.cValues;oldIndex++)
-+ {
-+ if ( oldChildren.lpbin[oldIndex].cb == aNewEntry.mByteCount &&
-+ !memcmp((void*)(oldChildren.lpbin[oldIndex].lpb+4),
-+ (void*)(aNewEntry.mEntryId->ab),
-+ oldChildren.lpbin[oldIndex].cb-4))
-+ {
-+ lDeleteEntry=oldIndex;
-+ }
-+ else
-+ {
-+ newChildren.lpbin[newIndex].lpb = oldChildren.lpbin[oldIndex].lpb;
-+ newChildren.lpbin[newIndex].cb = oldChildren.lpbin[oldIndex].cb;
-+ newIndex++;
-+ }
-+ }
-+ }
-+ else
-+ return FALSE;
-+
-+
-+ SPropValue children;
-+ LPSPropProblemArray problems = NULL ;
-+
-+ if (newChildren.cValues == 0)
-+ {
-+ SPropTagArray delTags;
-+ delTags.cValues = 1;
-+ delTags.aulPropTag[0] = listTag;
-+
-+ mLastError = container->DeleteProps(&delTags, &problems) ;
-+ }
-+ else
-+ {
-+ children.ulPropTag = listTag;
-+ children.Value.MVbin = newChildren;
-+ mLastError = container->SetProps(1, &children, &problems) ;
-+ }
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set children %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ //update OUTLOOK_EMAIL_LIST2
-+ listTag = GetEmailPropertyTag(*(LPMAPIPROP*)&container,OUTLOOK_EMAIL_LIST2) | PT_MV_BINARY;
-+ if (!GetMAPIProperties(aDistlist, &listTag, 1, oldChildValue, valueCount))
-+ {
-+ PRINTF(("Cannot get old children %08x.\n", mLastError)) ;
-+ return FALSE;
-+ }
-+
-+ newIndex=0;
-+ if (! (oldChildValue->Value.l == MAPI_E_NOT_FOUND))
-+ {
-+ oldChildren = oldChildValue->Value.MVbin;
-+ newChildren.cValues=oldChildren.cValues - 1;
-+ mMAPIAllocateBuffer(sizeof(SBinary) * newChildren.cValues,(void**)& bins);
-+ newChildren.lpbin = bins;
-+ for (oldIndex=0;oldIndex<oldChildren.cValues;oldIndex++)
-+ {
-+ if (oldIndex != lDeleteEntry)
-+ {
-+ newChildren.lpbin[newIndex].lpb = oldChildren.lpbin[oldIndex].lpb;
-+ newChildren.lpbin[newIndex].cb = oldChildren.lpbin[oldIndex].cb;
-+ newIndex++;
-+ }
-+ }
-+ }
-+ else
-+ {
-+ newChildren.cValues = 1;
-+ mMAPIAllocateBuffer(sizeof(SBinary) * newChildren.cValues,(void**)& bins);
-+ newChildren.lpbin = bins;
-+ }
-
-
-+
-+ if (newChildren.cValues == 0)
-+ {
-+ SPropTagArray delTags;
-+ delTags.cValues = 1;
-+ delTags.aulPropTag[0] = listTag;
-+
-+ mLastError = container->DeleteProps(&delTags, &problems) ;
-+ }
-+ else
-+ {
-+ children.ulPropTag = listTag;
-+ children.Value.MVbin = newChildren;
-+ mLastError = container->SetProps(1, &children, &problems) ;
-+ }
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set children %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ mMAPIFreeBuffer(bins);
-+
-+ mLastError = container->SaveChanges(KEEP_OPEN_READONLY) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot commit new entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ return TRUE ;
-+}
-+
-+BOOL nsMapiAddressBook::GetEntryParent(const nsMapiEntry& aParent, nsMapiEntry& aParentEntry)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIPROP> object ;
-+ ULONG objType = 0 ;
-+ mLastError = OpenEntry(aParent.mByteCount, aParent.mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS, &objType,
-+ (IUnknown **)&object) ;
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ SPropValue *parentID=GetMapiProperty(*(LPMAPIPROP*)&object, PR_PARENT_ENTRYID);
-+
-+ if (parentID->Value.l == MAPI_E_NOT_FOUND)
-+ return FALSE;
-+ aParentEntry.Assign(parentID->Value.bin.cb, NS_REINTERPRET_CAST(LPENTRYID, parentID->Value.bin.lpb));
-+ return TRUE;
-+}
-+BOOL nsMapiAddressBook::CreateEntryInList(const nsMapiEntry& aDistlist, nsMapiEntry& aNewEntry)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIPROP> container ;
-+ ULONG objType = 0 ;
-+
-+ nsMapiEntry parentEntry;
-+ if (!GetEntryParent(aDistlist,parentEntry))
-+ {
-+ return FALSE;
-+ }
-+ nsMapiInterfaceWrapper<LPMESSAGE> newEntry ;
-+ if (!CreateEntry(parentEntry,aNewEntry)) //Create a entry in parent folder
-+ return FALSE;
-+
-+ return AddEntryToList(aDistlist,aNewEntry);
-+}
-+
-+BOOL nsMapiAddressBook::CreateEntry(const nsMapiEntry& aParent, nsMapiEntry& aNewEntry)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIFOLDER> container ;
-+ ULONG objType = 0 ;
-+
-+ nsMapiInterfaceWrapper<LPMAPIPROP> object;
-+ mLastError = OpenEntry(aParent.mByteCount, aParent.mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS, &objType,
-+ object) ;
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-+ return NULL ;
-+ }
-+ LPSPropValue msgClass=GetMapiProperty(*(LPMAPIPROP*)&object,PR_MESSAGE_CLASS);
-+
-+ if (msgClass && strcmp("IPM.DistList",msgClass->Value.lpszA) == 0)
-+ return CreateEntryInList(aParent,aNewEntry); //Create entry in DistList
-+
-+ LPMDB lpMsgStore=GetMsgStore(aParent);
-+
-+ if (!lpMsgStore)
-+ return FALSE;
-+
-+ mLastError = lpMsgStore->OpenEntry(aParent.mByteCount, aParent.mEntryId,
-+ &IID_IMAPIFolder, MAPI_BEST_ACCESS, &objType,
-+ container) ;
-+ lpMsgStore->Release();
-+
-+ if (HR_FAILED(mLastError))
-+ return FALSE;
-+
-+ nsMapiInterfaceWrapper<LPMESSAGE> newEntry ;
-+
-+ mLastError = container->CreateMessage(&IID_IMessage,
-+ 0,
-+ newEntry) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot create new entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ SPropValue messageclass ;
-+ LPSPropProblemArray problems = NULL ;
-+ nsCString tempName ;
-+
-+ messageclass.ulPropTag = PR_MESSAGE_CLASS_A ;
-+ tempName.Assign("IPM.Contact") ;
-+ messageclass.Value.lpszA = NS_CONST_CAST(char *, tempName.get()) ;
-+ mLastError = newEntry->SetProps(1, &messageclass, &problems) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set temporary name %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ mLastError = newEntry->SaveChanges(KEEP_OPEN_READONLY) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot commit new entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ SPropTagArray property ;
-+ LPSPropValue value = NULL ;
-+ ULONG valueCount = 0 ;
-+
-+ property.cValues = 1 ;
-+ property.aulPropTag [0] = PR_ENTRYID ;
-+ mLastError = newEntry->GetProps(&property, 0, &valueCount, &value) ;
-+ if (HR_FAILED(mLastError) || valueCount != 1) {
-+ PRINTF(("Cannot get entry id %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ aNewEntry.Assign(value->Value.bin.cb, NS_REINTERPRET_CAST(LPENTRYID, value->Value.bin.lpb)) ;
-+ FreeBuffer(value) ;
-+ return TRUE ;
-+}
-+
-+BOOL nsMapiAddressBook::CreateDistList(const nsMapiEntry& aParent, nsMapiEntry& aNewEntry)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIFOLDER> container ;
-+ ULONG objType = 0 ;
-+
-+ LPMDB lpMsgStore=GetMsgStore(aParent);
-+ if (!lpMsgStore)
-+ return FALSE;
-+ mLastError = lpMsgStore->OpenEntry(aParent.mByteCount, aParent.mEntryId,
-+ &IID_IMAPIFolder, MAPI_BEST_ACCESS, &objType,
-+ container) ;
-+ lpMsgStore->Release();
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open container %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ nsMapiInterfaceWrapper<LPMESSAGE> newEntry ;
-+ mLastError = container->CreateMessage(&IID_IMAPIProp,
-+ 0,
-+ newEntry) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot create new entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ SPropValue messageclass ;
-+ LPSPropProblemArray problems = NULL ;
-+ nsCString tempName ;
-+
-+ messageclass.ulPropTag = PR_MESSAGE_CLASS_A ;
-+ tempName.Assign("IPM.DistList") ;
-+ messageclass.Value.lpszA = NS_CONST_CAST(char *, tempName.get()) ;
-+ mLastError = newEntry->SetProps(1, &messageclass, &problems) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set PR_MESSAGE_CLASS_A %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ mLastError = newEntry->SaveChanges(KEEP_OPEN_READONLY) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot commit new entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ ULONG valueCount = 0 ;
-+ SPropTagArray property ;
-+ LPSPropValue value = NULL ;
-+
-+ property.cValues = 1 ;
-+ property.aulPropTag [0] = PR_ENTRYID ;
-+ mLastError = newEntry->GetProps(&property, 0, &valueCount, &value) ;
-+ if (HR_FAILED(mLastError) || valueCount != 1) {
-+ PRINTF(("Cannot get entry id %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ aNewEntry.Assign(value->Value.bin.cb, NS_REINTERPRET_CAST(LPENTRYID, value->Value.bin.lpb)) ;
-+
-+ FreeBuffer(value) ;
-+ return TRUE ;
-+}
-+
-+
-+BOOL nsMapiAddressBook::CopyEntry(const nsMapiEntry& aContainer, const nsMapiEntry& aSource,
-+ nsMapiEntry& aTarget)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIFOLDER> container ;
-+ nsMapiInterfaceWrapper<LPMAPIFOLDER> targetFolder ;
-+ ULONG objType = 0 ;
-+ nsMapiInterfaceWrapper<LPMAPIPROP> object;
-+ mLastError = OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS, &objType,
-+ object) ;
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ LPSPropValue msgClass=GetMapiProperty(*(LPMAPIPROP*)&object,PR_MESSAGE_CLASS);
-+
-+ if (msgClass && strcmp("IPM.DistList",msgClass->Value.lpszA) == 0)
-+ {
-+ //Add Entry To DistList
-+ if (!AddEntryToList(aContainer,aSource))
-+ return FALSE;
-+ aTarget.Assign(aSource.mByteCount,aSource.mEntryId);
-+ return TRUE;
-+ }
-+
-+ SBinary entry ;
-+ SBinaryArray entryArray ;
-+
-+ entry.cb = aSource.mByteCount ;
-+ entry.lpb = NS_REINTERPRET_CAST(LPBYTE, aSource.mEntryId) ;
-+ entryArray.cValues = 1 ;
-+ entryArray.lpbin = &entry ;
-+
-+ mLastError = OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
-+ &IID_IMAPIFolder, MAPI_BEST_ACCESS, &objType,
-+ container) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open container %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ mLastError = OpenEntry(aTarget.mByteCount, aTarget.mEntryId,
-+ &IID_IMAPIFolder, MAPI_BEST_ACCESS, &objType,
-+ targetFolder) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open Target folder %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ nsMapiInterfaceWrapper<LPMAPIPROP> newEntry ;
-+
-+ mLastError = container->CopyMessages(&entryArray,
-+ &IID_IMessage,
-+ (void*)&targetFolder,
-+ 0,
-+ NULL,
-+ NULL) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot create new entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ return TRUE ;
-+}
-+
-+BOOL nsMapiAddressBook::DeleteEntry(const nsMapiEntry& aContainer, const nsMapiEntry& aEntry)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIFOLDER> container ;
-+ ULONG objType = 0 ;
-+ SBinary entry ;
-+ SBinaryArray entryArray ;
-+
-+
-+ nsMapiInterfaceWrapper<LPMAPIPROP> object;
-+ mLastError = OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS, &objType,
-+ object) ;
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ LPSPropValue msgClass=GetMapiProperty(*(LPMAPIPROP*)&object,PR_MESSAGE_CLASS);
-+
-+ if (msgClass && strcmp("IPM.DistList",msgClass->Value.lpszA) == 0)
-+ return DeleteEntryFromList(aContainer,aEntry); //Delete Entry from DistList
-+
-+ LPMDB lpMsgStore=GetMsgStore(aContainer);
-+ if (!lpMsgStore)
-+ return FALSE;
-+
-+ mLastError = lpMsgStore->OpenEntry(aContainer.mByteCount, aContainer.mEntryId,
-+ &IID_IMAPIFolder, MAPI_BEST_ACCESS, &objType,
-+ container) ;
-+ lpMsgStore->Release();
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open container %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ entry.cb = aEntry.mByteCount ;
-+ entry.lpb = NS_REINTERPRET_CAST(LPBYTE, aEntry.mEntryId) ;
-+ entryArray.cValues = 1 ;
-+ entryArray.lpbin = &entry ;
-+ mLastError = container->DeleteMessages(&entryArray, 0,0,0) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot delete entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ return TRUE ;
-+}
-+
-+//Use to open message store in write mode
-+LPMDB nsMapiAddressBook::GetMsgStore(const nsMapiEntry& aEntry)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIPROP> object;
-+ ULONG objType=0;
-+
-+ mLastError = OpenEntry(aEntry.mByteCount, aEntry.mEntryId,
-+ &IID_IMAPIProp, MAPI_BEST_ACCESS , &objType,
-+ object) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-+ return NULL ;
-+ }
-+ SPropValue *svMsgSore=GetMapiProperty( *(LPMAPIPROP*)&object, PR_STORE_ENTRYID);;
-+
-+ LPMDB lpMsgStore=NULL;
-+ mLastError=mRootSession->OpenMsgStore(0,
-+ svMsgSore->Value.bin.cb,
-+ (ENTRYID*)svMsgSore->Value.bin.lpb,
-+ &IID_IMsgStore,
-+ MAPI_BEST_ACCESS ,
-+ &lpMsgStore);
-+
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open MsgStore %08x.\n", mLastError)) ;
-+ return NULL ;
-+ }
-+
-+ return lpMsgStore;
-+}
---- misc/mozilla/mailnews/addrbook/src/nsMapiAddressBook.h 2004-04-17 20:32:14.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsMapiAddressBook.h 2008-08-14 16:22:21.000000000 +0200
-@@ -40,12 +40,42 @@
-
- #include "nsAbWinHelper.h"
-
-+struct TagMap
-+{
-+ ULONG AddressTag;
-+ ULONG NameID;
-+ ULONG TypeMask;
-+};
- class nsMapiAddressBook : public nsAbWinHelper
- {
- public :
- nsMapiAddressBook(void) ;
- virtual ~nsMapiAddressBook(void) ;
-
-+ // Get the top address books
-+ virtual BOOL GetFolders(nsMapiEntryArray& aFolders);
-+
-+ // Get a default address book container
-+ virtual BOOL GetDefaultContainer(nsMapiEntry& aContainer);
-+ // Is the helper correctly initialised?
-+ virtual BOOL IsOK(void);
-+ virtual BOOL GetPropertyLong(const nsMapiEntry& aObject,
-+ ULONG aPropertyTag,
-+ ULONG& aValue);
-+ // Get the value of a MAPI property of type SYSTIME
-+ virtual BOOL GetPropertyDate(const nsMapiEntry& aObject, ULONG aPropertyTag,
-+ WORD& aYear, WORD& aMonth, WORD& aDay);
-+ // Create entry in the address book
-+ virtual BOOL CreateEntry(const nsMapiEntry& aParent, nsMapiEntry& aNewEntry) ;
-+ // Delete an entry in the address book
-+ virtual BOOL DeleteEntry(const nsMapiEntry& aContainer, const nsMapiEntry& aEntry) ;
-+ // Create a distribution list in the address book
-+ virtual BOOL CreateDistList(const nsMapiEntry& aParent, nsMapiEntry& aNewEntry) ;
-+ // Copy an existing entry in the address book
-+ virtual BOOL CopyEntry(const nsMapiEntry& aContainer, const nsMapiEntry& aSource, nsMapiEntry& aTarget) ;
-+
-+ static void FreeMapiLibrary(void) ;
-+
- protected :
- // Class members to handle the library/entry points
- static HMODULE mLibrary ;
-@@ -67,19 +97,77 @@
- static BOOL mInitialized ;
- static BOOL mLogonDone ;
- static LPMAPISESSION mRootSession ;
-- static LPADRBOOK mRootBook ;
-+
-
- // Load the MAPI environment
- BOOL Initialize(void) ;
-+
-+ virtual HRESULT OpenEntry(ULONG cbEntryID,
-+ LPENTRYID lpEntryID,
-+ LPCIID lpInterface,
-+ ULONG ulFlags,
-+ ULONG FAR * lpulObjType,
-+ LPUNKNOWN FAR * lppUnk
-+ );
-+
-+
-+ // Retrieve the contents of a container, with an optional restriction
-+ virtual BOOL GetContents(const nsMapiEntry& aParent, LPSRestriction aRestriction,
-+ nsMapiEntryArray *aList, ULONG aMapiType) ;
-+ // Retrieve the values of a set of properties on a MAPI object
-+ virtual BOOL GetMAPIProperties(const nsMapiEntry& aObject, const ULONG *aPropertyTags,
-+ ULONG aNbProperties,
-+ LPSPropValue& aValues, ULONG& aValueCount) ;
-+ // Set the values of a set of properties on a MAPI object
-+ virtual BOOL SetMAPIProperties(const nsMapiEntry& aObject, ULONG aNbProperties,
-+ LPSPropValue& aValues);
-+
-+
- // Allocation of a buffer for transmission to interfaces
- virtual void AllocateBuffer(ULONG aByteCount, LPVOID *aBuffer) ;
- // Destruction of a buffer provided by the interfaces
- virtual void FreeBuffer(LPVOID aBuffer) ;
- // Library management
- static BOOL LoadMapiLibrary(void) ;
-- static void FreeMapiLibrary(void) ;
-+
-+ BOOL HandleContentsItem(ULONG oType, ULONG cb, LPENTRYID pEntry,nsMapiEntryArray& aFolders);
-+ LPSPropValue GetMapiProperty( LPMAPIPROP pProp, ULONG tag);
-+ BOOL GetEntryIdFromProp( LPSPropValue pVal, ULONG& cbEntryId, LPENTRYID& lpEntryId, BOOL delVal=FALSE);
-+ BOOL HandleHierarchyItem( ULONG oType, ULONG cb, LPENTRYID pEntry,nsMapiEntryArray& aFolders);
-+ BOOL IterateHierarchy(IMAPIContainer * pFolder, nsMapiEntryArray& aFolders,ULONG flags=0);
-+ ULONG GetEmailPropertyTag(LPMAPIPROP lpProp, LONG nameID);
-+ ULONG GetRealMapiPropertyTag(LPMAPIPROP lpProp, LONG aPropertyTag,BOOL aTest=FALSE);
-+ LPMDB GetMsgStore(const nsMapiEntry& aEntry);
-+ BOOL CreateEntryInList(const nsMapiEntry& aParent, nsMapiEntry& aNewEntry);
-+ BOOL AddEntryToList(const nsMapiEntry& aParent,const nsMapiEntry& aNewEntry);
-+ BOOL DeleteEntryFromList(const nsMapiEntry& aDistlist, const nsMapiEntry& aNewEntry);
-+ BOOL GetEntryParent(const nsMapiEntry& aParent, nsMapiEntry& aParentEntry);
-+ BOOL CorrectRestriction(const LPMAPIPROP aMapiProp,ULONG aRestrictionNum, LPSRestriction aRestriction);
-+
-+ //filter
-+ BOOL Filter( LPSRestriction aRestriction,nsMapiEntryArray * aList);
-+ BOOL FilterOnOneRow(nsMapiEntry *aEntry,LPSRestriction aRestriction);
-+ BOOL AtomyFilter(LPSRestriction aRestriction,LPSPropValue aRealValue,LPSPropValue aFilterValue);
-+
-+ void AddToMDBArray(LPMDB aMDB)
-+ {
-+ m_MDBArray.AppendElement(aMDB);
-+ }
-+ void CleanUpMDB()
-+ {
-+ LPMDB mdb;
-+ for (int i = 0; i < m_MDBArray.Count(); i++)
-+ {
-+ mdb = (LPMDB)m_MDBArray.ElementAt(i);
-+ mdb->Release();
-+ }
-+ m_MDBArray.Clear();
-+ }
-
- private :
-+ //use to keep all openned MsgStore,if we not open a message store,we can't open any thing on it
-+ //so we have to kill message stores openned
-+ nsVoidArray m_MDBArray;
- } ;
-
- #endif // nsMapiAddressBook_h___
---- misc/mozilla/mailnews/addrbook/src/nsWabAddressBook.cpp 2004-11-05 16:13:32.000000000 +0100
-+++ misc/build/mozilla/mailnews/addrbook/src/nsWabAddressBook.cpp 2008-08-14 16:22:21.000000000 +0200
-@@ -46,6 +46,22 @@
-
- #define PRINTF(args) PR_LOG(gWabAddressBookLog, PR_LOG_DEBUG, args)
-
-+enum
-+{
-+ ContentsColumnEntryId = 0,
-+ ContentsColumnObjectType,
-+ ContentsColumnsSize
-+} ;
-+
-+static const SizedSPropTagArray(ContentsColumnsSize, ContentsColumns) =
-+{
-+ ContentsColumnsSize,
-+ {
-+ PR_ENTRYID,
-+ PR_OBJECT_TYPE
-+ }
-+} ;
-+
- HMODULE nsWabAddressBook::mLibrary = NULL ;
- PRInt32 nsWabAddressBook::mLibUsage = 0 ;
- LPWABOPEN nsWabAddressBook::mWABOpen = NULL ;
-@@ -94,7 +110,7 @@
- MOZ_DECL_CTOR_COUNTER(nsWabAddressBook)
-
- nsWabAddressBook::nsWabAddressBook(void)
--: nsAbWinHelper()
-+: nsAbWinHelper(),mAddressBook(NULL)
- {
- BOOL result = Initialize() ;
-
-@@ -109,9 +125,254 @@
- MOZ_COUNT_DTOR(nsWabAddressBook) ;
- }
-
-+BOOL nsWabAddressBook::GetFolders(nsMapiEntryArray& aFolders)
-+{
-+ aFolders.CleanUp() ;
-+ nsMapiInterfaceWrapper<LPABCONT> rootFolder ;
-+ nsMapiInterfaceWrapper<LPMAPITABLE> folders ;
-+ ULONG objType = 0 ;
-+ ULONG rowCount = 0 ;
-+ SRestriction restriction ;
-+ SPropTagArray folderColumns ;
-+
-+ mLastError = OpenEntry(0, NULL, NULL, 0, &objType,
-+ rootFolder);
-+ if (HR_FAILED(mLastError)){
-+ PRINTF(("Cannot open root %08x.\n", mLastError));
-+ return FALSE;
-+ }
-+ mLastError = rootFolder->GetHierarchyTable(0, folders);
-+ if (HR_FAILED(mLastError)){
-+ PRINTF(("Cannot get hierarchy %08x.\n", mLastError));
-+ return FALSE;
-+ }
-+ // We only take into account modifiable containers,
-+ // otherwise, we end up with all the directory services...
-+ restriction.rt = RES_BITMASK ;
-+ restriction.res.resBitMask.ulPropTag = PR_CONTAINER_FLAGS ;
-+ restriction.res.resBitMask.relBMR = BMR_NEZ ;
-+ restriction.res.resBitMask.ulMask = AB_MODIFIABLE ;
-+ mLastError = folders->Restrict(&restriction, 0) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot restrict table %08x.\n", mLastError)) ;
-+ }
-+ folderColumns.cValues = 1 ;
-+ folderColumns.aulPropTag [0] = PR_ENTRYID ;
-+ mLastError = folders->SetColumns(&folderColumns, 0) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set columns %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ mLastError = folders->GetRowCount(0, &rowCount) ;
-+ if (HR_SUCCEEDED(mLastError)) {
-+ do {
-+ LPSRowSet rowSet = NULL ;
-+
-+ rowCount = 0 ;
-+ mLastError = folders->QueryRows(1, 0, &rowSet) ;
-+ if (HR_SUCCEEDED(mLastError)) {
-+ rowCount = rowSet->cRows ;
-+ if (rowCount > 0) {
-+ SPropValue& currentValue = rowSet->aRow->lpProps [0] ;
-+
-+ aFolders.AddItem(currentValue.Value.bin.cb,
-+ NS_REINTERPRET_CAST(LPENTRYID, currentValue.Value.bin.lpb)) ;
-+ }
-+ MyFreeProws(rowSet) ;
-+ }
-+ else {
-+ PRINTF(("Cannot query rows %08x.\n", mLastError)) ;
-+ }
-+ } while (rowCount > 0) ;
-+ }
-+ return HR_SUCCEEDED(mLastError) ;
-+}
-+BOOL nsWabAddressBook::GetContents(const nsMapiEntry& aParent, LPSRestriction aRestriction,
-+ nsMapiEntryArray *aList, ULONG aMapiType)
-+{
-+ if (aList) { aList->CleanUp(); }
-+ nsMapiInterfaceWrapper<LPMAPICONTAINER> parent ;
-+ nsMapiInterfaceWrapper<LPMAPITABLE> contents ;
-+ ULONG objType = 0 ;
-+ ULONG rowCount = 0 ;
-+
-+ mLastError = OpenEntry(aParent.mByteCount, aParent.mEntryId,
-+ &IID_IMAPIContainer, 0, &objType,
-+ parent) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open parent %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ // Here, flags for WAB and MAPI could be different, so this works
-+ // only as long as we don't want to use any flag in GetContentsTable
-+ mLastError = parent->GetContentsTable(0, contents) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot get contents %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ if (aRestriction) {
-+ mLastError = contents->Restrict(aRestriction, 0) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set restriction %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ }
-+ int entryId = ContentsColumnEntryId ;
-+ int objectType = ContentsColumnObjectType ;
-+
-+ if (aRestriction)
-+ {
-+ LPSPropTagArray allColumns = NULL ;
-+
-+ mLastError = contents->QueryColumns(TBL_ALL_COLUMNS, &allColumns) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot query columns %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+
-+ for (unsigned int j = 0 ; j < allColumns->cValues ; ++ j) {
-+ if (allColumns->aulPropTag [j] == PR_ENTRYID) {
-+ entryId = j ;
-+ }
-+ else if (allColumns->aulPropTag [j] == PR_OBJECT_TYPE) {
-+ objectType = j ;
-+ }
-+ }
-+ mLastError = contents->SetColumns(allColumns, 0) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set columns %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ FreeBuffer(allColumns) ;
-+ }
-+ else
-+ {
-+
-+ mLastError = contents->SetColumns((LPSPropTagArray) &ContentsColumns, 0) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot set columns %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ }
-+
-+ mLastError = contents->GetRowCount(0, &rowCount) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot get result count %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ do {
-+ LPSRowSet rowSet = NULL ;
-+
-+ rowCount = 0 ;
-+ mLastError = contents->QueryRows(1, 0, &rowSet) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot query rows %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ rowCount = rowSet->cRows ;
-+ if (rowCount > 0 &&
-+ (aMapiType == 0 ||
-+ rowSet->aRow->lpProps[objectType].Value.ul == aMapiType)) {
-+ if (aList) {
-+ SPropValue& currentValue = rowSet->aRow->lpProps[entryId] ;
-+
-+ aList->AddItem(currentValue.Value.bin.cb,
-+ NS_REINTERPRET_CAST(LPENTRYID, currentValue.Value.bin.lpb)) ;
-+
-+ }
-+ }
-+ MyFreeProws(rowSet) ;
-+ } while (rowCount > 0) ;
-+ return TRUE ;
-+}
-+
-+BOOL nsWabAddressBook::GetMAPIProperties(const nsMapiEntry& aObject, const ULONG *aPropertyTags,
-+ ULONG aNbProperties, LPSPropValue& aValue,
-+ ULONG& aValueCount)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIPROP> object ;
-+ IMsgStore * mdb=NULL;
-+ ULONG objType = 0 ;
-+ LPSPropTagArray properties = NULL ;
-+ ULONG i = 0 ;
-+
-+ mLastError = OpenEntry(aObject.mByteCount, aObject.mEntryId,
-+ &IID_IMAPIProp, 0, &objType,
-+ object) ;
-+
-+ if (HR_FAILED(mLastError)){
-+ PRINTF(("Cannot open entry %08x.\n", mLastError));
-+ return FALSE;
-+ }
-+ AllocateBuffer(CbNewSPropTagArray(aNbProperties),
-+ NS_REINTERPRET_CAST(void **, &properties));
-+ properties->cValues = aNbProperties;
-+ for (i = 0 ; i < aNbProperties ; ++ i) {
-+ properties->aulPropTag [i] = aPropertyTags [i];
-+ }
-+ mLastError = object->GetProps(properties, 0, &aValueCount, &aValue);
-+ FreeBuffer(properties);
-+ if (HR_FAILED(mLastError)){
-+ PRINTF(("Cannot get props %08x.\n", mLastError));
-+ }
-+ return HR_SUCCEEDED(mLastError) ;
-+}
-+
-+BOOL nsWabAddressBook::SetMAPIProperties(const nsMapiEntry& aObject, ULONG aNbProperties,
-+ LPSPropValue& aValues)
-+{
-+ nsMapiInterfaceWrapper<LPMAPIPROP> object ;
-+ ULONG objType = 0 ;
-+ LPSPropProblemArray problems = NULL ;
-+
-+ mLastError = OpenEntry(aObject.mByteCount, aObject.mEntryId,
-+ &IID_IMAPIProp, MAPI_MODIFY, &objType,
-+ object) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot open entry %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ mLastError = object->SetProps(aNbProperties, aValues, &problems) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot update the object %08x.\n", mLastError)) ;
-+ return FALSE ;
-+ }
-+ if (problems) {
-+ for (ULONG i = 0 ; i < problems->cProblem ; ++ i) {
-+ PRINTF(("Problem %d: index %d code %08x.\n", i,
-+ problems->aProblem [i].ulIndex,
-+ problems->aProblem [i].scode));
-+ }
-+ }
-+ mLastError = object->SaveChanges(0) ;
-+ if (HR_FAILED(mLastError)) {
-+ PRINTF(("Cannot commit changes %08x.\n", mLastError)) ;
-+ }
-+ return HR_SUCCEEDED(mLastError) ;
-+}
-+
-+BOOL nsWabAddressBook::GetDefaultContainer(nsMapiEntry& aContainer)
-+{
-+ LPENTRYID entryId = NULL;
-+ ULONG byteCount = 0;
-+
-+ mLastError = mAddressBook->GetPAB(&byteCount, &entryId);
-+ if (HR_FAILED(mLastError)){
-+ PRINTF(("Cannot get PAB %08x.\n", mLastError));
-+ return FALSE;
-+ }
-+ aContainer.Assign(byteCount, entryId);
-+ FreeBuffer(entryId) ;
-+ return TRUE ;
-+}
-+
-+BOOL nsWabAddressBook::IsOK(void)
-+{
-+ return mAddressBook != NULL ;
-+}
-+
- BOOL nsWabAddressBook::Initialize(void)
- {
-- if (mAddressBook) { return TRUE ; }
- nsAutoLock guard(mMutex) ;
-
- if (!LoadWabLibrary()) {
---- misc/mozilla/mailnews/addrbook/src/nsWabAddressBook.h 2004-04-17 20:32:14.000000000 +0200
-+++ misc/build/mozilla/mailnews/addrbook/src/nsWabAddressBook.h 2008-08-14 16:22:21.000000000 +0200
-@@ -47,6 +47,15 @@
- nsWabAddressBook(void) ;
- virtual ~nsWabAddressBook(void) ;
-
-+ // Get the top address books
-+ virtual BOOL GetFolders(nsMapiEntryArray& aFolders);
-+
-+ // Get a default address book container
-+ virtual BOOL GetDefaultContainer(nsMapiEntry& aContainer);
-+ // Is the helper correctly initialised?
-+ virtual BOOL IsOK(void);
-+ static void FreeWabLibrary(void) ;
-+
- protected :
- // Session and address book that will be shared by all instances
- // (see nsMapiAddressBook.h for details)
-@@ -57,15 +66,46 @@
- static HMODULE mLibrary ;
- static LPWABOPEN mWABOpen ;
-
-+ LPADRBOOK mAddressBook ;
-+
- // Load the WAB environment
- BOOL Initialize(void) ;
-+
-+ virtual HRESULT OpenEntry(ULONG cbEntryID,
-+ LPENTRYID lpEntryID,
-+ LPCIID lpInterface,
-+ ULONG ulFlags,
-+ ULONG FAR * lpulObjType,
-+ LPUNKNOWN FAR * lppUnk
-+ )
-+ {
-+ return mAddressBook->OpenEntry(cbEntryID,
-+ lpEntryID,
-+ lpInterface,
-+ ulFlags,
-+ lpulObjType,
-+ lppUnk
-+ );
-+ }
-+
-+
-+ // Retrieve the contents of a container, with an optional restriction
-+ virtual BOOL GetContents(const nsMapiEntry& aParent, LPSRestriction aRestriction,
-+ nsMapiEntryArray *aList, ULONG aMapiType) ;
-+ // Retrieve the values of a set of properties on a MAPI object
-+ virtual BOOL GetMAPIProperties(const nsMapiEntry& aObject, const ULONG *aPropertyTags,
-+ ULONG aNbProperties,
-+ LPSPropValue& aValues, ULONG& aValueCount) ;
-+ // Set the values of a set of properties on a MAPI object
-+ virtual BOOL SetMAPIProperties(const nsMapiEntry& aObject, ULONG aNbProperties,
-+ LPSPropValue& aValues) ;
-+
- // Allocation of a buffer for transmission to interfaces
- virtual void AllocateBuffer(ULONG aByteCount, LPVOID *aBuffer) ;
- // Destruction of a buffer provided by the interfaces
- virtual void FreeBuffer(LPVOID aBuffer) ;
- // Manage the library
- static BOOL LoadWabLibrary(void) ;
-- static void FreeWabLibrary(void) ;
-
- private :
- } ;
---- misc/mozilla/modules/libpref/src/Makefile.in 2006-02-03 15:44:52.000000000 +0100
-+++ misc/build/mozilla/modules/libpref/src/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -91,7 +91,7 @@
- PREF_JS_EXPORTS += $(srcdir)/init/non-shared.txt
- endif
-
--EXTRA_DSO_LDOPTS = \
-+EXTRA_DSO_LDOPTS += \
- $(LIBS_DIR) \
- $(MOZ_JS_LIBS) \
- $(MOZ_COMPONENT_LIBS) \
---- misc/mozilla/netwerk/protocol/http/src/nsHttpConnectionMgr.cpp 2005-07-20 20:31:42.000000000 +0200
-+++ misc/build/mozilla/netwerk/protocol/http/src/nsHttpConnectionMgr.cpp 2008-08-20 15:45:06.000000000 +0200
-@@ -277,7 +277,7 @@
- nsresult
- nsHttpConnectionMgr::UpdateParam(nsParamName name, PRUint16 value)
- {
-- PRUint32 param = (PRUint32(name) << 16) | PRUint32(value);
-+ PRUint32 param = (NS_PTR_TO_INT32(name) << 16) | NS_PTR_TO_INT32(value);
- return PostEvent(&nsHttpConnectionMgr::OnMsgUpdateParam, 0, (void *) param);
- }
-
---- misc/mozilla/nsprpub/build/cygwin-wrapper 2006-12-22 14:47:17.000000000 +0100
-+++ misc/build/mozilla/nsprpub/build/cygwin-wrapper 2008-08-14 16:22:21.000000000 +0200
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/bin/bash
- #
- # Stupid wrapper to avoid win32 dospath/cygdrive issues
- # Try not to spawn programs from within this file. If the stuff in here looks royally
---- misc/mozilla/nsprpub/config/autoconf.mk.in 2006-12-22 14:47:17.000000000 +0100
-+++ misc/build/mozilla/nsprpub/config/autoconf.mk.in 2008-08-14 16:22:21.000000000 +0200
-@@ -22,6 +22,7 @@
- RELEASE_OBJDIR_NAME = @RELEASE_OBJDIR_NAME@
- OBJDIR_NAME = @OBJDIR_NAME@
- OBJDIR = @OBJDIR@
-+LIB_PREFIX = @LIB_PREFIX@
- OBJ_SUFFIX = @OBJ_SUFFIX@
- LIB_SUFFIX = @LIB_SUFFIX@
- DLL_SUFFIX = @DLL_SUFFIX@
---- misc/mozilla/nsprpub/config/rules.mk 2006-12-22 14:47:17.000000000 +0100
-+++ misc/build/mozilla/nsprpub/config/rules.mk 2008-12-12 10:09:34.437500000 +0100
-@@ -111,9 +111,9 @@
- # other platforms do not.
- #
- ifeq (,$(filter-out WIN95 OS2,$(OS_TARGET)))
--LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX)
-+LIBRARY = $(OBJDIR)/$(LIB_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX)
- SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
--IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX)
-+IMPORT_LIBRARY = $(OBJDIR)/$(LIB_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX)
- SHARED_LIB_PDB = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).pdb
- else
- LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX)
-@@ -340,6 +340,10 @@
- else # AIX 4.1
- ifeq ($(NS_USE_GCC)_$(OS_ARCH),_WINNT)
- $(LINK_DLL) -MAP $(DLLBASE) $(DLL_LIBS) $(EXTRA_LIBS) $(OBJS) $(RES)
-+ @if test -f $@.manifest; then \
-+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;2; \
-+ rm -f $@.manifest; \
-+ fi
- else
- ifeq ($(MOZ_OS2_TOOLS),VACPP)
- $(LINK_DLL) $(DLLBASE) $(OBJS) $(OS_LIBS) $(EXTRA_LIBS) $(MAPFILE)
---- misc/mozilla/nsprpub/configure 2008-01-29 20:27:43.000000000 +0100
-+++ misc/build/mozilla/nsprpub/configure 2008-08-14 16:22:21.000000000 +0200
-@@ -2737,6 +2737,7 @@
- LIB_SUFFIX=a
- DLL_SUFFIX=so
- ASM_SUFFIX=s
-+LIB_PREFIX=lib
- MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
- PR_MD_ASFILES=
- PR_MD_CSRCS=
-@@ -3475,7 +3476,7 @@
- EOF
-
- CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
-- MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
- if test "$MOZ_OBJFORMAT" = "elf"; then
- DLL_SUFFIX=so
- else
-@@ -3941,7 +3942,7 @@
- CC="$CC -mno-cygwin"
- CXX="$CXX -mno-cygwin"
- DLL_SUFFIX=dll
-- MKSHLIB='$(CC) -shared -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(IMPORT_LIBRARY) $(DLLBASE) -o $(subst $(OBJDIR)/,,$(SHARED_LIBRARY))'
-+ MKSHLIB='$(CC) -shared -Wl,--enable-runtime-pseudo-reloc -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(IMPORT_LIBRARY) $(DLLBASE) -o $(subst $(OBJDIR)/,,$(SHARED_LIBRARY))'
- RC=$WINDRES
- # Use temp file for windres (bug 213281)
- RCFLAGS='-O coff --use-temp-file'
-@@ -3958,6 +3959,7 @@
- OBJ_SUFFIX=obj
- LIB_SUFFIX=lib
- DLL_SUFFIX=dll
-+ LIB_PREFIX=
-
- # Determine compiler version
- CC_VERSION=`"${CC}" -v 2>&1 | grep Version | sed -e 's|.* Version ||' -e 's| .*||'`
-@@ -5766,6 +5768,7 @@
- CC="\$(CYGWIN_WRAPPER) $CC"
- CXX="\$(CYGWIN_WRAPPER) $CXX"
- RC="\$(CYGWIN_WRAPPER) $RC"
-+ LD="\$(CYGWIN_WRAPPER) $LD"
- ;;
- esac
-
-@@ -6127,6 +6130,7 @@
- s%@LIB_SUFFIX@%$LIB_SUFFIX%g
- s%@DLL_SUFFIX@%$DLL_SUFFIX%g
- s%@ASM_SUFFIX@%$ASM_SUFFIX%g
-+s%@LIB_PREFIX@%$LIB_PREFIX%g
- s%@MKSHLIB@%$MKSHLIB%g
- s%@DSO_CFLAGS@%$DSO_CFLAGS%g
- s%@DSO_LDOPTS@%$DSO_LDOPTS%g
---- misc/mozilla/nsprpub/configure.in 2008-01-29 20:27:44.000000000 +0100
-+++ misc/build/mozilla/nsprpub/configure.in 2008-08-14 16:22:21.000000000 +0200
-@@ -1137,7 +1137,7 @@
- AC_DEFINE(HAVE_BSD_FLOCK)
- AC_DEFINE(HAVE_SOCKLEN_T)
- CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
-- MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
- if test "$MOZ_OBJFORMAT" = "elf"; then
- DLL_SUFFIX=so
- else
---- misc/mozilla/nsprpub/lib/ds/Makefile.in 2006-12-22 14:47:17.000000000 +0100
-+++ misc/build/mozilla/nsprpub/lib/ds/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -79,18 +79,26 @@
- OS_LIBS = -lc
- endif
-
-+ifeq ($(OS_ARCH),FreeBSD)
-+MKSHLIB += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
-+endif
-+
-+ifeq ($(OS_ARCH),Linux)
-+MKSHLIB += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
-+endif
-+
- ifeq ($(OS_ARCH),SunOS)
- OS_LIBS = -lc
- MAPFILE = $(OBJDIR)/pldsmap.sun
- GARBAGE += $(MAPFILE)
- ifdef NS_USE_GCC
- ifdef GCC_USE_GNU_LD
--MKSHLIB += -Wl,--version-script,$(MAPFILE)
-+MKSHLIB += -Wl,--version-script,$(MAPFILE) -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
- else
--MKSHLIB += -Wl,-M,$(MAPFILE)
-+MKSHLIB += -Wl,-M,$(MAPFILE) -Wl,-R,'$$ORIGIN'
- endif
- else
--MKSHLIB += -M $(MAPFILE)
-+MKSHLIB += -M $(MAPFILE) -Wl,-R,'$$ORIGIN'
- endif
- # The -R '$ORIGIN' linker option instructs this library to search for its
- # dependencies in the same directory where it resides.
---- misc/mozilla/nsprpub/lib/libc/src/Makefile.in 2006-12-22 14:47:17.000000000 +0100
-+++ misc/build/mozilla/nsprpub/lib/libc/src/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -89,18 +89,26 @@
- OS_LIBS = -lc
- endif
-
-+ifeq ($(OS_ARCH),FreeBSD)
-+MKSHLIB += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
-+endif
-+
-+ifeq ($(OS_ARCH),Linux)
-+MKSHLIB += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
-+endif
-+
- ifeq ($(OS_ARCH),SunOS)
- OS_LIBS = -lc
- MAPFILE = $(OBJDIR)/plcmap.sun
- GARBAGE += $(MAPFILE)
- ifdef NS_USE_GCC
- ifdef GCC_USE_GNU_LD
--MKSHLIB += -Wl,--version-script,$(MAPFILE)
-+MKSHLIB += -Wl,--version-script,$(MAPFILE) -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
- else
--MKSHLIB += -Wl,-M,$(MAPFILE)
-+MKSHLIB += -Wl,-M,$(MAPFILE) -Wl,-R,'$$ORIGIN'
- endif
- else
--MKSHLIB += -M $(MAPFILE)
-+MKSHLIB += -M $(MAPFILE) -Wl,-R,'$$ORIGIN'
- endif
- # The -R '$ORIGIN' linker option instructs this library to search for its
- # dependencies in the same directory where it resides.
---- misc/mozilla/nsprpub/pr/src/misc/prnetdb.c 2006-12-22 14:47:27.000000000 +0100
-+++ misc/build/mozilla/nsprpub/pr/src/misc/prnetdb.c 2008-08-14 16:22:21.000000000 +0200
-@@ -113,7 +113,8 @@
- #define _PR_HAVE_5_ARG_GETPROTO_R
- #endif
-
--#if (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2)
-+#if (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2) || \
-+ (defined(__FreeBSD__) && __FreeBSD_version > 601103)
- #define _PR_HAVE_GETPROTO_R
- #define _PR_HAVE_5_ARG_GETPROTO_R
- #endif
---- misc/mozilla/security/coreconf/FreeBSD.mk 2006-12-22 14:48:06.000000000 +0100
-+++ misc/build/mozilla/security/coreconf/FreeBSD.mk 2008-08-14 16:22:21.000000000 +0200
-@@ -52,6 +52,7 @@
-
- DSO_CFLAGS = -fPIC
- DSO_LDOPTS = -shared -Wl,-soname -Wl,$(notdir $@)
-+DSO_LDOPTS += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
-
- #
- # The default implementation strategy for FreeBSD is pthreads.
-@@ -65,7 +66,7 @@
-
- ARCH = freebsd
-
--MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo aout)
-+MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo elf)
-
- ifeq ($(MOZ_OBJFORMAT),elf)
- DLL_SUFFIX = so
---- misc/mozilla/security/coreconf/Linux.mk 2006-12-22 14:48:06.000000000 +0100
-+++ misc/build/mozilla/security/coreconf/Linux.mk 2008-08-18 10:16:15.000000000 +0200
-@@ -139,7 +139,7 @@
-
- ifeq ($(OS_RELEASE),2.0)
- OS_REL_CFLAGS += -DLINUX2_0
-- MKSHLIB = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
-+ MKSHLIB = $(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
- ifdef MAPFILE
- MKSHLIB += -Wl,--version-script,$(MAPFILE)
- endif
-@@ -166,6 +166,7 @@
-
- DSO_CFLAGS = -fPIC
- DSO_LDOPTS = -shared $(ARCHFLAG)
-+DSO_LDOPTS += -Wl,-z,origin -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
- DSO_LDFLAGS =
- LDFLAGS += $(ARCHFLAG)
-
---- misc/mozilla/security/coreconf/SunOS5.mk 2008-06-16 00:22:15.000000000 +0200
-+++ misc/build/mozilla/security/coreconf/SunOS5.mk 2008-08-14 16:22:21.000000000 +0200
-@@ -161,12 +161,14 @@
-
- # ld options:
- # -G: produce a shared object
-+# -R '$ORIGIN': search for dependencies in same directory
- # -z defs: no unresolved symbols allowed
- ifdef NS_USE_GCC
- ifeq ($(USE_64), 1)
- DSO_LDOPTS += -m64
- endif
- DSO_LDOPTS += -shared -h $(notdir $@)
-+ DSO_LDOPTS += -Wl,-rpath,\$$ORIGIN:\$$ORIGIN/../ure-link/lib
- else
- ifeq ($(USE_64), 1)
- ifeq ($(OS_TEST),i86pc)
-@@ -176,6 +178,7 @@
- endif
- endif
- DSO_LDOPTS += -G -h $(notdir $@)
-+ DSO_LDOPTS += -R '$$ORIGIN'
- endif
- DSO_LDOPTS += -z combreloc -z defs -z ignore
-
---- misc/mozilla/security/coreconf/WIN32.mk 2008-06-16 00:22:15.000000000 +0200
-+++ misc/build/mozilla/security/coreconf/WIN32.mk 2008-08-18 16:04:59.000000000 +0200
-@@ -43,24 +43,24 @@
- DEFAULT_COMPILER = cl
-
- ifdef NS_USE_GCC
-- CC = gcc
-- CCC = g++
-- LINK = ld
-- AR = ar
-+ CC = $(CYGWIN_WRAPPER) gcc
-+ CCC = $(CYGWIN_WRAPPER) g++
-+ LINK = $(CYGWIN_WRAPPER) ld
-+ AR = $(CYGWIN_WRAPPER) ar
- AR += cr $@
-- RANLIB = ranlib
-+ RANLIB = $(CYGWIN_WRAPPER) ranlib
- BSDECHO = echo
-- RC = windres.exe -O coff --use-temp-file
-- LINK_DLL = $(CC) $(OS_DLLFLAGS) $(DLLFLAGS)
-+ RC = $(CYGWIN_WRAPPER) windres.exe -O coff --use-temp-file
-+ LINK_DLL = $(CYGWIN_WRAPPER) $(CC) $(OS_DLLFLAGS) $(DLLFLAGS)
- else
-- CC = cl
-- CCC = cl
-- LINK = link
-- AR = lib
-+ CC = $(CYGWIN_WRAPPER) cl
-+ CCC = $(CYGWIN_WRAPPER) cl
-+ LINK = $(CYGWIN_WRAPPER) link
-+ AR = $(CYGWIN_WRAPPER) lib
- AR += -NOLOGO -OUT:"$@"
- RANLIB = echo
- BSDECHO = echo
-- RC = rc.exe
-+ RC = $(CYGWIN_WRAPPER) rc.exe
- MT = mt.exe
- endif
-
-@@ -69,7 +69,7 @@
- else
- NSINSTALL_DIR = $(CORE_DEPTH)/coreconf/nsinstall
- endif
--NSINSTALL = nsinstall
-+NSINSTALL = $(CYGWIN_WRAPPER) nsinstall
-
- MKDEPEND_DIR = $(CORE_DEPTH)/coreconf/mkdepend
- MKDEPEND = $(MKDEPEND_DIR)/$(OBJDIR_NAME)/mkdepend.exe
-@@ -95,7 +95,7 @@
- # dllimport cannot be used as as a constant address.
- OS_CFLAGS += -mno-cygwin -mms-bitfields -mnop-fun-dllimport
- _GEN_IMPORT_LIB=-Wl,--out-implib,$(IMPORT_LIBRARY)
-- DLLFLAGS += -mno-cygwin -o $@ -shared -Wl,--export-all-symbols $(if $(IMPORT_LIBRARY),$(_GEN_IMPORT_LIB))
-+ DLLFLAGS += -mno-cygwin -o $@ -shared -Wl,--enable-runtime-pseudo-reloc,--export-all-symbols $(if $(IMPORT_LIBRARY),$(_GEN_IMPORT_LIB))
- ifdef BUILD_OPT
- OPTIMIZER += -O2
- DEFINES += -UDEBUG -U_DEBUG -DNDEBUG
---- misc/mozilla/security/coreconf/WIN954.0.mk 2008-06-16 00:22:15.000000000 +0200
-+++ misc/build/mozilla/security/coreconf/WIN954.0.mk 2008-08-14 16:22:21.000000000 +0200
-@@ -72,3 +72,7 @@
- endif
- endif
- DEFINES += -DWIN95
-+
-+ifdef NS_USE_GCC
-+NSPR31_LIB_PREFIX = lib
-+endif
---- misc/mozilla/security/coreconf/command.mk 2008-06-16 00:22:15.000000000 +0200
-+++ misc/build/mozilla/security/coreconf/command.mk 2008-08-19 09:58:11.000000000 +0200
-@@ -45,7 +45,7 @@
- CCF = $(CC) $(CFLAGS)
- LINK_DLL = $(LINK) $(OS_DLLFLAGS) $(DLLFLAGS)
- LINK_EXE = $(LINK) $(OS_LFLAGS) $(LFLAGS)
--CFLAGS = $(OPTIMIZER) $(OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) \
-+CFLAGS += $(OPTIMIZER) $(OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) \
- $(XCFLAGS)
- PERL = perl
- RANLIB = echo
---- misc/mozilla/security/coreconf/rules.mk 2008-06-16 00:22:15.000000000 +0200
-+++ misc/build/mozilla/security/coreconf/rules.mk 2008-08-19 10:46:57.000000000 +0200
-@@ -284,7 +284,7 @@
- $(PROGRAM): $(OBJS) $(EXTRA_LIBS)
- @$(MAKE_OBJDIR)
- ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
-- $(MKPROG) $(subst /,\\,$(OBJS)) -Fe$@ -link $(LDFLAGS) $(subst /,\\,$(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS))
-+ $(MKPROG) $(OBJS) -Fe$@ -link $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
- ifdef MT
- if test -f $@.manifest; then \
- $(MT) -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
-@@ -305,11 +305,7 @@
- $(LIBRARY): $(OBJS)
- @$(MAKE_OBJDIR)
- rm -f $@
--ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
-- $(AR) $(subst /,\\,$(OBJS))
--else
- $(AR) $(OBJS)
--endif
- $(RANLIB) $@
-
-
-@@ -344,7 +340,7 @@
- ifdef NS_USE_GCC
- $(LINK_DLL) $(OBJS) $(SUB_SHLOBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS) $(RES)
- else
-- $(LINK_DLL) -MAP $(DLLBASE) $(subst /,\\,$(OBJS) $(SUB_SHLOBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS) $(RES))
-+ $(LINK_DLL) -MAP $(DLLBASE) $(OBJS) $(SUB_SHLOBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS) $(RES)
- ifdef MT
- if test -f $@.manifest; then \
- $(MT) -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;2; \
-@@ -429,15 +425,15 @@
- endif
- endif
-
--core_abspath = $(if $(findstring :,$(1)),$(1),$(if $(filter /%,$(1)),$(1),$(PWD)/$(1)))
-+mozabspath = $(if $(findstring :,$(1)),$(1),$(if $(filter /%,$(1)),$(1),$(PWD)/$(1)))
-
- $(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.c
- @$(MAKE_OBJDIR)
- ifdef USE_NT_C_SYNTAX
-- $(CC) -Fo$@ -c $(CFLAGS) $(call core_abspath,$<)
-+ $(CC) -Fo$@ -c $(CFLAGS) $(call mozabspath,$<)
- else
- ifdef NEED_ABSOLUTE_PATH
-- $(CC) -o $@ -c $(CFLAGS) $(call core_abspath,$<)
-+ $(CC) -o $@ -c $(CFLAGS) $(call mozabspath,$<)
- else
- $(CC) -o $@ -c $(CFLAGS) $<
- endif
-@@ -445,10 +441,10 @@
-
- $(PROG_PREFIX)%$(OBJ_SUFFIX): %.c
- ifdef USE_NT_C_SYNTAX
-- $(CC) -Fo$@ -c $(CFLAGS) $(call core_abspath,$<)
-+ $(CC) -Fo$@ -c $(CFLAGS) $(call mozabspath,$<)
- else
- ifdef NEED_ABSOLUTE_PATH
-- $(CC) -o $@ -c $(CFLAGS) $(call core_abspath,$<)
-+ $(CC) -o $@ -c $(CFLAGS) $(call mozabspath,$<)
- else
- $(CC) -o $@ -c $(CFLAGS) $<
- endif
-@@ -477,10 +473,10 @@
- $(OBJDIR)/$(PROG_PREFIX)%: %.cpp
- @$(MAKE_OBJDIR)
- ifdef USE_NT_C_SYNTAX
-- $(CCC) -Fo$@ -c $(CFLAGS) $(call core_abspath,$<)
-+ $(CCC) -Fo$@ -c $(CFLAGS) $(call mozabspath,$<)
- else
- ifdef NEED_ABSOLUTE_PATH
-- $(CCC) -o $@ -c $(CFLAGS) $(call core_abspath,$<)
-+ $(CCC) -o $@ -c $(CFLAGS) $(call mozabspath,$<)
- else
- $(CCC) -o $@ -c $(CFLAGS) $<
- endif
-@@ -501,10 +497,10 @@
- rm -f $(OBJDIR)/t_$*.cc
- else
- ifdef USE_NT_C_SYNTAX
-- $(CCC) -Fo$@ -c $(CFLAGS) $(call core_abspath,$<)
-+ $(CCC) -Fo$@ -c $(CFLAGS) $(call mozabspath,$<)
- else
- ifdef NEED_ABSOLUTE_PATH
-- $(CCC) -o $@ -c $(CFLAGS) $(call core_abspath,$<)
-+ $(CCC) -o $@ -c $(CFLAGS) $(call mozabspath,$<)
- else
- $(CCC) -o $@ -c $(CFLAGS) $<
- endif
---- misc/mozilla/security/manager/Makefile.in 2008-06-16 00:23:29.000000000 +0200
-+++ misc/build/mozilla/security/manager/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -123,8 +123,11 @@
- ifdef CYGDRIVE_MOUNT
- ABS_DIST := $(shell cygpath -w $(ABS_DIST) | sed -e 's|\\|/|g')
- endif
-+ifneq (,$(filter cygwin%,$(host_os)))
-+ABS_DIST := $(shell cygpath -u $(ABS_DIST))
-+endif
- ifneq (,$(filter mingw%,$(host_os)))
--ABS_DIST := $(shell cd $(DIST) && pwd -W)
-+ABS_DIST := $(shell cygpath -u $(ABS_DIST))
- endif
- endif
- NSPR_INCLUDE_DIR = $(firstword $(filter -I%,$(NSPR_CFLAGS)))
-@@ -172,6 +175,7 @@
- endif
- ifeq ($(OS_ARCH),WINNT)
- DEFAULT_GMAKE_FLAGS += OS_TARGET=WIN95
-+DEFAULT_GMAKE_FLAGS += CYGWIN_WRAPPER=@CYGWIN_WRAPPER@
- ifdef MOZ_DEBUG
- ifndef MOZ_NO_DEBUG_RTL
- DEFAULT_GMAKE_FLAGS += USE_DEBUG_RTL=1
---- misc/mozilla/security/nss/cmd/shlibsign/Makefile 2007-02-16 03:16:24.000000000 +0100
-+++ misc/build/mozilla/security/nss/cmd/shlibsign/Makefile 2009-02-12 15:42:13.033408000 +0100
-@@ -86,17 +86,42 @@
-
- include ../platrules.mk
-
--SRCDIR = $(call core_abspath,.)
--
-+ifeq ($(OS_TARGET), Darwin)
-+ SRCDIR = .
-+else
-+ifeq ($(OS_TARGET), Linux)
-+ SRCDIR = .
-+else
-+ SRCDIR = .
-+endif
-+endif
- %.chk: %.$(DLL_SUFFIX)
- ifeq ($(OS_TARGET), OS2)
- cd $(OBJDIR) ; cmd.exe /c $(SRCDIR)/sign.cmd $(DIST) \
- $(call core_abspath,$(OBJDIR)) $(OS_TARGET) \
- $(call core_abspath,$(NSPR_LIB_DIR)) $(call core_abspath,$<)
- else
-- cd $(OBJDIR) ; sh $(SRCDIR)/sign.sh $(call core_abspath,$(DIST)) \
-- $(call core_abspath,$(OBJDIR)) $(OS_TARGET) \
-- $(call core_abspath,$(NSPR_LIB_DIR)) $(call core_abspath,$<)
-+ifeq ($(OS_TARGET), WIN95)
-+ cd $(SRCDIR) ; sh $(CYGWIN_WRAPPER) ./sign.sh $(DIST) \
-+ $(OBJDIR) $(OS_TARGET) \
-+ $(NSPR_LIB_DIR) $<
-+else
-+ifeq ($(OS_TARGET), Darwin)
-+ cd $(SRCDIR) ; sh ./sign.sh $(DIST) \
-+ $(OBJDIR) $(OS_TARGET) \
-+ $(NSPR_LIB_DIR) $<
-+else
-+ifeq ($(OS_TARGET), Linux)
-+ cd $(SRCDIR) ; sh ./sign.sh $(DIST) \
-+ $(OBJDIR) $(OS_TARGET) \
-+ $(NSPR_LIB_DIR) $<
-+else
-+ cd $(SRCDIR) ; sh ./sign.sh $(DIST) \
-+ $(OBJDIR) $(OS_TARGET) \
-+ $(NSPR_LIB_DIR) $<
-+endif
-+endif
-+endif
- endif
-
- libs install :: $(CHECKLOC)
---- misc/mozilla/security/nss/lib/ckfw/builtins/config.mk 2005-01-20 03:25:46.000000000 +0100
-+++ misc/build/mozilla/security/nss/lib/ckfw/builtins/config.mk 2008-08-14 16:22:21.000000000 +0200
-@@ -63,9 +63,4 @@
- DSO_LDOPTS = -bundle
- endif
-
--ifeq ($(OS_TARGET),SunOS)
--# The -R '$ORIGIN' linker option instructs this library to search for its
--# dependencies in the same directory where it resides.
--MKSHLIB += -R '$$ORIGIN'
--endif
-
---- misc/mozilla/security/nss/lib/freebl/Makefile 2008-06-16 00:22:09.000000000 +0200
-+++ misc/build/mozilla/security/nss/lib/freebl/Makefile 2008-08-18 14:31:08.000000000 +0200
-@@ -199,10 +199,6 @@
- endif
-
- ifeq ($(OS_TARGET),SunOS)
--
--# The -R '$ORIGIN' linker option instructs this library to search for its
--# dependencies in the same directory where it resides.
--MKSHLIB += -R '$$ORIGIN'
- ifdef NS_USE_GCC
- ifdef GCC_USE_GNU_LD
- MKSHLIB += -Wl,-Bsymbolic,-z,now,-z,text
-@@ -210,7 +206,7 @@
- MKSHLIB += -Wl,-B,symbolic,-z,now,-z,text
- endif # GCC_USE_GNU_LD
- else
-- MKSHLIB += -B symbolic -z now -z text
-+ MKSHLIB += -z now -z text
- endif # NS_USE_GCC
-
- # Sun's WorkShop defines v8, v8plus and v9 architectures.
---- misc/mozilla/security/nss/lib/nss/config.mk 2006-12-22 14:47:56.000000000 +0100
-+++ misc/build/mozilla/security/nss/lib/nss/config.mk 2008-08-19 17:07:42.000000000 +0200
-@@ -113,12 +113,10 @@
- # The -R '$ORIGIN' linker option instructs this library to search for its
- # dependencies in the same directory where it resides.
- ifeq ($(USE_64), 1)
--MKSHLIB += -R '$$ORIGIN:/usr/lib/mps/secv1/64:/usr/lib/mps/64'
-+DSO_LDOPTS += -R '$$ORIGIN:/usr/lib/mps/secv1/64:/usr/lib/mps/64'
- else
--MKSHLIB += -R '$$ORIGIN:/usr/lib/mps/secv1:/usr/lib/mps'
-+DSO_LDOPTS += -R '$$ORIGIN:/usr/lib/mps/secv1:/usr/lib/mps'
- endif
--else
--MKSHLIB += -R '$$ORIGIN'
- endif
- endif
-
-@@ -127,9 +125,9 @@
- # pa-risc
- ifeq ($(USE_64), 1)
- MKSHLIB += +b '$$ORIGIN'
--endif
--endif
--endif
-+endif # USE_64
-+endif # OS_TEST
-+endif # OS_ARCH
-
- ifeq (,$(filter-out WINNT WIN95,$(OS_TARGET)))
- ifndef NS_USE_GCC
---- misc/mozilla/security/nss/lib/nss/nss.def 2008-06-16 00:22:10.000000000 +0200
-+++ misc/build/mozilla/security/nss/lib/nss/nss.def 2008-08-14 16:22:21.000000000 +0200
-@@ -61,6 +61,7 @@
- CERT_CheckCertValidTimes;
- CERT_CreateCertificateRequest;
- CERT_ChangeCertTrust;
-+CERT_DecodeDERCertificate;
- CERT_DecodeDERCrl;
- CERT_DestroyCertificateRequest;
- CERT_DestroyCertList;
---- misc/mozilla/security/nss/lib/smime/config.mk 2006-12-22 14:48:00.000000000 +0100
-+++ misc/build/mozilla/security/nss/lib/smime/config.mk 2008-08-19 17:01:53.000000000 +0200
-@@ -92,8 +92,3 @@
- ../pkcs7 \
- $(NULL)
-
--ifeq ($(OS_TARGET),SunOS)
--# The -R '$ORIGIN' linker option instructs this library to search for its
--# dependencies in the same directory where it resides.
--MKSHLIB += -R '$$ORIGIN'
--endif
---- misc/mozilla/security/nss/lib/softoken/config.mk 2006-12-22 14:48:00.000000000 +0100
-+++ misc/build/mozilla/security/nss/lib/softoken/config.mk 2008-08-20 10:36:17.000000000 +0200
-@@ -87,13 +87,6 @@
- $(NULL)
- endif
-
--ifeq ($(OS_TARGET),SunOS)
--# The -R '$ORIGIN' linker option instructs this library to search for its
--# dependencies in the same directory where it resides.
--MKSHLIB += -R '$$ORIGIN'
--OS_LIBS += -lbsm
--endif
--
- ifeq ($(OS_TARGET),WINCE)
- DEFINES += -DDBM_USING_NSPR
- endif
---- misc/mozilla/security/nss/lib/ssl/config.mk 2008-06-16 00:22:12.000000000 +0200
-+++ misc/build/mozilla/security/nss/lib/ssl/config.mk 2008-08-19 17:03:03.000000000 +0200
-@@ -116,13 +116,6 @@
- EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib
- endif
-
--ifeq ($(OS_TARGET),SunOS)
--# The -R '$ORIGIN' linker option instructs this library to search for its
--# dependencies in the same directory where it resides.
--MKSHLIB += -R '$$ORIGIN'
--#EXTRA_SHARED_LIBS += -ldl -lrt -lc -z defs
--endif
--
- endif
-
- # indicates dependency on freebl static lib
---- misc/mozilla/webshell/tests/viewer/Makefile.in 2006-06-17 18:27:10.000000000 +0200
-+++ misc/build/mozilla/webshell/tests/viewer/Makefile.in 2008-08-14 16:22:21.000000000 +0200
-@@ -181,7 +181,7 @@
- GTK_LIBS = unix/gtk/libviewer_gtk_s.a -lgtksuperwin $(XP_LIBS) $(MOZ_GTK_LDFLAGS)
-
- XP_DIST_DEP_LIBS := $(filter-out -L$(DIST)/bin -L$(DIST)/lib, $(XP_DIST_LIBS))
--XP_DIST_DEP_LIBS := $(wildcard $(addprefix $(DIST)/,$(patsubst -l%,bin/$(LIB_PREFIX)%$(DLL_SUFFIX),$(XP_DIST_DEP_LIBS:-l%_s=lib/lib%_s)))*)
-+XP_DIST_DEP_LIBS := $(wildcard $(addprefix $(DIST)/,$(patsubst -l%,bin/$(DLL_PREFIX)%$(DLL_SUFFIX),$(XP_DIST_DEP_LIBS:-l%_s=lib/lib%_s)))*)
-
- EXTRA_DEPS = \
- $(XP_DIST_DEP_LIBS) \
---- misc/mozilla/xpcom/reflect/xptinfo/public/xptinfo.h 2004-04-18 16:18:20.000000000 +0200
-+++ misc/build/mozilla/xpcom/reflect/xptinfo/public/xptinfo.h 2008-08-14 16:22:21.000000000 +0200
-@@ -132,7 +132,7 @@
- }
-
- PRBool IsArray() const
-- {return (PRBool) TagPart() == T_ARRAY;}
-+ {return (PRBool) (TagPart() == T_ARRAY);}
-
- // 'Dependent' means that params of this type are dependent upon other
- // params. e.g. an T_INTERFACE_IS is dependent upon some other param at
-@@ -152,7 +152,7 @@
- uint8 TagPart() const
- {return (uint8) (flags & XPT_TDP_TAGMASK);}
-
-- enum
-+ enum _xpttype
- {
- T_I8 = TD_INT8 ,
- T_I16 = TD_INT16 ,
---- misc/mozilla/xpfe/bootstrap/Makefile.in 2007-10-08 21:09:58.000000000 +0200
-+++ misc/build/mozilla/xpfe/bootstrap/Makefile.in 2008-08-18 14:10:04.000000000 +0200
-@@ -115,11 +115,14 @@
-
- include $(topsrcdir)/config/config.mk
-
-+# reduce prerequisites by disabling mozilla binary
-+ifndef DISABLE_MOZ_EXECUTABLE
- ifeq ($(USE_SHORT_LIBNAME),1)
- PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX)
- else
- PROGRAM = $(MOZ_APP_NAME)-bin$(BIN_SUFFIX)
- endif
-+endif
-
- # Force applications to be built non-statically
- # when building the mozcomps meta component
-@@ -491,6 +494,7 @@
- APP_NAME = $(MOZ_APP_DISPLAYNAME)
- endif
-
-+ifdef PROGRAM
- libs:: $(PROGRAM)
- mkdir -p $(DIST)/$(APP_NAME).app/Contents/MacOS
- rsync -a --exclude CVS --exclude "*.in" $(srcdir)/macbuild/Contents $(DIST)/$(APP_NAME).app
-@@ -505,6 +509,7 @@
- rsync -a --copy-unsafe-links $(DIST)/package/PrintPDE.plugin $(DIST)/$(APP_NAME).app/Contents/Plug-Ins
- cp -RL $(DIST)/package/mozillaSuite.rsrc $(DIST)/$(APP_NAME).app/Contents/Resources/$(PROGRAM).rsrc
- echo -n APPLMOZZ > $(DIST)/$(APP_NAME).app/Contents/PkgInfo
-+endif
-
- clean clobber::
- rm -rf $(DIST)/$(APP_NAME).app
---- misc/mozilla/directory/c-sdk/ldap/libraries/libiutil/Makefile.in 2006-02-03 15:44:41.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/libiutil/Makefile.in 2011-09-07 10:45:16.000000000 +0200
-@@ -89,12 +89,9 @@
- -e "s|%VERSION%|$${v}|" \
- < Version.c > $@)
-
--export:: $(OBJDEST) $(LIBDIR) $(OBJS) $(LIBIUTIL)
-+export:: $(OBJDEST) $(OBJS) $(LIBIUTIL)
-
--$(LIBDIR):
-- $(MKDIR) $(LIBDIR)
--
--$(LIBIUTIL): $(OBJS) $(LIBDIR)
-+$(LIBIUTIL): $(OBJS)
- @echo ======= making $(LIBIUTIL)
- ifdef SO_FILES_TO_REMOVE
- -$(RM) $(SO_FILES_TO_REMOVE)
---- misc/mozilla/directory/c-sdk/ldap/libraries/liblber/Makefile.in 2006-02-03 15:44:41.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/liblber/Makefile.in 2011-09-07 10:45:02.000000000 +0200
-@@ -79,12 +79,9 @@
- -e "s|%VERSION%|$${v}|" \
- < Version.c > $@)
-
--export:: $(OBJDEST) $(LIBDIR) $(OBJS) $(LIBLBER)
-+export:: $(OBJDEST) $(OBJS) $(LIBLBER)
-
--$(LIBDIR):
-- $(MKDIR) $(LIBDIR)
--
--$(LIBLBER): $(OBJS) $(LIBDIR)
-+$(LIBLBER): $(OBJS)
- @echo ======= making $(LIBLBER)
- ifdef SO_FILES_TO_REMOVE
- -$(RM) $(SO_FILES_TO_REMOVE)
---- misc/mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 2011-09-07 10:53:57.000000000 +0200
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 2011-09-07 10:44:45.000000000 +0200
-@@ -279,13 +279,13 @@
- < Version.c > $@)
-
- # Set the default sources for the export target
--EXPDEPS = $(OBJDIR_NAME) $(LIBDIR) $(OBJS) $(LIBLDAP) $(DLLLDAP)
-+EXPDEPS = $(OBJDIR_NAME) $(OBJS) $(LIBLDAP) $(DLLLDAP)
- # Remove the LIB source if on win32 and using MSVC
- # This avoids problems with -jX builds where 'link' will make both the
- # .dll and .lib files in one pass
- ifeq ($(OS_ARCH), WINNT)
- ifeq ($(LD),link)
--EXPDEPS = $(OBJDIR_NAME) $(LIBDIR) $(OBJS) $(DLLLDAP)
-+EXPDEPS = $(OBJDIR_NAME) $(OBJS) $(DLLLDAP)
- endif
- endif
-
-@@ -294,10 +294,7 @@
- ltest:: $(LIBLDAP) test.o
- $(LINK_EXE) test.o
-
--$(LIBDIR):
-- $(MKDIR) $(LIBDIR)
--
--$(LIBLDAP): $(OBJS) $(LIBDIR) $(LDAP_EXPORT_DEFS)
-+$(LIBLDAP): $(OBJS) $(LDAP_EXPORT_DEFS)
- @echo ======= making $(LIBLDAP)
- ifdef SO_FILES_TO_REMOVE
- -$(RM) $(SO_FILES_TO_REMOVE)
-@@ -314,7 +311,7 @@
- endif
- endif
-
--$(DLLLDAP): $(OBJS) $(LIBDIR) $(LDAP_EXPORT_DEFS)
-+$(DLLLDAP): $(OBJS) $(LDAP_EXPORT_DEFS)
- @echo ======= making $(DLLLDAP)
- ifdef SO_FILES_TO_REMOVE
- -$(RM) $(SO_FILES_TO_REMOVE)
---- misc/mozilla/directory/c-sdk/ldap/libraries/libldif/Makefile.in 2006-02-03 15:44:49.000000000 +0100
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/libldif/Makefile.in 2011-09-07 10:44:15.000000000 +0200
-@@ -77,12 +77,9 @@
- -e "s|%VERSION%|$${v}|" \
- < Version.c > $@)
-
--export:: $(OBJDEST) $(LIBDIR) $(OBJS) $(LIBLDIF)
-+export:: $(OBJDEST) $(OBJS) $(LIBLDIF)
-
--$(LIBDIR):
-- $(MKDIR) $(LIBDIR)
--
--$(LIBLDIF): $(OBJS) $(LIBDIR)
-+$(LIBLDIF): $(OBJS)
- @echo ======= making $(LIBLDIF)
- ifdef SO_FILES_TO_REMOVE
- -$(RM) $(SO_FILES_TO_REMOVE)
---- misc/mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 2011-09-07 10:53:57.000000000 +0200
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 2011-09-07 10:43:59.000000000 +0200
-@@ -201,12 +201,9 @@
- -e "s|%VERSION%|$${v}|" \
- < Version.c > $@)
-
--export:: $(OBJDEST) $(LIBDIR) $(OBJS) $(DLLPRLDAP)
-+export:: $(OBJDEST) $(OBJS) $(DLLPRLDAP)
-
--$(LIBDIR):
-- $(MKDIR) $(LIBDIR)
--
--$(LIBPRLDAP): $(OBJS) $(LIBDIR) $(PRLDAP_EXPORT_DEFS)
-+$(LIBPRLDAP): $(OBJS) $(PRLDAP_EXPORT_DEFS)
- @echo ======= making $(LIBPRLDAP)
- ifdef SO_FILES_TO_REMOVE
- -$(RM) $(SO_FILES_TO_REMOVE)
-@@ -219,7 +216,7 @@
- $(LINK_LIB) $(EXTRA_LIBS)
- endif
-
--$(DLLPRLDAP): $(OBJS) $(LIBDIR) $(PRLDAP_EXPORT_DEFS)
-+$(DLLPRLDAP): $(OBJS) $(PRLDAP_EXPORT_DEFS)
- @echo ======= making $(DLLPRLDAP)
- ifdef SO_FILES_TO_REMOVE
- -$(RM) $(SO_FILES_TO_REMOVE)
---- misc/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 2011-09-07 10:53:57.000000000 +0200
-+++ misc/build/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 2011-09-07 10:42:48.000000000 +0200
-@@ -214,19 +214,16 @@
- -e "s|%VERSION%|$${v}|" \
- < Version.c > $@)
-
--export:: $(OBJDEST) $(LIBDIR) $(OBJS) $(DLLSSLDAP)
-+export:: $(OBJDEST) $(OBJS) $(DLLSSLDAP)
-
--$(LIBDIR):
-- $(MKDIR) $(LIBDIR)
--
--$(LIBSSLDAP): $(OBJS) $(LIBDIR) $(SSLDAP_EXPORT_DEFS)
-+$(LIBSSLDAP): $(OBJS) $(SSLDAP_EXPORT_DEFS)
- @echo ======= making $(LIBSSLDAP)
- ifdef SO_FILES_TO_REMOVE
- -$(RM) $(SO_FILES_TO_REMOVE)
- endif
- $(LINK_LIB) $(EXTRA_LIBS)
-
--$(DLLSSLDAP): $(OBJS) $(LIBDIR) $(SSLDAP_EXPORT_DEFS)
-+$(DLLSSLDAP): $(OBJS) $(SSLDAP_EXPORT_DEFS)
- @echo ======= making $(DLLSSLDAP)
- ifdef SO_FILES_TO_REMOVE
- -$(RM) $(SO_FILES_TO_REMOVE)
diff --git a/moz/zipped/makefile.mk b/moz/zipped/makefile.mk
deleted file mode 100644
index 58e0ab281f61..000000000000
--- a/moz/zipped/makefile.mk
+++ /dev/null
@@ -1,106 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=moz
-TARGET=moz_unzip
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-.IF "$(WITH_MOZAB4WIN)" == "NO"
-
-dummy:
- @echo "No need to unpack the prebuilt mozab packages"
-
-.ELSE # unpack mozab zips
-.INCLUDE : target.mk
-
-.IF "$(BUILD_MOZAB)"=="NO"
-ALLTAR:
- @echo "Does not need build mozab zipped!"
-.ELSE
-ALLTAR: \
- $(MISC)$/unpacked_$(TARGET)_inc \
- $(MISC)$/unpacked_$(TARGET)_lib \
- $(BIN)$/mozruntime.zip \
- $(MISC)$/remove_old_nss_libs
-.ENDIF # BUILD_MOZAB
-
-$(MISC)$/unpacked_$(TARGET)_lib : $(OS)$(COM)$(CPU)lib.zip
- unzip -o -d $(LB) $(OS)$(COM)$(CPU)lib.zip && \
- $(TOUCH) $@
-
-$(MISC)$/unpacked_$(TARGET)_inc : $(OS)$(COM)$(CPU)inc.zip
- unzip -o -d $(INCCOM) $(OS)$(COM)$(CPU)inc.zip && $(TOUCH) $@
-
-.ENDIF # WITH_MOZAB4WIN
-
-$(BIN)$/mozruntime%zip : $(OS)$(COM)$(CPU)runtime.zip
- $(COPY) $(OS)$(COM)$(CPU)runtime.zip $(BIN)$/mozruntime.zip
-
-
-# The old prebuilt moz files include all the old NSS stuff from moz but we
-# always build the toplevel nss module, so we must delete all these
-LIBLIST= \
- nspr4.lib \
- plc4.lib \
- plds4.lib \
- nss3.lib \
- ssl3.lib\
- smime3.lib
-
-NSS_RUNTIMELIST:= \
- freebl3 \
- nspr4 \
- nss3 \
- nssckbi \
- nssdbm3 \
- nssutil3 \
- plc4 \
- plds4 \
- sqlite3 \
- smime3 \
- softokn3 \
- ssl3
-
-# Remove the nss libs
-$(MISC)$/remove_old_nss_libs : $(MISC)$/unpacked_$(TARGET)_lib \
-$(MISC)$/unpacked_$(TARGET)_inc $(BIN)$/mozruntime.zip
- $(foreach,lib,$(LIBLIST) rm -f $(LB)$/$(lib) &&) \
- echo >& $(NULLDEV)
- chmod u+w $(BIN)$/mozruntime.zip && zip -d $(BIN)$/mozruntime.zip $(foreach,lib,$(NSS_RUNTIMELIST) $(DLLPRE)$(lib:f)$(DLLPOST)) && \
- echo >& $(NULLDEV)
- rm -r -f $(INCCOM)$/nss && \
- echo >& $(NULLDEV)
- rm -r -f $(INCCOM)$/nspr && \
- echo >& $(NULLDEV)
- $(TOUCH) $@