OBS User unknown 2007-06-13 22:42:39 +00:00 committed by Git OBS Bridge
parent c86da3e940
commit 7e85d3c170
23 changed files with 552 additions and 8137 deletions

View File

@ -1,3 +1,59 @@
-------------------------------------------------------------------
Tue Jun 12 11:53:55 CDT 2007 - maw@suse.de
- Merge chagnges from the build service (thanks, Wolfgang)
- Now use l10n-%{version}.tar.bz2 instead of l10n.tar.bz2 as
before.
-------------------------------------------------------------------
Thu Apr 19 07:15:36 CEST 2007 - wr@rosenauer.org
- update to final version 2.0.0.0
(http://www.mozilla.com/en-US/thunderbird/2.0.0.0/releasenotes/)
- update enigmail to 0.95.0
-------------------------------------------------------------------
Wed Apr 18 14:16:44 CEST 2007 - mfabian@suse.de
- add Japanese to the languages which get PANGO enabled in the
start script to support the Japanese combining characters
U+3099 U+309A (see bugzilla #262718 comment #29).
-------------------------------------------------------------------
Thu Apr 12 16:35:43 CEST 2007 - wr@rosenauer.org
- update to 2.0.0.0rc1
- enabled translations package
-------------------------------------------------------------------
Fri Mar 30 11:35:01 CEST 2007 - wr@rosenauer.org
- update to snapshot 2.0.0.0pre-20070329
- security update enigmail 0.94.3
(Bugtraq #22758)
-------------------------------------------------------------------
Fri Mar 30 10:35:03 CEST 2007 - meissner@suse.de
- require unzip
-------------------------------------------------------------------
Tue Mar 13 08:36:31 CET 2007 - wr@rosenauer.org
- update to snapshot 2.0pre-20060312
- removed implicit NSS version dependency
-------------------------------------------------------------------
Thu Feb 15 19:47:56 CET 2007 - wr@rosenauer.org
- update to snapshot 2.0beta2-20060214
- fixed build on SLES9
-------------------------------------------------------------------
Mon Feb 5 18:56:14 CET 2007 - wr@rosenauer.org
- fixed check in add-plugins.sh (#242237)
-------------------------------------------------------------------
Tue Jun 5 18:20:13 CEST 2007 - maw@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package MozillaThunderbird (Version 1.5.0.12)
# spec file for package MozillaThunderbird (Version 2.0.0.0)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@ -13,7 +13,7 @@
Name: MozillaThunderbird
BuildRequires: gcc-c++ libgnomeui-devel libidl-devel mozilla-nss-devel orbit-devel unzip update-desktop-files zip
License: GNU General Public License (GPL), GNU Library General Public License v. 2.0 and 2.1 (LGPL)
Version: 1.5.0.12
Version: 2.0.0.0
Release: 1
Summary: The Stand-Alone Mozilla Mail Component
URL: http://www.mozilla.org/products/thunderbird/
@ -22,19 +22,19 @@ Source: thunderbird-%{version}-source.tar.bz2
Source1: MozillaThunderbird.desktop
Source2: add-plugins.sh.in
Source3: mozilla.sh.in
Source4: l10n.tar.bz2
Source4: l10n-%{version}.tar.bz2
Source5: mailredirect-0.7.4.xpi
Source6: suse-default-prefs.js
Source9: enigmail-0.94.2.tar.gz
Source9: enigmail-0.95.0.tar.gz
Source11: enigmail.manifest
Patch1: pango-cairo.patch
Patch1: replytolist.patch
Patch2: thunderbird-appname.patch
Patch3: visibility.patch
Patch4: locale.patch
Patch5: abuild.patch
Patch6: nspr-prdtoa.patch
Patch7: enig-shared.patch
Patch8: digest-mail.patch
Patch8: gcc-undefined-ops.patch
Patch9: thunderbird-no-update.patch
Patch10: mips-buildfix.diff
Patch11: lightning.patch
@ -42,21 +42,11 @@ Patch12: misc.dif
Patch13: nss-opt.patch
Patch14: html-compose.patch
Patch15: system-extensions.patch
Patch16: xul-picker.patch
Patch17: remote.patch
Patch18: system-nss.patch
Patch19: system-nspr.patch
#Patch21: ppc64.patch
Patch16: list-replyto-clobber.patch
Patch22: cjk-postscript-fonts.dif
Patch24: multi-replyto.patch
Patch25: postscript.patch
Patch26: cups-paper.patch
Patch27: print-properties.patch
Patch28: replytolist.patch
Patch29: list-replyto-clobber.patch
Patch30: undefined-ops.patch
# bnc 232305
Patch31: thunderbird-1.5.0.8-uninitalized-vars-232305.patch
Patch27: thunderbird-1.5.0.8-uninitalized-vars-232305.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: libstdc++ fileutils textutils /bin/sh
%if %suse_version > 1000
@ -142,7 +132,7 @@ cd $RPM_BUILD_DIR/mozilla
%patch5
%patch6
%patch8
%patch9
###%patch9
%patch10
#%patch11
%patch12
@ -150,32 +140,36 @@ cd $RPM_BUILD_DIR/mozilla
%patch14
%patch15
%patch16
#%patch17 # temporary disabled
%if %has_system_nss
%patch18
%endif
%if %has_system_nspr
%patch19
%endif
#%patch21
### #%patch17 # temporary disabled
### %if %has_system_nss
### %patch18
### %endif
### %if %has_system_nspr
### %patch19
### %endif
### %patch21
%patch22
%patch24
### %patch24
%patch25
%patch26
%patch27
%patch28
%patch29
%patch30
%patch31 -p0
### %patch27
### %patch28
### %patch29
### %patch30
### %patch31 -p0
%patch27 -p0
%build
export MOZ_BUILD_DATE=%{releasedate}
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing"
export CFLAGS="$RPM_OPT_FLAGS -g -Os -fno-strict-aliasing"
%if %suse_version > 1000
export CFLAGS="$CFLAGS -fstack-protector"
%endif
%ifarch ppc64
export CFLAGS="$CFLAGS -mminimal-toc"
%endif
export CXXFLAGS="$CFLAGS"
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
cat << EOF > $MOZCONFIG
@ -191,7 +185,6 @@ ac_add_options --includedir=%{_includedir}
ac_add_options --enable-optimize="$CFLAGS"
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-mng
ac_add_options --with-system-zlib
#ac_add_options --enable-extensions=default,lightning
ac_add_options --enable-default-toolkit=gtk2
@ -241,14 +234,21 @@ cp -rf $RPM_BUILD_DIR/mozilla/dist/thunderbird/* $RPM_BUILD_ROOT%{progdir}
# build additional locales
%if %localize
echo %defattr\(-,root,root\) > %{_tmppath}/translations.list
for locale in $(cat mail/locales/all-locales); do
make -C mail/locales libs-$locale
cp dist/xpi-stage/locale-$locale/chrome/$locale.jar \
$RPM_BUILD_ROOT%{progdir}/chrome
cp dist/xpi-stage/locale-$locale/chrome/$locale.manifest \
$RPM_BUILD_ROOT%{progdir}/chrome
echo %{progdir}/chrome/$locale.jar >> %{_tmppath}/translations.list
echo %{progdir}/chrome/$locale.manifest >> %{_tmppath}/translations.list
#for locale in $(cat mail/locales/all-locales); do
for locale in $(awk '{ print $1; }' mail/locales/shipped-locales); do
case $locale in
ja-JP-mac)
# broken locales, do not work
;;
*)
make -C mail/locales libs-$locale
cp dist/xpi-stage/locale-$locale/chrome/$locale.jar \
$RPM_BUILD_ROOT%{progdir}/chrome
cp dist/xpi-stage/locale-$locale/chrome/$locale.manifest \
$RPM_BUILD_ROOT%{progdir}/chrome
echo %{progdir}/chrome/$locale.jar >> %{_tmppath}/translations.list
echo %{progdir}/chrome/$locale.manifest >> %{_tmppath}/translations.list
esac
done
%endif
# overwrite the mozilla start-script and link it to /usr/bin
@ -313,17 +313,17 @@ unzip %{SOURCE5} -d $_redir_dir
mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps/
cp -f $RPM_BUILD_ROOT%{progdir}/icons/mozicon50.xpm $RPM_BUILD_ROOT%{_datadir}/pixmaps/thunderbird.xpm
%if %suse_version > 820
%suse_update_desktop_file %{name} Network Email GTK
%suse_update_desktop_file %{name} Application Network Email GTK
%endif
%if %has_system_nspr && !%has_system_nss
%if !%has_system_nss
# modify provides and requires lists
cat << EOF > %{my_provides}
grep -vE "libnss3.so|libnssckbi.so|libsmime3.so|libsoftokn3.so|libssl3.so" | %{__find_provides}
grep -vE "libnss3.so|libnssckbi.so|libsmime3.so|libsoftokn3.so|libssl3.so|libfreebl3.so" | %{__find_provides}
EOF
chmod 755 %{my_provides}
%define __find_provides %{my_provides}
cat << EOF > %{my_requires}
grep -vE "libnss3.so|libnssckbi.so|libsmime3.so|libsoftokn3.so|libssl3.so|thunderbird-bin" | %{__find_requires}
grep -vE "libnss3.so|libnssckbi.so|libsmime3.so|libsoftokn3.so|libssl3.so|libpipnss.so|libfreebl3.so|thunderbird-bin" | %{__find_requires}
EOF
chmod 755 %{my_requires}
%define __find_requires %{my_requires}
@ -353,7 +353,7 @@ exit 0
%preun
if [ "$1" = "0" ]; then # deinstallation
rm -f %{progdir}/components/myspell/*
rm -f %{progdir}/dictionaries/*
fi
exit 0
@ -378,8 +378,10 @@ exit 0
%{progdir}/libsoftokn3.chk
%{progdir}/libsoftokn3.so
%{progdir}/libssl3.so
%{progdir}/libfreebl3.*
%endif
#
%{progdir}/dependentlibs.list
%{progdir}/LICENSE.txt
%{progdir}/README.txt
%{progdir}/libldap50.so
@ -389,6 +391,7 @@ exit 0
%{progdir}/libxpcom_compat.so
%{progdir}/libxpcom.so
%{progdir}/libxpistub.so
%{progdir}/license.html
%{progdir}/mozilla-xremote-client
%{progdir}/run-mozilla.sh
%{progdir}/thunderbird
@ -397,6 +400,7 @@ exit 0
%{progdir}/updater.ini
%{progdir}/xpicleanup
%dir %{progdir}/components
%{progdir}/components/FeedProcessor.js
%{progdir}/components/accessibility-atk.xpt
%{progdir}/components/accessibility.xpt
%{progdir}/components/addrbook.xpt
@ -427,6 +431,8 @@ exit 0
%{progdir}/components/dom_html.xpt
%{progdir}/components/dom_loadsave.xpt
%{progdir}/components/dom_range.xpt
%{progdir}/components/dom_sidebar.xpt
%{progdir}/components/dom_storage.xpt
%{progdir}/components/dom_stylesheets.xpt
%{progdir}/components/dom_traversal.xpt
%{progdir}/components/dom_views.xpt
@ -434,12 +440,13 @@ exit 0
%{progdir}/components/dom_xpath.xpt
%{progdir}/components/dom.xpt
%{progdir}/components/dom_xul.xpt
%{progdir}/components/downloadmanager.xpt
%{progdir}/components/downloads.xpt
%{progdir}/components/editor.xpt
%{progdir}/components/embed_base.xpt
%{progdir}/components/extensions.xpt
%{progdir}/components/exthandler.xpt
%{progdir}/components/fastfind.xpt
%{progdir}/components/feeds.xpt
%{progdir}/components/filepicker.xpt
%{progdir}/components/find.xpt
%{progdir}/components/gfx.xpt
@ -449,6 +456,7 @@ exit 0
%{progdir}/components/imglib2.xpt
%{progdir}/components/impComm4xMail.xpt
%{progdir}/components/import.xpt
%{progdir}/components/inspector.xpt
%{progdir}/components/intl.xpt
%{progdir}/components/jar.xpt
%{progdir}/components/jsconsole.xpt
@ -484,7 +492,6 @@ exit 0
%{progdir}/components/msgnews.xpt
%{progdir}/components/msgsearch.xpt
%{progdir}/components/msgsmime.xpt
%{progdir}/components/myspell/
%{progdir}/components/necko_about.xpt
%{progdir}/components/necko_cache.xpt
%{progdir}/components/necko_cookie.xpt
@ -503,9 +510,9 @@ exit 0
%{progdir}/components/nsCloseAllWindows.js
%{progdir}/components/nsComposerCmdLineHandler.js
%{progdir}/components/nsDefaultCLH.js
%{progdir}/components/nsDownloadProgressListener.js
%{progdir}/components/nsExtensionManager.js
%{progdir}/components/nsFilePicker.js
%{progdir}/components/nsPhishingProtectionApplication.js
%{progdir}/components/nsHelperAppDlg.js
%{progdir}/components/nsInterfaceInfoToIDL.js
%{progdir}/components/nsLDAPPrefsService.js
@ -513,6 +520,11 @@ exit 0
%{progdir}/components/nsUpdateService.js
%{progdir}/components/nsProgressDialog.js
%{progdir}/components/nsProxyAutoConfig.js
%{progdir}/components/nsURLFormatter.js
%{progdir}/components/nsUrlClassifierLib.js
%{progdir}/components/nsUrlClassifierListManager.js
%{progdir}/components/nsUrlClassifierTable.js
%{progdir}/components/url-classifier.xpt
%{progdir}/components/offlineStartup.js
%{progdir}/components/pipboot.xpt
%{progdir}/components/pipnss.xpt
@ -523,11 +535,14 @@ exit 0
%{progdir}/components/progressDlg.xpt
%{progdir}/components/proxyObjInst.xpt
%{progdir}/components/rdf.xpt
%{progdir}/components/saxparser.xpt
%{progdir}/components/nsSetDefaultMail.js
%{progdir}/components/shellservice.xpt
%{progdir}/components/shistory.xpt
%{progdir}/components/sidebar.xpt
%{progdir}/components/signonviewer.xpt
%{progdir}/components/smime-service.js
%{progdir}/components/spellchecker.xpt
%{progdir}/components/storage.xpt
%{progdir}/components/toolkitprofile.xpt
%{progdir}/components/toolkitremote.xpt
%{progdir}/components/txmgr.xpt
@ -536,6 +551,7 @@ exit 0
%{progdir}/components/unicharutil.xpt
%{progdir}/components/update.xpt
%{progdir}/components/uriloader.xpt
%{progdir}/components/urlformatter.xpt
%{progdir}/components/wallet.xpt
%{progdir}/components/walleteditor.xpt
%{progdir}/components/walletpreview.xpt
@ -546,7 +562,7 @@ exit 0
%{progdir}/components/widget.xpt
%{progdir}/components/windowds.xpt
%{progdir}/components/windowwatcher.xpt
%{progdir}/components/xmlextras.xpt
%{progdir}/components/xpautocomplete.xpt
%{progdir}/components/xpcom_base.xpt
%{progdir}/components/xpcom_components.xpt
%{progdir}/components/xpcom_ds.xpt
@ -565,15 +581,16 @@ exit 0
%{progdir}/chrome/en-US.*
%{progdir}/chrome/messenger.*
%{progdir}/chrome/newsblog.*
%{progdir}/chrome/offline.*
%{progdir}/chrome/pippki.*
%{progdir}/chrome/toolkit.*
%{progdir}/chrome/US.jar
%{progdir}/chrome/icons/
%{progdir}/dictionaries/
%{progdir}/defaults/
%{progdir}/greprefs/
%{progdir}/extensions/
%{progdir}/init.d/
%{progdir}/isp/
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/thunderbird.xpm
%{_bindir}/%{progname}
@ -584,15 +601,43 @@ exit 0
%endif
%changelog
* Tue Jun 12 2007 - maw@suse.de
- Merge chagnges from the build service (thanks, Wolfgang)
- Now use l10n-%%{version}.tar.bz2 instead of l10n.tar.bz2 as
before.
* Tue Jun 05 2007 - maw@suse.de
- Security update to version 1.5.0.12 (#271197).
* Tue Jun 05 2007 - sbrabec@suse.cz
- Removed invalid desktop category "Application" (#254654).
* Thu Apr 19 2007 - wr@rosenauer.org
- update to final version 2.0.0.0
(http://www.mozilla.com/en-US/thunderbird/2.0.0.0/releasenotes/)
- update enigmail to 0.95.0
* Wed Apr 18 2007 - mfabian@suse.de
- add Japanese to the languages which get PANGO enabled in the
start script to support the Japanese combining characters
U+3099 U+309A (see bugzilla #262718 comment #29).
* Thu Apr 12 2007 - wr@rosenauer.org
- update to 2.0.0.0rc1
- enabled translations package
* Fri Mar 30 2007 - wr@rosenauer.org
- update to snapshot 2.0.0.0pre-20070329
- security update enigmail 0.94.3
(Bugtraq #22758)
* Fri Mar 30 2007 - meissner@suse.de
- require unzip
- require unzip
* Tue Mar 13 2007 - wr@rosenauer.org
- update to snapshot 2.0pre-20060312
- removed implicit NSS version dependency
* Thu Mar 08 2007 - meissner@suse.de
- Upgraded to 1.5.0.10 security release.
- Upgraded to enigmail 0.94.2.
* Thu Feb 15 2007 - wr@rosenauer.org
- update to snapshot 2.0beta2-20060214
- fixed build on SLES9
* Mon Feb 05 2007 - wr@rosenauer.org
- fixed check in add-plugins.sh (#242237)
* Tue Jan 30 2007 - maw@suse.de
- Add thunderbird-1.5.0.8-uninitalized-vars-232305.patch (#232305).
* Thu Jan 18 2007 - maw@suse.de

View File

@ -7,7 +7,6 @@ References:
Program is using uninitialized variables. Note the difference between "is used"
and "may be used". Please investigate and fix.
Problematic file(s) and their linenumbers:
certificate.c: 541
nsUnicodeToJamoTTF.cpp: 855
nsObjectFrame.cpp: 1933
###
@ -23,8 +22,10 @@ Problematic file(s) and their linenumbers:
nsFrame.cpp: 3536
###
--- gfx/src/gtk/nsFontMetricsUtils.cpp.old 2005-03-24 07:27:33.000000000 +0100
+++ gfx/src/gtk/nsFontMetricsUtils.cpp 2005-03-24 07:28:26.000000000 +0100
Index: gfx/src/gtk/nsFontMetricsUtils.cpp
===================================================================
--- gfx/src/gtk/nsFontMetricsUtils.cpp.orig
+++ gfx/src/gtk/nsFontMetricsUtils.cpp
@@ -75,6 +75,7 @@ NS_FontMetricsGetHints(void)
#ifdef MOZ_ENABLE_COREXFONTS
return nsFontMetricsGTK::GetHints();
@ -40,18 +41,36 @@ Problematic file(s) and their linenumbers:
+ return 1;
}
#ifdef MOZ_ENABLE_XFT
#if defined(MOZ_ENABLE_XFT) && defined(MOZ_ENABLE_COREXFONTS)
Index: intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp
===================================================================
--- intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp.orig
+++ intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp
@@ -842,6 +842,7 @@ PRInt16 JamoSrchReplace (const JamoNormM
{
const JamoNormMap *match;
JamoNormMap key;
+ key.liga = 0;
// cluster array is made up of PRUint8's to save memory
// and we have to subtract aOffset from the input before looking it up.
Index: layout/generic/nsObjectFrame.cpp
===================================================================
--- layout/generic/nsObjectFrame.cpp.orig
+++ layout/generic/nsObjectFrame.cpp
@@ -1846,6 +1846,7 @@ nsObjectFrame::Paint(nsPresContext*
nsPoint origin;
float t2p;
window.window = nsnull;
+ window.ws_info = nsnull;
// prepare embedded mode printing struct
nsPluginPrint npprint;
Index: docshell/base/nsWebShell.cpp
===================================================================
RCS file: /cvsroot/mozilla/docshell/base/nsWebShell.cpp,v
retrieving revision 1.656.2.1
diff -u -p -6 -r1.656.2.1 nsWebShell.cpp
--- docshell/base/nsWebShell.cpp 16 Sep 2005 19:11:52 -0000 1.656.2.1
+++ docshell/base/nsWebShell.cpp 22 Sep 2005 06:30:30 -0000
@@ -556,12 +556,13 @@ nsWebShell::OnLinkClickSync(nsIContent *
// XXX TODO Should be similar to the HTML IMG ALT attribute handling
// in NS 4.x
default:
--- docshell/base/nsWebShell.cpp.orig
+++ docshell/base/nsWebShell.cpp
@@ -557,6 +557,7 @@ nsWebShell::OnLinkClickSync(nsIContent *
NS_ABORT_IF_FALSE(0,"unexpected link verb");
return NS_ERROR_UNEXPECTED;
}
@ -59,6 +78,29 @@ diff -u -p -6 -r1.656.2.1 nsWebShell.cpp
}
NS_IMETHODIMP
nsWebShell::OnOverLink(nsIContent* aContent,
nsIURI* aURI,
const PRUnichar* aTargetSpec)
Index: layout/generic/nsFrame.cpp
===================================================================
--- layout/generic/nsFrame.cpp.orig
+++ layout/generic/nsFrame.cpp
@@ -3569,7 +3569,7 @@ nsFrame::PeekOffsetParagraph(nsPresConte
#ifdef DEBUG_paragraph
printf("Selecting paragraph\n");
#endif
- nsIFrame* blockFrame;
+ nsIFrame* blockFrame = NULL;
nsCOMPtr<nsILineIterator> iter (getter_AddRefs(GetBlockFrameAndLineIter(this, &blockFrame)));
if (!blockFrame || !iter)
return NS_ERROR_UNEXPECTED;
Index: mailnews/local/src/nsMailboxService.cpp
===================================================================
--- mailnews/local/src/nsMailboxService.cpp.orig
+++ mailnews/local/src/nsMailboxService.cpp
@@ -228,7 +228,7 @@ nsresult nsMailboxService::FetchMessage(
// this happens with forward inline of message/rfc822 attachment
// opened in a stand-alone msg window.
- PRInt32 typeIndex = typeIndex = uriString.Find("&type=application/x-message-display");
+ PRInt32 typeIndex = uriString.Find("&type=application/x-message-display");
if (typeIndex != kNotFound)
{
uriString.Cut(typeIndex, sizeof("&type=application/x-message-display") - 1);

View File

@ -1,885 +0,0 @@
Index: mailnews/base/src/nsMessenger.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/base/src/nsMessenger.cpp,v
retrieving revision 1.326
diff -u -w -p -8 -r1.326 nsMessenger.cpp
--- base/src/nsMessenger.cpp 26 Sep 2005 01:38:19 -0000 1.326
+++ mailnews/base/src/nsMessenger.cpp 21 Oct 2005 15:51:26 -0000
@@ -612,16 +612,17 @@ nsMessenger::LoadURL(nsIDOMWindowInterna
NS_ConvertASCIItoUTF16 uriString(aURL);
// Cleanup the empty spaces that might be on each end.
uriString.Trim(" ");
// Eliminate embedded newlines, which single-line text fields now allow:
uriString.StripChars("\r\n");
NS_ENSURE_TRUE(!uriString.IsEmpty(), NS_ERROR_FAILURE);
PRBool loadingFromFile = PR_FALSE;
+ PRBool getDummyMsgHdr = PR_FALSE;
PRInt64 fileSize;
if (StringBeginsWith(uriString, NS_LITERAL_STRING("file:")))
{
nsCOMPtr<nsIURI> fileUri;
rv = NS_NewURI(getter_AddRefs(fileUri), uriString);
NS_ENSURE_SUCCESS(rv, rv);
@@ -629,41 +630,48 @@ nsMessenger::LoadURL(nsIDOMWindowInterna
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr <nsIFile> file;
rv = fileUrl->GetFile(getter_AddRefs(file));
NS_ENSURE_SUCCESS(rv, rv);
file->GetFileSize(&fileSize);
uriString.ReplaceSubstring(NS_LITERAL_STRING("file:"), NS_LITERAL_STRING("mailbox:"));
uriString.Append(NS_LITERAL_STRING("&number=0"));
loadingFromFile = PR_TRUE;
+ getDummyMsgHdr = PR_TRUE;
}
+ else if (FindInReadable(NS_LITERAL_STRING("type=application/x-message-display"), uriString))
+ getDummyMsgHdr = PR_TRUE;
nsCOMPtr<nsIURI> uri;
rv = NS_NewURI(getter_AddRefs(uri), uriString);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_TRUE(mDocShell, NS_ERROR_FAILURE);
nsCOMPtr<nsIMsgMailNewsUrl> msgurl = do_QueryInterface(uri);
if (msgurl)
{
msgurl->SetMsgWindow(mMsgWindow);
+ if (loadingFromFile || getDummyMsgHdr)
+ {
if (loadingFromFile)
{
nsCOMPtr <nsIMailboxUrl> mailboxUrl = do_QueryInterface(msgurl, &rv);
mailboxUrl->SetMessageSize((PRUint32) fileSize);
+ }
+ if (getDummyMsgHdr)
+ {
nsCOMPtr <nsIMsgHeaderSink> headerSink;
// need to tell the header sink to capture some headers to create a fake db header
// so we can do reply to a .eml file or a rfc822 msg attachment.
mMsgWindow->GetMsgHeaderSink(getter_AddRefs(headerSink));
if (headerSink)
{
nsCOMPtr <nsIMsgDBHdr> dummyHeader;
headerSink->GetDummyMsgHeader(getter_AddRefs(dummyHeader));
- if (dummyHeader)
- {
+ if (dummyHeader && loadingFromFile)
dummyHeader->SetMessageSize((PRUint32) fileSize);
}
}
}
}
nsCOMPtr<nsIDocShellLoadInfo> loadInfo;
rv = mDocShell->CreateLoadInfo(getter_AddRefs(loadInfo));
@@ -1386,17 +1394,17 @@ nsMessenger::MessageServiceFromURI(const
NS_IMETHODIMP
nsMessenger::MsgHdrFromURI(const char *aUri, nsIMsgDBHdr **aMsgHdr)
{
NS_ENSURE_ARG_POINTER(aUri);
NS_ENSURE_ARG_POINTER(aMsgHdr);
nsCOMPtr <nsIMsgMessageService> msgService;
nsresult rv;
- if (!strncmp(aUri, "file:", 5))
+ if (!strncmp(aUri, "file:", 5) || PL_strstr(aUri, "type=application/x-message-display"))
{
nsCOMPtr <nsIMsgHeaderSink> headerSink;
mMsgWindow->GetMsgHeaderSink(getter_AddRefs(headerSink));
if (headerSink)
{
rv = headerSink->GetDummyMsgHeader(aMsgHdr);
// Is there a way to check if they're asking for the hdr currently
// displayed in a stand-alone msg window from a .eml file?
Index: base/src/nsMsgCopyService.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/base/src/nsMsgCopyService.cpp,v
retrieving revision 1.51
diff -u -w -p -8 -r1.51 nsMsgCopyService.cpp
--- base/src/nsMsgCopyService.cpp 8 Aug 2005 20:36:39 -0000 1.51
+++ mailnews/base/src/nsMsgCopyService.cpp 21 Oct 2005 15:51:27 -0000
@@ -549,23 +549,20 @@ nsMsgCopyService::CopyFileMessage(nsIFil
PRUint32 aMsgFlags,
nsIMsgCopyServiceListener* listener,
nsIMsgWindow* window)
{
nsresult rv = NS_ERROR_NULL_POINTER;
nsCopyRequest* copyRequest;
nsCopySource* copySource = nsnull;
nsCOMPtr<nsISupports> fileSupport;
- nsCOMPtr<nsITransactionManager> txnMgr;
NS_ENSURE_ARG_POINTER(fileSpec);
NS_ENSURE_ARG_POINTER(dstFolder);
- if (window)
- window->GetTransactionManager(getter_AddRefs(txnMgr));
copyRequest = new nsCopyRequest();
if (!copyRequest) return rv;
fileSupport = do_QueryInterface(fileSpec, &rv);
if (NS_FAILED(rv)) goto done;
rv = copyRequest->Init(nsCopyFileMessageType, fileSupport, dstFolder,
isDraft, aMsgFlags, listener, window, PR_FALSE);
if (NS_FAILED(rv)) goto done;
Index: base/src/nsMsgDBView.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/base/src/nsMsgDBView.cpp,v
retrieving revision 1.226
diff -u -w -p -8 -r1.226 nsMsgDBView.cpp
--- base/src/nsMsgDBView.cpp 20 Oct 2005 16:03:26 -0000 1.226
+++ mailnews/base/src/nsMsgDBView.cpp 21 Oct 2005 15:51:35 -0000
@@ -974,17 +974,18 @@ NS_IMETHODIMP nsMsgDBView::ReloadMessage
{
if (m_currentlyDisplayedMsgUri.IsEmpty())
return NS_ERROR_FAILURE;
if (mSuppressMsgDisplay)
return NS_OK;
nsCAutoString forceAllParts(m_currentlyDisplayedMsgUri);
- forceAllParts.AppendLiteral("?fetchCompleteMessage=true");
+ forceAllParts += (forceAllParts.FindChar('?') == kNotFound) ? "?" : "&";
+ forceAllParts.AppendLiteral("fetchCompleteMessage=true");
return mMessengerInstance->OpenURL(forceAllParts.get());
}
NS_IMETHODIMP nsMsgDBView::ReloadMessage()
{
if (m_currentlyDisplayedMsgUri.IsEmpty())
return NS_ERROR_FAILURE;
Index: compose/src/nsMsgAttachmentHandler.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/src/nsMsgAttachmentHandler.cpp,v
retrieving revision 1.117
diff -u -w -p -8 -r1.117 nsMsgAttachmentHandler.cpp
--- compose/src/nsMsgAttachmentHandler.cpp 21 Apr 2005 18:48:36 -0000 1.117
+++ mailnews/compose/src/nsMsgAttachmentHandler.cpp 21 Oct 2005 15:51:47 -0000
@@ -555,17 +555,18 @@ nsMsgAttachmentHandler::SnarfMsgAttachme
goto done;
}
rv = fetcher->Initialize(localFile, mOutFile, FetcherURLDoneCallback, this);
rv = GetMessageServiceFromURI(m_uri, getter_AddRefs(messageService));
if (NS_SUCCEEDED(rv) && messageService)
{
nsCAutoString uri(m_uri);
- uri.Append("?fetchCompleteMessage=true");
+ uri += (uri.FindChar('?') == kNotFound) ? "?" : "&";
+ uri.Append("fetchCompleteMessage=true");
nsCOMPtr<nsIStreamListener> strListener;
fetcher->QueryInterface(NS_GET_IID(nsIStreamListener), getter_AddRefs(strListener));
// initialize a new stream converter, that uses the strListener as its input
// obtain the input stream listener from the new converter,
// and pass the converter's input stream listener to DisplayMessage
m_mime_parser = do_CreateInstance(NS_MAILNEWS_MIME_STREAM_CONVERTER_CONTRACTID, &rv);
Index: compose/src/nsMsgCompose.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/src/nsMsgCompose.cpp,v
retrieving revision 1.471
diff -u -w -p -8 -r1.471 nsMsgCompose.cpp
--- compose/src/nsMsgCompose.cpp 18 Oct 2005 16:29:37 -0000 1.471
+++ mailnews/compose/src/nsMsgCompose.cpp 21 Oct 2005 15:51:54 -0000
@@ -1468,19 +1468,31 @@ nsresult nsMsgCompose::CreateMessage(con
// strip out ?type=application/x-message-display because it confuses libmime
PRInt32 typeIndex = msgUri.Find("?type=application/x-message-display");
if (typeIndex != kNotFound)
{
msgUri.Cut(typeIndex, sizeof("?type=application/x-message-display") - 1);
// we also need to replace the next '&' with '?'
if (msgUri.CharAt(typeIndex) == '&')
msgUri.SetCharAt('?', typeIndex);
+ originalMsgURI = msgUri.get();
+ }
}
+ else // check if we're dealing with a displayed message/rfc822 attachment
+ {
+ PRInt32 typeIndex = typeIndex = msgUri.Find("&type=application/x-message-display");
+ if (typeIndex != kNotFound)
+ {
+ msgUri.Cut(typeIndex, sizeof("&type=application/x-message-display") - 1);
+ // nsURLFetcher will check for "realtype=message/rfc822" and will set the
+ // content type to message/rfc822 in the forwarded message.
+ msgUri.Append("&realtype=message/rfc822");
originalMsgURI = msgUri.get();
}
+ }
if (compFields)
{
NS_IF_RELEASE(m_compFields);
m_compFields = NS_REINTERPRET_CAST(nsMsgCompFields*, compFields);
NS_ADDREF(m_compFields);
}
else
{
Index: compose/src/nsMsgComposeService.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/src/nsMsgComposeService.cpp,v
retrieving revision 1.113
diff -u -w -p -8 -r1.113 nsMsgComposeService.cpp
--- compose/src/nsMsgComposeService.cpp 3 Oct 2005 23:51:05 -0000 1.113
+++ mailnews/compose/src/nsMsgComposeService.cpp 21 Oct 2005 15:51:56 -0000
@@ -414,17 +414,19 @@ nsMsgComposeService::OpenComposeWindow(c
*/
if (type == nsIMsgCompType::ForwardInline || type == nsIMsgCompType::Draft || type == nsIMsgCompType::Template
|| type == nsIMsgCompType::ReplyWithTemplate)
{
nsCOMPtr<nsIMsgDraft> pMsgDraft (do_CreateInstance(NS_MSGDRAFT_CONTRACTID, &rv));
if (NS_SUCCEEDED(rv) && pMsgDraft)
{
nsCAutoString uriToOpen(originalMsgURI);
- uriToOpen.Append("?fetchCompleteMessage=true");
+
+ uriToOpen += (uriToOpen.FindChar('?') == kNotFound) ? "?" : "&";
+ uriToOpen.Append("fetchCompleteMessage=true");
switch(type)
{
case nsIMsgCompType::ForwardInline:
rv = pMsgDraft->OpenDraftMsg(uriToOpen.get(), originalMsgURI, identity, PR_TRUE, aMsgWindow);
break;
case nsIMsgCompType::Draft:
rv = pMsgDraft->OpenDraftMsg(uriToOpen.get(), nsnull, identity, PR_FALSE, aMsgWindow);
@@ -470,22 +472,22 @@ nsMsgComposeService::OpenComposeWindow(c
esc_FileBaseName|esc_Forced|esc_AlwaysCopy,
unescapedName);
pMsgCompFields->SetNewsgroups(NS_ConvertUTF8toUTF16(unescapedName));
pMsgCompFields->SetNewshost(host.get());
}
else
{
pMsgComposeParams->SetOriginalMsgURI(originalMsgURI);
- if (PL_strstr(originalMsgURI, "?type=application/x-message-display"))
+ if (PL_strstr(originalMsgURI, "type=application/x-message-display"))
{
nsCOMPtr <nsIMsgDBHdr> msgHdr;
if (strncmp(originalMsgURI, "file:", 5))
rv = GetMsgDBHdrFromURI(originalMsgURI, getter_AddRefs(msgHdr));
- else if (aMsgWindow)
+ if (aMsgWindow && !msgHdr)
{
nsCOMPtr <nsIMsgHeaderSink> headerSink;
rv = aMsgWindow->GetMsgHeaderSink(getter_AddRefs(headerSink));
if (headerSink)
rv = headerSink->GetDummyMsgHeader(getter_AddRefs(msgHdr));
}
pMsgComposeParams->SetOrigMsgHdr(msgHdr);
}
Index: compose/src/nsMsgCreate.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/src/nsMsgCreate.cpp,v
retrieving revision 1.60
diff -u -w -p -8 -r1.60 nsMsgCreate.cpp
--- compose/src/nsMsgCreate.cpp 16 Sep 2005 15:18:33 -0000 1.60
+++ mailnews/compose/src/nsMsgCreate.cpp 21 Oct 2005 15:51:57 -0000
@@ -144,19 +144,19 @@ nsMsgDraft::ProcessDraftOrTemplateOperat
printf("Unable to get the nsIStreamListener interface from libmime\n");
#endif
return NS_ERROR_UNEXPECTED;
}
nsCOMPtr<nsIURI> aURL;
nsCAutoString uriString(msgURI);
PRBool fileUrl = StringBeginsWith(uriString, NS_LITERAL_CSTRING("file:"));
+ PRBool forwardedMessage = PL_strstr(msgURI, "&type=application/x-message-display") != nsnull;
-
- if (fileUrl)
+ if (fileUrl || forwardedMessage)
rv = NS_NewURI(getter_AddRefs(aURL), msgURI);
else
rv = mMessageService->GetUrlForUri(mURI, getter_AddRefs(aURL), aMsgWindow);
if (aURL)
aURL->SetSpec(nsDependentCString(mURI));
// if we are forwarding a message and that message used a charset over ride
// then use that over ride charset instead of the charset specified in the message
Index: compose/src/nsMsgQuote.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/src/nsMsgQuote.cpp,v
retrieving revision 1.71
diff -u -w -p -8 -r1.71 nsMsgQuote.cpp
--- compose/src/nsMsgQuote.cpp 16 Sep 2005 15:18:33 -0000 1.71
+++ mailnews/compose/src/nsMsgQuote.cpp 21 Oct 2005 15:51:58 -0000
@@ -170,19 +170,19 @@ nsMsgQuote::QuoteMessage(const char *msg
if (!msgURI)
return NS_ERROR_INVALID_ARG;
mQuoteHeaders = quoteHeaders;
mStreamListener = aQuoteMsgStreamListener;
nsCAutoString msgUri(msgURI);
PRBool fileUrl = !strncmp(msgURI, "file:", 5);
-
+ PRBool forwardedMessage = PL_strstr(msgURI, "&realtype=message/rfc822") != nsnull;
nsCOMPtr<nsIURI> aURL;
- if (fileUrl)
+ if (fileUrl || forwardedMessage)
rv = NS_NewURI(getter_AddRefs(aURL), msgURI);
else
{
nsCOMPtr <nsIMsgMessageService> msgService;
rv = GetMessageServiceFromURI(msgURI, getter_AddRefs(msgService));
if (NS_FAILED(rv)) return rv;
rv = msgService->GetUrlForUri(msgURI, getter_AddRefs(aURL), nsnull);
}
Index: compose/src/nsURLFetcher.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/src/nsURLFetcher.cpp,v
retrieving revision 1.72
diff -u -w -p -8 -r1.72 nsURLFetcher.cpp
--- compose/src/nsURLFetcher.cpp 13 Jun 2005 18:10:20 -0000 1.72
+++ mailnews/compose/src/nsURLFetcher.cpp 21 Oct 2005 15:51:58 -0000
@@ -484,26 +484,33 @@ NS_IMETHODIMP nsURLFetcherStreamConsumer
{
if (!mURLFetcher)
return NS_ERROR_FAILURE;
// Check the content type!
nsCAutoString contentType;
nsCAutoString charset;
- nsCOMPtr<nsIChannel> aChannel = do_QueryInterface(aRequest);
- if(!aChannel) return NS_ERROR_FAILURE;
+ nsCOMPtr<nsIChannel> channel = do_QueryInterface(aRequest);
+ if(!channel) return NS_ERROR_FAILURE;
- if (NS_SUCCEEDED(aChannel->GetContentType(contentType)) &&
+ if (NS_SUCCEEDED(channel->GetContentType(contentType)) &&
!contentType.EqualsLiteral(UNKNOWN_CONTENT_TYPE))
{
+ nsCAutoString uriSpec;
+ nsCOMPtr <nsIURI> channelURI;
+ channel->GetURI(getter_AddRefs(channelURI));
+ channelURI->GetSpec(uriSpec);
+ if (FindInReadable(NS_LITERAL_CSTRING("&realtype=message/rfc822"), uriSpec))
+ mURLFetcher->mContentType = MESSAGE_RFC822;
+ else
mURLFetcher->mContentType = contentType;
}
- if (NS_SUCCEEDED(aChannel->GetContentCharset(charset)) && !charset.IsEmpty())
+ if (NS_SUCCEEDED(channel->GetContentCharset(charset)) && !charset.IsEmpty())
{
mURLFetcher->mCharset = charset;
}
return NS_OK;
}
/** nsIStreamListener methods **/
===================================================================
RCS file: /cvsroot/mozilla/mailnews/imap/src/nsImapService.cpp,v
retrieving revision 1.309
diff -u -w -p -8 -r1.309 nsImapService.cpp
--- imap/src/nsImapService.cpp 22 Mar 2005 18:25:33 -0000 1.309
+++ mailnews/imap/src/nsImapService.cpp 21 Oct 2005 15:52:23 -0000
@@ -95,16 +95,17 @@
#include "nsIDOMWindowInternal.h"
#include "nsIMessengerWindowService.h"
#include "nsIWindowMediator.h"
#include "nsIPrompt.h"
#include "nsIWindowWatcher.h"
#include "nsImapProtocol.h"
#include "nsIMsgMailSession.h"
#include "nsIStreamConverterService.h"
+#include "nsNetUtil.h"
#include "nsInt64.h"
#define PREF_MAIL_ROOT_IMAP "mail.root.imap" // old - for backward compatibility only
#define PREF_MAIL_ROOT_IMAP_REL "mail.root.imap-rel"
static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
static NS_DEFINE_CID(kImapUrlCID, NS_IMAPURL_CID);
static NS_DEFINE_CID(kCacheServiceCID, NS_CACHESERVICE_CID);
@@ -308,16 +309,20 @@ nsImapService::LiteSelectFolder(nsIEvent
return rv;
}
NS_IMETHODIMP nsImapService::GetUrlForUri(const char *aMessageURI, nsIURI **aURL, nsIMsgWindow *aMsgWindow)
{
nsresult rv = NS_OK;
+ if (PL_strstr(aMessageURI, "&type=application/x-message-display"))
+ return NS_NewURI(aURL, aMessageURI);
+
+
nsCOMPtr<nsIMsgFolder> folder;
nsXPIDLCString msgKey;
rv = DecomposeImapURI(aMessageURI, getter_AddRefs(folder), getter_Copies(msgKey));
if (NS_SUCCEEDED(rv))
{
nsCOMPtr<nsIImapUrl> imapUrl;
nsCAutoString urlSpec;
PRUnichar hierarchySeparator = GetHierarchyDelimiter(folder);
@@ -477,17 +482,47 @@ NS_IMETHODIMP nsImapService::DisplayMess
nsIURI ** aURL)
{
nsresult rv = NS_OK;
nsCOMPtr<nsIMsgFolder> folder;
nsXPIDLCString msgKey;
nsXPIDLCString mimePart;
nsCAutoString folderURI;
nsMsgKey key;
+ nsCAutoString messageURI(aMessageURI);
+ PRInt32 typeIndex = messageURI.Find("&type=application/x-message-display");
+ if (typeIndex != kNotFound)
+ {
+ // This happens with forward inline of a message/rfc822 attachment opened in
+ // a standalone msg window.
+ // So, just cut to the chase and call AsyncOpen on a channel.
+ nsCOMPtr <nsIURI> uri;
+ messageURI.Cut(typeIndex, sizeof("&type=application/x-message-display") - 1);
+ rv = NS_NewURI(getter_AddRefs(uri), messageURI.get());
+ NS_ENSURE_SUCCESS(rv, rv);
+ if (aURL)
+ NS_IF_ADDREF(*aURL = uri);
+ nsCOMPtr<nsIStreamListener> aStreamListener = do_QueryInterface(aDisplayConsumer, &rv);
+ if (NS_SUCCEEDED(rv) && aStreamListener)
+ {
+ nsCOMPtr<nsIChannel> aChannel;
+ nsCOMPtr<nsILoadGroup> aLoadGroup;
+ nsCOMPtr<nsIMsgMailNewsUrl> mailnewsUrl = do_QueryInterface(uri, &rv);
+ if (NS_SUCCEEDED(rv) && mailnewsUrl)
+ mailnewsUrl->GetLoadGroup(getter_AddRefs(aLoadGroup));
+
+ rv = NewChannel(uri, getter_AddRefs(aChannel));
+ if (NS_FAILED(rv)) return rv;
+
+ nsCOMPtr<nsISupports> aCtxt = do_QueryInterface(uri);
+ // now try to open the channel passing in our display consumer as the listener
+ return aChannel->AsyncOpen(aStreamListener, aCtxt);
+ }
+ }
rv = DecomposeImapURI(aMessageURI, getter_AddRefs(folder), getter_Copies(msgKey));
if (msgKey.IsEmpty())
return NS_MSG_MESSAGE_NOT_FOUND;
rv = nsParseImapMessageURI(aMessageURI, folderURI, &key, getter_Copies(mimePart));
if (NS_SUCCEEDED(rv))
{
nsCOMPtr<nsIImapMessageSink> imapMessageSink(do_QueryInterface(folder, &rv));
if (NS_SUCCEEDED(rv))
Index: local/src/nsMailboxProtocol.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/local/src/nsMailboxProtocol.cpp,v
retrieving revision 1.122
diff -u -w -p -8 -r1.122 nsMailboxProtocol.cpp
--- local/src/nsMailboxProtocol.cpp 1 Jun 2005 19:04:20 -0000 1.122
+++ mailnews/local/src/nsMailboxProtocol.cpp 21 Oct 2005 15:52:26 -0000
@@ -456,16 +456,18 @@ nsresult nsMailboxProtocol::LoadUrl(nsIU
m_runningUrl = do_QueryInterface(aURL);
if (m_runningUrl)
{
// find out from the url what action we are supposed to perform...
rv = m_runningUrl->GetMailboxAction(&m_mailboxAction);
PRBool convertData = PR_FALSE;
+ // need to check if we're fetching an rfc822 part in order to
+ // quote a message.
if (m_mailboxAction == nsIMailboxUrl::ActionFetchMessage)
{
nsCOMPtr<nsIMsgMailNewsUrl> msgUrl = do_QueryInterface(m_runningUrl, &rv);
NS_ENSURE_SUCCESS(rv,rv);
nsCAutoString queryStr;
rv = msgUrl->GetQuery(queryStr);
NS_ENSURE_SUCCESS(rv,rv);
Index: local/src/nsMailboxService.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/local/src/nsMailboxService.cpp,v
retrieving revision 1.116
diff -u -w -p -8 -r1.116 nsMailboxService.cpp
--- local/src/nsMailboxService.cpp 16 Sep 2005 15:19:09 -0000 1.116
+++ mailnews/local/src/nsMailboxService.cpp 21 Oct 2005 15:52:27 -0000
@@ -177,16 +177,19 @@ nsresult nsMailboxService::FetchMessage(
nsIURI ** aURL)
{
nsresult rv = NS_OK;
nsCOMPtr<nsIMailboxUrl> mailboxurl;
nsMailboxAction actionToUse = mailboxAction;
nsCOMPtr <nsIURI> url;
+
+ nsCAutoString uriString(aMessageURI);
+
if (!strncmp(aMessageURI, "file:", 5))
{
PRInt64 fileSize;
nsCOMPtr<nsIURI> fileUri;
rv = NS_NewURI(getter_AddRefs(fileUri), aMessageURI);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr <nsIFileURL> fileUrl = do_QueryInterface(fileUri, &rv);
NS_ENSURE_SUCCESS(rv, rv);
@@ -216,16 +219,27 @@ nsresult nsMailboxService::FetchMessage(
headerSink->GetDummyMsgHeader(getter_AddRefs(dummyHeader));
if (dummyHeader)
dummyHeader->SetMessageSize((PRUint32) fileSize);
}
}
}
else
{
+
+ // this happens with forward inline of message/rfc822 attachment
+ // opened in a stand-alone msg window.
+ PRInt32 typeIndex = typeIndex = uriString.Find("&type=application/x-message-display");
+ if (typeIndex != kNotFound)
+ {
+ uriString.Cut(typeIndex, sizeof("&type=application/x-message-display") - 1);
+ rv = NS_NewURI(getter_AddRefs(url), uriString.get());
+ mailboxurl = do_QueryInterface(url);
+ }
+ else
rv = PrepareMessageUrl(aMessageURI, aUrlListener, actionToUse , getter_AddRefs(mailboxurl), aMsgWindow);
if (NS_SUCCEEDED(rv))
{
url = do_QueryInterface(mailboxurl);
nsCOMPtr<nsIMsgMailNewsUrl> msgUrl (do_QueryInterface(url));
msgUrl->SetMsgWindow(aMsgWindow);
nsCOMPtr<nsIMsgI18NUrl> i18nurl (do_QueryInterface(msgUrl));
@@ -313,27 +327,16 @@ NS_IMETHODIMP nsMailboxService::OpenAtta
const char *aUrl,
const char *aMessageUri,
nsISupports *aDisplayConsumer,
nsIMsgWindow *aMsgWindow,
nsIUrlListener *aUrlListener)
{
nsCOMPtr <nsIURI> URL;
nsCAutoString urlString(aUrl);
- // strip out ?type=application/x-message-display because it confuses libmime
-
- PRInt32 typeIndex = urlString.Find("?type=application/x-message-display");
- if (typeIndex != kNotFound)
- {
- urlString.Cut(typeIndex, sizeof("?type=application/x-message-display") - 1);
- // we also need to replace the next '&' with '?'
- PRInt32 firstPartIndex = urlString.FindChar('&');
- if (firstPartIndex != kNotFound)
- urlString.SetCharAt('?', firstPartIndex);
- }
urlString += "&type=";
urlString += aContentType;
urlString += "&filename=";
urlString += aFileName;
CreateStartupUrl(urlString.get(), getter_AddRefs(URL));
nsresult rv;
// try to run the url in the docshell...
nsCOMPtr<nsIDocShell> docShell(do_QueryInterface(aDisplayConsumer, &rv));
@@ -384,17 +387,18 @@ nsMailboxService::SaveMessageToDisk(cons
if (aURL)
mailboxurl->QueryInterface(NS_GET_IID(nsIURI), (void **) aURL);
return rv;
}
NS_IMETHODIMP nsMailboxService::GetUrlForUri(const char *aMessageURI, nsIURI **aURL, nsIMsgWindow *aMsgWindow)
{
- if (!strncmp(aMessageURI, "file:", 5))
+ if (!strncmp(aMessageURI, "file:", 5) || PL_strstr(aMessageURI, "type=application/x-message-display")
+ || !strncmp(aMessageURI, "mailbox:", 8))
return NS_NewURI(aURL, aMessageURI);
nsresult rv = NS_OK;
nsCOMPtr<nsIMailboxUrl> mailboxurl;
rv = PrepareMessageUrl(aMessageURI, nsnull, nsIMailboxUrl::ActionFetchMessage, getter_AddRefs(mailboxurl), aMsgWindow);
if (NS_SUCCEEDED(rv) && mailboxurl)
rv = mailboxurl->QueryInterface(NS_GET_IID(nsIURI), (void **) aURL);
return rv;
Index: local/src/nsPop3Sink.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/local/src/nsPop3Sink.cpp,v
retrieving revision 1.127
diff -u -w -p -8 -r1.127 nsPop3Sink.cpp
--- local/src/nsPop3Sink.cpp 7 Aug 2005 15:43:53 -0000 1.127
+++ mailnews/local/src/nsPop3Sink.cpp 21 Oct 2005 15:52:28 -0000
@@ -803,17 +803,16 @@ nsPop3Sink::IncorporateComplete(nsIMsgWi
m_outFileStream->flush();
m_outFileStream->close();
m_newMailParser->FinishHeader();
// need to re-open the inbox file stream.
if (!m_tmpDownloadFileSpec.Exists())
return HandleTempDownloadFailed(aMsgWindow);
m_outFileStream->Open(m_tmpDownloadFileSpec, (PR_RDWR | PR_CREATE_FILE));
-
m_newMailParser->ApplyFilters(&moved, aMsgWindow, 0);
if (!moved)
{
if (m_outFileStream->is_open())
{
nsFileSpec destFolderSpec;
nsCOMPtr<nsIFileSpec> path;
Index: mime/src/mimedrft.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/mime/src/mimedrft.cpp,v
retrieving revision 1.142
diff -u -w -p -8 -r1.142 mimedrft.cpp
--- mime/src/mimedrft.cpp 20 Jul 2005 11:49:43 -0000 1.142
+++ mailnews/mime/src/mimedrft.cpp 21 Oct 2005 15:52:38 -0000
@@ -2077,16 +2077,20 @@ mime_bridge_create_draft_stream(
goto FAIL;
rv = msgService->GetUrlForUri(turl.get(), getter_AddRefs(aURL), nsnull);
if (NS_FAILED(rv))
goto FAIL;
if (NS_SUCCEEDED(aURL->GetSpec(urlString)))
{
+ PRInt32 typeIndex = urlString.Find("&type=application/x-message-display");
+ if (typeIndex != kNotFound)
+ urlString.Cut(typeIndex, sizeof("&type=application/x-message-display") - 1);
+
mdd->url_name = ToNewCString(urlString);
if (!(mdd->url_name))
goto FAIL;
}
newPluginObj2->GetForwardInline(&mdd->forwardInline);
newPluginObj2->GetIdentity(getter_AddRefs(mdd->identity));
newPluginObj2->GetOriginalMsgURI(&mdd->originalMsgURI);
Index: mime/src/mimei.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/mime/src/mimei.cpp,v
retrieving revision 1.77
diff -u -w -p -8 -r1.77 mimei.cpp
--- mime/src/mimei.cpp 13 Jun 2005 18:34:05 -0000 1.77
+++ mailnews/mime/src/mimei.cpp 21 Oct 2005 15:52:41 -0000
@@ -1367,16 +1367,26 @@ mime_set_url_part(const char *url, const
const char *part_begin = 0;
const char *part_end = 0;
PRBool got_q = PR_FALSE;
const char *s;
char *result;
if (!url || !part) return 0;
+ nsCAutoString urlString(url);
+ PRInt32 typeIndex = urlString.Find("?type=application/x-message-display");
+ if (typeIndex != kNotFound)
+ {
+ urlString.Cut(typeIndex, sizeof("?type=application/x-message-display") - 1);
+ if (urlString.CharAt(typeIndex) == '&')
+ urlString.SetCharAt('?', typeIndex);
+ url = urlString.get();
+ }
+
for (s = url; *s; s++)
{
if (*s == '?')
{
got_q = PR_TRUE;
if (!nsCRT::strncasecmp(s, "?part=", 6))
part_begin = (s += 6);
}
@@ -1665,34 +1675,32 @@ mime_parse_url_options(const char *url,
options->headers = MimeHeadersMicro;
else if (end > value && !nsCRT::strncasecmp ("cite", value, end - value))
options->headers = MimeHeadersCitation;
else if (end > value && !nsCRT::strncasecmp ("citation", value, end-value))
options->headers = MimeHeadersCitation;
else
options->headers = default_headers;
}
- else if (!nsCRT::strncasecmp ("part", q, name_end - q))
+ else if (!nsCRT::strncasecmp ("part", q, name_end - q) &&
+ options->format_out != nsMimeOutput::nsMimeMessageBodyQuoting)
{
PR_FREEIF (options->part_to_load);
if (end > value)
{
options->part_to_load = (char *) PR_MALLOC(end - value + 1);
if (!options->part_to_load)
return MIME_OUT_OF_MEMORY;
memcpy(options->part_to_load, value, end-value);
options->part_to_load[end-value] = 0;
}
}
else if (!nsCRT::strncasecmp ("rot13", q, name_end - q))
{
- if (end <= value || !nsCRT::strncasecmp ("true", value, end - value))
- options->rot13_p = PR_TRUE;
- else
- options->rot13_p = PR_FALSE;
+ options->rot13_p = end <= value || !nsCRT::strncasecmp ("true", value, end - value);
}
q = end;
if (*q)
q++;
}
@@ -1751,16 +1759,17 @@ mime_parse_url_options(const char *url,
and leaves them incompatible for:
= the first part of a top-level multipart
= all elements deeper than the outermost part
Life s#$%s when you don't properly think out things that end up turning
into de-facto standards...
*/
+
if (options->part_to_load &&
!PL_strchr(options->part_to_load, '.')) /* doesn't contain a dot */
{
if (!nsCRT::strcmp(options->part_to_load, "0")) /* 0 */
{
PR_Free(options->part_to_load);
options->part_to_load = nsCRT::strdup("1");
if (!options->part_to_load)
@@ -1774,17 +1783,16 @@ mime_parse_url_options(const char *url,
if (!s) return MIME_OUT_OF_MEMORY;
PL_strcpy(s, prefix);
PL_strcat(s, options->part_to_load);
PR_Free(options->part_to_load);
options->part_to_load = s;
}
}
-
return 0;
}
/* Some output-generation utility functions...
*/
int
@@ -1949,16 +1957,28 @@ MimeObject_output_init(MimeObject *obj,
char *
mime_get_base_url(const char *url)
{
if (!url)
return nsnull;
const char *s = strrchr(url, '?');
+ if (s && !strncmp(s, "?type=application/x-message-display", sizeof("?type=application/x-message-display") - 1))
+ {
+ const char *nextTerm = strchr(s, '&');
+ s = (nextTerm) ? nextTerm : s + strlen(s) - 1;
+ }
+ // we need to keep the ?number part of the url, or we won't know
+ // which local message the part belongs to.
+ if (s && *s && *(s+1) && !strncmp(s + 1, "number=", sizeof("number=") - 1))
+ {
+ const char *nextTerm = strchr(++s, '&');
+ s = (nextTerm) ? nextTerm : s + strlen(s) - 1;
+ }
char *result = (char *) PR_MALLOC(strlen(url) + 1);
NS_ASSERTION(result, "out of memory");
if (!result)
return nsnull;
memcpy(result, url, s - url);
result[s - url] = 0;
return result;
Index: mime/src/nsStreamConverter.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/mime/src/nsStreamConverter.cpp,v
retrieving revision 1.128
diff -u -w -p -8 -r1.128 nsStreamConverter.cpp
--- mime/src/nsStreamConverter.cpp 16 Aug 2005 14:23:00 -0000 1.128
+++ mailnews/mime/src/nsStreamConverter.cpp 21 Oct 2005 15:52:42 -0000
@@ -403,17 +403,17 @@ nsStreamConverter::DetermineOutputFormat
// Don't muck with this data!
*aNewType = nsMimeOutput::nsMimeMessageRaw;
return NS_OK;
}
}
// is this is a part that should just come out raw
const char *part = FindQueryElementData(queryPart, "part=");
- if (part)
+ if (part && !mToType.Equals("application/vnd.mozilla.xul+xml"))
{
// default for parts
mOutputFormat = "raw";
*aNewType = nsMimeOutput::nsMimeMessageRaw;
// if we are being asked to fetch a part....it should have a
// content type appended to it...if it does, we want to remember
// that as mOutputFormat
@@ -1096,16 +1096,19 @@ NS_IMETHODIMP nsStreamConverter::AsyncCo
SetMimeHeadersListener(quoteListener, nsMimeOutput::nsMimeMessageQuoting);
rv = aMsgQuote->GetQuoteChannel(getter_AddRefs(aChannel));
}
else
{
aChannel = do_QueryInterface(aCtxt, &rv);
}
+ mFromType = aFromType;
+ mToType = aToType;
+
NS_ASSERTION(aChannel && NS_SUCCEEDED(rv), "mailnews mime converter has to have the channel passed in...");
if (NS_FAILED(rv)) return rv;
nsCOMPtr<nsIURI> aUri;
aChannel->GetURI(getter_AddRefs(aUri));
return Init(aUri, aListener, aChannel);
}
Index: mime/src/nsStreamConverter.h
===================================================================
RCS file: /cvsroot/mozilla/mailnews/mime/src/nsStreamConverter.h,v
retrieving revision 1.25
diff -u -w -p -8 -r1.25 nsStreamConverter.h
--- mime/src/nsStreamConverter.h 1 Jun 2004 17:22:01 -0000 1.25
+++ mailnews/mime/src/nsStreamConverter.h 21 Oct 2005 15:52:42 -0000
@@ -102,16 +102,18 @@ private:
nsCString mOverrideFormat; // this is a possible override for emitter creation
PRBool mWrapperOutput; // Should we output the frame split message display
nsCOMPtr<nsIMimeStreamConverterListener> mMimeStreamConverterListener;
PRBool mForwardInline;
nsCOMPtr<nsIMsgIdentity> mIdentity;
nsCString mOriginalMsgURI;
+ nsCString mFromType;
+ nsCString mToType;
#ifdef DEBUG_mscott
PRTime mConvertContentTime;
#endif
nsIRequest * mPendingRequest; // used when we need to delay to fire onStartRequest
nsISupports * mPendingContext; // used when we need to delay to fire onStartRequest
};
#endif /* nsStreamConverter_h_ */
Index: mailWindowOverlay.js
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/mailWindowOverlay.js,v
retrieving revision 1.103
diff -u -w -p -8 -r1.103 mailWindowOverlay.js
--- mailWindowOverlay.js 12 Oct 2005 21:32:51 -0000 1.103
+++ mail/base/content/mailWindowOverlay.js 27 Oct 2005 16:46:58 -0000
@@ -2391,17 +2391,17 @@ function HandleMDNResponse(aUrl)
if (IsNewsMessage(msgURI))
return;
// if the message is marked as junk, do NOT attempt to process a return receipt
// in order to better protect the user
if (SelectedMessagesAreJunk())
return;
- var msgHdr = messenger.messageServiceFromURI(msgURI).messageURIToMsgHdr(msgURI);
+ var msgHdr = messenger.msgHdrFromURI(msgURI);
var mimeHdr;
try {
mimeHdr = aUrl.mimeHeaders;
} catch (ex) {
return;
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2263ec2c9bf3317472f33bed46b9cb6f91d64a766314167678125b4f3b6376b8
size 514823

3
enigmail-0.95.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dc869191953c3d0797f89223a0ad5e8accc009266f1d2ec3adb2f5814ff33b50
size 568958

View File

@ -1,6 +1,6 @@
--- ./layout/base/nsCSSRendering.cpp 2005-12-27 13:52:01.000000000 +0100
+++ ./layout/base/nsCSSRendering.cpp.new 2007-01-18 23:40:30.741771000 +0100
@@ -979,14 +979,14 @@
--- layout/base/nsCSSRendering.cpp.orig 2006-10-25 23:59:19.000000000 +0200
+++ layout/base/nsCSSRendering.cpp 2006-10-26 00:00:04.000000000 +0200
@@ -1000,14 +1000,14 @@
FillOrInvertRect(aContext, dashRect.x, borderOutside.y,dashRect.width, dashRect.height-adjust,isInvert);
FillOrInvertRect(aContext,dashRect.x,(borderOutside.YMost()-(dashRect.height-adjust)),dashRect.width, dashRect.height-adjust,isInvert);
currRect.y += (dashRect.height-adjust);
@ -17,7 +17,7 @@
}
if( temp > ywidth)
@@ -1045,14 +1045,14 @@
@@ -1066,14 +1066,14 @@
FillOrInvertRect(aContext, borderOutside.x,dashRect.y,dashRect.width-adjust,dashRect.height,isInvert);
FillOrInvertRect(aContext, (borderOutside.XMost()-(dashRect.width-adjust)),dashRect.y,dashRect.width-adjust,dashRect.height,isInvert);
currRect.x += (dashRect.width-adjust);
@ -34,43 +34,42 @@
}
--- ./layout/xul/base/src/nsBox.cpp 2006-01-07 21:27:40.000000000 +0100
+++ ./layout/xul/base/src/nsBox.cpp.new 2007-01-18 23:43:58.695609000 +0100
--- layout/xul/base/src/nsBox.cpp.orig 2006-10-26 00:00:26.000000000 +0200
+++ layout/xul/base/src/nsBox.cpp 2006-10-26 00:01:30.000000000 +0200
@@ -863,7 +863,7 @@
while (box) {
nsRect* overflowArea = box->GetOverflowAreaProperty();
nsRect bounds = overflowArea ? *overflowArea + box->GetPosition() :
- bounds = box->GetRect();
+ box->GetRect();
+ box->GetRect();
rect.UnionRect(rect, bounds);
box->GetNextBox(&box);
--- ./mailnews/compose/src/nsMsgCompose.cpp 2007-01-19 00:53:23.575133000 +0100
+++ ./mailnews/compose/src/nsMsgCompose.cpp.new 2007-01-19 00:55:33.114466000 +0100
@@ -1476,7 +1476,7 @@
}
else // check if we're dealing with a displayed message/rfc822 attachment
{
- PRInt32 typeIndex = typeIndex = msgUri.Find("&type=application/x-message-display");
+ PRInt32 typeIndex = msgUri.Find("&type=application/x-message-display");
if (typeIndex != kNotFound)
{
msgUri.Cut(typeIndex, sizeof("&type=application/x-message-display") - 1);
--- ./intl/unicharutil/src/nsEntityConverter.cpp 2005-04-02 20:44:00.000000000 +0200
+++ ./intl/unicharutil/src/nsEntityConverter.cpp.new 2007-01-19 00:14:59.413600000 +0100
@@ -236,7 +236,9 @@
--- intl/unicharutil/src/nsEntityConverter.cpp.orig 2005-04-02 20:44:00.000000000 +0200
+++ intl/unicharutil/src/nsEntityConverter.cpp 2006-10-26 00:07:24.000000000 +0200
@@ -236,7 +236,8 @@
if (IS_HIGH_SURROGATE(inString[i]) &&
i + 2 < len &&
IS_LOW_SURROGATE(inString[i + 1])) {
- key.AppendInt(SURROGATE_TO_UCS4(inString[i], inString[++i]), 10);
+ // key.AppendInt(SURROGATE_TO_UCS4(inString[i], inString[++i]), 10);
+ key.AppendInt(SURROGATE_TO_UCS4(inString[i], inString[i + 1]), 10);
+ ++i;
}
else {
key.AppendInt(inString[i],10);
--- ./netwerk/cache/src/nsDiskCacheMap.h 2006-02-22 04:23:13.000000000 +0100
+++ ./netwerk/cache/src/nsDiskCacheMap.h.new 2007-01-19 00:16:52.302599000 +0100
--- content/events/src/nsEventStateManager.cpp.orig 2006-08-06 00:19:17.000000000 +0200
+++ content/events/src/nsEventStateManager.cpp 2006-10-26 00:11:16.000000000 +0200
@@ -4301,7 +4301,7 @@
do_QueryInterface(GetDocumentOuterWindow(mDocument));
if (newWindow) {
nsIFocusController *newFocusController =
- newFocusController = newWindow->GetRootFocusController();
+ newWindow->GetRootFocusController();
nsCOMPtr<nsPIDOMWindow> oldWindow =
do_QueryInterface(GetDocumentOuterWindow(gLastFocusedDocument));
if (oldWindow) {
--- netwerk/cache/src/nsDiskCacheMap.h.orig 2006-02-04 23:01:22.000000000 +0100
+++ netwerk/cache/src/nsDiskCacheMap.h 2006-10-26 00:15:09.000000000 +0200
@@ -168,7 +168,7 @@
// set blockCount
@ -89,25 +88,3 @@
mMetaLocation |= (blockCount << eExtraBlocksOffset) & eExtraBlocksMask;
mMetaLocation |= eLocationInitializedMask;
--- ./mailnews/local/src/nsMailboxService.cpp 2007-01-19 00:53:23.280426000 +0100
+++ ./mailnews/local/src/nsMailboxService.cpp.new 2007-01-19 00:56:19.625909000 +0100
@@ -228,7 +228,7 @@
// this happens with forward inline of message/rfc822 attachment
// opened in a stand-alone msg window.
- PRInt32 typeIndex = typeIndex = uriString.Find("&type=application/x-message-display");
+ PRInt32 typeIndex = uriString.Find("&type=application/x-message-display");
if (typeIndex != kNotFound)
{
uriString.Cut(typeIndex, sizeof("&type=application/x-message-display") - 1);
--- ./content/events/src/nsEventStateManager.cpp 2006-08-21 19:49:44.000000000 +0200
+++ ./content/events/src/nsEventStateManager.cpp.new 2007-01-19 00:31:01.921129000 +0100
@@ -4162,7 +4162,7 @@
do_QueryInterface(GetDocumentOuterWindow(mDocument));
if (newWindow) {
nsIFocusController *newFocusController =
- newFocusController = newWindow->GetRootFocusController();
+ newWindow->GetRootFocusController();
nsCOMPtr<nsPIDOMWindow> oldWindow =
do_QueryInterface(GetDocumentOuterWindow(gLastFocusedDocument));
if (oldWindow) {

View File

@ -1,11 +1,11 @@
Index: mail/base/content/mailWindowOverlay.js
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/mailWindowOverlay.js,v
retrieving revision 1.95.2.7
diff -u -p -6 -r1.95.2.7 mailWindowOverlay.js
--- mail/base/content/mailWindowOverlay.js 12 Oct 2005 21:31:50 -0000 1.95.2.7
+++ mail/base/content/mailWindowOverlay.js 29 Dec 2005 19:28:21 -0000
@@ -903,12 +903,19 @@ function MsgNewMessage(event)
retrieving revision 1.95.2.55
diff -u -p -6 -r1.95.2.55 mailWindowOverlay.js
--- mail/base/content/mailWindowOverlay.js 12 Feb 2007 21:07:34 -0000 1.95.2.55
+++ mail/base/content/mailWindowOverlay.js 15 Feb 2007 19:46:05 -0000
@@ -1064,12 +1064,19 @@ function MsgNewMessage(event)
if (event && event.shiftKey)
ComposeMessage(msgComposeType.New, msgComposeFormat.OppositeOfDefault, loadedFolder, messageArray);
else
@ -28,16 +28,16 @@ diff -u -p -6 -r1.95.2.7 mailWindowOverlay.js
Index: mail/base/content/mailWindowOverlay.xul
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/mailWindowOverlay.xul,v
retrieving revision 1.116.2.8
diff -u -p -6 -r1.116.2.8 mailWindowOverlay.xul
--- mail/base/content/mailWindowOverlay.xul 24 Oct 2005 04:01:20 -0000 1.116.2.8
+++ mail/base/content/mailWindowOverlay.xul 29 Dec 2005 19:34:25 -0000
@@ -1399,12 +1399,15 @@
retrieving revision 1.116.2.72
diff -u -p -6 -r1.116.2.72 mailWindowOverlay.xul
--- mail/base/content/mailWindowOverlay.xul 10 Feb 2007 22:56:29 -0000 1.116.2.72
+++ mail/base/content/mailWindowOverlay.xul 15 Feb 2007 19:46:55 -0000
@@ -1511,12 +1511,15 @@
<menu id="messageMenu" label="&msgMenu.label;" accesskey="&msgMenu.accesskey;">
<menupopup id="messageMenuPopup" onpopupshowing="InitMessageMenu();">
<menuitem id="newMsgCmd" label="&newMsgCmd.label;"
accesskey="&newMsgCmd.accesskey;"
key="key_newMessage"
key="key_newMessage2"
oncommand="MsgNewMessage(null);"/>
+ <menuitem id="newHtmlMsgCmd" label="New HTML Message"
+ accesskey="H"
@ -45,6 +45,6 @@ diff -u -p -6 -r1.116.2.8 mailWindowOverlay.xul
<menuitem id="replyMainMenu" label="&replyMsgCmd.label;"
accesskey="&replyMsgCmd.accesskey;"
key="key_reply"
observes="cmd_reply"/>
command="cmd_reply"/>
<menuitem id="replySenderMainMenu" label="&replySenderCmd.label;"
accesskey="&replySenderCmd.accesskey;"

3
l10n-2.0.0.0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3883680f592f9c7d069063a2d639f130d6da69ee168c81b1cbff799812781dc9
size 9373784

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b49cbb080c3b8ae19fed8d6da9366c5b970f7cc930cb3fd0aeec6a4f9406d2f9
size 5323798

View File

@ -13,129 +13,118 @@ diff -u -r3.249 mailnews.js
// separator to separate between date and author
pref("mailnews.reply_header_separator", ", ");
--- mailnews/compose/src/nsMsgCompose.cpp.old 2006-08-14 09:32:18.000000000 +0200
+++ mailnews/compose/src/nsMsgCompose.cpp 2006-08-14 09:44:25.000000000 +0200
@@ -2106,6 +2106,7 @@ NS_IMETHODIMP QuotingOutputStreamListene
nsAutoString messageId;
nsAutoString references;
--- mailnews/compose/src/nsMsgCompose.cpp.old 2007-01-10 10:03:52.000000000 +0100
+++ mailnews/compose/src/nsMsgCompose.cpp 2007-01-10 10:09:45.000000000 +0100
@@ -2221,6 +2221,7 @@ NS_IMETHODIMP QuotingOutputStreamListene
nsAutoString listPost;
+ PRBool clobberListReply = PR_FALSE;
nsXPIDLCString outCString;
PRBool needToRemoveDup = PR_FALSE;
+ PRBool clobberListReply = PR_FALSE;
if (!mMimeConverter)
@@ -2115,6 +2116,77 @@ NS_IMETHODIMP QuotingOutputStreamListene
}
{
mMimeConverter = do_GetService(NS_MIME_CONVERTER_CONTRACTID, &rv);
@@ -2229,6 +2230,70 @@ NS_IMETHODIMP QuotingOutputStreamListene
nsXPIDLCString charset;
compFields->GetCharacterSet(getter_Copies(charset));
+
+ nsCOMPtr<nsIPrefBranch> prefBranch (do_GetService(NS_PREFSERVICE_CONTRACTID));
+ if (prefBranch)
+ nsCOMPtr<nsIPrefBranch> prefBranch (do_GetService(NS_PREFSERVICE_CONTRACTID));
+ if (prefBranch)
+ prefBranch->GetBoolPref("mailnews.clobber_list_reply", &clobberListReply);
+
+ mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset);
+
+ mHeaders->ExtractHeader(HEADER_MAIL_REPLY_TO, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, mailReplyTo, charset);
+ mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset);
+
+ if (clobberListReply) {
+ /* the 'Al fix'. Try to fake up Mail-Reply-To: and Mail-Followup-To: headers if
+ * we don't have any, and if it looks like it came via a mailing list.
+ *
+ * Currently only supports List-Post header.
+ */
+
+ mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset);
+
+ if (mailFollowupTo.IsEmpty()) {
+ nsAutoString mailingList;
+
+ mHeaders->ExtractHeader(HEADER_LIST_POST, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ mHeaders->ExtractHeader(HEADER_MAIL_REPLY_TO, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, mailReplyTo, charset);
+
+ if (clobberListReply) {
+ /* the 'Al fix'. Try to fake up Mail-Reply-To: and
+ * Mail-Followup-To: headers if we don't have any, and if it looks
+ * like it came via a mailing list.
+ *
+ * Currently only supports List-Post header.
+ */
+
+ mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset);
+
+ if (mailFollowupTo.IsEmpty()) {
+ nsAutoString mailingList;
+
+ mHeaders->ExtractHeader(HEADER_LIST_POST, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ {
+ mMimeConverter->DecodeMimeHeader(outCString, mailingList, charset);
+ /* s/<mailto:(.*)>/$1/; */
+ if (StringBeginsWith(mailingList, NS_LITERAL_STRING("<mailto:")) &&
+ StringEndsWith(mailingList, NS_LITERAL_STRING(">"))) {
+
+ mailingList = Substring(mailingList, 8, mailingList.Length() - 9);
+ }
+ }
+
+ mailFollowupTo = mailingList;
+ }
+
+ if (mailReplyTo.IsEmpty()) {
+ nsAutoString from;
+ nsAutoString xReplyTo;
+
+ mHeaders->ExtractHeader(HEADER_FROM, PR_FALSE, getter_Copies(outCString));
+ if (outCString)
+ {
+ /* s/<mailto:(.*)>/$1/; */
+ if (StringBeginsWith(mailingList, NS_LITERAL_STRING("<mailto:")) &&
+ StringEndsWith(mailingList, NS_LITERAL_STRING(">"))) {
+
+ mailingList = Substring(mailingList, 8, mailingList.Length() - 9);
+ }
+ }
+
+ mailFollowupTo = mailingList;
+ }
+
+ if (mailReplyTo.IsEmpty()) {
+ nsAutoString from;
+ nsAutoString xReplyTo;
+
+ mHeaders->ExtractHeader(HEADER_FROM, PR_FALSE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, from, charset);
+ }
+
+ mHeaders->ExtractHeader(HEADER_X_REPLY_TO, PR_FALSE, getter_Copies(outCString));
+ if (outCString)
+ {
+
+ mHeaders->ExtractHeader(HEADER_X_REPLY_TO, PR_FALSE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, xReplyTo, charset);
+ }
+
+ if (replyTo == mailFollowupTo) {
+ if (!xReplyTo.IsEmpty()) {
+ mailReplyTo = xReplyTo;
+ }
+ else {
+ mailReplyTo = from;
+ }
+ }
+ else {
+ mailReplyTo = replyTo;
+ }
+ }
+ }
+
+ if (replyTo == mailFollowupTo) {
+ if (!xReplyTo.IsEmpty())
+ mailReplyTo = xReplyTo;
+ else
+ mailReplyTo = from;
+ }
+ }
+ }
+
+
if (type == nsIMsgCompType::ReplyAll)
{
@@ -2129,11 +2201,13 @@ NS_IMETHODIMP QuotingOutputStreamListene
{
mMimeConverter->DecodeMimeHeader(outCString, cc, charset);
mHeaders->ExtractHeader(HEADER_TO, PR_TRUE, getter_Copies(outCString));
@@ -2252,10 +2317,10 @@ NS_IMETHODIMP QuotingOutputStreamListene
compFields->SetBcc(bcc);
}
-
- mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString));
- if (outCString)
- {
- mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset);
+
+ if (!clobberListReply) { // else we've already looked this up earlier
+ mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ {
+ mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset);
+ }
+ mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset);
}
if (! mailFollowupTo.IsEmpty())
@@ -2174,18 +2248,6 @@ NS_IMETHODIMP QuotingOutputStreamListene
@@ -2296,18 +2361,6 @@ NS_IMETHODIMP QuotingOutputStreamListene
}
}
- mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString));
- if (outCString)
- {
- mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset);
- }
-
-
- mHeaders->ExtractHeader(HEADER_MAIL_REPLY_TO, PR_TRUE, getter_Copies(outCString));
- if (outCString)
- {
- mMimeConverter->DecodeMimeHeader(outCString, mailReplyTo, charset);
- }
-
-
mHeaders->ExtractHeader(HEADER_NEWSGROUPS, PR_FALSE, getter_Copies(outCString));
if (outCString)
{

View File

@ -1,32 +0,0 @@
Index: mail/base/content/msgHdrViewOverlay.js
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/msgHdrViewOverlay.js,v
retrieving revision 1.56.2.4.2.1
diff -u -r1.56.2.4.2.1 msgHdrViewOverlay.js
--- mail/base/content/msgHdrViewOverlay.js 6 Jan 2006 00:55:18 -0000 1.56.2.4.2.1
+++ mail/base/content/msgHdrViewOverlay.js 4 Mar 2006 20:25:42 -0000
@@ -128,7 +128,7 @@
var gExpandedHeaderList = [ {name:"subject"},
{name:"from", outputFunction:OutputEmailAddresses},
{name:"sender", outputFunction:OutputEmailAddresses},
- {name:"reply-to", outputFunction:OutputEmailAddresses},
+ {name:"reply-to", useToggle:true, outputFunction:OutputEmailAddresses},
{name:"date"},
{name:"to", useToggle:true, outputFunction:OutputEmailAddresses},
{name:"cc", useToggle:true, outputFunction:OutputEmailAddresses},
Index: mail/base/content/msgHdrViewOverlay.xul
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/msgHdrViewOverlay.xul,v
retrieving revision 1.14
diff -u -r1.14 msgHdrViewOverlay.xul
--- mail/base/content/msgHdrViewOverlay.xul 2 Aug 2005 22:31:24 -0000 1.14
+++ mail/base/content/msgHdrViewOverlay.xul 4 Mar 2006 20:26:37 -0000
@@ -147,7 +147,7 @@
<mail-emailheaderfield id="expandedfromBox" label="&fromField.label;" collapsed="true"/>
<mail-emailheaderfield id="expandedsenderBox" label="&senderField.label;" collapsed="true"/>
<mail-headerfield id="expandedorganizationBox" label="&organizationField.label;" collapsed="true"/>
- <mail-emailheaderfield id="expandedreply-toBox" label="&replyToField.label;" collapsed="true"/>
+ <mail-multi-emailHeaderField id="expandedreply-toBox" label="&replyToField.label;" collapsed="true"/>
<mail-headerfield keywordrelated="true" id="expandeddateBox" label="&dateField.label;" collapsed="true"/>

File diff suppressed because it is too large Load Diff

View File

@ -1,254 +0,0 @@
Subject: Printer properties are not saved and displayed correctly
References:
https://bugzilla.mozilla.org/show_bug.cgi?id=324072
https://bugzilla.novell.com/show_bug.cgi?id=174082
https://bugzilla.mozilla.org/show_bug.cgi?id=342950
https://bugzilla.novell.com/show_bug.cgi?id=187013
Index: idl/nsIPrintSettingsService.idl
===================================================================
RCS file: /cvsroot/mozilla/gfx/idl/Attic/nsIPrintSettingsService.idl,v
retrieving revision 1.2
diff -p -u -d -8 -r1.2 nsIPrintSettingsService.idl
--- idl/nsIPrintSettingsService.idl 17 Apr 2004 21:52:27 -0000 1.2
+++ gfx/idl/nsIPrintSettingsService.idl 11 May 2006 21:51:04 -0000
@@ -67,17 +67,17 @@ interface nsIPrintSettingsService : nsIS
* then it should use "globalPrintSettings"
*
* Initializes the newPrintSettings from the default printer
*
*/
readonly attribute nsIPrintSettings newPrintSettings;
/**
- * The name of the default printer
+ * The name of the last printer used, or else the system default printer.
*/
readonly attribute wstring defaultPrinterName;
/**
* Initializes certain settings from the native printer into the PrintSettings
* if aPrinterName is null then it uses the default printer name if it can
* These settings include, but are not limited to:
* Page Orientation
@@ -85,28 +85,31 @@ interface nsIPrintSettingsService : nsIS
* Number of Copies
*/
void initPrintSettingsFromPrinter(in wstring aPrinterName, in nsIPrintSettings aPrintSettings);
/**
* Reads PrintSettings values from Prefs,
* the values to be read are indicated by the "flags" arg.
*
- * First it reads in the "generic" set of PrintSetings not associated with any printer
- * then it uses the PrinterName in the PrinterSettings to read any settings that were saved
+ * aPrintSettings should be initialized with the name of a printer. First
+ * it reads in the PrintSettings from the last print job. Then it uses the
+ * PrinterName in the PrinterSettings to read any settings that were saved
* just for that printer.
*
* aPS - PrintSettings to have its settings read
* aUsePrinterNamePrefix - indicates whether to use the printer name as a prefix
- * aFlags - indicates which prefs to read, see nsIPrintSettings.idl for the const values.
+ * aFlags - indicates which prefs to read, see nsIPrintSettings.idl for the
+ * const values.
*
* Items not read:
* startPageRange, endPageRange, scaling, printRange, title
* docURL, howToEnableFrameUI, isCancelled, printFrameTypeUsage
- * printFrameType, printSilent, shrinkToFit, numCopies
+ * printFrameType, printSilent, shrinkToFit, numCopies,
+ * printerName
*
*/
void initPrintSettingsFromPrefs(in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags);
/**
* Writes PrintSettings values to Prefs,
* the values to be written are indicated by the "flags" arg.
*
Index: gfx/src/nsPrintOptionsImpl.cpp
===================================================================
RCS file: /cvsroot/mozilla/gfx/src/Attic/nsPrintOptionsImpl.cpp,v
retrieving revision 1.76
diff -p -u -d -8 -r1.76 nsPrintOptionsImpl.cpp
--- src/nsPrintOptionsImpl.cpp 9 Aug 2005 01:35:48 -0000 1.76
+++ gfx/src/nsPrintOptionsImpl.cpp 11 May 2006 21:51:05 -0000
@@ -597,23 +597,16 @@ nsPrintOptions::ReadPrefs(nsIPrintSettin
if (aFlags & nsIPrintSettings::kInitSavePrintCommand) {
if (GETSTRPREF(kPrintCommand, str)) {
aPS->SetPrintCommand(str.get());
DUMP_STR(kReadStr, kPrintCommand, str.get());
}
}
- if (aFlags & nsIPrintSettings::kInitSavePrinterName) {
- if (GETSTRPREF(kPrinterName, str)) {
- aPS->SetPrinterName(str.get());
- DUMP_STR(kReadStr, kPrinterName, str.get());
- }
- }
-
if (aFlags & nsIPrintSettings::kInitSavePrintToFile) {
if (GETBOOLPREF(kPrintToFile, &b)) {
aPS->SetPrintToFile(b);
DUMP_BOOL(kReadStr, kPrintToFile, b);
}
}
if (aFlags & nsIPrintSettings::kInitSaveToFileName) {
@@ -865,20 +858,22 @@ nsPrintOptions::WritePrefs(nsIPrintSetti
if (aFlags & nsIPrintSettings::kInitSavePrintCommand) {
if (NS_SUCCEEDED(aPS->GetPrintCommand(&uStr))) {
DUMP_STR(kWriteStr, kPrintCommand, uStr);
WritePrefString(uStr, GetPrefName(kPrintCommand, aPrinterName));
}
}
- if (aFlags & nsIPrintSettings::kInitSavePrinterName) {
+ // Only the general version of this pref is saved
+ if ((aFlags & nsIPrintSettings::kInitSavePrinterName)
+ && aPrinterName.IsEmpty()) {
if (NS_SUCCEEDED(aPS->GetPrinterName(&uStr))) {
DUMP_STR(kWriteStr, kPrinterName, uStr);
- WritePrefString(uStr, GetPrefName(kPrinterName, aPrinterName));
+ WritePrefString(uStr, kPrinterName);
}
}
if (aFlags & nsIPrintSettings::kInitSavePrintToFile) {
if (NS_SUCCEEDED(aPS->GetPrintToFile(&b))) {
DUMP_BOOL(kWriteStr, kPrintToFile, b);
mPrefBranch->SetBoolPref(GetPrefName(kPrintToFile, aPrinterName), b);
}
@@ -965,16 +960,22 @@ NS_IMETHODIMP nsPrintOptions::GetNativeD
nsresult nsPrintOptions::_CreatePrintSettings(nsIPrintSettings **_retval)
{
// does not initially ref count
nsPrintSettings * printSettings = new nsPrintSettings();
NS_ENSURE_TRUE(printSettings, NS_ERROR_OUT_OF_MEMORY);
NS_ADDREF(*_retval = printSettings); // ref count
+
+ nsXPIDLString printerName;
+ nsresult rv = GetDefaultPrinterName(getter_Copies(printerName));
+ NS_ENSURE_SUCCESS(rv, rv);
+ (*_retval)->SetPrinterName(printerName.get());
+
(void)InitPrintSettingsFromPrefs(*_retval, PR_FALSE,
nsIPrintSettings::kInitSaveAll);
return NS_OK;
}
NS_IMETHODIMP nsPrintOptions::CreatePrintSettings(nsIPrintSettings **_retval)
{
@@ -1003,16 +1004,42 @@ nsPrintOptions::GetNewPrintSettings(nsIP
NS_IMETHODIMP
nsPrintOptions::GetDefaultPrinterName(PRUnichar * *aDefaultPrinterName)
{
nsresult rv;
nsCOMPtr<nsIPrinterEnumerator> prtEnum = do_GetService(kPrinterEnumeratorCID,
&rv);
NS_ENSURE_SUCCESS(rv, rv);
+ // Look up the printer from the last print job
+ nsAutoString lastPrinterName;
+ ReadPrefString(kPrinterName, lastPrinterName);
+ if (!lastPrinterName.IsEmpty()) {
+ // Verify it's still a valid printer
+ PRUnichar **printers;
+ PRUint32 ctPrinters;
+ rv = prtEnum->EnumeratePrinters(&ctPrinters, &printers);
+ if (NS_SUCCEEDED(rv)) {
+ PRBool isValid = PR_FALSE;
+ for (PRInt32 ii = ctPrinters - 1; ii >= 0; --ii) {
+ if (lastPrinterName.Equals(printers[ii])) {
+ isValid = PR_TRUE;
+ break;
+ }
+ }
+ NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(ctPrinters, printers);
+ if (isValid) {
+ *aDefaultPrinterName = ToNewUnicode(lastPrinterName);
+ return NS_OK;
+ }
+ }
+ }
+
+ // There is no last printer preference, or it doesn't name a valid printer.
+ // Return the default from the printer enumeration.
return prtEnum->GetDefaultPrinterName(aDefaultPrinterName);
}
NS_IMETHODIMP
nsPrintOptions::InitPrintSettingsFromPrinter(const PRUnichar *aPrinterName,
nsIPrintSettings *aPrintSettings)
{
NS_ENSURE_ARG_POINTER(aPrintSettings);
@@ -1124,49 +1151,50 @@ nsPrintOptions::InitPrintSettingsFromPre
nsAutoString prtName;
// read any non printer specific prefs
// with empty printer name
nsresult rv = ReadPrefs(aPS, prtName, aFlags);
NS_ENSURE_SUCCESS(rv, rv);
// Get the Printer Name from the PrintSettings
// to use as a prefix for Pref Names
- GetAdjustedPrinterName(aPS, aUsePNP, prtName);
- NS_ENSURE_FALSE(prtName.IsEmpty(), NS_OK);
+ rv = GetAdjustedPrinterName(aPS, aUsePNP, prtName);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ if (prtName.IsEmpty()) {
+ NS_WARNING("Caller should supply a printer name.");
+ return NS_OK;
+ }
// Now read any printer specific prefs
rv = ReadPrefs(aPS, prtName, aFlags);
if (NS_SUCCEEDED(rv))
aPS->SetIsInitializedFromPrefs(PR_TRUE);
return NS_OK;
}
-/** ---------------------------------------------------
- * This will save into prefs most all the PrintSettings either generically (not
- * specified printer) or to a specific printer.
+/**
+ * Save all of the printer settings; if we can find a printer name, save
+ * printer-specific preferences. Otherwise, save generic ones.
*/
nsresult
nsPrintOptions::SavePrintSettingsToPrefs(nsIPrintSettings *aPS,
PRBool aUsePrinterNamePrefix,
PRUint32 aFlags)
{
NS_ENSURE_ARG_POINTER(aPS);
nsAutoString prtName;
- // Get the Printer Name from the PrinterSettings
- // to use as a prefix for Pref Names
+ // Get the printer name from the PrinterSettings for an optional prefix.
nsresult rv = GetAdjustedPrinterName(aPS, aUsePrinterNamePrefix, prtName);
NS_ENSURE_SUCCESS(rv, rv);
- // Now write any printer specific prefs
- // XXX but when |prtName| is empty, how can we write printer specific prefs?
- rv = WritePrefs(aPS, prtName, aFlags);
-
- return rv;
+ // Write the prefs, with or without a printer name prefix.
+ return WritePrefs(aPS, prtName, aFlags);
}
//-----------------------------------------------------
//-- Protected Methods --------------------------------
//-----------------------------------------------------
nsresult
nsPrintOptions::ReadPrefString(const char * aPrefId, nsAString& aString)

View File

@ -1,306 +0,0 @@
Index: widget/public/nsIXRemoteClient.idl
===================================================================
RCS file: /cvsroot/mozilla/widget/public/nsIXRemoteClient.idl,v
retrieving revision 1.2
diff -u -p -6 -r1.2 nsIXRemoteClient.idl
--- widget/public/nsIXRemoteClient.idl 8 Apr 2004 14:01:15 -0000 1.2
+++ widget/public/nsIXRemoteClient.idl 22 Feb 2005 08:18:43 -0000
@@ -26,13 +26,13 @@
[scriptable, uuid(0bafc924-1dd2-11b2-8345-b59762ae0df7)]
interface nsIXRemoteClient : nsISupports
{
/**
* Initializes the client
*/
- void init();
+ void init(in string aDisplay);
/**
* Sends a command to a running instance. If it returns false then
* there is no running instance.
*
* @param aProgram This is the preferred program that we want to use
Index: widget/src/xremoteclient/XRemoteClient.cpp
===================================================================
RCS file: /cvsroot/mozilla/widget/src/xremoteclient/XRemoteClient.cpp,v
retrieving revision 1.14
diff -u -p -6 -r1.14 XRemoteClient.cpp
--- widget/src/xremoteclient/XRemoteClient.cpp 8 Apr 2004 14:01:16 -0000 1.14
+++ widget/src/xremoteclient/XRemoteClient.cpp 22 Feb 2005 08:19:31 -0000
@@ -77,20 +77,20 @@ XRemoteClient::~XRemoteClient()
#ifndef XREMOTE_STANDALONE
NS_IMPL_ISUPPORTS1(XRemoteClient, nsIXRemoteClient)
#endif
NS_IMETHODIMP
-XRemoteClient::Init (void)
+XRemoteClient::Init (const char *aDisplay)
{
PR_LOG(sRemoteLm, PR_LOG_DEBUG, ("XRemoteClient::Init"));
if (mInitialized)
return NS_OK;
// try to open the display
- mDisplay = XOpenDisplay(0);
+ mDisplay = XOpenDisplay(aDisplay);
if (!mDisplay)
return NS_ERROR_FAILURE;
// get our atoms
mMozVersionAtom = XInternAtom(mDisplay, MOZILLA_VERSION_PROP, False);
mMozLockAtom = XInternAtom(mDisplay, MOZILLA_LOCK_PROP, False);
Index: widget/src/xremoteclient/mozilla-xremote-client.cpp
===================================================================
RCS file: /cvsroot/mozilla/widget/src/xremoteclient/mozilla-xremote-client.cpp,v
retrieving revision 1.3
diff -u -p -6 -r1.3 mozilla-xremote-client.cpp
--- widget/src/xremoteclient/mozilla-xremote-client.cpp 8 Apr 2004 14:01:16 -0000 1.3
+++ widget/src/xremoteclient/mozilla-xremote-client.cpp 22 Feb 2005 08:21:37 -0000
@@ -37,29 +37,42 @@
* ***** END LICENSE BLOCK ***** */
#include <stdio.h>
#include <stdlib.h>
#include <plgetopt.h>
#include "XRemoteClient.h"
+#include <string.h>
static void print_usage(void);
int main(int argc, char **argv)
{
nsresult rv;
XRemoteClient client;
char *browser = 0;
char *profile = 0;
char *username = 0;
char *command = 0;
+ char *display = 0;
+ PRInt32 i = 0;
if (argc < 2) {
print_usage();
return 4;
}
+ for (i=1; i < argc - 1; i++) {
+ if (strcmp(argv[i], "--display") == 0) {
+ display = argv[i + 1];
+ /* Now remove the --display parameters from the command line */
+ memmove(&argv[i], &argv[i + 2], sizeof(argv[i])*(argc - (i + 2)));
+ argc -= 2;
+ break;
+ }
+ }
+
PLOptStatus os;
PLOptState *opt = PL_CreateOptState(argc, argv, "ha:u:p:");
while (PL_OPT_EOL != (os = PL_GetNextOpt(opt))) {
if (PL_OPT_BAD == os) {
print_usage();
return 4;
@@ -83,13 +96,13 @@ int main(int argc, char **argv)
command = strdup(opt->value);
default:
break;
}
}
- rv = client.Init();
+ rv = client.Init(display);
// failed to connect to the X server
if (NS_FAILED(rv))
return 1;
// send the command - it doesn't get any easier than this
PRBool success = PR_FALSE;
@@ -120,10 +133,11 @@ int main(int argc, char **argv)
// else, everything is fine.
return 0;
}
/* static */
void print_usage(void) {
- fprintf(stderr, "Usage: mozilla-xremote-client [-a firefox|thunderbird|mozilla|any]\n");
+ fprintf(stderr, "Usage: mozilla-xremote-client [--display DISPLAY]\n");
+ fprintf(stderr, " [-a firefox|thunderbird|mozilla|any]\n");
fprintf(stderr, " [-u <username>]\n");
fprintf(stderr, " [-p <profile>] COMMAND\n");
}
Index: toolkit/xre/nsAppRunner.cpp
===================================================================
RCS file: /cvsroot/mozilla/toolkit/xre/nsAppRunner.cpp,v
retrieving revision 1.27.2.1.4.40
diff -u -p -6 -r1.27.2.1.4.40 nsAppRunner.cpp
--- toolkit/xre/nsAppRunner.cpp 2 Nov 2004 23:27:24 -0000 1.27.2.1.4.40
+++ toolkit/xre/nsAppRunner.cpp 25 Feb 2005 07:49:37 -0000
@@ -977,13 +977,13 @@ DumpVersion()
}
#ifdef MOZ_ENABLE_XREMOTE
// use int here instead of a PR type since it will be returned
// from main - just to keep types consistent
static int
-HandleRemoteArgument(const char* remote)
+HandleRemoteArgument(const char* remote, const char* display)
{
nsresult rv;
ArgResult ar;
const char *profile = 0;
nsCAutoString program(gAppData->appName);
@@ -1019,13 +1019,13 @@ HandleRemoteArgument(const char* remote)
{ // scope the comptr so we don't hold on to XPCOM objects beyond shutdown
// try to get the X remote client
nsCOMPtr<nsIXRemoteClient> client (do_CreateInstance(NS_XREMOTECLIENT_CONTRACTID));
NS_ENSURE_TRUE(client, 1);
// try to init - connects to the X server and stuff
- rv = client->Init();
+ rv = client->Init(display);
if (NS_FAILED(rv)) {
PR_fprintf(PR_STDERR, "Error: Failed to connect to X server.\n");
return 1;
}
nsXPIDLCString response;
@@ -1521,12 +1521,13 @@ public:
~ScopedFPHandler() { PR_OS2_UnsetFloatExcpHandler(&excpreg); }
};
#endif
int xre_main(int argc, char* argv[], const nsXREAppData* aAppData)
{
+ ArgResult ar;
nsresult rv;
NS_TIMELINE_MARK("enter main");
#if defined(DEBUG) && defined(XP_WIN32)
// Disable small heap allocator to get heapwalk() giving us
// accurate heap numbers. Win2k non-debug does not use small heap allocator.
@@ -1633,12 +1634,21 @@ int xre_main(int argc, char* argv[], con
em->Register();
}
return 0;
}
+ // save display argument here to reserve it for -remote
+ // handling (it will be removed from gtk_init)
+ const char *display = nsnull;
+ ar = CheckArg("display", &display);
+ if (ar == ARG_BAD) {
+ PR_fprintf(PR_STDERR, "Error: argument --display requires a display number\n");
+ return 1;
+ }
+
#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_GTK2)
// setup for private colormap. Ideally we'd like to do this
// in nsAppShell::Create, but we need to get in before gtk
// has been initialized to make sure everything is running
// consistently.
if (CheckArg("install"))
@@ -1695,19 +1705,19 @@ int xre_main(int argc, char* argv[], con
}
#ifdef MOZ_ENABLE_XREMOTE
// handle -remote now that xpcom is fired up
const char* xremotearg;
- ArgResult ar = CheckArg("remote", &xremotearg);
+ ar = CheckArg("remote", &xremotearg);
if (ar == ARG_BAD) {
PR_fprintf(PR_STDERR, "Error: -remote requires an argument\n");
return 1;
}
if (ar) {
- return HandleRemoteArgument(xremotearg);
+ return HandleRemoteArgument(xremotearg, display);
}
#endif
nsCOMPtr<nsIProfileLock> profileLock;
PRBool startOffline = PR_FALSE;
Index: xpfe/bootstrap/nsAppRunner.cpp
===================================================================
RCS file: /cvsroot/mozilla/xpfe/bootstrap/nsAppRunner.cpp,v
retrieving revision 1.413.2.1.4.1
diff -u -p -6 -r1.413.2.1.4.1 nsAppRunner.cpp
--- xpfe/bootstrap/nsAppRunner.cpp 10 Jun 2004 20:43:39 -0000 1.413.2.1.4.1
+++ xpfe/bootstrap/nsAppRunner.cpp 28 Feb 2005 09:11:26 -0000
@@ -1402,13 +1402,13 @@ static nsresult DumpVersion(char *appnam
return rv;
}
#ifdef MOZ_ENABLE_XREMOTE
// use int here instead of a PR type since it will be returned
// from main - just to keep types consistent
-static int HandleRemoteArguments(int argc, char* argv[], PRBool *aArgUsed)
+static int HandleRemoteArguments(int argc, char* argv[], char* display, PRBool *aArgUsed)
{
int i = 0;
const char *remote = 0;
const char *profile = 0;
const char *program = 0;
@@ -1463,13 +1463,13 @@ static int HandleRemoteArguments(int arg
nsCOMPtr<nsIXRemoteClient> client (do_CreateInstance(NS_XREMOTECLIENT_CONTRACTID));
if (!client)
return 1;
nsresult rv;
// try to init - connects to the X server and stuff
- rv = client->Init();
+ rv = client->Init(display);
if (NS_FAILED(rv)) {
PR_fprintf(PR_STDERR, "Error: Failed to connect to X server.\n");
return 1;
}
// Make sure to set a username if possible
@@ -1656,12 +1656,28 @@ int main(int argc, char* argv[])
fprintf(stderr, "%s: XInitThreads failure.", argv[0]);
exit(EXIT_FAILURE);
}
}
#endif /* MOZ_X11 */
+ // save --display parameter for possible -remote handling
+ // (it will be lost after gtk_init)
+ char *display = 0;
+ char *param = 0;
+ for (int i=1; i<argc; i++) {
+ if ((PL_strncasecmp(argv[i], "-display", 7) == 0)
+ || (PL_strncasecmp(argv[i], "--display", 8) == 0)) {
+ if ((param = PL_strchr(argv[i], '=')) != NULL)
+ display = PL_strdup(++param);
+ else
+ display = PL_strdup(argv[i + 1]);
+ if (! *display)
+ display = nsnull;
+ }
+ }
+
#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_GTK2)
// setup for private colormap. Ideally we'd like to do this
// in nsAppShell::Create, but we need to get in before gtk
// has been initialized to make sure everything is running
// consistently.
for (int i=1; i<argc; i++)
@@ -1749,13 +1765,13 @@ int main(int argc, char* argv[])
#ifdef MOZ_ENABLE_XREMOTE
// handle -remote now that xpcom is fired up
int remoterv;
PRBool argused = PR_FALSE;
// argused will be true if someone tried to use a -remote flag. We
// always exit in that case.
- remoterv = HandleRemoteArguments(argc, argv, &argused);
+ remoterv = HandleRemoteArguments(argc, argv, display, &argused);
if (argused) {
#ifdef XPCOM_GLUE
GRE_Shutdown();
#else
NS_ShutdownXPCOM(nsnull);

View File

@ -1,40 +1,3 @@
Index: mail/base/content/mailCommands.js
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/mailCommands.js,v
retrieving revision 1.25
diff -u -p -r1.25 mailCommands.js
--- mail/base/content/mailCommands.js 26 Jan 2006 23:48:13 -0000 1.25
+++ mail/base/content/mailCommands.js 6 Apr 2006 02:26:56 -0000
@@ -258,7 +258,10 @@ function ComposeMessage(type, format, fo
var messageIDScheme = messageID ? messageID.split(":")[0] : "";
if (messageIDScheme && (messageIDScheme == 'http' || messageIDScheme == 'https') && "openComposeWindowForRSSArticle" in this)
openComposeWindowForRSSArticle(messageID, hdr, type);
- else if (type == msgComposeType.Reply || type == msgComposeType.ReplyAll || type == msgComposeType.ForwardInline ||
+ else if (type == msgComposeType.Reply ||
+ type == msgComposeType.ReplyAll ||
+ type == msgComposeType.ReplyToList ||
+ type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup || type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToSenderAndGroup ||
type == msgComposeType.Template || type == msgComposeType.Draft)
Index: mailnews/base/resources/content/mailCommands.js
===================================================================
RCS file: /cvsroot/mozilla/mailnews/base/resources/content/mailCommands.js,v
retrieving revision 1.100
diff -u -p -r1.100 mailCommands.js
--- mailnews/base/resources/content/mailCommands.js 20 Oct 2005 16:03:26 -0000 1.100
+++ mailnews/base/resources/content/mailCommands.js 6 Apr 2006 02:26:57 -0000
@@ -267,7 +267,9 @@ function ComposeMessage(type, format, fo
}
}
- if (type == msgComposeType.Reply || type == msgComposeType.ReplyAll || type == msgComposeType.ForwardInline ||
+ if (type == msgComposeType.Reply || type == msgComposeType.ReplyAll ||
+ type == msgComposeType.ReplyToList ||
+ type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup || type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToSenderAndGroup ||
type == msgComposeType.Template || type == msgComposeType.Draft)
Index: mailnews/compose/public/nsIMsgComposeParams.idl
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/public/nsIMsgComposeParams.idl,v
@ -50,109 +13,6 @@ diff -u -p -r1.8 nsIMsgComposeParams.idl
};
Index: mailnews/compose/src/nsMsgCompose.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/src/nsMsgCompose.cpp,v
retrieving revision 1.481
diff -u -p -r1.481 nsMsgCompose.cpp
--- mailnews/compose/src/nsMsgCompose.cpp 3 Feb 2006 14:18:18 -0000 1.481
+++ mailnews/compose/src/nsMsgCompose.cpp 6 Apr 2006 02:26:58 -0000
@@ -1751,6 +1751,7 @@ nsresult nsMsgCompose::CreateMessage(con
default: break;
case nsIMsgCompType::Reply :
case nsIMsgCompType::ReplyAll:
+ case nsIMsgCompType::ReplyToList:
case nsIMsgCompType::ReplyToGroup:
case nsIMsgCompType::ReplyToSender:
case nsIMsgCompType::ReplyToSenderAndGroup:
@@ -2196,8 +2197,13 @@ NS_IMETHODIMP QuotingOutputStreamListene
if (!mCiteReference.IsEmpty())
compose->SetCiteReference(mCiteReference);
- if (mHeaders && (type == nsIMsgCompType::Reply || type == nsIMsgCompType::ReplyAll || type == nsIMsgCompType::ReplyToSender ||
- type == nsIMsgCompType::ReplyToGroup || type == nsIMsgCompType::ReplyToSenderAndGroup) && mQuoteOriginal)
+ if (mHeaders && (type == nsIMsgCompType::Reply ||
+ type == nsIMsgCompType::ReplyAll ||
+ type == nsIMsgCompType::ReplyToList ||
+ type == nsIMsgCompType::ReplyToSender ||
+ type == nsIMsgCompType::ReplyToGroup ||
+ type == nsIMsgCompType::ReplyToSenderAndGroup) &&
+ mQuoteOriginal)
{
nsCOMPtr<nsIMsgCompFields> compFields;
compose->GetCompFields(getter_AddRefs(compFields));
@@ -2213,6 +2219,7 @@ NS_IMETHODIMP QuotingOutputStreamListene
nsAutoString followUpTo;
nsAutoString messageId;
nsAutoString references;
+ nsAutoString listPost;
nsXPIDLCString outCString;
PRBool needToRemoveDup = PR_FALSE;
if (!mMimeConverter)
@@ -2257,6 +2264,29 @@ NS_IMETHODIMP QuotingOutputStreamListene
needToRemoveDup = PR_TRUE;
}
+
+ mHeaders->ExtractHeader(HEADER_LIST_POST, PR_TRUE, getter_Copies(outCString));
+ if (!outCString.IsEmpty())
+ mMimeConverter->DecodeMimeHeader(outCString, listPost, charset);
+
+ if (type == nsIMsgCompType::ReplyToList && ! listPost.IsEmpty())
+ {
+ nsString::const_iterator mailtoStart, mailtoEnd;
+ listPost.BeginReading(mailtoStart);
+ listPost.EndReading(mailtoEnd);
+ nsAutoString mailtoText(NS_LITERAL_STRING("<mailto:"));
+ PRBool mailtoFound = FindInReadable(mailtoText, mailtoStart, mailtoEnd);
+
+ // Strip off the leading "<mailto:" and trailing ">"
+ if (mailtoFound && listPost.Equals(mailtoStart.get()) &&
+ listPost.RFindChar('>') == listPost.Length() - 1)
+ {
+ listPost.Cut(0, mailtoText.Length());
+ listPost.Cut(listPost.Length() - 1, 1);
+
+ compFields->SetTo(listPost);
+ }
+ }
mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString));
if (outCString)
@@ -2294,7 +2324,8 @@ NS_IMETHODIMP QuotingOutputStreamListene
mMimeConverter->DecodeMimeHeader(outCString, references, charset);
}
- if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()))
+ if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()) &&
+ ! ((type == nsIMsgCompType::ReplyToList) && ! listPost.IsEmpty()))
{
if (! mailReplyTo.IsEmpty())
{ // handle Mail-Reply-To (http://cr.yp.to/proto/replyto.html)
@@ -2796,6 +2827,7 @@ NS_IMETHODIMP nsMsgCompose::RememberQueu
// the header that we then look at when we actually send the message.
if (mType == nsIMsgCompType::Reply ||
mType == nsIMsgCompType::ReplyAll ||
+ mType == nsIMsgCompType::ReplyToList ||
mType == nsIMsgCompType::ReplyToGroup ||
mType == nsIMsgCompType::ReplyToSender ||
mType == nsIMsgCompType::ReplyToSenderAndGroup ||
@@ -2834,6 +2866,7 @@ nsresult nsMsgCompose::ProcessReplyFlags
// for this URI.
if (mType == nsIMsgCompType::Reply ||
mType == nsIMsgCompType::ReplyAll ||
+ mType == nsIMsgCompType::ReplyToList ||
mType == nsIMsgCompType::ReplyToGroup ||
mType == nsIMsgCompType::ReplyToSender ||
mType == nsIMsgCompType::ReplyToSenderAndGroup ||
@@ -3745,6 +3778,7 @@ nsMsgCompose::BuildBodyMessageAndSignatu
case nsIMsgCompType::New :
case nsIMsgCompType::Reply : /* should not happen! but just in case */
case nsIMsgCompType::ReplyAll : /* should not happen! but just in case */
+ case nsIMsgCompType::ReplyToList : /* should not happen! but just in case */
case nsIMsgCompType::ForwardAsAttachment : /* should not happen! but just in case */
case nsIMsgCompType::ForwardInline :
case nsIMsgCompType::NewsPost :
Index: mailnews/mime/public/nsMailHeaders.h
===================================================================
RCS file: /cvsroot/mozilla/mailnews/mime/public/nsMailHeaders.h,v
@ -188,3 +48,197 @@ diff -u -p -6 -r1.11 nsMailHeaders.h
#define HEADER_PARM_BOUNDARY "BOUNDARY"
#define HEADER_PARM_FILENAME "FILENAME"
#define HEADER_PARM_NAME "NAME"
Index: mail/base/content/mailCommands.js
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/mailCommands.js,v
retrieving revision 1.20.2.5
diff -u -p -6 -r1.20.2.5 mailCommands.js
--- mail/base/content/mailCommands.js 10 Jul 2006 19:44:11 -0000 1.20.2.5
+++ mail/base/content/mailCommands.js 21 Nov 2006 07:35:42 -0000
@@ -260,12 +260,13 @@ function ComposeMessage(type, format, fo
var messageID = hdr.messageId;
var messageIDScheme = messageID ? messageID.split(":")[0] : "";
if (messageIDScheme && (messageIDScheme == 'http' || messageIDScheme == 'https') && "openComposeWindowForRSSArticle" in this)
openComposeWindowForRSSArticle(messageID, hdr, type);
else if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
+ type == msgComposeType.ReplyToList ||
type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToSenderAndGroup ||
type == msgComposeType.Template ||
type == msgComposeType.Draft)
Index: mailnews/base/resources/content/mailCommands.js
===================================================================
RCS file: /cvsroot/mozilla/mailnews/base/resources/content/mailCommands.js,v
retrieving revision 1.96.4.4
diff -u -p -6 -r1.96.4.4 mailCommands.js
--- mailnews/base/resources/content/mailCommands.js 25 Jun 2006 08:56:04 -0000 1.96.4.4
+++ mailnews/base/resources/content/mailCommands.js 21 Nov 2006 07:35:51 -0000
@@ -267,12 +267,13 @@ function ComposeMessage(type, format, fo
identity = tmpIdentity;
}
}
if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
+ type == msgComposeType.ReplyToList ||
type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToSenderAndGroup ||
type == msgComposeType.Template ||
type == msgComposeType.Draft)
Index: mailnews/compose/src/nsMsgCompose.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/src/nsMsgCompose.cpp,v
retrieving revision 1.460.2.27
diff -u -p -6 -r1.460.2.27 nsMsgCompose.cpp
--- mailnews/compose/src/nsMsgCompose.cpp 4 Jan 2007 19:34:56 -0000 1.460.2.27
+++ mailnews/compose/src/nsMsgCompose.cpp 10 Jan 2007 09:01:35 -0000
@@ -1748,12 +1748,13 @@ nsresult nsMsgCompose::CreateMessage(con
switch (type)
{
default: break;
case nsIMsgCompType::Reply :
case nsIMsgCompType::ReplyAll:
+ case nsIMsgCompType::ReplyToList:
case nsIMsgCompType::ReplyToGroup:
case nsIMsgCompType::ReplyToSender:
case nsIMsgCompType::ReplyToSenderAndGroup:
{
if (!isFirstPass) // safeguard, just in case...
{
@@ -2192,14 +2193,18 @@ NS_IMETHODIMP QuotingOutputStreamListene
compose->GetType(&type);
// Assign cite information if available...
if (!mCiteReference.IsEmpty())
compose->SetCiteReference(mCiteReference);
- if (mHeaders && (type == nsIMsgCompType::Reply || type == nsIMsgCompType::ReplyAll || type == nsIMsgCompType::ReplyToSender ||
- type == nsIMsgCompType::ReplyToGroup || type == nsIMsgCompType::ReplyToSenderAndGroup) && mQuoteOriginal)
+ if (mHeaders && (type == nsIMsgCompType::Reply ||
+ type == nsIMsgCompType::ReplyAll ||
+ type == nsIMsgCompType::ReplyToList ||
+ type == nsIMsgCompType::ReplyToSender ||
+ type == nsIMsgCompType::ReplyToGroup ||
+ type == nsIMsgCompType::ReplyToSenderAndGroup) && mQuoteOriginal)
{
nsCOMPtr<nsIMsgCompFields> compFields;
compose->GetCompFields(getter_AddRefs(compFields));
if (compFields)
{
aCharset.AssignLiteral("UTF-8");
@@ -2210,12 +2215,13 @@ NS_IMETHODIMP QuotingOutputStreamListene
nsAutoString mailReplyTo;
nsAutoString mailFollowupTo;
nsAutoString newgroups;
nsAutoString followUpTo;
nsAutoString messageId;
nsAutoString references;
+ nsAutoString listPost;
nsXPIDLCString outCString;
PRBool needToRemoveDup = PR_FALSE;
if (!mMimeConverter)
{
mMimeConverter = do_GetService(NS_MIME_CONVERTER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
@@ -2263,13 +2269,36 @@ NS_IMETHODIMP QuotingOutputStreamListene
recipient += cc;
compFields->SetCc(recipient);
}
needToRemoveDup = PR_TRUE;
}
-
+
+ mHeaders->ExtractHeader(HEADER_LIST_POST, PR_TRUE, getter_Copies(outCString));
+ if (!outCString.IsEmpty())
+ mMimeConverter->DecodeMimeHeader(outCString, listPost, charset);
+
+ if (type == nsIMsgCompType::ReplyToList && ! listPost.IsEmpty())
+ {
+ nsString::const_iterator mailtoStart, mailtoEnd;
+ listPost.BeginReading(mailtoStart);
+ listPost.EndReading(mailtoEnd);
+ nsAutoString mailtoText(NS_LITERAL_STRING("<mailto:"));
+ PRBool mailtoFound = FindInReadable(mailtoText, mailtoStart, mailtoEnd);
+
+ // Strip off the leading "<mailto:" and trailing ">"
+ if (mailtoFound && listPost.Equals(mailtoStart.get()) &&
+ listPost.RFindChar('>') == listPost.Length() - 1)
+ {
+ listPost.Cut(0, mailtoText.Length());
+ listPost.Cut(listPost.Length() - 1, 1);
+
+ compFields->SetTo(listPost);
+ }
+ }
+
mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString));
if (outCString)
{
mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset);
}
@@ -2300,13 +2329,14 @@ NS_IMETHODIMP QuotingOutputStreamListene
mHeaders->ExtractHeader(HEADER_REFERENCES, PR_FALSE, getter_Copies(outCString));
if (outCString)
{
mMimeConverter->DecodeMimeHeader(outCString, references, charset);
}
- if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()))
+ if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()) &&
+ ! ((type == nsIMsgCompType::ReplyToList) && ! listPost.IsEmpty()))
{
if (! mailReplyTo.IsEmpty())
{ // handle Mail-Reply-To (http://cr.yp.to/proto/replyto.html)
compFields->SetTo(mailReplyTo);
needToRemoveDup = PR_TRUE;
}
@@ -2805,12 +2835,13 @@ void nsMsgCompose::CleanUpRecipients(nsS
NS_IMETHODIMP nsMsgCompose::RememberQueuedDisposition()
{
// need to find the msg hdr in the saved folder and then set a property on
// the header that we then look at when we actually send the message.
if (mType == nsIMsgCompType::Reply ||
mType == nsIMsgCompType::ReplyAll ||
+ mType == nsIMsgCompType::ReplyToList ||
mType == nsIMsgCompType::ReplyToGroup ||
mType == nsIMsgCompType::ReplyToSender ||
mType == nsIMsgCompType::ReplyToSenderAndGroup ||
mType == nsIMsgCompType::ForwardAsAttachment ||
mType == nsIMsgCompType::ForwardInline)
{
@@ -2843,12 +2874,13 @@ nsresult nsMsgCompose::ProcessReplyFlags
{
nsresult rv;
// check to see if we were doing a reply or a forward, if we were, set the answered field flag on the message folder
// for this URI.
if (mType == nsIMsgCompType::Reply ||
mType == nsIMsgCompType::ReplyAll ||
+ mType == nsIMsgCompType::ReplyToList ||
mType == nsIMsgCompType::ReplyToGroup ||
mType == nsIMsgCompType::ReplyToSender ||
mType == nsIMsgCompType::ReplyToSenderAndGroup ||
mType == nsIMsgCompType::ForwardAsAttachment ||
mType == nsIMsgCompType::ForwardInline ||
mDraftDisposition != nsIMsgFolder::nsMsgDispositionState_None)
@@ -3775,12 +3807,13 @@ nsMsgCompose::BuildBodyMessageAndSignatu
switch (mType)
{
case nsIMsgCompType::New :
case nsIMsgCompType::MailToUrl : /* same as New */
case nsIMsgCompType::Reply : /* should not happen! but just in case */
case nsIMsgCompType::ReplyAll : /* should not happen! but just in case */
+ case nsIMsgCompType::ReplyToList : /* should not happen! but just in case */
case nsIMsgCompType::ForwardAsAttachment : /* should not happen! but just in case */
case nsIMsgCompType::ForwardInline :
case nsIMsgCompType::NewsPost :
case nsIMsgCompType::ReplyToGroup :
case nsIMsgCompType::ReplyToSender :
case nsIMsgCompType::ReplyToSenderAndGroup :

View File

@ -1,11 +1,11 @@
Index: toolkit/mozapps/extensions/src/nsExtensionManager.js.in
===================================================================
RCS file: /cvsroot/mozilla/toolkit/mozapps/extensions/src/nsExtensionManager.js.in,v
retrieving revision 1.144.2.16
diff -u -p -6 -r1.144.2.16 nsExtensionManager.js.in
--- toolkit/mozapps/extensions/src/nsExtensionManager.js.in 21 Oct 2005 01:27:44 -0000 1.144.2.16
+++ toolkit/mozapps/extensions/src/nsExtensionManager.js.in 28 Dec 2005 06:58:07 -0000
@@ -118,12 +118,13 @@ const OP_NEEDS_UPGRADE =
retrieving revision 1.144.2.52
diff -u -p -6 -r1.144.2.52 nsExtensionManager.js.in
--- toolkit/mozapps/extensions/src/nsExtensionManager.js.in 29 Jun 2006 20:11:57 -0000 1.144.2.52
+++ toolkit/mozapps/extensions/src/nsExtensionManager.js.in 20 Jul 2006 07:23:39 -0000
@@ -116,12 +116,13 @@ const OP_NEEDS_UPGRADE =
const OP_NEEDS_UNINSTALL = "needs-uninstall";
const OP_NEEDS_ENABLE = "needs-enable";
const OP_NEEDS_DISABLE = "needs-disable";
@ -19,7 +19,7 @@ diff -u -p -6 -r1.144.2.16 nsExtensionManager.js.in
const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#";
const PREFIX_NS_CHROME = "http://www.mozilla.org/rdf/chrome#";
const PREFIX_ITEM_URI = "urn:mozilla:item:";
@@ -2215,12 +2216,22 @@ function ExtensionManager() {
@@ -2671,12 +2672,23 @@ function ExtensionManager() {
var priority = nsIInstallLocation.PRIORITY_APP_PROFILE;
var profileLocation = new DirectoryInstallLocation(KEY_APP_PROFILE,
appProfileExtensions, false,
@ -35,6 +35,7 @@ diff -u -p -6 -r1.144.2.16 nsExtensionManager.js.in
+ priority);
+ InstallLocations.put(systemLocation);
+ } catch (e) {}
+
+
#ifdef XP_WIN
// Register HKEY_LOCAL_MACHINE Install Location
@ -42,10 +43,10 @@ diff -u -p -6 -r1.144.2.16 nsExtensionManager.js.in
new WinRegInstallLocation("winreg-app-global",
nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE,
true,
@@ -3236,13 +3247,13 @@ ExtensionManager.prototype = {
"{641d8d09-7dda-4850-8228-ac0ab65e2ac9}"]);
if (profileDOMi && profileDOMi.exists())
removeDirRecursive(profileDOMi);
@@ -3830,13 +3842,13 @@ ExtensionManager.prototype = {
// toolkit 1.8 extension datasource.
if (dsExists)
return;
// Prepare themes for installation
// Only enumerate directories in the app-profile and app-global locations.
@ -57,7 +58,7 @@ diff -u -p -6 -r1.144.2.16 nsExtensionManager.js.in
continue;
var entries = location.itemLocations;
@@ -3300,13 +3311,14 @@ ExtensionManager.prototype = {
@@ -3896,13 +3908,14 @@ ExtensionManager.prototype = {
if (this._checkForFileChanges()) {
// Create a list of all items that are to be installed so we can migrate
// these items's settings to the new datasource.
@ -73,7 +74,7 @@ diff -u -p -6 -r1.144.2.16 nsExtensionManager.js.in
}
// If there are no items to migrate settings for return early.
@@ -4303,13 +4315,14 @@ ExtensionManager.prototype = {
@@ -4881,13 +4894,14 @@ ExtensionManager.prototype = {
var restartRequired = this.installRequiresRestart(id, ds.getItemProperty(id, "type"))
this._updateManifests(restartRequired);
return;

View File

@ -1,54 +0,0 @@
From: Wolfgang Rosenauer <stark@suse.de>
Subject: fixes for build --with-system-nspr
References:
https://bugzilla.mozilla.org/show_bug.cgi?id=296819
https://bugzilla.mozilla.org/show_bug.cgi?id=290923
https://bugzilla.mozilla.org/show_bug.cgi?id=288647
Index: security/coreconf/location.mk
===================================================================
--- security/coreconf/location.mk.orig
+++ security/coreconf/location.mk
@@ -61,6 +61,8 @@ endif
DIST = $(SOURCE_PREFIX)/$(PLATFORM)
+NSPR_LIBDIR = $(DIST)/lib
+
ifdef BUILD_DEBUG_GC
DEFINES += -DDEBUG_GC
endif
Index: security/manager/Makefile.in
===================================================================
--- security/manager/Makefile.in.orig
+++ security/manager/Makefile.in
@@ -114,13 +114,25 @@ FREEBL_64INT_CHK = libfreebl_64int_3.chk
FREEBL_64FPU_LIB = libfreebl_64fpu_3$(DLL_SUFFIX)
FREEBL_64FPU_CHK = libfreebl_64fpu_3.chk
endif
-
+
+# Hmm, hope this is ok.
+ABS_DIST := $(shell cd $(DIST) && pwd)
+ifeq ($(OS_ARCH),WINNT)
+ABS_DIST := $(shell cygpath -w $(ABS_DIST) | sed -e 's|\\\\|/|g')
+endif
+NSPR_LIBDIR = $(firstword $(filter -L%,$(NSPR_LIBS)))
+ifneq (,$(strip $(NSPR_LIBDIR)))
+NSPR_LIBDIR := $(subst -L,,$(subst -L$(DIST),-L$(ABS_DIST),$(NSPR_LIBDIR)))
+else
+NSPR_LIBDIR = $(ABS_DIST)/lib
+endif
# NSS makefiles are not safe for parallel execution.
DEFAULT_GMAKE_FLAGS = MAKE="$(MAKE) -j1" -j1
DEFAULT_GMAKE_FLAGS += CC="$(CC)"
-DEFAULT_GMAKE_FLAGS += MOZILLA_INCLUDES="-I$(MOZ_BUILD_ROOT)/dist/include/nspr -I$(MOZ_BUILD_ROOT)/dist/include/dbm"
-DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(MOZ_BUILD_ROOT)/dist
-DEFAULT_GMAKE_FLAGS += DIST=$(MOZ_BUILD_ROOT)/dist
+DEFAULT_GMAKE_FLAGS += MOZILLA_INCLUDES="$(subst -I$(DIST),-I$(ABS_DIST),$(NSPR_CFLAGS) -I$(DIST)/include/dbm)"
+DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(ABS_DIST)
+DEFAULT_GMAKE_FLAGS += DIST=$(ABS_DIST)
+DEFAULT_GMAKE_FLAGS += NSPR_LIBDIR=$(NSPR_LIBDIR)
DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1
DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1
ABS_topsrcdir := $(shell cd $(topsrcdir); pwd)

View File

@ -1,627 +0,0 @@
Index: mozilla/configure.in
===================================================================
RCS file: /cvsroot/mozilla/configure.in,v
retrieving revision 1.1503.2.15
diff -u -r1.1503.2.15 configure.in
--- mozilla/configure.in 4 Oct 2005 05:53:49 -0000 1.1503.2.15
+++ configure.in 15 Dec 2005 05:40:40 -0000
@@ -86,6 +86,7 @@
MOZPNG=10207
MOZZLIB=1.2.3
NSPR_VERSION=4
+NSS_VERSION=3
dnl Set the minimum version of toolkit libs used by mozilla
dnl ========================================================
@@ -3472,6 +3473,19 @@
fi
fi
+dnl ========================================================
+dnl = If NSS was not detected in the system,
+dnl = use the one in the source tree (mozilla/security/nss)
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-nss,
+[ --with-system-nss Use system installed NSS],
+ _USE_SYSTEM_NSS=1 )
+
+if test -n "$_USE_SYSTEM_NSS"; then
+ AM_PATH_NSS(3.0.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
+fi
+
if test -z "$SKIP_LIBRARY_CHECKS"; then
dnl system JPEG support
dnl ========================================================
@@ -6698,6 +6712,10 @@
AC_SUBST(NSPR_LIBS)
AC_SUBST(MOZ_NATIVE_NSPR)
+AC_SUBST(NSS_CFLAGS)
+AC_SUBST(NSS_LIBS)
+AC_SUBST(MOZ_NATIVE_NSS)
+
AC_SUBST(CFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(CPPFLAGS)
Index: mozilla/aclocal.m4
===================================================================
RCS file: /cvsroot/mozilla/aclocal.m4,v
retrieving revision 1.14
diff -u -r1.14 aclocal.m4
--- mozilla/aclocal.m4 13 May 2004 03:12:47 -0000 1.14
+++ aclocal.m4 15 Dec 2005 05:40:53 -0000
@@ -8,6 +8,7 @@
builtin(include, build/autoconf/libIDL.m4)dnl
builtin(include, build/autoconf/libIDL-2.m4)dnl
builtin(include, build/autoconf/nspr.m4)dnl
+builtin(include, build/autoconf/nss.m4)dnl
builtin(include, build/autoconf/libart.m4)dnl
builtin(include, build/autoconf/pkg.m4)dnl
builtin(include, build/autoconf/freetype2.m4)dnl
Index: mozilla/config/autoconf.mk.in
===================================================================
RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v
retrieving revision 3.363.2.1
diff -u -r3.363.2.1 autoconf.mk.in
--- mozilla/config/autoconf.mk.in 17 Aug 2005 17:17:17 -0000 3.363.2.1
+++ config/autoconf.mk.in 15 Dec 2005 05:40:53 -0000
@@ -229,6 +229,7 @@
MOZ_INSURE_EXCLUDE_DIRS = @MOZ_INSURE_EXCLUDE_DIRS@
MOZ_NATIVE_NSPR = @MOZ_NATIVE_NSPR@
+MOZ_NATIVE_NSS = @MOZ_NATIVE_NSS@
CROSS_COMPILE = @CROSS_COMPILE@
@@ -384,6 +385,48 @@
NSPR_CFLAGS = @NSPR_CFLAGS@
NSPR_LIBS = @NSPR_LIBS@
+NSS_CONFIG = @NSS_CONFIG@
+NSS_CFLAGS = @NSS_CFLAGS@
+NSS_LIBS = @NSS_LIBS@
+
+ifdef MOZ_NATIVE_NSS
+NSS_DEP_LIBS = \
+ $(NULL)
+NSS_LIBS += \
+ -lcrmf \
+ $(NULL)
+else
+NSS_DEP_LIBS = \
+ $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
+ $(DIST)/lib/$(DLL_PREFIX)smime3$(DLL_SUFFIX) \
+ $(DIST)/lib/$(DLL_PREFIX)ssl3$(DLL_SUFFIX) \
+ $(DIST)/lib/$(DLL_PREFIX)nss3$(DLL_SUFFIX) \
+ $(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX) \
+ $(NULL)
+NSS_LIBS = \
+ $(LIBS_DIR) \
+ $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
+ -lsmime3 \
+ -lssl3 \
+ -lnss3 \
+ -lsoftokn3 \
+ $(NULL)
+endif
+
+ifneq (,$(filter OS2 WINNT WINCE, $(OS_ARCH)))
+ifndef GNU_CC
+ifndef MOZ_NATIVE_NSS
+NSS_LIBS = \
+ $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
+ $(DIST)/lib/$(LIB_PREFIX)smime3.$(IMPORT_LIB_SUFFIX) \
+ $(DIST)/lib/$(LIB_PREFIX)ssl3.$(IMPORT_LIB_SUFFIX) \
+ $(DIST)/lib/$(LIB_PREFIX)nss3.$(IMPORT_LIB_SUFFIX) \
+ $(DIST)/lib/$(LIB_PREFIX)softokn3.$(IMPORT_LIB_SUFFIX) \
+ $(NULL)
+endif
+endif
+endif
+
LDAP_CFLAGS = @LDAP_CFLAGS@
LDAP_LIBS = @LDAP_LIBS@
XPCOM_GLUE_LDOPTS = @XPCOM_GLUE_LDOPTS@
Index: mozilla/config/config.mk
===================================================================
RCS file: /cvsroot/mozilla/config/config.mk,v
retrieving revision 3.337
diff -u -r3.337 config.mk
--- mozilla/config/config.mk 28 Jul 2005 19:48:11 -0000 3.337
+++ config/config.mk 15 Dec 2005 05:40:54 -0000
@@ -138,39 +138,6 @@
FINAL_LINK_COMPS = $(DEPTH)/config/final-link-comps
FINAL_LINK_COMP_NAMES = $(DEPTH)/config/final-link-comp-names
-#
-# NSS libs needed for final link in static build
-#
-
-NSS_LIBS = \
- $(LIBS_DIR) \
- $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
- -lsmime3 \
- -lssl3 \
- -lnss3 \
- -lsoftokn3 \
- $(NULL)
-
-ifneq (,$(filter OS2 WINNT WINCE, $(OS_ARCH)))
-ifndef GNU_CC
-NSS_LIBS = \
- $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)smime3.$(IMPORT_LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)ssl3.$(IMPORT_LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)nss3.$(IMPORT_LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)softokn3.$(IMPORT_LIB_SUFFIX) \
- $(NULL)
-endif
-endif
-
-NSS_DEP_LIBS = \
- $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)smime3$(DLL_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)ssl3$(DLL_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)nss3$(DLL_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX) \
- $(NULL)
-
MOZ_UNICHARUTIL_LIBS = $(DIST)/lib/$(LIB_PREFIX)unicharutil_s.$(LIB_SUFFIX)
MOZ_REGISTRY_LIBS = $(DIST)/lib/$(LIB_PREFIX)mozreg_s.$(LIB_SUFFIX)
MOZ_WIDGET_SUPPORT_LIBS = $(DIST)/lib/$(LIB_PREFIX)widgetsupport_s.$(LIB_SUFFIX)
Index: mozilla/build/autoconf/nss.m4
===================================================================
RCS file: mozilla/build/autoconf/nss.m4
diff -N mozilla/build/autoconf/nss.m4
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ build/autoconf/nss.m4 15 Dec 2005 05:40:54 -0000
@@ -0,0 +1,67 @@
+# -*- tab-width: 4; -*-
+# Configure paths for NSS
+# Public domain - Chris Seawood <cls@seawood.org> 2001-04-05
+# Based upon gtk.m4 (also PD) by Owen Taylor
+
+dnl AM_PATH_NSS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for NSS, and define NSS_CFLAGS and NSS_LIBS
+AC_DEFUN(AM_PATH_NSS,
+[dnl
+
+AC_ARG_WITH(nss-prefix,
+ [ --with-nss-prefix=PFX Prefix where NSS is installed],
+ nss_config_prefix="$withval",
+ nss_config_prefix="")
+
+AC_ARG_WITH(nss-exec-prefix,
+ [ --with-nss-exec-prefix=PFX
+ Exec prefix where NSS is installed],
+ nss_config_exec_prefix="$withval",
+ nss_config_exec_prefix="")
+
+ if test -n "$nss_config_exec_prefix"; then
+ nss_config_args="$nss_config_args --exec-prefix=$nss_config_exec_prefix"
+ if test -z "$NSS_CONFIG"; then
+ NSS_CONFIG=$nss_config_exec_prefix/bin/nss-config
+ fi
+ fi
+ if test -n "$nss_config_prefix"; then
+ nss_config_args="$nss_config_args --prefix=$nss_config_prefix"
+ if test -z "$NSS_CONFIG"; then
+ NSS_CONFIG=$nss_config_prefix/bin/nss-config
+ fi
+ fi
+
+ unset ac_cv_path_NSS_CONFIG
+ AC_PATH_PROG(NSS_CONFIG, nss-config, no)
+ min_nss_version=ifelse([$1], ,3.0.0,$1)
+ AC_MSG_CHECKING(for NSS - version >= $min_nss_version (skipping))
+
+ no_nss=""
+ if test "$NSS_CONFIG" = "no"; then
+ no_nss="yes"
+ else
+ NSS_CFLAGS=`$NSS_CONFIG $nss_config_args --cflags`
+ NSS_LIBS=`$NSS_CONFIG $nss_config_args --libs`
+
+ dnl Skip version check for now
+ nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ fi
+
+ if test -z "$no_nss"; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+
+ AC_SUBST(NSS_CFLAGS)
+ AC_SUBST(NSS_LIBS)
+
+])
Index: mozilla/security/manager/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v
retrieving revision 1.57
diff -u -r1.57 Makefile.in
--- mozilla/security/manager/Makefile.in 2 Jun 2005 02:03:05 -0000 1.57
+++ security/manager/Makefile.in 15 Dec 2005 05:40:54 -0000
@@ -46,6 +46,8 @@
MODULE = psm
PACKAGE_FILE = psm.pkg
+
+ifndef MOZ_NATIVE_NSS
PACKAGE_VARS += \
NSS3_LIB \
SMIME3_LIB \
@@ -57,6 +59,7 @@
$(NULL)
LOADABLE_ROOT_MODULE = $(DLL_PREFIX)nssckbi$(DLL_SUFFIX)
+endif
NSS3_LIB = $(DLL_PREFIX)nss3$(DLL_SUFFIX)
SMIME3_LIB = $(DLL_PREFIX)smime3$(DLL_SUFFIX)
@@ -147,6 +150,7 @@
export:: .nss.cleaned
.nss.cleaned: .nss.checkout
+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
@@ -154,9 +158,12 @@
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
endif
touch $@
+endif
.nss.checkout:
+ifndef MOZ_NATIVE_NSS
touch $(srcdir)/$@
+endif
dependclean export packages chrome::
$(MAKE) -C boot $@
@@ -167,12 +174,15 @@
endif
libs::
+ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS)
+endif
ifeq ($(OS_ARCH),WINNT)
cd $(DIST)/lib; cp -f $(LIB_PREFIX)dbm$(MOZ_BITS).$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
else
cd $(DIST)/lib; cp -f $(LIB_PREFIX)mozdbm_s.$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX); $(RANLIB) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
endif
+ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS)
ifndef SKIP_CHK
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
@@ -210,6 +220,7 @@
$(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DIST)/bin
endif
endif
+endif
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
$(MAKE) -C locales $@
@@ -218,6 +229,7 @@
endif
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)
@@ -232,6 +244,7 @@
$(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_HYBRID_CHK) $(DESTDIR)$(mozappdir)
$(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DESTDIR)$(mozappdir)
endif
+endif
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
$(MAKE) -C locales $@
@@ -246,15 +259,18 @@
ifdef MOZ_XUL
$(MAKE) -C pki $@
endif
+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::
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
$(MAKE) -C pki $@
$(MAKE) -C locales $@
+
Index: mozilla/security/manager/ssl/src/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/security/manager/ssl/src/Makefile.in,v
retrieving revision 1.67
diff -u -r1.67 Makefile.in
--- mozilla/security/manager/ssl/src/Makefile.in 3 Aug 2005 05:24:18 -0000 1.67
+++ security/manager/ssl/src/Makefile.in 15 Dec 2005 05:40:56 -0000
@@ -123,8 +123,13 @@
# Use local includes because they are inserted before INCLUDES
# so that Mozilla's nss.h is used, not glibc's
+ifdef MOZ_NATIVE_NSS
+LOCAL_INCLUDES += $(NSS_CFLAGS) \
+ $(NULL)
+else
LOCAL_INCLUDES += -I$(DIST)/public/nss \
$(NULL)
+endif
EXTRA_DSO_LDOPTS += \
$(MOZ_UNICHARUTIL_LIBS) \
Index: mozilla/security/manager/ssl/src/nsNSSComponent.cpp
===================================================================
RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsNSSComponent.cpp,v
retrieving revision 1.126.2.1
diff -u -r1.126.2.1 nsNSSComponent.cpp
--- mozilla/security/manager/ssl/src/nsNSSComponent.cpp 26 Aug 2005 06:41:50 -0000 1.126.2.1
+++ security/manager/ssl/src/nsNSSComponent.cpp 15 Dec 2005 05:41:00 -0000
@@ -488,14 +488,6 @@
}
-#ifdef XP_MAC
-#ifdef DEBUG
-#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbiDebug.shlb")
-#else
-#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbi.shlb")
-#endif /*DEBUG*/
-#endif /*XP_MAC*/
-
static void setOCSPOptions(nsIPrefBranch * pref);
NS_IMETHODIMP
@@ -689,40 +681,40 @@
const char *possible_ckbi_locations[] = {
NS_GRE_DIR,
- NS_XPCOM_CURRENT_PROCESS_DIR
+ NS_XPCOM_CURRENT_PROCESS_DIR,
+ 0
};
-
+
for (size_t il = 0; il < sizeof(possible_ckbi_locations)/sizeof(const char*); ++il) {
nsCOMPtr<nsILocalFile> mozFile;
- directoryService->Get( possible_ckbi_locations[il],
- NS_GET_IID(nsILocalFile),
- getter_AddRefs(mozFile));
+ char *fullModuleName = nsnull;
+
+ if (!possible_ckbi_locations[il])
+ {
+ fullModuleName = PR_GetLibraryName(nsnull, "nssckbi");
+ }
+ else
+ {
+ directoryService->Get( possible_ckbi_locations[il],
+ NS_GET_IID(nsILocalFile),
+ getter_AddRefs(mozFile));
- if (!mozFile) {
- continue;
+ if (!mozFile) {
+ continue;
+ }
+
+ nsCAutoString processDir;
+ mozFile->GetNativePath(processDir);
+ fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
}
- char *fullModuleName = nsnull;
-#ifdef XP_MAC
- nsCAutoString nativePath;
- mozFile->AppendNative(NS_LITERAL_CSTRING("Essential Files"));
- mozFile->AppendNative(LOADABLE_CERTS_MODULE);
- mozFile->GetNativePath(nativePath);
- fullModuleName = (char *) nativePath.get();
-#else
- nsCAutoString processDir;
- mozFile->GetNativePath(processDir);
- fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
-#endif
/* If a module exists with the same name, delete it. */
NS_ConvertUCS2toUTF8 modNameUTF8(modName);
int modType;
SECMOD_DeleteModule(NS_CONST_CAST(char*, modNameUTF8.get()), &modType);
SECStatus rv_add =
SECMOD_AddNewModule(NS_CONST_CAST(char*, modNameUTF8.get()), fullModuleName, 0, 0);
-#ifndef XP_MAC
- PR_Free(fullModuleName); // allocated by NSPR
-#endif
+ PR_FreeLibraryName(fullModuleName); // allocated by NSPR
if (SECSuccess == rv_add) {
// found a module, no need to try other directories
break;
Index: configure
===================================================================
RCS file: /cvsroot/mozilla/configure,v
retrieving revision 1.1492.2.17.2.3
diff -u -r1.1492.2.17.2.3 configure
--- configure 11 Jan 2006 05:43:03 -0000 1.1492.2.17.2.3
+++ configure 11 Jan 2006 22:12:39 -0000
@@ -44,6 +44,13 @@
--with-nspr-exec-prefix=PFX
Exec prefix where NSPR is installed"
ac_help="$ac_help
+ --with-system-nss Use system installed NSS"
+ac_help="$ac_help
+ --with-nss-prefix=PFX Prefix where NSS is installed"
+ac_help="$ac_help
+ --with-nss-exec-prefix=PFX
+ Exec prefix where NSS is installed"
+ac_help="$ac_help
--with-system-jpeg[=PFX]
Use system libjpeg [installed at prefix PFX]"
ac_help="$ac_help
@@ -1023,6 +1030,7 @@
MOZPNG=10207
MOZZLIB=1.2.3
NSPR_VERSION=4
+NSS_VERSION=3
GLIB_VERSION=1.2.0
GTK_VERSION=1.2.0
@@ -11308,6 +11316,123 @@
fi
fi
+
+# Check whether --with-system-nss or --without-system-nss was given.
+if test "${with_system_nss+set}" = set; then
+ withval="$with_system_nss"
+ if test "$withval" = "yes"; then
+ _USE_SYSTEM_NSS=1
+ elif test "$withval" = "no"; then
+ :
+ else
+ { echo "configure: error: Option, system-nss, does not take an argument ($withval)." 1>&2; exit 1; }
+ fi
+fi
+
+
+if test -n "$_USE_SYSTEM_NSS"; then
+
+# Check whether --with-nss-prefix or --without-nss-prefix was given.
+if test "${with_nss_prefix+set}" = set; then
+ withval="$with_nss_prefix"
+ nss_config_prefix="$withval"
+else
+ nss_config_prefix=""
+fi
+
+
+# Check whether --with-nss-exec-prefix or --without-nss-exec-prefix was given.
+if test "${with_nss_exec_prefix+set}" = set; then
+ withval="$with_nss_exec_prefix"
+ nss_config_exec_prefix="$withval"
+else
+ nss_config_exec_prefix=""
+fi
+
+
+ if test -n "$nss_config_exec_prefix"; then
+ nss_config_args="$nss_config_args --exec-prefix=$nss_config_exec_prefix"
+ if test -z "$NSS_CONFIG"; then
+ NSS_CONFIG=$nss_config_exec_prefix/bin/nss-config
+ fi
+ fi
+ if test -n "$nss_config_prefix"; then
+ nss_config_args="$nss_config_args --prefix=$nss_config_prefix"
+ if test -z "$NSS_CONFIG"; then
+ NSS_CONFIG=$nss_config_prefix/bin/nss-config
+ fi
+ fi
+
+ unset ac_cv_path_NSS_CONFIG
+ # Extract the first word of "nss-config", so it can be a program name with args.
+set dummy nss-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:11371: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_NSS_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$NSS_CONFIG" in
+ /*)
+ ac_cv_path_NSS_CONFIG="$NSS_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_NSS_CONFIG="$NSS_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_NSS_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_NSS_CONFIG" && ac_cv_path_NSS_CONFIG="no"
+ ;;
+esac
+fi
+NSS_CONFIG="$ac_cv_path_NSS_CONFIG"
+if test -n "$NSS_CONFIG"; then
+ echo "$ac_t""$NSS_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ min_nss_version=3.0.0
+ echo $ac_n "checking for NSS - version >= $min_nss_version (skipping)""... $ac_c" 1>&6
+echo "configure:11406: checking for NSS - version >= $min_nss_version (skipping)" >&5
+
+ no_nss=""
+ if test "$NSS_CONFIG" = "no"; then
+ no_nss="yes"
+ else
+ NSS_CFLAGS=`$NSS_CONFIG $nss_config_args --cflags`
+ NSS_LIBS=`$NSS_CONFIG $nss_config_args --libs`
+
+ nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+ fi
+
+ if test -z "$no_nss"; then
+ echo "$ac_t""yes" 1>&6
+ MOZ_NATIVE_NSS=1
+ else
+ echo "$ac_t""no" 1>&6
+ fi
+
+
+
+
+
+
+fi
+
if test -z "$SKIP_LIBRARY_CHECKS"; then
# Check whether --with-system-jpeg or --without-system-jpeg was given.
if test "${with_system_jpeg+set}" = set; then
@@ -19491,6 +19620,9 @@
s%@NSPR_CONFIG@%$NSPR_CONFIG%g
s%@NSPR_CFLAGS@%$NSPR_CFLAGS%g
s%@NSPR_LIBS@%$NSPR_LIBS%g
+s%@NSS_CONFIG@%$NSS_CONFIG%g
+s%@NSS_CFLAGS@%$NSS_CFLAGS%g
+s%@NSS_LIBS@%$NSS_LIBS%g
s%@GTK_CONFIG@%$GTK_CONFIG%g
s%@GTK_CFLAGS@%$GTK_CFLAGS%g
s%@GTK_LIBS@%$GTK_LIBS%g
@@ -19771,6 +19903,7 @@
s%@MOZ_PNG_CFLAGS@%$MOZ_PNG_CFLAGS%g
s%@MOZ_PNG_LIBS@%$MOZ_PNG_LIBS%g
s%@MOZ_NATIVE_NSPR@%$MOZ_NATIVE_NSPR%g
+s%@MOZ_NATIVE_NSS@%$MOZ_NATIVE_NSS%g
s%@COMPILE_CFLAGS@%$COMPILE_CFLAGS%g
s%@COMPILE_CXXFLAGS@%$COMPILE_CXXFLAGS%g
s%@CROSS_COMPILE@%$CROSS_COMPILE%g

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7a347dadb3e84876cd99481ebb06af2e12d314683b432d6449c8d39aa3904a83
size 36172395

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:135f993277d4ef294a171c344547a8867f3cd0ec69b8a95db6b36fd7c56b5f91
size 37629763

View File

@ -1,25 +1,26 @@
Index: mail/components/shell/nsMailGNOMEIntegration.cpp
===================================================================
RCS file: /cvsroot/mozilla/mail/components/shell/nsMailGNOMEIntegration.cpp,v
retrieving revision 1.8
diff -u -p -6 -r1.8 nsMailGNOMEIntegration.cpp
--- mail/components/shell/nsMailGNOMEIntegration.cpp 18 Jul 2005 17:51:32 -0000 1.8
+++ mail/components/shell/nsMailGNOMEIntegration.cpp 20 Sep 2005 07:40:47 -0000
@@ -89,12 +89,17 @@ nsMailGNOMEIntegration::Init()
retrieving revision 1.8.2.1
diff -u -p -6 -r1.8.2.1 nsMailGNOMEIntegration.cpp
--- mail/components/shell/nsMailGNOMEIntegration.cpp 23 Oct 2006 03:32:47 -0000 1.8.2.1
+++ mail/components/shell/nsMailGNOMEIntegration.cpp 19 Nov 2006 11:54:48 -0000
@@ -94,12 +94,18 @@ nsMailGNOMEIntegration::Init()
NS_ENSURE_SUCCESS(rv, rv);
rv = appPath->AppendNative(NS_LITERAL_CSTRING("thunderbird"));
NS_ENSURE_SUCCESS(rv, rv);
rv = appPath->GetNativePath(mAppPath);
NS_ENSURE_SUCCESS(rv, rv);
+
+ /* This path of thunderbird is hardcoded for the default path setting
+ * And the above code is not used.
+ */
+ mAppPath.Assign ("/usr/bin/thunderbird");
+
PRBool isDefault;
nsMailGNOMEIntegration::GetIsDefaultMailClient(&isDefault);
mShowMailDialog = !isDefault;
return rv;
}
NS_IMPL_ISUPPORTS1(nsMailGNOMEIntegration, nsIShellService)
nsMailGNOMEIntegration::GetIsDefaultNewsClient(&isDefault);
mShowNewsDialog = !isDefault;

View File

@ -1,36 +0,0 @@
Index: widget/src/gtk2/nsWidgetFactory.cpp
===================================================================
RCS file: /cvsroot/mozilla/widget/src/gtk2/nsWidgetFactory.cpp,v
retrieving revision 1.26.12.1
diff -u -p -6 -r1.26.12.1 nsWidgetFactory.cpp
--- widget/src/gtk2/nsWidgetFactory.cpp 21 Apr 2006 21:43:42 -0000 1.26.12.1
+++ widget/src/gtk2/nsWidgetFactory.cpp 25 Apr 2006 05:05:06 -0000
@@ -52,12 +52,13 @@
#include "nsBidiKeyboard.h"
#include "nsNativeKeyBindings.h"
#include "nsIComponentRegistrar.h"
#include "nsComponentManagerUtils.h"
#include "nsAutoPtr.h"
+#include "prenv.h"
#include <gtk/gtk.h>
/* from nsFilePicker.js */
#define XULFILEPICKER_CID \
{ 0x54ae32f8, 0x1dd2, 0x11b2, \
{ 0xa2, 0x09, 0xdf, 0x7c, 0x50, 0x53, 0x70, 0xf8} }
@@ -83,13 +84,13 @@ nsFilePickerConstructor(nsISupports *aOu
*aResult = nsnull;
if (aOuter != nsnull) {
return NS_ERROR_NO_AGGREGATION;
}
nsCOMPtr<nsIFilePicker> picker;
- if (gtk_check_version(2,6,3) == NULL) {
+ if ( (gtk_check_version(2,6,3) == NULL) && !PR_GetEnv("MOZ_XUL_PICKER") ) {
picker = new nsFilePicker;
} else {
picker = do_CreateInstance(kXULFilePickerCID);
}
if (!picker) {