* [gentoo-commits] gentoo commit in src/patchsets/mozilla-thunderbird/2.0.0.14: 000_flex-configure-LANG.patch 001_firefox-arm.patch 002_firefox-libdeps.patch 003_unaligned.patch 004_mozilla-hppa.patch 005_mozilla-firefox-1.5-ia64.patch 006_mips-asm.patch 007_mozilla-firefox-1.5-asneeded.patch 008_firefox-pkgconfig-1.patch 010_visibility-gcc-4.2.patch 016_firefox-nss-3.12-asneeded.patch 032_firefox-2.0_ppc64-1.patch 033_firefox-2.0_ppc_powerpc.patch 050_respect-host-variable.patch 055_firefox-2.0_gfbsd-pthreads.patch 060_embed-typeaheadfind-1.patch 063_firefox-rpath-3.patch 090_xul-gcc4.3.patch 300_firefox-1.5-makeopts.patch 301_reply-to-list.patch 803_fbsd-3.patch
@ 2008-05-02 11:49 Raul Porcel (armin76)
0 siblings, 0 replies; 2+ messages in thread
From: Raul Porcel (armin76) @ 2008-05-02 11:49 UTC (permalink / raw
To: gentoo-commits
armin76 08/05/02 11:49:40
Added: 000_flex-configure-LANG.patch 001_firefox-arm.patch
002_firefox-libdeps.patch 003_unaligned.patch
004_mozilla-hppa.patch
005_mozilla-firefox-1.5-ia64.patch
006_mips-asm.patch
007_mozilla-firefox-1.5-asneeded.patch
008_firefox-pkgconfig-1.patch
010_visibility-gcc-4.2.patch
016_firefox-nss-3.12-asneeded.patch
032_firefox-2.0_ppc64-1.patch
033_firefox-2.0_ppc_powerpc.patch
050_respect-host-variable.patch
055_firefox-2.0_gfbsd-pthreads.patch
060_embed-typeaheadfind-1.patch
063_firefox-rpath-3.patch 090_xul-gcc4.3.patch
300_firefox-1.5-makeopts.patch
301_reply-to-list.patch 803_fbsd-3.patch
Log:
Add 2.0.0.14 patches
Revision Changes Path
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/000_flex-configure-LANG.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/000_flex-configure-LANG.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/000_flex-configure-LANG.patch?rev=1.1&content-type=text/plain
Index: 000_flex-configure-LANG.patch
===================================================================
The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in
option parsing, it may break.
http://bugs.gentoo.org/103483
--- configure
+++ configure
@@ -54,6 +54,16 @@
infodir='${prefix}/info'
mandir='${prefix}/man'
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
# Initialize some other variables.
subdirs=
MFLAGS= MAKEFLAGS=
@@ -452,16 +463,6 @@
esac
done
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -rf conftest* confdefs.h
# AIX cpp loses on an empty file, so make sure it contains at least a newline.
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/001_firefox-arm.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/001_firefox-arm.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/001_firefox-arm.patch?rev=1.1&content-type=text/plain
Index: 001_firefox-arm.patch
===================================================================
--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp~ 2006-06-20 11:10:37.000000000 +0100
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2006-06-20 11:10:37.000000000 +0100
@@ -45,7 +45,7 @@
#endif
/* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */
-static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch");
+static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch") __attribute__((used));
static nsresult
PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args)
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/002_firefox-libdeps.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/002_firefox-libdeps.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/002_firefox-libdeps.patch?rev=1.1&content-type=text/plain
Index: 002_firefox-libdeps.patch
===================================================================
# Linking issue with pango
#
# https://bugzilla.mozilla.org/show_bug.cgi?id=344821
--- mozilla/layout/build/Makefile.in.orig 2006-07-16 00:24:51.000000000 +1000
+++ mozilla/layout/build/Makefile.in 2006-07-16 00:35:51.000000000 +1000
@@ -213,6 +213,12 @@
$(NULL)
endif
+ifdef MOZ_ENABLE_CANVAS
+ifdef MOZ_ENABLE_XFT
+EXTRA_DSO_LDOPTS += $(MOZ_XFT_LIBS)
+endif
+endif
+
ifdef NS_TRACE_MALLOC
EXTRA_DSO_LIBS += tracemalloc
endif
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/003_unaligned.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/003_unaligned.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/003_unaligned.patch?rev=1.1&content-type=text/plain
Index: 003_unaligned.patch
===================================================================
# Upstream: https://bugzilla.mozilla.org/show_bug.cgi?id=161826
# Fix unaligned access
diff -ur mozilla.orig/intl/unicharutil/util/nsUnicharUtils.cpp mozilla/intl/unicharutil/util/nsUnicharUtils.cpp
--- mozilla.orig/intl/unicharutil/util/nsUnicharUtils.cpp 2007-12-29 12:43:10.000000000 +0000
+++ mozilla/intl/unicharutil/util/nsUnicharUtils.cpp 2007-12-29 12:44:08.000000000 +0000
@@ -348,3 +348,15 @@
return result;
}
+void
+SetUnichar(void *ptr, PRUnichar aChar)
+{
+#if NEED_STRICT_ALIGNMENT
+ *((char *) ptr) = *((char *) &aChar);
+ *((char *) ptr + 1) = *((char *) &aChar + 1);
+#else
+ *((PRUnichar *) ptr) = aChar;
+#endif
+}
+
+
diff -ur mozilla.orig/intl/unicharutil/util/nsUnicharUtils.h mozilla/intl/unicharutil/util/nsUnicharUtils.h
--- mozilla.orig/intl/unicharutil/util/nsUnicharUtils.h 2007-12-29 12:43:10.000000000 +0000
+++ mozilla/intl/unicharutil/util/nsUnicharUtils.h 2007-12-29 12:44:31.000000000 +0000
@@ -82,6 +82,10 @@
PRUnichar ToUpperCase(PRUnichar);
PRUnichar ToLowerCase(PRUnichar);
+#define NEED_STRICT_ALIGNMENT defined(__sparc__) || defined(__alpha__) || defined(__mips__)
+
+void SetUnichar(void *, PRUnichar);
+
inline PRBool IsUpperCase(PRUnichar c) {
return ToLowerCase(c) != c;
}
diff -ur mozilla.orig/layout/generic/nsTextFrame.cpp mozilla/layout/generic/nsTextFrame.cpp
--- mozilla.orig/layout/generic/nsTextFrame.cpp 2007-12-29 12:43:02.000000000 +0000
+++ mozilla/layout/generic/nsTextFrame.cpp 2007-12-29 12:46:16.000000000 +0000
@@ -5123,18 +5123,27 @@
};
// Transforms characters in place from ascii to Unicode
-static void
+static PRUnichar *
TransformTextToUnicode(char* aText, PRInt32 aNumChars)
{
// Go backwards over the characters and convert them.
unsigned char* cp1 = (unsigned char*)aText + aNumChars - 1;
- PRUnichar* cp2 = (PRUnichar*)aText + (aNumChars - 1);
+ PRUnichar* cp2;
+ PRUnichar* ret;
+
+ if ((unsigned long) aText & 0x1)
+ cp2 = ((PRUnichar*)(aText + 1));
+ else
+ cp2 = (PRUnichar*)aText;
- while (aNumChars-- > 0) {
- // XXX: If you crash here then you may see the issue described
- // in http://bugzilla.mozilla.org/show_bug.cgi?id=36146#c44
- *cp2-- = PRUnichar(*cp1--);
- }
+ ret = cp2;
+
+ cp2 += (aNumChars - 1);
+
+ while (aNumChars-- > 0)
+ SetUnichar(cp2--, PRUnichar(*cp1--));
+
+ return ret;
}
PRUint32
@@ -5702,7 +5711,7 @@
// The text transform buffer contains ascii characters, so
// transform it to Unicode
NS_ASSERTION(wordBufLen >= PRUint32(lastWordLen), "no room to transform in place");
- TransformTextToUnicode((char*)lastWordPtr, lastWordLen);
+ pWordBuf = TransformTextToUnicode((char*)lastWordPtr, lastWordLen);
}
// Look ahead in the text-run and compute the final word
@@ -6232,7 +6241,7 @@
for (; aBuffer < end; aBuffer++) {
PRUnichar ch = *aBuffer;
if (ch == ' ') {
- *aBuffer = CH_NBSP;
+ SetUnichar(aBuffer, CH_NBSP);
}
}
}
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/004_mozilla-hppa.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/004_mozilla-hppa.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/004_mozilla-hppa.patch?rev=1.1&content-type=text/plain
Index: 004_mozilla-hppa.patch
===================================================================
diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:37:00.503842544 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:41:49.439917584 +0000
@@ -167,6 +167,19 @@
endif
endif
+#
+# Linux/HPPA/gcc
+#
+ifeq ($(OS_ARCH),Linux)
+ifneq (,$(filter parisc parisc64,$(OS_TEST)))
+#ifeq ($(CC),gcc) # Do not check for gcc since there is only this compiler on linux for hppa
+CPPSRCS := xptcinvoke_pa32.cpp xptcstubs_pa32.cpp
+ASFILES := xptcstubs_asm_parisc_linux.s xptcinvoke_asm_parisc_linux.s
+#endif
+endif
+endif
+
+
######################################################################
# M68k
######################################################################
diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 2004-12-21 13:39:03.390160984 +0000
@@ -0,0 +1,128 @@
+
+ .LEVEL 1.1
+ .text
+ .align 4
+
+framesz:
+ .equ 128
+
+; XPTC_InvokeByIndex(nsISuppots* that, PRUint32 methodIndex,
+; PRUint32 paramCount, nsXPTCVariant* params);
+
+.globl XPTC_InvokeByIndex
+ .type XPTC_InvokeByIndex, @function
+
+
+XPTC_InvokeByIndex:
+ .PROC
+ .CALLINFO FRAME=72, CALLER,SAVE_RP, SAVE_SP, ENTRY_GR=3
+ .ENTRY
+
+ ; frame marker takes 48 bytes,
+ ; register spill area takes 8 bytes,
+ ; local stack area takes 72 bytes result in 128 bytes total
+
+ STW %rp,-20(%sp)
+ STW,MA %r3,128(%sp)
+
+ LDO -framesz(%r30),%r28
+ STW %r28,-4(%r30) ; save previous sp
+ STW %r19,-32(%r30)
+
+ STW %r26,-36-framesz(%r30) ; save argument registers in
+ STW %r25,-40-framesz(%r30) ; in PREVIOUS frame
+ STW %r24,-44-framesz(%r30) ;
+ STW %r23,-48-framesz(%r30) ;
+
+; B,L .+8,%r2
+; ADDIL L'invoke_count_bytes-$PIC_pcrel$1+4,%r2,%r1
+; ; LDO R'invoke_count_bytes-$PIC_pcrel$2+8(%r1),%r1
+;$PIC_pcrel$1
+; LDSID (%r1),%r31
+;$PIC_pcrel$2
+; MTSP %r31,%sr0
+
+ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26;out=28
+ BL invoke_count_bytes,%r31
+ COPY %r31,%r2
+
+ CMPIB,>= 0,%r28, .+76
+ COPY %r30,%r3 ; copy stack ptr to saved stack ptr
+ ADD %r30,%r28,%r30 ; extend stack frame
+ LDW -4(%r3),%r28 ; move frame
+ STW %r28,-4(%r30)
+ LDW -8(%r3),%r28
+ STW %r28,-8(%r30)
+ LDW -12(%r3),%r28
+ STW %r28,-12(%r30)
+ LDW -16(%r3),%r28
+ STW %r28,-16(%r30)
+ LDW -20(%r3),%r28
+ STW %r28,-20(%r30)
+ LDW -24(%r3),%r28
+ STW %r28,-24(%r30)
+ LDW -28(%r3),%r28
+ STW %r28,-28(%r30)
+ LDW -32(%r3),%r28
+ STW %r28,-32(%r30)
+
+ LDO -40(%r30),%r26 ; load copy address
+ LDW -44-framesz(%r3),%r25 ; load rest of 2 arguments
+ LDW -48-framesz(%r3),%r24 ;
+
+ LDW -32(%r30),%r19 ; shared lib call destroys r19; reload
+; B,L .+8,%r2
+; ADDIL L'invoke_copy_to_stack-$PIC_pcrel$3+4,%r2,%r1
+; LDO R'invoke_copy_to_stack-$PIC_pcrel$4+8(%r1),%r1
+;$PIC_pcrel$3
+; LDSID (%r1),%r31
+;$PIC_pcrel$4
+; MTSP %r31,%sr0
+ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26
+ BL invoke_copy_to_stack,%r31
+ COPY %r31,%r2
+
+ LDO -48(%r30),%r20
+ EXTRW,U,= %r28,31,1,%r22
+ FLDD 0(%r20),%fr7 ; load double arg 1
+ EXTRW,U,= %r28,30,1,%r22
+ FLDW 8(%r20),%fr5L ; load float arg 1
+ EXTRW,U,= %r28,29,1,%r22
+ FLDW 4(%r20),%fr6L ; load float arg 2
+ EXTRW,U,= %r28,28,1,%r22
+ FLDW 0(%r20),%fr7L ; load float arg 3
+
+ LDW -36-framesz(%r3),%r26 ; load ptr to 'that'
+ LDW -40(%r30),%r25 ; load the rest of dispatch argument registers
+ LDW -44(%r30),%r24
+ LDW -48(%r30),%r23
+
+ LDW -36-framesz(%r3),%r20 ; load vtable addr
+ LDW -40-framesz(%r3),%r28 ; load index
+ LDW 0(%r20),%r20 ; follow vtable
+; LDO 0(%r20),%r20 ; offset vtable by 16 bytes (g++: 8, aCC: 16)
+ SH2ADDL %r28,%r20,%r28 ; add 4*index to vtable entry
+ LDW 0(%r28),%r22 ; load vtable entry
+
+; B,L .+8,%r2
+; ADDIL L'$$dyncall_external-$PIC_pcrel$5+4,%r2,%r1
+; LDO R'$$dyncall_external-$PIC_pcrel$6+8(%r1),%r1
+;$PIC_pcrel$5
+; LDSID (%r1),%r31
+;$PIC_pcrel$6
+; MTSP %r31,%sr0
+ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=22-26;out=28;
+ BL $$dyncall,%r31
+ COPY %r31,%r2
+
+ LDW -32(%r30),%r19
+ COPY %r3,%r30 ; restore saved stack ptr
+
+ LDW -148(%sp),%rp
+ LDWM -128(%sp),%r3
+ BV,N (%rp)
+ NOP
+ .EXIT
+ .PROCEND ;in=23,24,25,26;
+ .SIZE XPTC_InvokeByIndex, .-XPTC_InvokeByIndex
+
diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 2004-12-21 13:39:03.392160680 +0000
@@ -0,0 +1,73 @@
+ .LEVEL 1.1
+ .TEXT
+ .ALIGN 4
+
+curframesz:
+ .EQU 128
+
+
+; SharedStub has stack size of 128 bytes
+
+lastframesz:
+ .EQU 64
+
+; the StubN C++ function has a small stack size of 64 bytes
+
+
+.globl SharedStub
+ .type SharedStub, @function
+
+SharedStub:
+ .PROC
+ .CALLINFO CALLER,FRAME=80,SAVE_RP
+
+ .ENTRY
+ STW %rp,-20(%sp)
+ LDO 128(%sp),%sp
+
+ STW %r19,-32(%r30)
+ STW %r26,-36-curframesz(%r30) ; save arg0 in previous frame
+
+ LDO -80(%r30),%r28
+ FSTD,MA %fr5,8(%r28) ; save darg0
+ FSTD,MA %fr7,8(%r28) ; save darg1
+ FSTW,MA %fr4L,4(%r28) ; save farg0
+ FSTW,MA %fr5L,4(%r28) ; save farg1
+ FSTW,MA %fr6L,4(%r28) ; save farg2
+ FSTW,MA %fr7L,4(%r28) ; save farg3
+
+ ; Former value of register 26 is already properly saved by StubN,
+ ; but register 25-23 are not because of the arguments mismatch
+ STW %r25,-40-curframesz-lastframesz(%r30) ; save r25
+ STW %r24,-44-curframesz-lastframesz(%r30) ; save r24
+ STW %r23,-48-curframesz-lastframesz(%r30) ; save r23
+ COPY %r26,%r25 ; method index is arg1
+ LDW -36-curframesz-lastframesz(%r30),%r26 ; self is arg0
+ LDO -40-curframesz-lastframesz(%r30),%r24 ; normal args is arg2
+ LDO -80(%r30),%r23 ; floating args is arg3
+
+; BL .+8,%r2
+; ADDIL L'PrepareAndDispatch-$PIC_pcrel$0+4,%r2
+; LDO R'PrepareAndDispatch-$PIC_pcrel$1+8(%r1),%r1
+;$PIC_pcrel$0
+; LDSID (%r1),%r31
+;$PIC_pcrel$1
+; MTSP %r31,%sr0
+ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=23-26;out=28;
+ BL PrepareAndDispatch, %r31
+ COPY %r31,%r2
+
+ LDW -32(%r30),%r19
+
+ LDW -148(%sp),%rp
+ LDO -128(%sp),%sp
+
+
+ BV,N (%rp)
+ NOP
+ NOP
+
+ .EXIT
+ .PROCEND ;in=26;out=28;
+
+ .SIZE SharedStub, .-SharedStub
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/005_mozilla-firefox-1.5-ia64.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/005_mozilla-firefox-1.5-ia64.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/005_mozilla-firefox-1.5-ia64.patch?rev=1.1&content-type=text/plain
Index: 005_mozilla-firefox-1.5-ia64.patch
===================================================================
--- mozilla.orig/extensions/transformiix/source/base/Double.cpp
+++ mozilla/extensions/transformiix/source/base/Double.cpp
@@ -75,14 +75,7 @@
#define CPU_IS_ARM
#endif
-#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
-/**
- * This version of the macros is safe for the alias optimizations
- * that gcc does, but uses gcc-specific extensions.
- */
-
typedef union txdpun {
- PRFloat64 d;
struct {
#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
PRUint32 lo, hi;
@@ -90,8 +83,14 @@
PRUint32 hi, lo;
#endif
} s;
+ PRFloat64 d;
} txdpun;
+#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
+/**
+ * This version of the macros is safe for the alias optimizations
+ * that gcc does, but uses gcc-specific extensions.
+ */
#define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; }))
#define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; }))
@@ -117,20 +116,20 @@
//-- Initialize Double related constants
#ifdef IS_BIG_ENDIAN
-const PRUint32 nanMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
- 0xffffffff};
-const PRUint32 infMask[2] = {TX_DOUBLE_HI32_EXPMASK, 0};
-const PRUint32 negInfMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
+const txdpun nanMask = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
+ 0xffffffff};
+const txdpun infMask = {TX_DOUBLE_HI32_EXPMASK, 0};
+const txdpun negInfMask = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
#else
-const PRUint32 nanMask[2] = {0xffffffff,
- TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
-const PRUint32 infMask[2] = {0, TX_DOUBLE_HI32_EXPMASK};
-const PRUint32 negInfMask[2] = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
+const txdpun nanMask = {0xffffffff,
+ TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
+const txdpun infMask = {0, TX_DOUBLE_HI32_EXPMASK};
+const txdpun negInfMask = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
#endif
-const double Double::NaN = *((double*)nanMask);
-const double Double::POSITIVE_INFINITY = *((double*)infMask);
-const double Double::NEGATIVE_INFINITY = *((double*)negInfMask);
+const double Double::NaN = nanMask.d;
+const double Double::POSITIVE_INFINITY = infMask.d;
+const double Double::NEGATIVE_INFINITY = negInfMask.d;
/*
* Determines whether the given double represents positive or negative
--- mozilla.orig/js/src/fdlibm/fdlibm.h
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/006_mips-asm.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/006_mips-asm.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/006_mips-asm.patch?rev=1.1&content-type=text/plain
Index: 006_mips-asm.patch
===================================================================
Upstream Bug: http://bugzilla.mozilla.org/show_bug.cgi?id=258429
This patch is required to fix build issues with Mozilla on MIPS architectures.
The out-of-the-box code is coded to build on a PlayStation 2 game console, which
is a highly specialised MIPS machine based around the Toshiba TX5900. This CPU
is very non-standard, causing problems with generic MIPS machines like Silicon
Graphics workstations.
The following patch fixes the assembly language routines for generic MIPS
machines. In the case where it is being compiled for a PlayStation 2, the older
PS2-specific implementation is used instead.
Patch $Revision: 1.1 $
Index: mozilla/configure.in
===================================================================
RCS file: /cvsroot/mozilla/configure.in,v
retrieving revision 1.1819
diff -p -u -r1.1819 configure.in
--- mozilla/configure.in 24 May 2007 17:45:55 -0000 1.1819
+++ mozilla/configure.in 30 May 2007 09:08:10 -0000
@@ -1706,6 +1706,12 @@ case "$target" in
MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1
;;
mips*)
+ if test -z "$CROSS_COMPILE" ; then
+ if grep -c -E '^system type\W*:.*EE PS2' /proc/cpuinfo >/dev/null; then
+ OS_TEST="mipsEE"
+ fi
+ fi
+
CFLAGS="$CFLAGS -Wa,-xgot"
CXXFLAGS="$CXXFLAGS -Wa,-xgot"
;;
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v
retrieving revision 1.92
diff -p -u -r1.92 Makefile.in
--- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 14 Dec 2006 19:13:43 -0000 1.92
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 30 May 2007 09:08:10 -0000
@@ -229,16 +229,28 @@ endif
endif
endif
+#
+# Linux/MIPS
+#
ifeq ($(OS_ARCH),Linux)
-ifneq (,$(findstring mips, $(OS_TEST)))
-CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp
-ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s
-#xptcstubs_mips.cpp
-# xptcstubs_asm_mips.s
+
+# PlayStation2 Linux
+ifneq (,$(findstring mipsEE, $(OS_TEST)))
+CPPSRCS := xptcinvoke_ps2mips.cpp xptcstubs_ps2mips.cpp
+ASFILES := xptcinvoke_asm_ps2mips.s xptcstubs_asm_ps2mips.s
ifdef GNU_CC
ASFLAGS += $(INCLUDES) -x assembler-with-cpp -D__GNUC__
endif
+else
+
+endif
+# Generic 32-bit Linux
+ifneq (,$(findstring mips, $(OS_TEST)))
+CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp
+ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s
+AS := $(CC) $(CFLAGS) $(INCLUDES) -c -x assembler-with-cpp
endif
+
endif
######################################################################
@@ -386,14 +398,24 @@ LOCAL_INCLUDES += \
$(NULL)
ifeq ($(OS_ARCH),Linux)
+
+# PlayStation 2 Linux
+ifneq (,$(findstring mipsEE, $(OS_TEST)))
+xptcstubs_asm_ps2mips.o: xptcstubs_asm_ps2mips.s.m4 $(PUBLIC)/xptcstubsdef.inc
+ m4 $(INCLUDES) $< > ./xptcstubs_asm_ps2mips.s && \
+ $(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) ./xptcstubs_asm_ps2mips.s
+ $(RM) -f ./xptcstubs_asm_ps2mips.s
+else
+
+# Generic Linux
ifneq (,$(findstring mips, $(OS_TEST)))
-xptcstubs_asm_mips.o: xptcstubs_asm_mips.s.m4 $(PUBLIC)/xptcstubsdef.inc
- m4 $(INCLUDES) $< > ./xptcstubs_asm_mips.s && \
- $(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) ./xptcstubs_asm_mips.s
- $(RM) -f ./xptcstubs_asm_mips.s
+xptcstubs_asm_mips.o: xptcstubs_asm_mips.s $(PUBLIC)/xptcstubsdef.inc
+ $(AS) -o $@ $<
endif
endif
+endif
+
ifeq ($(OS_ARCH),Darwin)
xptcstubs_asm_ppc_darwin.o: xptcstubs_asm_ppc_darwin.s.m4 $(PUBLIC)/xptcstubsdef.inc Makefile
gm4 $(INCLUDES) $< > ./xptcstubs_asm_ppc_darwin.s && \
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s
===================================================================
RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s,v
retrieving revision 1.3
diff -p -u -r1.3 xptcinvoke_asm_mips.s
--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s.orig 2007-07-09 09:02:07 +1000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s 2007-07-09 09:04:37 +1000
@@ -21,6 +21,7 @@
* Contributor(s):
* Brendan Eich <brendan@mozilla.org>
* Stuart Parmenter <pavlov@netscape.com>
+ * Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
*/
/* This code is for MIPS using the O32 ABI. */
@@ -28,139 +29,123 @@
#include <sys/regdef.h>
#include <sys/asm.h>
-.text
-.globl invoke_count_words
-.globl invoke_copy_to_stack
-
-# We need a variable number of words allocated from the stack for copies of
-# the params, and this space must come between the high frame (where ra, gp,
-# and s0 are saved) and the low frame (where a0-a3 are saved by the callee
-# functions we invoke).
-
-LOCALSZ=4 # s0, s1, ra, gp
-NARGSAVE=4 # a0, a1, a2, a3
-HIFRAMESZ=(LOCALSZ*SZREG)
-LOFRAMESZ=(NARGSAVE*SZREG)
-FRAMESZ=(HIFRAMESZ+LOFRAMESZ+ALSZ)&ALMASK
-
-# XXX these 2*SZREG, etc. are very magic -- we *know* that ALSZ&ALMASK cause
-# FRAMESZ to be 0 mod 8, in this case to be 16 and not 12.
-RAOFF=FRAMESZ - (2*SZREG)
-GPOFF=FRAMESZ - (3*SZREG)
-S0OFF=FRAMESZ - (4*SZREG)
-S1OFF=FRAMESZ - (5*SZREG)
-
-# These are not magic -- they are just our argsave slots in the caller frame.
-A0OFF=FRAMESZ
-A1OFF=FRAMESZ + (1*SZREG)
-A2OFF=FRAMESZ + (2*SZREG)
-A3OFF=FRAMESZ + (3*SZREG)
-
- #
- # _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
- # a0 a1 a2 a3
-
-NESTED(_XPTC_InvokeByIndex, FRAMESZ, ra)
-
- .set noreorder
- .cpload t9
- .set reorder
-
+# NARGSAVE is the argument space in the callers frame, including extra
+# 'shadowed' space for the argument registers. The minimum of 4
+# argument slots is sometimes predefined in the header files.
+#ifndef NARGSAVE
+#define NARGSAVE 4
+#endif
+
+#define LOCALSZ 3 /* gp, fp, ra */
+#define FRAMESZ ((((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK)
+
+#define RAOFF (FRAMESZ - (1*SZREG))
+#define FPOFF (FRAMESZ - (2*SZREG))
+#define GPOFF (FRAMESZ - (3*SZREG))
+
+#define A0OFF (FRAMESZ + (0*SZREG))
+#define A1OFF (FRAMESZ + (1*SZREG))
+#define A2OFF (FRAMESZ + (2*SZREG))
+#define A3OFF (FRAMESZ + (3*SZREG))
+
+ .text
+
+#
+# _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
+# a0 a1 a2 a3
+
+ .globl _XPTC_InvokeByIndex
+ .align 2
+ .type _XPTC_InvokeByIndex,@function
+ .ent _XPTC_InvokeByIndex,0
+ .frame fp, FRAMESZ, ra
+_XPTC_InvokeByIndex:
+ SETUP_GP
subu sp, FRAMESZ
- # specify the save register mask -- XXX do we want the a0-a3 here, given
- # our "split" frame where the args are saved below a dynamicly allocated
- # region under the high frame?
- #
- # 10010000000000010000000011110000
- .mask 0x900100F0, -((NARGSAVE+LOCALSZ)*SZREG)
-
- # thou shalt not use .cprestore if yer frame has variable size...
- # .cprestore GPOFF
-
- REG_S ra, RAOFF(sp)
-
- # this happens automatically with .cprestore, but we cannot use that op...
- REG_S gp, GPOFF(sp)
- REG_S s0, S0OFF(sp)
- REG_S s1, S1OFF(sp)
-
- REG_S a0, A0OFF(sp)
- REG_S a1, A1OFF(sp)
- REG_S a2, A2OFF(sp)
- REG_S a3, A3OFF(sp)
+ # specify the save register mask for gp, fp, ra, a3 - a0
+ .mask 0xD00000F0, RAOFF-FRAMESZ
- # invoke_count_words(paramCount, params)
- move a0, a2
- move a1, a3
+ sw ra, RAOFF(sp)
+ sw fp, FPOFF(sp)
- jal invoke_count_words
- lw gp, GPOFF(sp)
+ # we can't use .cprestore in a variable stack frame
+ sw gp, GPOFF(sp)
- # save the old sp so we can pop the param area and any "low frame"
- # needed as an argsave area below the param block for callees that
- # we invoke.
- move s0, sp
-
- REG_L a1, A2OFF(sp) # a1 = paramCount
- REG_L a2, A3OFF(sp) # a2 = params
-
- # we define a word as 4 bytes, period end of story!
- sll v0, 2 # 4 bytes * result of invoke_copy_words
- subu v0, LOFRAMESZ # but we take back the argsave area built into
- # our stack frame -- SWEET!
- subu sp, sp, v0 # make room
- move a0, sp # a0 = param stack address
- move s1, a0 # save it for later -- it should be safe here
-
- # the old sp is still saved in s0, but we now need another argsave
- # area ("low frame") for the invoke_copy_to_stack call.
- subu sp, sp, LOFRAMESZ
+ sw a0, A0OFF(sp)
+ sw a1, A1OFF(sp)
+ sw a2, A2OFF(sp)
+ sw a3, A3OFF(sp)
+
+ # save bottom of fixed frame
+ move fp, sp
+
+ # extern "C" uint32
+ # invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s);
+ la t9, invoke_count_words
+ move a0, a2
+ move a1, a3
+ jalr t9
+ lw gp, GPOFF(fp)
- # copy the param into the stack areas
+ # allocate variable stack, with a size of:
+ # wordsize (of 4 bytes) * result (already aligned to dword)
+ # but a minimum of 16 byte
+ sll v0, 2
+ slt t0, v0, 16
+ beqz t0, 1f
+ li v0, 16
+1: subu sp, v0
+
+ # let a0 point to the bottom of the variable stack, allocate
+ # another fixed stack for:
+ # extern "C" void
# invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
- # nsXPTCVariant* s)
- jal invoke_copy_to_stack
- lw gp, GPOFF(s0)
-
- move sp, s0 # get orig sp back, popping params and argsave
-
- REG_L a0, A0OFF(sp) # a0 = set "that" to be "this"
- REG_L a1, A1OFF(sp) # a1 = methodIndex
-
- # t1 = methodIndex * 4
- # (use shift instead of mult)
- sll t1, a1, 2
-
- # calculate the function we need to jump to,
- # which must then be saved in t9
+ # nsXPTCVariant* s);
+ la t9, invoke_copy_to_stack
+ move a0, sp
+ lw a1, A2OFF(fp)
+ lw a2, A3OFF(fp)
+ subu sp, 16
+ jalr t9
+ lw gp, GPOFF(fp)
+
+ # back to the variable stack frame
+ addu sp, 16
+
+ # calculate the function we need to jump to, which must then be
+ # stored in t9
+ lw a0, A0OFF(fp) # a0 = set "that" to be "this"
+ lw t0, A1OFF(fp) # a1 = methodIndex
lw t9, 0(a0)
- addu t9, t9, t1
- lw t9, 8(t9)
-
- # a1..a3 and f13..f14 should now be set to what
- # invoke_copy_to_stack told us. skip a0 and f12
- # because that is the "this" pointer
-
- REG_L a1, 1*SZREG(s1)
- REG_L a2, 2*SZREG(s1)
- REG_L a3, 3*SZREG(s1)
-
- l.d $f13, 8(s1)
- l.d $f14, 16(s1)
-
- # Create the stack pointer for the function, which must have 4 words
- # of space for callee-saved args. invoke_count_words allocated space
- # for a0 starting at s1, so we just move s1 into sp.
- move sp, s1
+ # t0 = methodIndex << PTRLOG
+ sll t0, t0, PTRLOG
+ addu t9, t0
+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
+ lw t9, (t9)
+#else /* not G++ V3 ABI */
+ lw t9, 2*PTRSIZE(t9)
+#endif /* G++ V3 ABI */
+
+ # Set a1-a3 to what invoke_copy_to_stack told us. a0 is already
+ # the "this" pointer. We don't have to care about floating
+ # point arguments, the non-FP "this" pointer as first argument
+ # means they'll never be used.
+ lw a1, 1*SZREG(sp)
+ lw a2, 2*SZREG(sp)
+ lw a3, 3*SZREG(sp)
+
+ jalr t9
+ # Micro-optimization: There's no gp usage below this point, so
+ # we don't reload.
+ # lw gp, GPOFF(fp)
- jalr ra, t9
- lw gp, GPOFF(s0)
+ # leave variable stack frame
+ move sp, fp
- move sp, s0
+ lw ra, RAOFF(sp)
+ lw fp, FPOFF(sp)
- REG_L ra, RAOFF(sp)
- REG_L s0, S0OFF(sp)
- addu sp, FRAMESZ
+ addiu sp, FRAMESZ
j ra
-.end _XPTC_InvokeByIndex
+END(_XPTC_InvokeByIndex)
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s
===================================================================
RCS file: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s
diff -N mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s 30 May 2007 09:08:10 -0000
@@ -0,0 +1,166 @@
+/* -*- Mode: asm; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corp, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Brendan Eich <brendan@mozilla.org>
+ * Stuart Parmenter <pavlov@netscape.com>
+ */
+
+/* This code is for MIPS using the O32 ABI. */
+
+#include <sys/regdef.h>
+#include <sys/asm.h>
+
+.text
+.globl invoke_count_words
+.globl invoke_copy_to_stack
+
+# We need a variable number of words allocated from the stack for copies of
+# the params, and this space must come between the high frame (where ra, gp,
+# and s0 are saved) and the low frame (where a0-a3 are saved by the callee
+# functions we invoke).
+
+LOCALSZ=4 # s0, s1, ra, gp
+NARGSAVE=4 # a0, a1, a2, a3
+HIFRAMESZ=(LOCALSZ*SZREG)
+LOFRAMESZ=(NARGSAVE*SZREG)
+FRAMESZ=(HIFRAMESZ+LOFRAMESZ+ALSZ)&ALMASK
+
+# XXX these 2*SZREG, etc. are very magic -- we *know* that ALSZ&ALMASK cause
+# FRAMESZ to be 0 mod 8, in this case to be 16 and not 12.
+RAOFF=FRAMESZ - (2*SZREG)
+GPOFF=FRAMESZ - (3*SZREG)
+S0OFF=FRAMESZ - (4*SZREG)
+S1OFF=FRAMESZ - (5*SZREG)
+
+# These are not magic -- they are just our argsave slots in the caller frame.
+A0OFF=FRAMESZ
+A1OFF=FRAMESZ + (1*SZREG)
+A2OFF=FRAMESZ + (2*SZREG)
+A3OFF=FRAMESZ + (3*SZREG)
+
+ #
+ # _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
+ # a0 a1 a2 a3
+
+NESTED(_XPTC_InvokeByIndex, FRAMESZ, ra)
+
+ .set noreorder
+ .cpload t9
+ .set reorder
+
+ subu sp, FRAMESZ
+
+ # specify the save register mask -- XXX do we want the a0-a3 here, given
+ # our "split" frame where the args are saved below a dynamicly allocated
+ # region under the high frame?
+ #
+ # 10010000000000010000000011110000
+ .mask 0x900100F0, -((NARGSAVE+LOCALSZ)*SZREG)
+
+ # thou shalt not use .cprestore if yer frame has variable size...
+ # .cprestore GPOFF
+
+ REG_S ra, RAOFF(sp)
+
+ # this happens automatically with .cprestore, but we cannot use that op...
+ REG_S gp, GPOFF(sp)
+ REG_S s0, S0OFF(sp)
+ REG_S s1, S1OFF(sp)
+
+ REG_S a0, A0OFF(sp)
+ REG_S a1, A1OFF(sp)
+ REG_S a2, A2OFF(sp)
+ REG_S a3, A3OFF(sp)
+
+ # invoke_count_words(paramCount, params)
+ move a0, a2
+ move a1, a3
+
+ jal invoke_count_words
+ lw gp, GPOFF(sp)
+
+ # save the old sp so we can pop the param area and any "low frame"
+ # needed as an argsave area below the param block for callees that
+ # we invoke.
+ move s0, sp
+
+ REG_L a1, A2OFF(sp) # a1 = paramCount
+ REG_L a2, A3OFF(sp) # a2 = params
+
+ # we define a word as 4 bytes, period end of story!
+ sll v0, 2 # 4 bytes * result of invoke_copy_words
+ subu v0, LOFRAMESZ # but we take back the argsave area built into
+ # our stack frame -- SWEET!
+ subu sp, sp, v0 # make room
+ move a0, sp # a0 = param stack address
+ move s1, a0 # save it for later -- it should be safe here
+
+ # the old sp is still saved in s0, but we now need another argsave
+ # area ("low frame") for the invoke_copy_to_stack call.
+ subu sp, sp, LOFRAMESZ
+
+ # copy the param into the stack areas
+ # invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
+ # nsXPTCVariant* s)
+ jal invoke_copy_to_stack
+ lw gp, GPOFF(s0)
+
+ move sp, s0 # get orig sp back, popping params and argsave
+
+ REG_L a0, A0OFF(sp) # a0 = set "that" to be "this"
+ REG_L a1, A1OFF(sp) # a1 = methodIndex
+
+ # t1 = methodIndex * 4
+ # (use shift instead of mult)
+ sll t1, a1, 2
+
+ # calculate the function we need to jump to,
+ # which must then be saved in t9
+ lw t9, 0(a0)
+ addu t9, t9, t1
+ lw t9, 8(t9)
+
+ # a1..a3 and f13..f14 should now be set to what
+ # invoke_copy_to_stack told us. skip a0 and f12
+ # because that is the "this" pointer
+
+ REG_L a1, 1*SZREG(s1)
+ REG_L a2, 2*SZREG(s1)
+ REG_L a3, 3*SZREG(s1)
+
+ l.d $f13, 8(s1)
+ l.d $f14, 16(s1)
+
+ # Create the stack pointer for the function, which must have 4 words
+ # of space for callee-saved args. invoke_count_words allocated space
+ # for a0 starting at s1, so we just move s1 into sp.
+ move sp, s1
+
+ jalr ra, t9
+ lw gp, GPOFF(s0)
+
+ move sp, s0
+
+ REG_L ra, RAOFF(sp)
+ REG_L s0, S0OFF(sp)
+ addu sp, FRAMESZ
+ j ra
+.end _XPTC_InvokeByIndex
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp
===================================================================
RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp,v
retrieving revision 1.2
diff -p -u -r1.2 xptcinvoke_mips.cpp
--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp 18 Apr 2004 14:18:18 -0000 1.2
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp 30 May 2007 09:08:10 -0000
@@ -1,6 +1,4 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- * Version: MPL 1.1
- *
* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
@@ -24,6 +22,7 @@
* Contributor(s):
* Stuart Parmenter <pavlov@netscape.com>
* Brendan Eich <brendan@mozilla.org>
+ * Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
@@ -52,10 +51,8 @@ invoke_count_words(PRUint32 paramCount,
// Count a word for a0 even though it's never stored or loaded
// We do this only for alignment of register pairs.
PRUint32 result = 1;
- for (PRUint32 i = 0; i < paramCount; i++, s++)
+ for (PRUint32 i = 0; i < paramCount; i++, result++, s++)
{
- result++;
-
if (s->IsPtrData())
continue;
@@ -68,6 +65,9 @@ invoke_count_words(PRUint32 paramCount,
result++;
result++;
break;
+
+ default:
+ break;
}
}
return (result + 1) & ~(PRUint32)1;
@@ -88,8 +88,6 @@ invoke_copy_to_stack(PRUint32* d, PRUint
continue;
}
- *((void**)d) = s->val.p;
-
switch(s->type)
{
case nsXPTType::T_I64 :
@@ -104,6 +102,9 @@ invoke_copy_to_stack(PRUint32* d, PRUint
if ((PRWord)d & 4) d++;
*((double*) d) = s->val.d; d++;
break;
+ default:
+ *((void**)d) = s->val.p;
+ break;
}
}
}
@@ -118,5 +119,4 @@ XPTC_InvokeByIndex(nsISupports* that, PR
PRUint32 paramCount, nsXPTCVariant* params)
{
return _XPTC_InvokeByIndex(that, methodIndex, paramCount, params);
-}
-
+}
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp
===================================================================
RCS file: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp
diff -N mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp 30 May 2007 09:08:10 -0000
@@ -0,0 +1,122 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ * Version: MPL 1.1
+ *
+ * ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corp, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Stuart Parmenter <pavlov@netscape.com>
+ * Brendan Eich <brendan@mozilla.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/* This code is for MIPS using the O32 ABI. */
+
+/* Platform specific code to invoke XPCOM methods on native objects */
+
+#include "xptcprivate.h"
+
+
+extern "C" uint32
+invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
+{
+ // Count a word for a0 even though it's never stored or loaded
+ // We do this only for alignment of register pairs.
+ PRUint32 result = 1;
+ for (PRUint32 i = 0; i < paramCount; i++, s++)
+ {
+ result++;
+
+ if (s->IsPtrData())
+ continue;
+
+ switch(s->type)
+ {
+ case nsXPTType::T_I64 :
+ case nsXPTType::T_U64 :
+ case nsXPTType::T_DOUBLE :
+ if (result & 1)
+ result++;
+ result++;
+ break;
+ }
+ }
+ return (result + 1) & ~(PRUint32)1;
+}
+
+extern "C" void
+invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
+ nsXPTCVariant* s)
+{
+ // Skip the unused a0 slot, which we keep only for register pair alignment.
+ d++;
+
+ for (PRUint32 i = 0; i < paramCount; i++, d++, s++)
+ {
+ if (s->IsPtrData())
+ {
+ *((void**)d) = s->ptr;
+ continue;
+ }
+
+ *((void**)d) = s->val.p;
+
+ switch(s->type)
+ {
+ case nsXPTType::T_I64 :
+ if ((PRWord)d & 4) d++;
+ *((PRInt64*) d) = s->val.i64; d++;
+ break;
+ case nsXPTType::T_U64 :
+ if ((PRWord)d & 4) d++;
+ *((PRUint64*) d) = s->val.u64; d++;
+ break;
+ case nsXPTType::T_DOUBLE :
+ if ((PRWord)d & 4) d++;
+ *((double*) d) = s->val.d; d++;
+ break;
+ }
+ }
+}
+
+extern "C" nsresult _XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+ PRUint32 paramCount,
+ nsXPTCVariant* params);
+
+extern "C"
+XPTC_PUBLIC_API(nsresult)
+XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+ PRUint32 paramCount, nsXPTCVariant* params)
+{
+ return _XPTC_InvokeByIndex(that, methodIndex, paramCount, params);
+}
+
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp
===================================================================
RCS file: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp
diff -N mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp 30 May 2007 09:08:10 -0000
@@ -0,0 +1,131 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ * Version: MPL 1.1
+ *
+ * ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corp, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Stuart Parmenter <pavlov@netscape.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#include "xptcprivate.h"
+
+/*
+ * This is for MIPS O32 ABI
+ * Args contains a0-3 and then the stack.
+ * Because a0 is 'this', we want to skip it
+ */
+extern "C" nsresult
+PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex, PRUint32* args)
+{
+ args++; // always skip over a0
+
+#define PARAM_BUFFER_COUNT 16
+
+ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
+ nsXPTCMiniVariant* dispatchParams = NULL;
+ nsIInterfaceInfo* iface_info = NULL;
+ const nsXPTMethodInfo* info;
+ PRUint8 paramCount;
+ PRUint8 i;
+ nsresult result = NS_ERROR_FAILURE;
+
+ NS_ASSERTION(self,"no self");
+
+ self->GetInterfaceInfo(&iface_info);
+ NS_ASSERTION(iface_info,"no interface info");
+
+ iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
+ NS_ASSERTION(info,"no interface info");
+
+ paramCount = info->GetParamCount();
+
+ // setup variant array pointer
+ if(paramCount > PARAM_BUFFER_COUNT)
+ dispatchParams = new nsXPTCMiniVariant[paramCount];
+ else
+ dispatchParams = paramBuffer;
+ NS_ASSERTION(dispatchParams,"no place for params");
+
+ PRUint32* ap = args;
+ for(i = 0; i < paramCount; i++, ap++)
+ {
+ const nsXPTParamInfo& param = info->GetParam(i);
+ const nsXPTType& type = param.GetType();
+ nsXPTCMiniVariant* dp = &dispatchParams[i];
+
+ if(param.IsOut() || !type.IsArithmetic())
+ {
+ dp->val.p = (void*) *ap;
+ continue;
+ }
+
+ dp->val.p = (void*) *ap;
+
+ switch(type)
+ {
+ case nsXPTType::T_I64 :
+ if ((PRWord)ap & 4) ap++;
+ dp->val.i64 = *((PRInt64*) ap); ap++;
+ break;
+ case nsXPTType::T_U64 :
+ if ((PRWord)ap & 4) ap++;
+ dp->val.u64 = *((PRInt64*) ap); ap++;
+ break;
+ case nsXPTType::T_DOUBLE:
+ if ((PRWord)ap & 4) ap++;
+ dp->val.d = *((double*) ap); ap++;
+ break;
+ }
+ }
+
+ result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
+
+ NS_RELEASE(iface_info);
+
+ if(dispatchParams != paramBuffer)
+ delete [] dispatchParams;
+
+ return result;
+}
+
+#define STUB_ENTRY(n) // done in the .s file
+
+#define SENTINEL_ENTRY(n) \
+nsresult nsXPTCStubBase::Sentinel##n() \
+{ \
+ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
+ return NS_ERROR_NOT_IMPLEMENTED; \
+}
+
+#include "xptcstubsdef.inc"
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/007_mozilla-firefox-1.5-asneeded.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/007_mozilla-firefox-1.5-asneeded.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/007_mozilla-firefox-1.5-asneeded.patch?rev=1.1&content-type=text/plain
Index: 007_mozilla-firefox-1.5-asneeded.patch
===================================================================
--- mozilla/embedding/browser/gtk/tests/Makefile.in.orig 2005-02-04 00:01:41.000000000 +0100
+++ mozilla/embedding/browser/gtk/tests/Makefile.in 2006-04-28 05:21:10.000000000 +0200
@@ -75,6 +75,8 @@
endif
endif
+OS_LDFLAGS += -Wl,-rpath-link,'$(DEPTH)/dist/bin'
+
ifdef MOZ_ENABLE_GTK
LIBS += \
-lgtkembedmoz \
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/008_firefox-pkgconfig-1.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/008_firefox-pkgconfig-1.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/008_firefox-pkgconfig-1.patch?rev=1.1&content-type=text/plain
Index: 008_firefox-pkgconfig-1.patch
===================================================================
Fixup pkgconfig files for broken out NSPR and NSS. Patch from Fedora.
--- mozilla/config/autoconf.mk.in.orig 2006-06-14 22:16:08.000000000 +0200
+++ mozilla/config/autoconf.mk.in 2006-07-20 11:00:13.000000000 +0200
@@ -57,13 +57,13 @@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
-includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+includedir = $(mozappdir)/include
libdir = @libdir@
datadir = @datadir@
mandir = @mandir@
-idldir = @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+idldir = $(mozappdir)/idl
-mozappdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+mozappdir = $(libdir)/mozilla-$(MOZ_APP_NAME)
mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION)
mrelibdir = $(mredir)/lib
--- mozilla/build/unix/Makefile.in.orig 2005-07-07 20:24:39.000000000 +0200
+++ mozilla/build/unix/Makefile.in 2006-07-20 11:00:13.000000000 +0200
@@ -61,6 +61,19 @@
NSPR_VERSION=$(shell $(DEPTH)/nsprpub/config/nspr-config --version)
endif
+# Hack to make sure that mozilla-nss.pc has the proper nss dependencies
+ifdef MOZ_NATIVE_NSS
+FULL_NSS_CFLAGS=$(shell $(NSS_CONFIG) --cflags)
+FULL_NSS_LIBS=$(shell $(NSS_CONFIG) --libs)
+NSS_NAME=nss
+NSS_VERSION=$(shell $(NSS_CONFIG) --version)
+else
+FULL_NSS_CFLAGS=-I$(includedir)/nss
+FULL_NSS_LIBS=-L$(mozappdir)/nss -lnss3 -lsmime3 -lssl3 -lsoftokn3
+NSS_NAME=$(MOZ_APP_NAME)-nss
+NSS_VERSION=$(MOZ_APP_VERSION)
+endif
+
ifdef MOZ_ENABLE_GTK
SUPERWIN_LIBS=-lgtksuperwin
endif
@@ -83,7 +96,8 @@
-e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
-e "s|%DEFS%|$(_DEFS)|" \
-e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
- -e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" > $@
+ -e 's|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|' \
+ -e 's|\(echo -L.*\)\($$\)|\1 -Wl,-R$(mozappdir)\2|' > $@
$(MOZ_APP_NAME)-%.pc : mozilla-%.pc.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk
cat $< | sed \
@@ -99,7 +113,12 @@
-e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
-e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" \
-e "s|%NSPR_NAME%|$(NSPR_NAME)|" \
- -e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" > $@
+ -e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" \
+ -e "s|%FULL_NSS_LIBS%|$(FULL_NSS_LIBS)|" \
+ -e "s|%FULL_NSS_CFLAGS%|$(FULL_NSS_CFLAGS)|" \
+ -e "s|%NSS_NAME%|$(NSS_NAME)|" \
+ -e "s|%NSS_VERSION%|$(NSS_VERSION)|" \
+ -e "s|\(^Libs: -L.*\)|\1 -Wl,-R\$$\{libdir}|" > $@
libs:: $(MOZ_APP_NAME)-config
chmod 755 $<
--- mozilla/build/unix/mozilla-js.pc.in.orig 2006-07-20 10:58:48.000000000 +0200
+++ mozilla/build/unix/mozilla-js.pc.in 2006-07-20 11:00:13.000000000 +0200
@@ -6,6 +6,6 @@
Name: JavaScript
Description: The Mozilla JavaScript Library
Version: %MOZILLA_VERSION%
-Requires: %NSPR_NAME% >= %NSPR_VERSION%
+Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION%
Libs: -L${libdir} -lmozjs
Cflags: -I${includedir}/js -DXP_UNIX
--- mozilla/build/unix/mozilla-nspr.pc.in.orig 2006-07-20 10:59:11.000000000 +0200
+++ mozilla/build/unix/mozilla-nspr.pc.in 2006-07-20 11:00:13.000000000 +0200
@@ -1,12 +1,5 @@
-prefix=%prefix%
-exec_prefix=%exec_prefix%
-libdir=%libdir%
-includedir=%includedir%
-
Name: NSPR
Description: The Netscape Portable Runtime
Version: %NSPR_VERSION%
-Libs: %FULL_NSPR_LIBS%
-Cflags: %FULL_NSPR_CFLAGS%
-
+Requires: %NSPR_NAME% >= %NSPR_VERSION%
--- mozilla/build/unix/mozilla-xpcom.pc.in.orig 2006-07-20 10:59:32.000000000 +0200
+++ mozilla/build/unix/mozilla-xpcom.pc.in 2006-07-20 11:00:13.000000000 +0200
@@ -7,6 +7,6 @@
Name: XPCOM
Description: The Mozilla Cross Platform Component Library
Version: %MOZILLA_VERSION%
-Requires: %NSPR_NAME% >= %NSPR_VERSION%
+Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION%
Libs: -L${libdir} -lxpcom
Cflags: -I${includedir} -I${includedir}/xpcom -I${includedir}/string
--- mozilla/build/unix/mozilla-nss.pc.in.orig 2006-07-20 10:59:41.000000000 +0200
+++ mozilla/build/unix/mozilla-nss.pc.in 2006-07-20 11:00:13.000000000 +0200
@@ -1,11 +1,4 @@
-prefix=%prefix%
-exec_prefix=%exec_prefix%
-libdir=%libdir%
-includedir=%includedir%
-
Name: NSS
Description: Mozilla Network Security Services
-Version: %MOZILLA_VERSION%
-Requires: %NSPR_NAME% >= %NSPR_VERSION%
-Libs: -L${libdir} -lnss3 -lsmime3 -lssl3 -lsoftokn3
-Cflags: -I${includedir}/nss
+Version: %NSS_VERSION%
+Requires: %NSS_NAME% >= %NSS_VERSION%
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/010_visibility-gcc-4.2.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/010_visibility-gcc-4.2.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/010_visibility-gcc-4.2.patch?rev=1.1&content-type=text/plain
Index: 010_visibility-gcc-4.2.patch
===================================================================
--- configure.in.orig 2007-10-12 20:39:27.000000000 +0200
+++ configure.in 2007-10-12 20:40:49.000000000 +0200
@@ -2657,8 +2657,7 @@
])
if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
"$ac_cv_have_visibility_class_bug" = "no"; then
- VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
- WRAP_SYSTEM_INCLUDES=1
+ VISIBILITY_FLAGS='-fvisibility=hidden'
else
VISIBILITY_FLAGS='-fvisibility=hidden'
fi # have visibility pragma bug
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/016_firefox-nss-3.12-asneeded.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/016_firefox-nss-3.12-asneeded.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/016_firefox-nss-3.12-asneeded.patch?rev=1.1&content-type=text/plain
Index: 016_firefox-nss-3.12-asneeded.patch
===================================================================
# Fix a FTBFS with system libnss (caused by bad linking order with libcrmf)
# by Fabien Tassin <fta@sofaraway.org>
Index: seamonkey-1.1.4/configure.in
===================================================================
--- seamonkey-1.1.4.orig/configure.in
+++ seamonkey-1.1.4/configure.in
@@ -3735,17 +3735,17 @@
[ --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 -n "$MOZ_NATIVE_NSS"; then
- NSS_LIBS="$NSS_LIBS -lcrmf"
+ NSS_LIBS=" -lcrmf $NSS_LIBS"
else
NSS_CFLAGS='-I$(DIST)/public/nss'
NSS_DEP_LIBS='\\\
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)smime'$NSS_VERSION'$(DLL_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)ssl'$NSS_VERSION'$(DLL_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)nss'$NSS_VERSION'$(DLL_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)softokn'$NSS_VERSION'$(DLL_SUFFIX)'
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/032_firefox-2.0_ppc64-1.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/032_firefox-2.0_ppc64-1.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/032_firefox-2.0_ppc64-1.patch?rev=1.1&content-type=text/plain
Index: 032_firefox-2.0_ppc64-1.patch
===================================================================
# Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=361415
unchanged:
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2006-11-21 17:09:28.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2006-11-20 10:13:38.000000000 +0000
@@ -267,6 +267,11 @@
ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
AS := $(CC) -c -x assembler-with-cpp
endif
+ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64)
+CPPSRCS := xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp
+ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
+AS := $(CC) -c -x assembler-with-cpp
+endif
#
# NetBSD/PPC
diff -u mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-21 14:01:45.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-22 10:43:26.000000000 +0000
@@ -0,0 +1,154 @@
+// -*- Mode: Asm -*-
+//
+// The contents of this file are subject to the Netscape Public
+// License Version 1.1 (the "License"); you may not use this file
+// except in compliance with the License. You may obtain a copy of
+// the License at http://www.mozilla.org/NPL/
+//
+// Software distributed under the License is distributed on an "AS
+// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+// implied. See the License for the specific language governing
+// rights and limitations under the License.
+//
+// The Original Code is mozilla.org code.
+//
+// The Initial Developer of the Original Code is Netscape
+// Communications Corporation. Portions created by Netscape are
+// Copyright (C) 1999 Netscape Communications Corporation. All
+// Rights Reserved.
+//
+// Contributor(s):
+// dwmw2@infradead.org (David Woodhouse)
+// Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+// beard@netscape.com (Patrick Beard)
+// waterson@netscape.com (Chris Waterson)
+//
+
+.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4
+.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
+.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
+.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
+.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
+.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
+.set r30,30; .set r31,31
+.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
+.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
+.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
+.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
+.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
+.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
+.set f30,30; .set f31,31
+
+
+//
+// XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+// PRUint32 paramCount, nsXPTCVariant* params)
+//
+
+ .section ".toc","aw"
+ .section ".text"
+ .align 2
+ .globl XPTC_InvokeByIndex
+ .section ".opd","aw"
+ .align 3
+XPTC_InvokeByIndex:
+ .quad .XPTC_InvokeByIndex,.TOC.@tocbase
+ .previous
+ .type XPTC_InvokeByIndex,@function
+.XPTC_InvokeByIndex:
+ mflr 0
+ std 0,16(r1)
+
+ std r29,-24(r1)
+ std r30,-16(r1)
+ std r31,-8(r1)
+
+ mr r29,r3 // Save 'that' in r29
+ mr r30,r4 // Save 'methodIndex' in r30
+ mr r31,r1 // Save old frame
+
+ // Allocate stack frame with space for params. Since at least the
+ // first 7 parameters (not including 'that') will be in registers,
+ // we don't actually need stack space for those. We must ensure
+ // that the stack remains 16-byte aligned.
+ //
+ // | ..128-byte stack frame.. | | 7 GP | 13 FP | 3 NV |
+ // | |(params)........| regs | regs | regs |
+ // (r1)...........(+112)....(+128)
+ // (-23*8).(-16*8).(-3*8)..(r31)
+
+ // +stack frame, -unused stack params, +regs storage, +1 for alignment
+ addi r7,r5,((112/8)-7+7+13+3+1)
+ rldicr r7,r7,3,59 // multiply by 8 and mask with ~15
+ neg r7,r7
+ stdux r1,r1,r7
+
+
+ // Call invoke_copy_to_stack(PRUint64* gpregs, double* fpregs,
+ // PRUint32 paramCount, nsXPTCVariant* s,
+ // PRUint64* d))
+
+ // r5, r6 are passed through intact (paramCount, params)
+ // r7 (d) has to be r1+112 -- where parameters are passed on the stack.
+ // r3, r4 are above that, easier to address from r31 than from r1
+
+ subi r3,r31,(23*8) // r3 --> GPRS
+ subi r4,r31,(16*8) // r4 --> FPRS
+ addi r7,r1,112 // r7 --> params
+ bl invoke_copy_to_stack
+ nop
+
+ // Set up to invoke function
+
+ ld r9,0(r29) // vtable (r29 is 'that')
+ mr r3,r29 // self is first arg, obviously
+
+ sldi r30,r30,3 // Find function descriptor
+ add r9,r9,r30
+ ld r9,0(r9)
+
+ ld r0,0(r9) // Actual address from fd.
+ std r2,40(r1) // Save r2 (TOC pointer)
+
+ mtctr 0
+ ld r11,16(r9) // Environment pointer from fd.
+ ld r2,8(r9) // TOC pointer from fd.
+
+ // Load FP and GP registers as required
+ ld r4, -(23*8)(r31)
+ ld r5, -(22*8)(r31)
+ ld r6, -(21*8)(r31)
+ ld r7, -(20*8)(r31)
+ ld r8, -(19*8)(r31)
+ ld r9, -(18*8)(r31)
+ ld r10, -(17*8)(r31)
+
+ lfd f1, -(16*8)(r31)
+ lfd f2, -(15*8)(r31)
+ lfd f3, -(14*8)(r31)
+ lfd f4, -(13*8)(r31)
+ lfd f5, -(12*8)(r31)
+ lfd f6, -(11*8)(r31)
+ lfd f7, -(10*8)(r31)
+ lfd f8, -(9*8)(r31)
+ lfd f9, -(8*8)(r31)
+ lfd f10, -(7*8)(r31)
+ lfd f11, -(6*8)(r31)
+ lfd f12, -(5*8)(r31)
+ lfd f13, -(4*8)(r31)
+
+ bctrl // Do it
+
+ ld r2,40(r1) // Load our own TOC pointer
+ ld r1,0(r1) // Revert stack frame
+ ld 0,16(r1) // Reload lr
+ ld 29,-24(r1) // Restore NVGPRS
+ ld 30,-16(r1)
+ ld 31,-8(r1)
+ mtlr 0
+ blr
+
+ .size XPTC_InvokeByIndex,.-.XPTC_InvokeByIndex
+
+ /* Magic indicating no need for an executable stack */
+ .section .note.GNU-stack, "", @progbits ; .previous
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 1970-01-01 01:00:00.000000000 +0100
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 2006-11-21 17:00:06.000000000 +0000
@@ -0,0 +1,127 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * dwmw2@infradead.org (David Woodhouse)
+ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+ * beard@netscape.com (Patrick Beard)
+ * waterson@netscape.com (Chris Waterson)
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+// Platform specific code to invoke XPCOM methods on native objects
+
+// The purpose of XPTC_InvokeByIndex() is to map a platform
+// independent call to the platform ABI. To do that,
+// XPTC_InvokeByIndex() has to determine the method to call via vtable
+// access. The parameters for the method are read from the
+// nsXPTCVariant* and prepared for the native ABI.
+
+#include <stdio.h>
+#include "xptcprivate.h"
+
+// 8 integral parameters are passed in registers, not including 'that'
+#define GPR_COUNT 7
+
+// 8 floating point parameters are passed in registers, floats are
+// promoted to doubles when passed in registers
+#define FPR_COUNT 13
+
+extern "C" PRUint32
+invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
+{
+ return PRUint32(((paramCount * 2) + 3) & ~3);
+}
+
+extern "C" void
+invoke_copy_to_stack(PRUint64* gpregs,
+ double* fpregs,
+ PRUint32 paramCount,
+ nsXPTCVariant* s,
+ PRUint64* d)
+{
+ PRUint64 tempu64;
+
+ for(uint32 i = 0; i < paramCount; i++, s++) {
+ if(s->IsPtrData())
+ tempu64 = (PRUint64) s->ptr;
+ else {
+ switch(s->type) {
+ case nsXPTType::T_FLOAT: break;
+ case nsXPTType::T_DOUBLE: break;
+ case nsXPTType::T_I8: tempu64 = s->val.i8; break;
+ case nsXPTType::T_I16: tempu64 = s->val.i16; break;
+ case nsXPTType::T_I32: tempu64 = s->val.i32; break;
+ case nsXPTType::T_I64: tempu64 = s->val.i64; break;
+ case nsXPTType::T_U8: tempu64 = s->val.u8; break;
+ case nsXPTType::T_U16: tempu64 = s->val.u16; break;
+ case nsXPTType::T_U32: tempu64 = s->val.u32; break;
+ case nsXPTType::T_U64: tempu64 = s->val.u64; break;
+ case nsXPTType::T_BOOL: tempu64 = s->val.b; break;
+ case nsXPTType::T_CHAR: tempu64 = s->val.c; break;
+ case nsXPTType::T_WCHAR: tempu64 = s->val.wc; break;
+ default: tempu64 = (PRUint64) s->val.p; break;
+ }
+ }
+
+ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
+ if (i < FPR_COUNT)
+ fpregs[i] = s->val.d;
+ else
+ *(double *)d = s->val.d;
+ }
+ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
+ if (i < FPR_COUNT) {
+ fpregs[i] = s->val.f; // if passed in registers, floats are promoted to doubles
+ } else {
+ float *p = (float *)d;
+ p++;
+ *p = s->val.f;
+ }
+ }
+ else {
+ if (i < GPR_COUNT)
+ gpregs[i] = tempu64;
+ else
+ *d = tempu64;
+ }
+ if (i >= 7)
+ d++;
+ }
+}
+
+extern "C"
+XPTC_PUBLIC_API(nsresult)
+XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+ PRUint32 paramCount, nsXPTCVariant* params);
+
diff -u mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s 2006-11-21 16:38:52.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s 2006-11-22 10:51:14.000000000 +0000
@@ -0,0 +1,102 @@
+// -*- Mode: Asm -*-
+//
+// The contents of this file are subject to the Netscape Public
+// License Version 1.1 (the "License"); you may not use this file
+// except in compliance with the License. You may obtain a copy of
+// the License at http://www.mozilla.org/NPL/
+//
+// Software distributed under the License is distributed on an "AS
+// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+// implied. See the License for the specific language governing
+// rights and limitations under the License.
+//
+// The Original Code is mozilla.org code.
+//
+// The Initial Developer of the Original Code is Netscape
+// Communications Corporation. Portions created by Netscape are
+// Copyright (C) 1999 Netscape Communications Corporation. All
+// Rights Reserved.
+//
+// Contributor(s):
+// dwmw2@infradead.org (David Woodhouse)
+// Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+// beard@netscape.com (Patrick Beard)
+// waterson@netscape.com (Chris Waterson)
+//
+
+.set r0,0; .set r1,1; .set RTOC,2; .set r3,3; .set r4,4
+.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
+.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
+.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
+.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
+.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
+.set r30,30; .set r31,31
+.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
+.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
+.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
+.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
+.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
+.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
+.set f30,30; .set f31,31
+
+ .section ".text"
+ .align 2
+ .globl SharedStub
+ .section ".opd","aw"
+ .align 3
+
+SharedStub:
+ .quad .SharedStub,.TOC.@tocbase
+ .previous
+ .type SharedStub,@function
+
+.SharedStub:
+ mflr r0
+
+ std r4, -56(r1) // Save all GPRS
+ std r5, -48(r1)
+ std r6, -40(r1)
+ std r7, -32(r1)
+ std r8, -24(r1)
+ std r9, -16(r1)
+ std r10, -8(r1)
+
+ stfd f13, -64(r1) // ... and FPRS
+ stfd f12, -72(r1)
+ stfd f11, -80(r1)
+ stfd f10, -88(r1)
+ stfd f9, -96(r1)
+ stfd f8, -104(r1)
+ stfd f7, -112(r1)
+ stfd f6, -120(r1)
+ stfd f5, -128(r1)
+ stfd f4, -136(r1)
+ stfd f3, -144(r1)
+ stfd f2, -152(r1)
+ stfd f1, -160(r1)
+
+ subi r6,r1,56 // r6 --> gprData
+ subi r7,r1,160 // r7 --> fprData
+ addi r5,r1,112 // r5 --> extra stack args
+
+ std r0, 16(r1)
+
+ stdu r1,-288(r1)
+ // r3 has the 'self' pointer already
+
+ mr r4,r11 // r4 is methodIndex selector, passed
+ // via r11 in the nsXPTCStubBase::StubXX() call
+
+ bl PrepareAndDispatch
+ nop
+
+ ld 1,0(r1) // restore stack
+ ld r0,16(r1) // restore LR
+ mtlr r0
+ blr
+
+ .size SharedStub,.-.SharedStub
+
+
+/* Magic indicating no need for an executable stack */
+.section .note.GNU-stack, "", @progbits ; .previous
unchanged:
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp 1970-01-01 01:00:00.000000000 +0100
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp 2006-11-21 16:59:46.000000000 +0000
@@ -0,0 +1,247 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1999
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * dwmw2@infradead.org (David Woodhouse)
+ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+ * beard@netscape.com (Patrick Beard)
+ * waterson@netscape.com (Chris Waterson)
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+// Implement shared vtbl methods.
+
+#include "xptcprivate.h"
+
+// The Linux/PPC ABI (aka PPC/SYSV ABI) passes the first 8 integral
+// parameters and the first 13 floating point parameters in registers
+// (r3-r10 and f1-f13), no stack space is allocated for these by the
+// caller. The rest of the parameters are passed in the callers stack
+// area. The stack pointer has to retain 16-byte alignment, longlongs
+// and doubles are aligned on 8-byte boundaries.
+
+#define PARAM_BUFFER_COUNT 16
+#define GPR_COUNT 7
+#define FPR_COUNT 13
+
+// PrepareAndDispatch() is called by SharedStub() and calls the actual method.
+//
+// - 'args[]' contains the arguments passed on stack
+// - 'gprData[]' contains the arguments passed in integer registers
+// - 'fprData[]' contains the arguments passed in floating point registers
+//
+// The parameters are mapped into an array of type 'nsXPTCMiniVariant'
+// and then the method gets called.
+#include <stdio.h>
+extern "C" nsresult
+PrepareAndDispatch(nsXPTCStubBase* self,
+ PRUint64 methodIndex,
+ PRUint64* args,
+ PRUint64 *gprData,
+ double *fprData)
+{
+ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
+ nsXPTCMiniVariant* dispatchParams = NULL;
+ nsIInterfaceInfo* iface_info = NULL;
+ const nsXPTMethodInfo* info;
+ PRUint32 paramCount;
+ PRUint32 i;
+ nsresult result = NS_ERROR_FAILURE;
+
+ NS_ASSERTION(self,"no self");
+
+ self->GetInterfaceInfo(&iface_info);
+ NS_ASSERTION(iface_info,"no interface info");
+ if (! iface_info)
+ return NS_ERROR_UNEXPECTED;
+
+ iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
+ NS_ASSERTION(info,"no method info");
+ if (! info)
+ return NS_ERROR_UNEXPECTED;
+
+ paramCount = info->GetParamCount();
+
+ // setup variant array pointer
+ if(paramCount > PARAM_BUFFER_COUNT)
+ dispatchParams = new nsXPTCMiniVariant[paramCount];
+ else
+ dispatchParams = paramBuffer;
+
+ NS_ASSERTION(dispatchParams,"no place for params");
+ if (! dispatchParams)
+ return NS_ERROR_OUT_OF_MEMORY;
+
+ PRUint64* ap = args;
+ PRUint64 tempu64;
+
+ for(i = 0; i < paramCount; i++) {
+ const nsXPTParamInfo& param = info->GetParam(i);
+ const nsXPTType& type = param.GetType();
+ nsXPTCMiniVariant* dp = &dispatchParams[i];
+
+ if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
+ if (i < FPR_COUNT)
+ dp->val.d = fprData[i];
+ else
+ dp->val.d = *(double*) ap;
+ } else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
+ if (i < FPR_COUNT)
+ dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles
+ else {
+ float *p = (float *)ap;
+ p++;
+ dp->val.f = *p;
+ }
+ } else { /* integer type or pointer */
+ if (i < GPR_COUNT)
+ tempu64 = gprData[i];
+ else
+ tempu64 = *ap;
+
+ if (param.IsOut() || !type.IsArithmetic())
+ dp->val.p = (void*) tempu64;
+ else if (type ==nsXPTType::T_I8)
+ dp->val.i8 = (PRInt8) tempu64;
+ else if (type ==nsXPTType::T_I16)
+ dp->val.i16 = (PRInt16) tempu64;
+ else if (type ==nsXPTType::T_I32)
+ dp->val.i32 = (PRInt32) tempu64;
+ else if (type ==nsXPTType::T_I64)
+ dp->val.i64 = (PRInt64) tempu64;
+ else if (type ==nsXPTType::T_U8)
+ dp->val.u8 = (PRUint8) tempu64;
+ else if (type ==nsXPTType::T_U16)
+ dp->val.u16 = (PRUint16) tempu64;
+ else if (type ==nsXPTType::T_U32)
+ dp->val.u32 = (PRUint32) tempu64;
+ else if (type ==nsXPTType::T_U64)
+ dp->val.u64 = (PRUint64) tempu64;
+ else if (type ==nsXPTType::T_BOOL)
+ dp->val.b = (PRBool) tempu64;
+ else if (type ==nsXPTType::T_CHAR)
+ dp->val.c = (char) tempu64;
+ else if (type ==nsXPTType::T_WCHAR)
+ dp->val.wc = (wchar_t) tempu64;
+ else
+ NS_ASSERTION(0, "bad type");
+ }
+
+ if (i >= 7)
+ ap++;
+ }
+
+ result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams);
+
+ NS_RELEASE(iface_info);
+
+ if (dispatchParams != paramBuffer)
+ delete [] dispatchParams;
+
+ return result;
+}
+
+// Load r11 with the constant 'n' and branch to SharedStub().
+//
+// XXX Yes, it's ugly that we're relying on gcc's name-mangling here;
+// however, it's quick, dirty, and'll break when the ABI changes on
+// us, which is what we want ;-).
+
+#if __GXX_ABI_VERSION < 100
+#error Prehistoric GCC not supported here
+#else
+// gcc-3 version
+//
+// As G++3 ABI contains the length of the functionname in the mangled
+// name, it is difficult to get a generic assembler mechanism like
+// in the G++ 2.95 case.
+// Create names would be like:
+// _ZN14nsXPTCStubBase5Stub1Ev
+// _ZN14nsXPTCStubBase6Stub12Ev
+// _ZN14nsXPTCStubBase7Stub123Ev
+// _ZN14nsXPTCStubBase8Stub1234Ev
+// etc.
+// Use assembler directives to get the names right...
+
+# define STUB_ENTRY(n) \
+__asm__ ( \
+ ".section \".toc\",\"aw\" \n\t" \
+ ".section \".text\" \n\t" \
+ ".align 2 \n\t" \
+ ".if "#n" < 10 \n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ ".section \".opd\",\"aw\" \n\t" \
+ ".align 3 \n\t" \
+"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
+ ".quad ._ZN14nsXPTCStubBase5Stub"#n"Ev,.TOC.@tocbase \n\t" \
+ ".previous \n\t" \
+ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
+"._ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
+ \
+ ".elseif "#n" < 100 \n\t" \
+ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ ".section \".opd\",\"aw\" \n\t" \
+ ".align 3 \n\t" \
+"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
+ ".quad ._ZN14nsXPTCStubBase6Stub"#n"Ev,.TOC.@tocbase \n\t" \
+ ".previous \n\t" \
+ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
+"._ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
+ \
+ ".elseif "#n" < 1000 \n\t" \
+ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ ".section \".opd\",\"aw\" \n\t" \
+ ".align 3 \n\t" \
+"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
+ ".quad ._ZN14nsXPTCStubBase7Stub"#n"Ev,.TOC.@tocbase \n\t" \
+ ".previous \n\t" \
+ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
+"._ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
+ \
+ ".else \n\t" \
+ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
+ ".endif \n\t" \
+ \
+ "li 11,"#n" \n\t" \
+ "b SharedStub \n" \
+);
+#endif
+
+#define SENTINEL_ENTRY(n) \
+nsresult nsXPTCStubBase::Sentinel##n() \
+{ \
+ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
+ return NS_ERROR_NOT_IMPLEMENTED; \
+}
+
+#include "xptcstubsdef.inc"
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/033_firefox-2.0_ppc_powerpc.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/033_firefox-2.0_ppc_powerpc.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/033_firefox-2.0_ppc_powerpc.patch?rev=1.1&content-type=text/plain
Index: 033_firefox-2.0_ppc_powerpc.patch
===================================================================
--- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2007-03-05 13:46:38.000000000 +0100
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2007-03-05 13:47:30.000000000 +0100
@@ -288,12 +288,12 @@
#
# Linux/PPC
#
-ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc)
+ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc)
CPPSRCS := xptcinvoke_ppc_linux.cpp xptcstubs_ppc_linux.cpp
ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
AS := $(CC) -c -x assembler-with-cpp
endif
-ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64)
+ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc64)
CPPSRCS := xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp
ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
AS := $(CC) -c -x assembler-with-cpp
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/050_respect-host-variable.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/050_respect-host-variable.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/050_respect-host-variable.patch?rev=1.1&content-type=text/plain
Index: 050_respect-host-variable.patch
===================================================================
# https://bugs.gentoo.org/show_bug.cgi?id=168893
--- mozilla/configure.in.old 2007-03-02 23:28:27.000000000 +0200
+++ mozilla/configure.in 2007-03-02 23:29:23.000000000 +0200
@@ -825,7 +825,6 @@
OS_TARGET="${target_os}"
OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
OS_RELEASE=
- OS_TEST="${target_cpu}"
case "${target_os}" in
linux*) OS_ARCH=Linux ;;
solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
@@ -837,8 +836,10 @@
OS_TARGET=`uname -s`
OS_ARCH=`uname -s | sed -e 's|/|_|g'`
OS_RELEASE=`uname -r`
- OS_TEST=`uname -m`
fi
+
+OS_TEST="${target_cpu}"
+
_COMPILER_PREFIX=
HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/055_firefox-2.0_gfbsd-pthreads.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&content-type=text/plain
Index: 055_firefox-2.0_gfbsd-pthreads.patch
===================================================================
# https://bugs.gentoo.org/show_bug.cgi?id=169825
--- mozilla/config/rules.mk.orig Thu Sep 14 14:07:03 2006
+++ mozilla/config/rules.mk Wed Oct 18 11:00:09 2006
@@ -442,9 +442,7 @@
endif
ifeq ($(OS_ARCH),FreeBSD)
-ifdef IS_COMPONENT
-EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
-endif
+EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
endif
ifeq ($(OS_ARCH),NetBSD)
--- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300
+++ mozilla/configure.in 2007-03-07 15:35:41 -0300
@@ -2667,7 +2667,7 @@
*-hpux11.*)
;;
*)
- AC_CHECK_LIB(c_r, gethostbyname_r)
+ AC_SEARCH_LIBS([gethostbyname_r], [c_r])
;;
esac
AC_CHECK_LIB(m, atan)
--- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300
+++ mozilla/configure.in 2007-03-07 13:59:53 -0300
@@ -2839,11 +2839,12 @@
*-*-freebsd*)
AC_DEFINE(_REENTRANT)
AC_DEFINE(_THREAD_SAFE)
- dnl -pthread links in -lc_r, so don't specify it explicitly.
- if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS="-pthread"
+ dnl use the environment PTHREAD_LIBS
+ if test -n "$PTHREAD_LIBS"; then
+ _PTHREAD_LDFLAGS="$PTHREAD_LIBS"
else
- _PTHREAD_LDFLAGS="-lc_r"
+ _PTHREAD_LDFLAGS="-lpthread"
fi
+ LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
;;
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/060_embed-typeaheadfind-1.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/060_embed-typeaheadfind-1.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/060_embed-typeaheadfind-1.patch?rev=1.1&content-type=text/plain
Index: 060_embed-typeaheadfind-1.patch
===================================================================
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/Makefile.in mozilla/extensions/typeaheadfind/Makefile.in
--- mozilla.orig/extensions/typeaheadfind/Makefile.in 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/Makefile.in 2005-03-26 11:39:29.000000000 -0500
@@ -31,7 +31,7 @@
include $(DEPTH)/config/autoconf.mk
-MODULE = typeaheadfind
+MODULE = typeaheadfindsea
DIRS = public src resources
include $(topsrcdir)/config/rules.mk
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/public/Makefile.in mozilla/extensions/typeaheadfind/public/Makefile.in
--- mozilla.orig/extensions/typeaheadfind/public/Makefile.in 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/public/Makefile.in 2005-03-26 11:39:29.000000000 -0500
@@ -31,11 +31,11 @@
include $(DEPTH)/config/autoconf.mk
-MODULE=typeaheadfind
-XPIDL_MODULE=typeaheadfind
+MODULE=typeaheadfindsea
+XPIDL_MODULE=typeaheadfindsea
GRE_MODULE = 1
-XPIDLSRCS= ./nsITypeAheadFind.idl \
+XPIDLSRCS= ./nsITypeAheadFindSea.idl \
$(NULL)
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFind.idl mozilla/extensions/typeaheadfind/public/nsITypeAheadFind.idl
--- mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFind.idl 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/public/nsITypeAheadFind.idl 1969-12-31 19:00:00.000000000 -0500
@@ -1,88 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Original Author: Aaron Leventhal (aaronl@netscape.com)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsISupports.idl"
-#include "domstubs.idl"
-#include "nsISupportsPrimitives.idl"
-
-%{ C++
- #include "nsIDOMEvent.h"
-
- #define NS_TYPEAHEADFIND_CID \
- {0x46590685, 0xbc00, 0x4aac, {0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4}}
-
- #define NS_TYPEAHEADFIND_CONTRACTID "@mozilla.org/typeaheadfind;1"
-%}
-
-interface nsIDOMEvent;
-
-[scriptable, uuid(AD1C62CC-72F4-4c5b-BE78-503854F9E0D8)]
-interface nsITypeAheadFind : nsISupports
-{
- /** Is type ahead find mode currently on? */
- readonly attribute boolean isActive;
-
- /** Manually start type ahead find mode */
- void startNewFind(in nsIDOMWindow aWindow, in boolean aLinksOnly);
-
- /** Manually cancel type ahead find mode */
- void cancelFind();
-
- /**
- * Will find as you type start automatically if the user
- * types with the focus on page content other than a textfield or select?
- * If autostart is off, the startNewFind() method can be used to enact
- * type ahead find, as well as cmd_findTypeLinks or cmd_findTypeText.
- */
- void setAutoStart(in nsIDOMWindow aWindow, in boolean aIsAutoStartOn);
- boolean getAutoStart(in nsIDOMWindow aWindow);
-
- /**
- * Find next recurrence if typeaheadfind was the last used find,
- * as opposed to regular find. Returns false in nsISupportsPRBool if we
- * don't handle the request.
- */
- void findNext(in boolean aReverse, in nsISupportsInterfacePointer aCallerWindowSupports);
-
- /*
- * Go back and remove one character from find string
- * Returns true if backspace used
- */
- boolean backOneChar();
-};
-
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl mozilla/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl
--- mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl 1969-12-31 19:00:00.000000000 -0500
+++ mozilla/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl 2005-03-26 11:39:29.000000000 -0500
@@ -0,0 +1,88 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Original Author: Aaron Leventhal (aaronl@netscape.com)
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#include "nsISupports.idl"
+#include "domstubs.idl"
+#include "nsISupportsPrimitives.idl"
+
+%{ C++
+ #include "nsIDOMEvent.h"
+
+ #define NS_TYPEAHEADFINDSEA_CID \
+ {0x46590685, 0xbc00, 0x4aac, {0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4}}
+
+ #define NS_TYPEAHEADFINDSEA_CONTRACTID "@mozilla.org/typeaheadfindsea;1"
+%}
+
+interface nsIDOMEvent;
+
+[scriptable, uuid(AD1C62CC-72F4-4c5b-BE78-503854F9E0D8)]
+interface nsITypeAheadFindSea : nsISupports
+{
+ /** Is type ahead find mode currently on? */
+ readonly attribute boolean isActive;
+
+ /** Manually start type ahead find mode */
+ void startNewFind(in nsIDOMWindow aWindow, in boolean aLinksOnly);
+
+ /** Manually cancel type ahead find mode */
+ void cancelFind();
+
+ /**
+ * Will find as you type start automatically if the user
+ * types with the focus on page content other than a textfield or select?
+ * If autostart is off, the startNewFind() method can be used to enact
+ * type ahead find, as well as cmd_findTypeLinks or cmd_findTypeText.
+ */
+ void setAutoStart(in nsIDOMWindow aWindow, in boolean aIsAutoStartOn);
+ boolean getAutoStart(in nsIDOMWindow aWindow);
+
+ /**
+ * Find next recurrence if typeaheadfindsea was the last used find,
+ * as opposed to regular find. Returns false in nsISupportsPRBool if we
+ * don't handle the request.
+ */
+ void findNext(in boolean aReverse, in nsISupportsInterfacePointer aCallerWindowSupports);
+
+ /*
+ * Go back and remove one character from find string
+ * Returns true if backspace used
+ */
+ boolean backOneChar();
+};
+
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js mozilla/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js
--- mozilla.orig/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js 2005-03-26 11:39:29.000000000 -0500
@@ -36,7 +36,7 @@
*
* ***** END LICENSE BLOCK ***** */
-pref("accessibility.typeaheadfind", true);
-pref("accessibility.typeaheadfind.linksonly", true);
-pref("accessibility.typeaheadfind.startlinksonly", false);
-pref("accessibility.typeaheadfind.timeout", 5000);
+pref("accessibility.typeaheadfindsea", true);
+pref("accessibility.typeaheadfindsea.linksonly", true);
+pref("accessibility.typeaheadfindsea.startlinksonly", false);
+pref("accessibility.typeaheadfindsea.timeout", 5000);
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/jar.mn mozilla/extensions/typeaheadfind/resources/jar.mn
--- mozilla.orig/extensions/typeaheadfind/resources/jar.mn 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/resources/jar.mn 2005-03-26 11:39:29.000000000 -0500
@@ -1,5 +1,5 @@
en-US.jar:
- locale/en-US/global/typeaheadfind.properties (locale/en-US/typeaheadfind.properties)
+ locale/en-US/global/typeaheadfindsea.properties (locale/en-US/typeaheadfindsea.properties)
toolkit.jar:
content/global/notfound.wav (content/notfound.wav)
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties
--- mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties 1969-12-31 19:00:00.000000000 -0500
@@ -1,13 +0,0 @@
-openparen = (
-closeparen = )
-textfound = Text found: "
-textnotfound = Text not found: "
-linkfound = Link found: "
-linknotfound = Link not found: "
-closequote = "
-stopfind = Find stopped.
-starttextfind = Starting -- find text as you type
-startlinkfind = Starting -- find links as you type
-repeated = repeated
-nextmatch = - next match
-prevmatch = - previous match
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties
--- mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties 1969-12-31 19:00:00.000000000 -0500
+++ mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties 2005-03-26 11:39:29.000000000 -0500
@@ -0,0 +1,13 @@
+openparen = (
+closeparen = )
+textfound = Text found: "
+textnotfound = Text not found: "
+linkfound = Link found: "
+linknotfound = Link not found: "
+closequote = "
+stopfind = Find stopped.
+starttextfind = Starting -- find text as you type
+startlinkfind = Starting -- find links as you type
+repeated = repeated
+nextmatch = - next match
+prevmatch = - previous match
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/Makefile.in mozilla/extensions/typeaheadfind/src/Makefile.in
--- mozilla.orig/extensions/typeaheadfind/src/Makefile.in 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/src/Makefile.in 2005-03-26 11:39:29.000000000 -0500
@@ -31,15 +31,15 @@
include $(DEPTH)/config/autoconf.mk
-MODULE = typeaheadfind
-LIBRARY_NAME = typeaheadfind
+MODULE = typeaheadfindsea
+LIBRARY_NAME = typeaheadfindsea
ifneq ($(OS_ARCH),WINNT)
-SHORT_LIBNAME = typahead
+SHORT_LIBNAME = typaheadsea
endif
GRE_MODULE = 1
MOZILLA_INTERNAL_API = 1
-PACKAGE_FILE = typeaheadfind.pkg
+PACKAGE_FILE = typeaheadfindsea.pkg
REQUIRES = appcomps \
embedcomponents \
@@ -66,7 +66,7 @@
EXPORT_LIBRARY = 1
IS_COMPONENT = 1
-MODULE_NAME = nsTypeAheadFind
+MODULE_NAME = nsTypeAheadFindSea
CPPSRCS = \
nsTypeAheadFind.cpp \
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.cpp mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp
--- mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.cpp 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp 2005-03-26 11:39:29.000000000 -0500
@@ -114,8 +114,8 @@
////////////////////////////////////////////////////////////////////////
-NS_INTERFACE_MAP_BEGIN(nsTypeAheadFind)
- NS_INTERFACE_MAP_ENTRY(nsITypeAheadFind)
+NS_INTERFACE_MAP_BEGIN(nsTypeAheadFindSea)
+ NS_INTERFACE_MAP_ENTRY(nsITypeAheadFindSea)
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
NS_INTERFACE_MAP_ENTRY(nsITimerCallback)
NS_INTERFACE_MAP_ENTRY(nsIScrollPositionListener)
@@ -128,8 +128,8 @@
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener, nsIDOMKeyListener)
NS_INTERFACE_MAP_END
-NS_IMPL_ADDREF(nsTypeAheadFind)
-NS_IMPL_RELEASE(nsTypeAheadFind)
+NS_IMPL_ADDREF(nsTypeAheadFindSea)
+NS_IMPL_RELEASE(nsTypeAheadFindSea)
static NS_DEFINE_IID(kRangeCID, NS_RANGE_CID);
static NS_DEFINE_CID(kStringBundleServiceCID, NS_STRINGBUNDLESERVICE_CID);
@@ -138,11 +138,11 @@
#define NS_FIND_CONTRACTID "@mozilla.org/embedcomp/rangefind;1"
-nsTypeAheadFind* nsTypeAheadFind::sInstance = nsnull;
-PRInt32 nsTypeAheadFind::sAccelKey = -1; // magic value of -1 when unitialized
+nsTypeAheadFindSea* nsTypeAheadFindSea::sInstance = nsnull;
+PRInt32 nsTypeAheadFindSea::sAccelKey = -1; // magic value of -1 when unitialized
-nsTypeAheadFind::nsTypeAheadFind():
+nsTypeAheadFindSea::nsTypeAheadFindSea():
mIsFindAllowedInWindow(PR_FALSE), mAutoStartPref(PR_FALSE),
mLinksOnlyPref(PR_FALSE), mStartLinksOnlyPref(PR_FALSE),
mLinksOnly(PR_FALSE), mIsTypeAheadOn(PR_FALSE), mCaretBrowsingOn(PR_FALSE),
@@ -161,25 +161,25 @@
static PRInt32 gInstanceCount;
++gInstanceCount;
NS_ASSERTION(gInstanceCount == 1,
- "There should be only 1 instance of nsTypeAheadFind!");
+ "There should be only 1 instance of nsTypeAheadFindSea!");
#endif
}
-nsTypeAheadFind::~nsTypeAheadFind()
+nsTypeAheadFindSea::~nsTypeAheadFindSea()
{
RemoveDocListeners();
mTimer = nsnull;
nsCOMPtr<nsIPrefBranch2> prefInternal(do_GetService(NS_PREFSERVICE_CONTRACTID));
if (prefInternal) {
- prefInternal->RemoveObserver("accessibility.typeaheadfind", this);
+ prefInternal->RemoveObserver("accessibility.typeaheadfindsea", this);
prefInternal->RemoveObserver("accessibility.browsewithcaret", this);
}
}
nsresult
-nsTypeAheadFind::Init()
+nsTypeAheadFindSea::Init()
{
nsresult rv = NS_NewISupportsArray(getter_AddRefs(mManualFindWindows));
NS_ENSURE_SUCCESS(rv, rv);
@@ -196,7 +196,7 @@
}
// ----------- Listen to prefs ------------------
- rv = prefInternal->AddObserver("accessibility.typeaheadfind", this, PR_FALSE);
+ rv = prefInternal->AddObserver("accessibility.typeaheadfindsea", this, PR_FALSE);
NS_ENSURE_SUCCESS(rv, rv);
rv = prefInternal->AddObserver("accessibility.browsewithcaret", this, PR_FALSE);
@@ -217,11 +217,11 @@
return rv;
}
-nsTypeAheadFind *
-nsTypeAheadFind::GetInstance()
+nsTypeAheadFindSea *
+nsTypeAheadFindSea::GetInstance()
{
if (!sInstance) {
- sInstance = new nsTypeAheadFind();
+ sInstance = new nsTypeAheadFindSea();
if (!sInstance)
return nsnull;
@@ -241,14 +241,14 @@
void
-nsTypeAheadFind::ReleaseInstance()
+nsTypeAheadFindSea::ReleaseInstance()
{
NS_IF_RELEASE(sInstance);
}
void
-nsTypeAheadFind::Shutdown()
+nsTypeAheadFindSea::Shutdown()
{
// Application shutdown
mTimer = nsnull;
@@ -264,14 +264,14 @@
// ------- Pref Callbacks (2) ---------------
nsresult
-nsTypeAheadFind::PrefsReset()
+nsTypeAheadFindSea::PrefsReset()
{
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
NS_ENSURE_TRUE(prefBranch, NS_ERROR_FAILURE);
PRBool wasTypeAheadOn = mIsTypeAheadOn;
- prefBranch->GetBoolPref("accessibility.typeaheadfind", &mIsTypeAheadOn);
+ prefBranch->GetBoolPref("accessibility.typeaheadfindsea", &mIsTypeAheadOn);
if (mIsTypeAheadOn != wasTypeAheadOn) {
if (!mIsTypeAheadOn) {
@@ -291,7 +291,7 @@
do_GetService(kStringBundleServiceCID);
if (stringBundleService)
- stringBundleService->CreateBundle(TYPEAHEADFIND_BUNDLE_URL,
+ stringBundleService->CreateBundle(TYPEAHEADFINDSEA_BUNDLE_URL,
getter_AddRefs(mStringBundle));
// Observe find again commands. We'll handle them if we were the last find
@@ -306,34 +306,34 @@
}
PRBool oldAutoStartPref = mAutoStartPref;
- prefBranch->GetBoolPref("accessibility.typeaheadfind.autostart",
+ prefBranch->GetBoolPref("accessibility.typeaheadfindsea.autostart",
&mAutoStartPref);
if (mAutoStartPref != oldAutoStartPref) {
ResetGlobalAutoStart(mAutoStartPref);
}
- prefBranch->GetBoolPref("accessibility.typeaheadfind.linksonly",
+ prefBranch->GetBoolPref("accessibility.typeaheadfindsea.linksonly",
&mLinksOnlyPref);
- prefBranch->GetBoolPref("accessibility.typeaheadfind.startlinksonly",
+ prefBranch->GetBoolPref("accessibility.typeaheadfindsea.startlinksonly",
&mStartLinksOnlyPref);
PRBool isSoundEnabled = PR_TRUE;
- prefBranch->GetBoolPref("accessibility.typeaheadfind.enablesound",
+ prefBranch->GetBoolPref("accessibility.typeaheadfindsea.enablesound",
&isSoundEnabled);
nsXPIDLCString soundStr;
if (isSoundEnabled) {
- prefBranch->GetCharPref("accessibility.typeaheadfind.soundURL",
+ prefBranch->GetCharPref("accessibility.typeaheadfindsea.soundURL",
getter_Copies(soundStr));
}
mNotFoundSoundURL = soundStr;
PRBool isTimeoutEnabled = PR_FALSE;
- prefBranch->GetBoolPref("accessibility.typeaheadfind.enabletimeout",
+ prefBranch->GetBoolPref("accessibility.typeaheadfindsea.enabletimeout",
&isTimeoutEnabled);
PRInt32 timeoutLength = 0;
if (isTimeoutEnabled) {
- prefBranch->GetIntPref("accessibility.typeaheadfind.timeout",
+ prefBranch->GetIntPref("accessibility.typeaheadfindsea.timeout",
&timeoutLength);
}
mTimeoutLength = timeoutLength;
@@ -349,7 +349,7 @@
// ------- nsITimer Methods (1) ---------------
NS_IMETHODIMP
-nsTypeAheadFind::Notify(nsITimer *timer)
+nsTypeAheadFindSea::Notify(nsITimer *timer)
{
CancelFind();
return NS_OK;
@@ -358,7 +358,7 @@
// ----------- nsIObserver Methods (1) -------------------
NS_IMETHODIMP
-nsTypeAheadFind::Observe(nsISupports *aSubject, const char *aTopic,
+nsTypeAheadFindSea::Observe(nsISupports *aSubject, const char *aTopic,
const PRUnichar *aData)
{
PRBool isOpening;
@@ -476,7 +476,7 @@
nsresult
-nsTypeAheadFind::UseInWindow(nsIDOMWindow *aDOMWin)
+nsTypeAheadFindSea::UseInWindow(nsIDOMWindow *aDOMWin)
{
NS_ENSURE_ARG_POINTER(aDOMWin);
@@ -529,7 +529,7 @@
// ------- nsIDOMEventListener Methods (1) ---------------
NS_IMETHODIMP
-nsTypeAheadFind::HandleEvent(nsIDOMEvent* aEvent)
+nsTypeAheadFindSea::HandleEvent(nsIDOMEvent* aEvent)
{
nsAutoString eventType;
aEvent->GetType(eventType);
@@ -589,21 +589,21 @@
// ------- nsIDOMKeyListener Methods (3) ---------------
NS_IMETHODIMP
-nsTypeAheadFind::KeyDown(nsIDOMEvent* aEvent)
+nsTypeAheadFindSea::KeyDown(nsIDOMEvent* aEvent)
{
return NS_OK;
}
NS_IMETHODIMP
-nsTypeAheadFind::KeyUp(nsIDOMEvent* aEvent)
+nsTypeAheadFindSea::KeyUp(nsIDOMEvent* aEvent)
{
return NS_OK;
}
NS_IMETHODIMP
-nsTypeAheadFind::KeyPress(nsIDOMEvent* aEvent)
+nsTypeAheadFindSea::KeyPress(nsIDOMEvent* aEvent)
{
if (!mIsTypeAheadOn || mIsMenuBarActive || mIsMenuPopupActive) {
return NS_OK;
@@ -733,7 +733,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::BackOneChar(PRBool *aIsBackspaceUsed)
+nsTypeAheadFindSea::BackOneChar(PRBool *aIsBackspaceUsed)
{
if (!mFocusedDocSelection) {
*aIsBackspaceUsed = PR_FALSE;
@@ -863,7 +863,7 @@
nsresult
-nsTypeAheadFind::HandleChar(PRUnichar aChar)
+nsTypeAheadFindSea::HandleChar(PRUnichar aChar)
{
// Add a printable char to mTypeAheadBuffer, then search for buffer contents
@@ -1039,7 +1039,7 @@
void
-nsTypeAheadFind::SaveFind()
+nsTypeAheadFindSea::SaveFind()
{
// Store find string for find-next
mFindNextBuffer = mTypeAheadBuffer;
@@ -1060,14 +1060,14 @@
mFindService->SetSearchString(mFindNextBuffer);
}
- // --- If accessibility.typeaheadfind.timeout is set,
+ // --- If accessibility.typeaheadfindsea.timeout is set,
// cancel find after specified # milliseconds ---
StartTimeout();
}
void
-nsTypeAheadFind::PlayNotFoundSound()
+nsTypeAheadFindSea::PlayNotFoundSound()
{
if (mNotFoundSoundURL.IsEmpty()) // no sound
return;
@@ -1097,7 +1097,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::HandleText(nsIDOMEvent* aTextEvent)
+nsTypeAheadFindSea::HandleText(nsIDOMEvent* aTextEvent)
{
// This is called multiple times in the middle of an
// IME composition
@@ -1145,7 +1145,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::HandleStartComposition(nsIDOMEvent* aCompositionEvent)
+nsTypeAheadFindSea::HandleStartComposition(nsIDOMEvent* aCompositionEvent)
{
// This is called once at the start of an IME composition
@@ -1167,7 +1167,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::HandleEndComposition(nsIDOMEvent* aCompositionEvent)
+nsTypeAheadFindSea::HandleEndComposition(nsIDOMEvent* aCompositionEvent)
{
// This is called once at the end of an IME composition
@@ -1198,28 +1198,28 @@
NS_IMETHODIMP
-nsTypeAheadFind::HandleQueryComposition(nsIDOMEvent* aCompositionEvent)
+nsTypeAheadFindSea::HandleQueryComposition(nsIDOMEvent* aCompositionEvent)
{
return NS_OK;
}
NS_IMETHODIMP
-nsTypeAheadFind::HandleQueryReconversion(nsIDOMEvent* aCompositionEvent)
+nsTypeAheadFindSea::HandleQueryReconversion(nsIDOMEvent* aCompositionEvent)
{
return NS_OK;
}
NS_IMETHODIMP
-nsTypeAheadFind::HandleQueryCaretRect(nsIDOMEvent* aCompositionEvent)
+nsTypeAheadFindSea::HandleQueryCaretRect(nsIDOMEvent* aCompositionEvent)
{
return NS_OK;
}
nsresult
-nsTypeAheadFind::FindItNow(nsIPresShell *aPresShell,
+nsTypeAheadFindSea::FindItNow(nsIPresShell *aPresShell,
PRBool aIsRepeatingSameChar, PRBool aIsLinksOnly,
PRBool aIsFirstVisiblePreferred)
{
@@ -1241,7 +1241,7 @@
nsCOMPtr<nsISupports> startingContainer = presContext->GetContainer();
nsCOMPtr<nsIDocShellTreeItem> treeItem(do_QueryInterface(startingContainer));
- NS_ASSERTION(treeItem, "Bug 175321 Crashes with Type Ahead Find [@ nsTypeAheadFind::FindItNow]");
+ NS_ASSERTION(treeItem, "Bug 175321 Crashes with Type Ahead Find [@ nsTypeAheadFindSea::FindItNow]");
if (!treeItem) {
return NS_ERROR_FAILURE;
}
@@ -1465,7 +1465,7 @@
nsresult
-nsTypeAheadFind::GetSearchContainers(nsISupports *aContainer,
+nsTypeAheadFindSea::GetSearchContainers(nsISupports *aContainer,
PRBool aIsRepeatingSameChar,
PRBool aIsFirstVisiblePreferred,
PRBool aCanUseDocSelection,
@@ -1573,7 +1573,7 @@
void
-nsTypeAheadFind::RangeStartsInsideLink(nsIDOMRange *aRange,
+nsTypeAheadFindSea::RangeStartsInsideLink(nsIDOMRange *aRange,
nsIPresShell *aPresShell,
PRBool *aIsInsideLink,
PRBool *aIsStartingLink)
@@ -1680,7 +1680,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::ScrollPositionWillChange(nsIScrollableView *aView,
+nsTypeAheadFindSea::ScrollPositionWillChange(nsIScrollableView *aView,
nscoord aX, nscoord aY)
{
return NS_OK;
@@ -1688,7 +1688,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::ScrollPositionDidChange(nsIScrollableView *aScrollableView,
+nsTypeAheadFindSea::ScrollPositionDidChange(nsIScrollableView *aScrollableView,
nscoord aX, nscoord aY)
{
if (!mIsFindingText)
@@ -1699,7 +1699,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::NotifySelectionChanged(nsIDOMDocument *aDoc,
+nsTypeAheadFindSea::NotifySelectionChanged(nsIDOMDocument *aDoc,
nsISelection *aSel, PRInt16 aReason)
{
if (!mIsFindingText) {
@@ -1716,10 +1716,10 @@
}
-// ---------------- nsITypeAheadFind --------------------
+// ---------------- nsITypeAheadFindSea --------------------
NS_IMETHODIMP
-nsTypeAheadFind::FindNext(PRBool aFindBackwards, nsISupportsInterfacePointer *aCallerWindowSupports)
+nsTypeAheadFindSea::FindNext(PRBool aFindBackwards, nsISupportsInterfacePointer *aCallerWindowSupports)
{
NS_ENSURE_TRUE(aCallerWindowSupports, NS_ERROR_FAILURE);
@@ -1731,7 +1731,7 @@
return NS_OK;
}
- // Compare the top level content pres shell of typeaheadfind
+ // Compare the top level content pres shell of typeaheadfindsea
// with the top level content pres shell window where find next is happening
// If they're different, exit so that webbrowswerfind can handle FindNext()
@@ -1764,7 +1764,7 @@
NS_ENSURE_TRUE(callerPresShell, NS_OK);
if (callerPresShell != typeAheadPresShell) {
- // This means typeaheadfind is active in a different window or doc
+ // This means typeaheadfindsea is active in a different window or doc
// So it's not appropriate to find next for the current window
mFindNextBuffer.Truncate();
return NS_OK;
@@ -1782,7 +1782,7 @@
webBrowserFind->GetSearchString(getter_Copies(webBrowserFindString));
if (!webBrowserFindString.Equals(mFindNextBuffer)) {
// If they're not equal, then the find dialog was used last,
- // not typeaheadfind. Typeaheadfind applies to the last find,
+ // not typeaheadfindsea. Typeaheadfind applies to the last find,
// so we should let nsIWebBrowserFind::FindNext() do it.
mFindNextBuffer.Truncate();
return NS_OK;
@@ -1832,7 +1832,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::GetIsActive(PRBool *aIsActive)
+nsTypeAheadFindSea::GetIsActive(PRBool *aIsActive)
{
*aIsActive = mLinksOnlyManuallySet || !mTypeAheadBuffer.IsEmpty();
@@ -1845,7 +1845,7 @@
*/
NS_IMETHODIMP
-nsTypeAheadFind::StartNewFind(nsIDOMWindow *aWindow, PRBool aLinksOnly)
+nsTypeAheadFindSea::StartNewFind(nsIDOMWindow *aWindow, PRBool aLinksOnly)
{
if (!mFind || !mIsTypeAheadOn || !aWindow)
return NS_ERROR_FAILURE; // Type Ahead Find not correctly initialized
@@ -1878,7 +1878,7 @@
}
void
-nsTypeAheadFind::ResetGlobalAutoStart(PRBool aAutoStart)
+nsTypeAheadFindSea::ResetGlobalAutoStart(PRBool aAutoStart)
{
// Enumerate through the current top level windows
// and either attach or remove window listeners
@@ -1916,7 +1916,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::SetAutoStart(nsIDOMWindow *aDOMWin, PRBool aAutoStartOn)
+nsTypeAheadFindSea::SetAutoStart(nsIDOMWindow *aDOMWin, PRBool aAutoStartOn)
{
if (!aDOMWin) {
return NS_ERROR_FAILURE;
@@ -1946,7 +1946,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::GetAutoStart(nsIDOMWindow *aDOMWin, PRBool *aIsAutoStartOn)
+nsTypeAheadFindSea::GetAutoStart(nsIDOMWindow *aDOMWin, PRBool *aIsAutoStartOn)
{
*aIsAutoStartOn = PR_FALSE;
@@ -2014,7 +2014,7 @@
NS_IMETHODIMP
-nsTypeAheadFind::CancelFind()
+nsTypeAheadFindSea::CancelFind()
{
// Stop current find if:
// 1. Escape pressed
@@ -2070,7 +2070,7 @@
// ------- Helper Methods ---------------
void
-nsTypeAheadFind::GetTopContentPresShell(nsIDocShellTreeItem *aDocShellTreeItem,
+nsTypeAheadFindSea::GetTopContentPresShell(nsIDocShellTreeItem *aDocShellTreeItem,
nsIPresShell **aPresShell)
{
*aPresShell = nsnull;
@@ -2086,7 +2086,7 @@
}
void
-nsTypeAheadFind::GetStartWindow(nsIDOMWindow *aWindow, nsIDOMWindow **aStartWindow)
+nsTypeAheadFindSea::GetStartWindow(nsIDOMWindow *aWindow, nsIDOMWindow **aStartWindow)
{
// Return the root ancestor content window of aWindow
@@ -2118,7 +2118,7 @@
}
nsresult
-nsTypeAheadFind::GetWebBrowserFind(nsIDOMWindow *aWin,
+nsTypeAheadFindSea::GetWebBrowserFind(nsIDOMWindow *aWin,
nsIWebBrowserFind **aWebBrowserFind)
{
NS_ENSURE_ARG_POINTER(aWin);
@@ -2143,7 +2143,7 @@
void
-nsTypeAheadFind::StartTimeout()
+nsTypeAheadFindSea::StartTimeout()
{
if (mTimeoutLength) {
if (!mTimer) {
@@ -2159,7 +2159,7 @@
}
void
-nsTypeAheadFind::SetSelectionLook(nsIPresShell *aPresShell,
+nsTypeAheadFindSea::SetSelectionLook(nsIPresShell *aPresShell,
PRBool aChangeColor,
PRBool aEnabled)
{
@@ -2167,8 +2167,8 @@
return;
// Show caret when type ahead find is on
- // Also paint selection bright (typeaheadfind on) or normal
- // (typeaheadfind off)
+ // Also paint selection bright (typeaheadfindsea on) or normal
+ // (typeaheadfindsea off)
if (aChangeColor) {
mFocusedDocSelCon->SetDisplaySelection(nsISelectionController::SELECTION_ATTENTION);
@@ -2211,7 +2211,7 @@
void
-nsTypeAheadFind::RemoveDocListeners()
+nsTypeAheadFindSea::RemoveDocListeners()
{
nsCOMPtr<nsIPresShell> presShell(GetPresShell());
nsIViewManager* vm = nsnull;
@@ -2245,7 +2245,7 @@
void
-nsTypeAheadFind::AttachDocListeners(nsIPresShell *aPresShell)
+nsTypeAheadFindSea::AttachDocListeners(nsIPresShell *aPresShell)
{
if (!aPresShell) {
return;
@@ -2275,7 +2275,7 @@
void
-nsTypeAheadFind::RemoveWindowListeners(nsIDOMWindow *aDOMWin)
+nsTypeAheadFindSea::RemoveWindowListeners(nsIDOMWindow *aDOMWin)
{
nsCOMPtr<nsIDOMEventTarget> chromeEventHandler;
GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler));
@@ -2332,7 +2332,7 @@
void
-nsTypeAheadFind::AttachWindowListeners(nsIDOMWindow *aDOMWin)
+nsTypeAheadFindSea::AttachWindowListeners(nsIDOMWindow *aDOMWin)
{
nsCOMPtr<nsIDOMEventTarget> chromeEventHandler;
GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler));
@@ -2385,7 +2385,7 @@
void
-nsTypeAheadFind::GetChromeEventHandler(nsIDOMWindow *aDOMWin,
+nsTypeAheadFindSea::GetChromeEventHandler(nsIDOMWindow *aDOMWin,
nsIDOMEventTarget **aChromeTarget)
{
nsCOMPtr<nsPIDOMWindow> privateDOMWindow(do_QueryInterface(aDOMWin));
@@ -2401,7 +2401,7 @@
}
PRBool
-nsTypeAheadFind::IsTargetContentOkay(nsIContent *aContent)
+nsTypeAheadFindSea::IsTargetContentOkay(nsIContent *aContent)
{
if (!aContent) {
return PR_FALSE;
@@ -2439,7 +2439,7 @@
nsresult
-nsTypeAheadFind::GetTargetIfTypeAheadOkay(nsIDOMEvent *aEvent,
+nsTypeAheadFindSea::GetTargetIfTypeAheadOkay(nsIDOMEvent *aEvent,
nsIContent **aTargetContent,
nsIPresShell **aTargetPresShell)
{
@@ -2522,7 +2522,7 @@
void
-nsTypeAheadFind::GetSelection(nsIPresShell *aPresShell,
+nsTypeAheadFindSea::GetSelection(nsIPresShell *aPresShell,
nsISelectionController **aSelCon,
nsISelection **aDOMSel)
{
@@ -2544,7 +2544,7 @@
PRBool
-nsTypeAheadFind::IsRangeVisible(nsIPresShell *aPresShell,
+nsTypeAheadFindSea::IsRangeVisible(nsIPresShell *aPresShell,
nsPresContext *aPresContext,
nsIDOMRange *aRange, PRBool aMustBeInViewPort,
PRBool aGetTopVisibleLeaf,
@@ -2698,7 +2698,7 @@
nsresult
-nsTypeAheadFind::GetTranslatedString(const nsAString& aKey,
+nsTypeAheadFindSea::GetTranslatedString(const nsAString& aKey,
nsAString& aStringOut)
{
nsXPIDLString xsValue;
@@ -2716,7 +2716,7 @@
void
-nsTypeAheadFind::DisplayStatus(PRBool aSuccess, nsIContent *aFocusedContent,
+nsTypeAheadFindSea::DisplayStatus(PRBool aSuccess, nsIContent *aFocusedContent,
PRBool aClearStatus, const PRUnichar *aText)
{
// pres shell -> pres context -> container -> tree item ->
@@ -2863,7 +2863,7 @@
// Make sure we're not focused on a text field, listbox
// or other form control that needs typeahead keystrokes
if (focusedContent) {
- *aResult = nsTypeAheadFind::IsTargetContentOkay(focusedContent);
+ *aResult = nsTypeAheadFindSea::IsTargetContentOkay(focusedContent);
return NS_OK;
}
@@ -2928,8 +2928,8 @@
EnsureContentWindow(domWinInternal, getter_AddRefs(startContentWin));
NS_ENSURE_TRUE(startContentWin, NS_ERROR_FAILURE);
- nsCOMPtr<nsITypeAheadFind> typeAhead =
- do_GetService(NS_TYPEAHEADFIND_CONTRACTID);
+ nsCOMPtr<nsITypeAheadFindSea> typeAhead =
+ do_GetService(NS_TYPEAHEADFINDSEA_CONTRACTID);
NS_ENSURE_TRUE(typeAhead, NS_ERROR_FAILURE);
return typeAhead->StartNewFind(startContentWin, isLinkSearch);
@@ -3013,7 +3013,7 @@
}
already_AddRefed<nsIPresShell>
-nsTypeAheadFind::GetPresShell()
+nsTypeAheadFindSea::GetPresShell()
{
if (!mFocusedWeakShell)
return nsnull;
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.h mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.h
--- mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.h 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.h 2005-03-26 11:39:29.000000000 -0500
@@ -62,13 +62,13 @@
#include "nsIDOMRange.h"
#include "nsIDOMWindow.h"
#include "nsIDocShellTreeItem.h"
-#include "nsITypeAheadFind.h"
+#include "nsITypeAheadFindSea.h"
#include "nsIStringBundle.h"
#include "nsISupportsArray.h"
#include "nsISound.h"
-#define TYPEAHEADFIND_BUNDLE_URL \
- "chrome://global/locale/typeaheadfind.properties"
+#define TYPEAHEADFINDSEA_BUNDLE_URL \
+ "chrome://global/locale/typeaheadfindsea.properties"
#define TYPEAHEADFIND_NOTFOUND_WAV_URL \
"chrome://global/content/notfound.wav"
@@ -82,7 +82,7 @@
const int kMaxBadCharsBeforeCancel = 3;
-class nsTypeAheadFind : public nsITypeAheadFind,
+class nsTypeAheadFindSea : public nsITypeAheadFindSea,
public nsIDOMKeyListener,
public nsIDOMTextListener,
public nsIDOMCompositionListener,
@@ -93,13 +93,13 @@
public nsSupportsWeakReference
{
public:
- nsTypeAheadFind();
- virtual ~nsTypeAheadFind();
+ nsTypeAheadFindSea();
+ virtual ~nsTypeAheadFindSea();
- NS_DEFINE_STATIC_CID_ACCESSOR(NS_TYPEAHEADFIND_CID);
+ NS_DEFINE_STATIC_CID_ACCESSOR(NS_TYPEAHEADFINDSEA_CID);
NS_DECL_ISUPPORTS
- NS_DECL_NSITYPEAHEADFIND
+ NS_DECL_NSITYPEAHEADFINDSEA
NS_DECL_NSIOBSERVER
NS_DECL_NSIDOMEVENTLISTENER
NS_DECL_NSISELECTIONLISTENER
@@ -127,7 +127,7 @@
// ----- nsITimerCallback -----------------------------
NS_DECL_NSITIMERCALLBACK
- static nsTypeAheadFind *GetInstance();
+ static nsTypeAheadFindSea *GetInstance();
static void ReleaseInstance(void);
static PRBool IsTargetContentOkay(nsIContent *aContent);
@@ -185,7 +185,7 @@
nsresult GetTranslatedString(const nsAString& aKey, nsAString& aStringOut);
// Used by GetInstance and ReleaseInstance
- static nsTypeAheadFind *sInstance;
+ static nsTypeAheadFindSea *sInstance;
// Current find state
nsString mTypeAheadBuffer;
@@ -196,7 +196,7 @@
// PRBool's are used instead of PRPackedBool's where the address of the
// boolean variable is getting passed into a method. For example:
- // GetBoolPref("accessibility.typeaheadfind.linksonly", &mLinksOnlyPref);
+ // GetBoolPref("accessibility.typeaheadfindsea.linksonly", &mLinksOnlyPref);
PRBool mIsFindAllowedInWindow;
PRBool mAutoStartPref;
PRBool mLinksOnlyPref;
@@ -251,7 +251,7 @@
nsCOMPtr<nsIDOMWindow> mFocusedWindow;
nsCOMPtr<nsIWeakReference> mFocusedWeakShell;
- // Windows where typeaheadfind doesn't auto start as the user types
+ // Windows where typeaheadfindsea doesn't auto start as the user types
nsCOMPtr<nsISupportsArray> mManualFindWindows;
};
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp mozilla/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp
--- mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp 2005-03-26 11:39:40.000000000 -0500
@@ -55,7 +55,7 @@
// This function is called at component registration time
static NS_METHOD
-nsTypeAheadFindRegistrationProc(nsIComponentManager *aCompMgr, nsIFile *aPath,
+nsTypeAheadFindSeaRegistrationProc(nsIComponentManager *aCompMgr, nsIFile *aPath,
const char *registryLocation,
const char *componentType,
const nsModuleComponentInfo *info)
@@ -64,7 +64,7 @@
// an application component. This makes sure that we're
// initialized on application startup.
- // Register nsTypeAheadFind to be instantiated on startup.
+ // Register nsTypeAheadFindSea to be instantiated on startup.
// XXX This is needed on linux, but for some reason not needed on win32.
nsresult rv;
nsCOMPtr<nsICategoryManager> categoryManager =
@@ -74,7 +74,7 @@
rv = categoryManager->AddCategoryEntry(APPSTARTUP_CATEGORY,
- "Type Ahead Find",
+ "Type Ahead Find Sea",
"service,"
- NS_TYPEAHEADFIND_CONTRACTID,
+ NS_TYPEAHEADFINDSEA_CONTRACTID,
PR_TRUE, PR_TRUE, nsnull);
}
@@ -82,22 +82,22 @@
}
-NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsTypeAheadFind,
- nsTypeAheadFind::GetInstance)
+NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsTypeAheadFindSea,
+ nsTypeAheadFindSea::GetInstance)
static void PR_CALLBACK
-TypeAheadFindModuleDtor(nsIModule* self)
+TypeAheadFindSeaModuleDtor(nsIModule* self)
{
- nsTypeAheadFind::ReleaseInstance();
+ nsTypeAheadFindSea::ReleaseInstance();
}
static const nsModuleComponentInfo components[] =
{
- { "TypeAheadFind Component", NS_TYPEAHEADFIND_CID,
- NS_TYPEAHEADFIND_CONTRACTID, nsTypeAheadFindConstructor,
- nsTypeAheadFindRegistrationProc, nsnull // Unregistration proc
+ { "TypeAheadFindSea Component", NS_TYPEAHEADFINDSEA_CID,
+ NS_TYPEAHEADFINDSEA_CONTRACTID, nsTypeAheadFindSeaConstructor,
+ nsTypeAheadFindSeaRegistrationProc, nsnull // Unregistration proc
}
};
-NS_IMPL_NSGETMODULE_WITH_DTOR(nsTypeAheadFind, components,
- TypeAheadFindModuleDtor)
+NS_IMPL_NSGETMODULE_WITH_DTOR(nsTypeAheadFindSea, components,
+ TypeAheadFindSeaModuleDtor)
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/typeaheadfind.pkg mozilla/extensions/typeaheadfind/src/typeaheadfind.pkg
--- mozilla.orig/extensions/typeaheadfind/src/typeaheadfind.pkg 2005-03-26 00:12:02.000000000 -0500
+++ mozilla/extensions/typeaheadfind/src/typeaheadfind.pkg 1969-12-31 19:00:00.000000000 -0500
@@ -1,9 +0,0 @@
-# why not ship this with GRE/embedding, if we're building it?
-
-[xpfe-browser browser]
-#if SHARED_LIBRARY
-dist/bin/components/@SHARED_LIBRARY@
-#else
-!staticcomp @LIBRARY@ @MODULE_NAME@
-#endif
-!xpt dist/bin/components/typeaheadfind.xpt
diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/typeaheadfindsea.pkg mozilla/extensions/typeaheadfind/src/typeaheadfindsea.pkg
--- mozilla.orig/extensions/typeaheadfind/src/typeaheadfindsea.pkg 1969-12-31 19:00:00.000000000 -0500
+++ mozilla/extensions/typeaheadfind/src/typeaheadfindsea.pkg 2005-03-26 11:39:29.000000000 -0500
@@ -0,0 +1,9 @@
+# why not ship this with GRE/embedding, if we're building it?
+
+[xpfe-browser browser]
+#if SHARED_LIBRARY
+dist/bin/components/@SHARED_LIBRARY@
+#else
+!staticcomp @LIBRARY@ @MODULE_NAME@
+#endif
+!xpt dist/bin/components/typeaheadfindsea.xpt
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/063_firefox-rpath-3.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/063_firefox-rpath-3.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/063_firefox-rpath-3.patch?rev=1.1&content-type=text/plain
Index: 063_firefox-rpath-3.patch
===================================================================
Embed library search paths. bug #100597
--- mozilla/config/rules.mk.orig 2006-07-07 06:13:36.000000000 +0200
+++ mozilla/config/rules.mk 2006-07-19 13:22:04.000000000 +0200
@@ -510,7 +510,12 @@
#
ifeq ($(OS_ARCH),Linux)
ifdef IS_COMPONENT
+DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
+OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
+else
+DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN'
+OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN'
endif
endif
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/090_xul-gcc4.3.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/090_xul-gcc4.3.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/090_xul-gcc4.3.patch?rev=1.1&content-type=text/plain
Index: 090_xul-gcc4.3.patch
===================================================================
http://lists.opensuse.org/opensuse-commit/2007-11/msg00823.html
diff -Naur mozilla-orig/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h mozilla/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h
--- mozilla-orig/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 2006-05-20 11:20:48.000000000 -0600
+++ mozilla/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 2008-01-06 22:13:39.000000000 -0600
@@ -39,8 +39,10 @@
#include "imgIEncoder.h"
#ifdef MOZILLA_1_8_BRANCH
#define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH
+#ifndef NS_DECL_IMGIENCODER
#define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH
#endif
+#endif
// needed for JPEG library
#include <stdio.h>
@@ -69,6 +71,14 @@
nsJPEGEncoder();
+ NS_IMETHOD InitFromData(const PRUint8* aData,
+ PRUint32 aLength, // (unused, req'd by JS)
+ PRUint32 aWidth,
+ PRUint32 aHeight,
+ PRUint32 aStride,
+ PRUint32 aInputFormat,
+ const nsAString& aOutputOptions);
+
private:
~nsJPEGEncoder();
diff -Naur mozilla-orig/modules/libpr0n/encoders/png/nsPNGEncoder.h mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.h
--- mozilla-orig/modules/libpr0n/encoders/png/nsPNGEncoder.h 2006-05-20 11:20:49.000000000 -0600
+++ mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.h 2008-01-06 22:11:36.000000000 -0600
@@ -38,8 +38,10 @@
#include "imgIEncoder.h"
#ifdef MOZILLA_1_8_BRANCH
#define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH
+#ifndef NS_DECL_IMGIENCODER
#define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH
#endif
+#endif
#include <png.h>
@@ -63,6 +65,14 @@
nsPNGEncoder();
+ NS_IMETHOD InitFromData(const PRUint8* aData,
+ PRUint32 aLength, // (unused, req'd by JS)
+ PRUint32 aWidth,
+ PRUint32 aHeight,
+ PRUint32 aStride,
+ PRUint32 aInputFormat,
+ const nsAString& aOutputOptions);
+
private:
~nsPNGEncoder();
diff -Naur mozilla-orig/modules/libpr0n/public/imgIEncoder.idl mozilla/modules/libpr0n/public/imgIEncoder.idl
--- mozilla-orig/modules/libpr0n/public/imgIEncoder.idl 2006-05-20 11:20:49.000000000 -0600
+++ mozilla/modules/libpr0n/public/imgIEncoder.idl 2008-01-06 22:15:40.000000000 -0600
@@ -96,6 +96,6 @@
[scriptable, uuid(CCC5B3AD-3E67-4e3d-97E1-B06B2E96FEF8)]
interface imgIEncoder : nsISupports
{
- void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile);
+ /* void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile); */
};
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/300_firefox-1.5-makeopts.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/300_firefox-1.5-makeopts.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/300_firefox-1.5-makeopts.patch?rev=1.1&content-type=text/plain
Index: 300_firefox-1.5-makeopts.patch
===================================================================
--- Makefile.in-orig 2006-01-31 14:25:38.508639384 -0600
+++ Makefile.in 2006-01-31 14:25:52.018585560 -0600
@@ -58,6 +58,7 @@
$(MAKE) -C config export
$(MAKE) nspr
$(MAKE) ldap
+ $(MAKE) -C parser/expat
$(MAKE) tier_0
$(MAKE) tier_1
$(MAKE) tier_2
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/301_reply-to-list.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/301_reply-to-list.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/301_reply-to-list.patch?rev=1.1&content-type=text/plain
Index: 301_reply-to-list.patch
===================================================================
diff -urN mozillaorig/mail/base/content/mailCommands.js mozilla/mail/base/content/mailCommands.js
--- mozillaorig/mail/base/content/mailCommands.js 2007-02-07 15:24:40.000000000 +0100
+++ mozilla/mail/base/content/mailCommands.js 2007-02-07 16:18:59.000000000 +0100
@@ -271,8 +271,9 @@
var messageIDScheme = messageID ? messageID.split(":")[0] : "";
if (messageIDScheme && (messageIDScheme == 'http' || messageIDScheme == 'https') && "openComposeWindowForRSSArticle" in this)
openComposeWindowForRSSArticle(messageID, hdr, type);
- else if (type == msgComposeType.Reply ||
+ else if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
+ type == msgComposeType.ReplyToList ||
type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSender ||
diff -urN mozillaorig/mailnews/base/resources/content/mailCommands.js mozilla/mailnews/base/resources/content/mailCommands.js
--- mozillaorig/mailnews/base/resources/content/mailCommands.js 2007-02-07 15:26:44.000000000 +0100
+++ mozilla/mailnews/base/resources/content/mailCommands.js 2007-02-07 16:18:59.000000000 +0100
@@ -268,8 +268,9 @@
}
}
- if (type == msgComposeType.Reply ||
+ if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
+ type == msgComposeType.ReplyToList ||
type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSender ||
diff -urN mozillaorig/mailnews/compose/public/nsIMsgComposeParams.idl mozilla/mailnews/compose/public/nsIMsgComposeParams.idl
--- mozillaorig/mailnews/compose/public/nsIMsgComposeParams.idl 2007-02-07 15:26:46.000000000 +0100
+++ mozilla/mailnews/compose/public/nsIMsgComposeParams.idl 2007-02-07 16:18:59.000000000 +0100
@@ -59,6 +59,7 @@
const long Template = 10;
const long MailToUrl = 11;
const long ReplyWithTemplate = 12;
+ const long ReplyToList = 13;
};
diff -urN mozillaorig/mailnews/compose/src/nsMsgCompose.cpp mozilla/mailnews/compose/src/nsMsgCompose.cpp
--- mozillaorig/mailnews/compose/src/nsMsgCompose.cpp 2007-02-07 15:26:46.000000000 +0100
+++ mozilla/mailnews/compose/src/nsMsgCompose.cpp 2007-02-07 16:18:59.000000000 +0100
@@ -1751,6 +1751,7 @@
default: break;
case nsIMsgCompType::Reply :
case nsIMsgCompType::ReplyAll:
+ case nsIMsgCompType::ReplyToList:
case nsIMsgCompType::ReplyToGroup:
case nsIMsgCompType::ReplyToSender:
case nsIMsgCompType::ReplyToSenderAndGroup:
@@ -2195,8 +2196,13 @@
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 @@
nsAutoString followUpTo;
nsAutoString messageId;
nsAutoString references;
+ nsAutoString listPost;
nsXPIDLCString outCString;
PRBool needToRemoveDup = PR_FALSE;
if (!mMimeConverter)
@@ -2266,6 +2273,29 @@
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)
@@ -2303,7 +2333,8 @@
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)
@@ -2808,6 +2839,7 @@
// 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 ||
@@ -2846,6 +2878,7 @@
// for this URI.
if (mType == nsIMsgCompType::Reply ||
mType == nsIMsgCompType::ReplyAll ||
+ mType == nsIMsgCompType::ReplyToList ||
mType == nsIMsgCompType::ReplyToGroup ||
mType == nsIMsgCompType::ReplyToSender ||
mType == nsIMsgCompType::ReplyToSenderAndGroup ||
@@ -3778,6 +3811,7 @@
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 :
diff -urN mozillaorig/mailnews/mime/public/nsMailHeaders.h mozilla/mailnews/mime/public/nsMailHeaders.h
--- mozillaorig/mailnews/mime/public/nsMailHeaders.h 2007-02-07 15:26:58.000000000 +0100
+++ mozilla/mailnews/mime/public/nsMailHeaders.h 2007-02-07 16:18:59.000000000 +0100
@@ -65,6 +65,7 @@
#define HEADER_FROM "From"
#define HEADER_STATUS "Status"
#define HEADER_LINES "Lines"
+#define HEADER_LIST_POST "List-Post"
#define HEADER_MAIL_FOLLOWUP_TO "Mail-Followup-To"
#define HEADER_MAIL_REPLY_TO "Mail-Reply-To"
#define HEADER_MESSAGE_ID "Message-ID"
1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/803_fbsd-3.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/803_fbsd-3.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/803_fbsd-3.patch?rev=1.1&content-type=text/plain
Index: 803_fbsd-3.patch
===================================================================
--- a/config/rules.mk 2007-07-03 17:39:53 +0100
+++ b/config/rules.mk 2007-07-03 17:41:50 +0100
@@ -462,6 +462,8 @@
endif
ifeq ($(OS_ARCH),FreeBSD)
+DSO_LDOPTS += -Wl,-rpath,'$(mozappdir)'
+OS_LDFLAGS += -Wl,-rpath,'$(mozappdir)'
EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
endif
--
gentoo-commits@lists.gentoo.org mailing list
^ permalink raw reply [flat|nested] 2+ messages in thread
* [gentoo-commits] gentoo commit in src/patchsets/mozilla-thunderbird/2.0.0.14: 000_flex-configure-LANG.patch 001_firefox-arm.patch 002_firefox-libdeps.patch 003_unaligned.patch 004_mozilla-hppa.patch 005_mozilla-firefox-1.5-ia64.patch 006_mips-asm.patch 007_mozilla-firefox-1.5-asneeded.patch 008_firefox-pkgconfig-1.patch 010_visibility-gcc-4.2.patch 016_firefox-nss-3.12-asneeded.patch 032_firefox-2.0_ppc64-1.patch 033_firefox-2.0_ppc_powerpc.patch 050_respect-host-variable.patch 055_firefox-2.0_gfbsd-pthreads.patch 060_embed-typeaheadfind-1.patch 063_firefox-rpath-3.patch 090_xul-gcc4.3.patch 300_firefox-1.5-makeopts.patch 301_reply-to-list.patch 803_fbsd-3.patch
@ 2008-09-28 15:33 Raul Porcel (armin76)
0 siblings, 0 replies; 2+ messages in thread
From: Raul Porcel (armin76) @ 2008-09-28 15:33 UTC (permalink / raw
To: gentoo-commits
armin76 08/09/28 15:33:47
Removed: 000_flex-configure-LANG.patch 001_firefox-arm.patch
002_firefox-libdeps.patch 003_unaligned.patch
004_mozilla-hppa.patch
005_mozilla-firefox-1.5-ia64.patch
006_mips-asm.patch
007_mozilla-firefox-1.5-asneeded.patch
008_firefox-pkgconfig-1.patch
010_visibility-gcc-4.2.patch
016_firefox-nss-3.12-asneeded.patch
032_firefox-2.0_ppc64-1.patch
033_firefox-2.0_ppc_powerpc.patch
050_respect-host-variable.patch
055_firefox-2.0_gfbsd-pthreads.patch
060_embed-typeaheadfind-1.patch
063_firefox-rpath-3.patch 090_xul-gcc4.3.patch
300_firefox-1.5-makeopts.patch
301_reply-to-list.patch 803_fbsd-3.patch
Log:
old
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-09-28 15:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-28 15:33 [gentoo-commits] gentoo commit in src/patchsets/mozilla-thunderbird/2.0.0.14: 000_flex-configure-LANG.patch 001_firefox-arm.patch 002_firefox-libdeps.patch 003_unaligned.patch 004_mozilla-hppa.patch 005_mozilla-firefox-1.5-ia64.patch 006_mips-asm.patch 007_mozilla-firefox-1.5-asneeded.patch 008_firefox-pkgconfig-1.patch 010_visibility-gcc-4.2.patch 016_firefox-nss-3.12-asneeded.patch 032_firefox-2.0_ppc64-1.patch 033_firefox-2.0_ppc_powerpc.patch 050_respect-host-variable.patch 055_firefox-2.0_gfbsd-pthreads.patch 060_embed-typeaheadfind-1.patch 063_firefox-rpath-3.patch 090_xul-gcc4.3.patch 300_firefox-1.5-makeopts.patch 301_reply-to-list.patch 803_fbsd-3.patch Raul Porcel (armin76)
-- strict thread matches above, loose matches on Subject: below --
2008-05-02 11:49 Raul Porcel (armin76)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox