diff options
author | Peter Foley <pefoley2@verizon.net> | 2013-02-22 21:33:23 -0500 |
---|---|---|
committer | David Ostrovsky <David.Ostrovsky@gmx.de> | 2013-02-24 10:34:40 +0000 |
commit | 61e7c592faa2d768d599936e57042eb22bcaa16f (patch) | |
tree | 2be399d2aa1179fc4d982f3074481ec8fd49a84c /moz | |
parent | a5a24fa0241930ae5f9d8a4c757e479d2de3efb6 (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')
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) $@ |