Gentoo Archives: gentoo-commits

From: "Raul Porcel (armin76)" <armin76@g.o>
To: gentoo-commits@l.g.o
Subject: [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
Date: Fri, 02 May 2008 11:49:50
Message-Id: E1Jrtlk-0002Oq-AB@stork.gentoo.org
1 armin76 08/05/02 11:49:40
2
3 Added: 000_flex-configure-LANG.patch 001_firefox-arm.patch
4 002_firefox-libdeps.patch 003_unaligned.patch
5 004_mozilla-hppa.patch
6 005_mozilla-firefox-1.5-ia64.patch
7 006_mips-asm.patch
8 007_mozilla-firefox-1.5-asneeded.patch
9 008_firefox-pkgconfig-1.patch
10 010_visibility-gcc-4.2.patch
11 016_firefox-nss-3.12-asneeded.patch
12 032_firefox-2.0_ppc64-1.patch
13 033_firefox-2.0_ppc_powerpc.patch
14 050_respect-host-variable.patch
15 055_firefox-2.0_gfbsd-pthreads.patch
16 060_embed-typeaheadfind-1.patch
17 063_firefox-rpath-3.patch 090_xul-gcc4.3.patch
18 300_firefox-1.5-makeopts.patch
19 301_reply-to-list.patch 803_fbsd-3.patch
20 Log:
21 Add 2.0.0.14 patches
22
23 Revision Changes Path
24 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/000_flex-configure-LANG.patch
25
26 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
27 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
28
29 Index: 000_flex-configure-LANG.patch
30 ===================================================================
31 The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in
32 option parsing, it may break.
33
34 http://bugs.gentoo.org/103483
35
36 --- configure
37 +++ configure
38 @@ -54,6 +54,16 @@
39 infodir='${prefix}/info'
40 mandir='${prefix}/man'
41
42 +# NLS nuisances.
43 +# Only set these to C if already set. These must not be set unconditionally
44 +# because not all systems understand e.g. LANG=C (notably SCO).
45 +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
46 +# Non-C LC_CTYPE values break the ctype check.
47 +if test "${LANG+set}" = set; then LANG=C; export LANG; fi
48 +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
49 +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
50 +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
51 +
52 # Initialize some other variables.
53 subdirs=
54 MFLAGS= MAKEFLAGS=
55 @@ -452,16 +463,6 @@
56 esac
57 done
58
59 -# NLS nuisances.
60 -# Only set these to C if already set. These must not be set unconditionally
61 -# because not all systems understand e.g. LANG=C (notably SCO).
62 -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
63 -# Non-C LC_CTYPE values break the ctype check.
64 -if test "${LANG+set}" = set; then LANG=C; export LANG; fi
65 -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
66 -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
67 -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
68 -
69 # confdefs.h avoids OS command line length limits that DEFS can exceed.
70 rm -rf conftest* confdefs.h
71 # AIX cpp loses on an empty file, so make sure it contains at least a newline.
72
73
74
75 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/001_firefox-arm.patch
76
77 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
78 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
79
80 Index: 001_firefox-arm.patch
81 ===================================================================
82 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp~ 2006-06-20 11:10:37.000000000 +0100
83 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2006-06-20 11:10:37.000000000 +0100
84 @@ -45,7 +45,7 @@
85 #endif
86
87 /* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */
88 -static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch");
89 +static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch") __attribute__((used));
90
91 static nsresult
92 PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args)
93
94
95
96 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/002_firefox-libdeps.patch
97
98 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
99 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
100
101 Index: 002_firefox-libdeps.patch
102 ===================================================================
103 # Linking issue with pango
104 #
105 # https://bugzilla.mozilla.org/show_bug.cgi?id=344821
106
107 --- mozilla/layout/build/Makefile.in.orig 2006-07-16 00:24:51.000000000 +1000
108 +++ mozilla/layout/build/Makefile.in 2006-07-16 00:35:51.000000000 +1000
109 @@ -213,6 +213,12 @@
110 $(NULL)
111 endif
112
113 +ifdef MOZ_ENABLE_CANVAS
114 +ifdef MOZ_ENABLE_XFT
115 +EXTRA_DSO_LDOPTS += $(MOZ_XFT_LIBS)
116 +endif
117 +endif
118 +
119 ifdef NS_TRACE_MALLOC
120 EXTRA_DSO_LIBS += tracemalloc
121 endif
122
123
124
125 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/003_unaligned.patch
126
127 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-thunderbird/2.0.0.14/003_unaligned.patch?rev=1.1&view=markup
128 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
129
130 Index: 003_unaligned.patch
131 ===================================================================
132 # Upstream: https://bugzilla.mozilla.org/show_bug.cgi?id=161826
133 # Fix unaligned access
134 diff -ur mozilla.orig/intl/unicharutil/util/nsUnicharUtils.cpp mozilla/intl/unicharutil/util/nsUnicharUtils.cpp
135 --- mozilla.orig/intl/unicharutil/util/nsUnicharUtils.cpp 2007-12-29 12:43:10.000000000 +0000
136 +++ mozilla/intl/unicharutil/util/nsUnicharUtils.cpp 2007-12-29 12:44:08.000000000 +0000
137 @@ -348,3 +348,15 @@
138 return result;
139 }
140
141 +void
142 +SetUnichar(void *ptr, PRUnichar aChar)
143 +{
144 +#if NEED_STRICT_ALIGNMENT
145 + *((char *) ptr) = *((char *) &aChar);
146 + *((char *) ptr + 1) = *((char *) &aChar + 1);
147 +#else
148 + *((PRUnichar *) ptr) = aChar;
149 +#endif
150 +}
151 +
152 +
153 diff -ur mozilla.orig/intl/unicharutil/util/nsUnicharUtils.h mozilla/intl/unicharutil/util/nsUnicharUtils.h
154 --- mozilla.orig/intl/unicharutil/util/nsUnicharUtils.h 2007-12-29 12:43:10.000000000 +0000
155 +++ mozilla/intl/unicharutil/util/nsUnicharUtils.h 2007-12-29 12:44:31.000000000 +0000
156 @@ -82,6 +82,10 @@
157 PRUnichar ToUpperCase(PRUnichar);
158 PRUnichar ToLowerCase(PRUnichar);
159
160 +#define NEED_STRICT_ALIGNMENT defined(__sparc__) || defined(__alpha__) || defined(__mips__)
161 +
162 +void SetUnichar(void *, PRUnichar);
163 +
164 inline PRBool IsUpperCase(PRUnichar c) {
165 return ToLowerCase(c) != c;
166 }
167 diff -ur mozilla.orig/layout/generic/nsTextFrame.cpp mozilla/layout/generic/nsTextFrame.cpp
168 --- mozilla.orig/layout/generic/nsTextFrame.cpp 2007-12-29 12:43:02.000000000 +0000
169 +++ mozilla/layout/generic/nsTextFrame.cpp 2007-12-29 12:46:16.000000000 +0000
170 @@ -5123,18 +5123,27 @@
171 };
172
173 // Transforms characters in place from ascii to Unicode
174 -static void
175 +static PRUnichar *
176 TransformTextToUnicode(char* aText, PRInt32 aNumChars)
177 {
178 // Go backwards over the characters and convert them.
179 unsigned char* cp1 = (unsigned char*)aText + aNumChars - 1;
180 - PRUnichar* cp2 = (PRUnichar*)aText + (aNumChars - 1);
181 + PRUnichar* cp2;
182 + PRUnichar* ret;
183 +
184 + if ((unsigned long) aText & 0x1)
185 + cp2 = ((PRUnichar*)(aText + 1));
186 + else
187 + cp2 = (PRUnichar*)aText;
188
189 - while (aNumChars-- > 0) {
190 - // XXX: If you crash here then you may see the issue described
191 - // in http://bugzilla.mozilla.org/show_bug.cgi?id=36146#c44
192 - *cp2-- = PRUnichar(*cp1--);
193 - }
194 + ret = cp2;
195 +
196 + cp2 += (aNumChars - 1);
197 +
198 + while (aNumChars-- > 0)
199 + SetUnichar(cp2--, PRUnichar(*cp1--));
200 +
201 + return ret;
202 }
203
204 PRUint32
205 @@ -5702,7 +5711,7 @@
206 // The text transform buffer contains ascii characters, so
207 // transform it to Unicode
208 NS_ASSERTION(wordBufLen >= PRUint32(lastWordLen), "no room to transform in place");
209 - TransformTextToUnicode((char*)lastWordPtr, lastWordLen);
210 + pWordBuf = TransformTextToUnicode((char*)lastWordPtr, lastWordLen);
211 }
212
213 // Look ahead in the text-run and compute the final word
214 @@ -6232,7 +6241,7 @@
215 for (; aBuffer < end; aBuffer++) {
216 PRUnichar ch = *aBuffer;
217 if (ch == ' ') {
218 - *aBuffer = CH_NBSP;
219 + SetUnichar(aBuffer, CH_NBSP);
220 }
221 }
222 }
223
224
225
226 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/004_mozilla-hppa.patch
227
228 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
229 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
230
231 Index: 004_mozilla-hppa.patch
232 ===================================================================
233 diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
234 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:37:00.503842544 +0000
235 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:41:49.439917584 +0000
236 @@ -167,6 +167,19 @@
237 endif
238 endif
239
240 +#
241 +# Linux/HPPA/gcc
242 +#
243 +ifeq ($(OS_ARCH),Linux)
244 +ifneq (,$(filter parisc parisc64,$(OS_TEST)))
245 +#ifeq ($(CC),gcc) # Do not check for gcc since there is only this compiler on linux for hppa
246 +CPPSRCS := xptcinvoke_pa32.cpp xptcstubs_pa32.cpp
247 +ASFILES := xptcstubs_asm_parisc_linux.s xptcinvoke_asm_parisc_linux.s
248 +#endif
249 +endif
250 +endif
251 +
252 +
253 ######################################################################
254 # M68k
255 ######################################################################
256 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
257 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000
258 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 2004-12-21 13:39:03.390160984 +0000
259 @@ -0,0 +1,128 @@
260 +
261 + .LEVEL 1.1
262 + .text
263 + .align 4
264 +
265 +framesz:
266 + .equ 128
267 +
268 +; XPTC_InvokeByIndex(nsISuppots* that, PRUint32 methodIndex,
269 +; PRUint32 paramCount, nsXPTCVariant* params);
270 +
271 +.globl XPTC_InvokeByIndex
272 + .type XPTC_InvokeByIndex, @function
273 +
274 +
275 +XPTC_InvokeByIndex:
276 + .PROC
277 + .CALLINFO FRAME=72, CALLER,SAVE_RP, SAVE_SP, ENTRY_GR=3
278 + .ENTRY
279 +
280 + ; frame marker takes 48 bytes,
281 + ; register spill area takes 8 bytes,
282 + ; local stack area takes 72 bytes result in 128 bytes total
283 +
284 + STW %rp,-20(%sp)
285 + STW,MA %r3,128(%sp)
286 +
287 + LDO -framesz(%r30),%r28
288 + STW %r28,-4(%r30) ; save previous sp
289 + STW %r19,-32(%r30)
290 +
291 + STW %r26,-36-framesz(%r30) ; save argument registers in
292 + STW %r25,-40-framesz(%r30) ; in PREVIOUS frame
293 + STW %r24,-44-framesz(%r30) ;
294 + STW %r23,-48-framesz(%r30) ;
295 +
296 +; B,L .+8,%r2
297 +; ADDIL L'invoke_count_bytes-$PIC_pcrel$1+4,%r2,%r1
298 +; ; LDO R'invoke_count_bytes-$PIC_pcrel$2+8(%r1),%r1
299 +;$PIC_pcrel$1
300 +; LDSID (%r1),%r31
301 +;$PIC_pcrel$2
302 +; MTSP %r31,%sr0
303 +
304 + .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26;out=28
305 + BL invoke_count_bytes,%r31
306 + COPY %r31,%r2
307 +
308 + CMPIB,>= 0,%r28, .+76
309 + COPY %r30,%r3 ; copy stack ptr to saved stack ptr
310 + ADD %r30,%r28,%r30 ; extend stack frame
311 + LDW -4(%r3),%r28 ; move frame
312 + STW %r28,-4(%r30)
313 + LDW -8(%r3),%r28
314 + STW %r28,-8(%r30)
315 + LDW -12(%r3),%r28
316 + STW %r28,-12(%r30)
317 + LDW -16(%r3),%r28
318 + STW %r28,-16(%r30)
319 + LDW -20(%r3),%r28
320 + STW %r28,-20(%r30)
321 + LDW -24(%r3),%r28
322 + STW %r28,-24(%r30)
323 + LDW -28(%r3),%r28
324 + STW %r28,-28(%r30)
325 + LDW -32(%r3),%r28
326 + STW %r28,-32(%r30)
327 +
328 + LDO -40(%r30),%r26 ; load copy address
329 + LDW -44-framesz(%r3),%r25 ; load rest of 2 arguments
330 + LDW -48-framesz(%r3),%r24 ;
331 +
332 + LDW -32(%r30),%r19 ; shared lib call destroys r19; reload
333 +; B,L .+8,%r2
334 +; ADDIL L'invoke_copy_to_stack-$PIC_pcrel$3+4,%r2,%r1
335 +; LDO R'invoke_copy_to_stack-$PIC_pcrel$4+8(%r1),%r1
336 +;$PIC_pcrel$3
337 +; LDSID (%r1),%r31
338 +;$PIC_pcrel$4
339 +; MTSP %r31,%sr0
340 + .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26
341 + BL invoke_copy_to_stack,%r31
342 + COPY %r31,%r2
343 +
344 + LDO -48(%r30),%r20
345 + EXTRW,U,= %r28,31,1,%r22
346 + FLDD 0(%r20),%fr7 ; load double arg 1
347 + EXTRW,U,= %r28,30,1,%r22
348 + FLDW 8(%r20),%fr5L ; load float arg 1
349 + EXTRW,U,= %r28,29,1,%r22
350 + FLDW 4(%r20),%fr6L ; load float arg 2
351 + EXTRW,U,= %r28,28,1,%r22
352 + FLDW 0(%r20),%fr7L ; load float arg 3
353 +
354 + LDW -36-framesz(%r3),%r26 ; load ptr to 'that'
355 + LDW -40(%r30),%r25 ; load the rest of dispatch argument registers
356 + LDW -44(%r30),%r24
357 + LDW -48(%r30),%r23
358 +
359 + LDW -36-framesz(%r3),%r20 ; load vtable addr
360 + LDW -40-framesz(%r3),%r28 ; load index
361 + LDW 0(%r20),%r20 ; follow vtable
362 +; LDO 0(%r20),%r20 ; offset vtable by 16 bytes (g++: 8, aCC: 16)
363 + SH2ADDL %r28,%r20,%r28 ; add 4*index to vtable entry
364 + LDW 0(%r28),%r22 ; load vtable entry
365 +
366 +; B,L .+8,%r2
367 +; ADDIL L'$$dyncall_external-$PIC_pcrel$5+4,%r2,%r1
368 +; LDO R'$$dyncall_external-$PIC_pcrel$6+8(%r1),%r1
369 +;$PIC_pcrel$5
370 +; LDSID (%r1),%r31
371 +;$PIC_pcrel$6
372 +; MTSP %r31,%sr0
373 + .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=22-26;out=28;
374 + BL $$dyncall,%r31
375 + COPY %r31,%r2
376 +
377 + LDW -32(%r30),%r19
378 + COPY %r3,%r30 ; restore saved stack ptr
379 +
380 + LDW -148(%sp),%rp
381 + LDWM -128(%sp),%r3
382 + BV,N (%rp)
383 + NOP
384 + .EXIT
385 + .PROCEND ;in=23,24,25,26;
386 + .SIZE XPTC_InvokeByIndex, .-XPTC_InvokeByIndex
387 +
388 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
389 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000
390 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 2004-12-21 13:39:03.392160680 +0000
391 @@ -0,0 +1,73 @@
392 + .LEVEL 1.1
393 + .TEXT
394 + .ALIGN 4
395 +
396 +curframesz:
397 + .EQU 128
398 +
399 +
400 +; SharedStub has stack size of 128 bytes
401 +
402 +lastframesz:
403 + .EQU 64
404 +
405 +; the StubN C++ function has a small stack size of 64 bytes
406 +
407 +
408 +.globl SharedStub
409 + .type SharedStub, @function
410 +
411 +SharedStub:
412 + .PROC
413 + .CALLINFO CALLER,FRAME=80,SAVE_RP
414 +
415 + .ENTRY
416 + STW %rp,-20(%sp)
417 + LDO 128(%sp),%sp
418 +
419 + STW %r19,-32(%r30)
420 + STW %r26,-36-curframesz(%r30) ; save arg0 in previous frame
421 +
422 + LDO -80(%r30),%r28
423 + FSTD,MA %fr5,8(%r28) ; save darg0
424 + FSTD,MA %fr7,8(%r28) ; save darg1
425 + FSTW,MA %fr4L,4(%r28) ; save farg0
426 + FSTW,MA %fr5L,4(%r28) ; save farg1
427 + FSTW,MA %fr6L,4(%r28) ; save farg2
428 + FSTW,MA %fr7L,4(%r28) ; save farg3
429 +
430 + ; Former value of register 26 is already properly saved by StubN,
431 + ; but register 25-23 are not because of the arguments mismatch
432 + STW %r25,-40-curframesz-lastframesz(%r30) ; save r25
433 + STW %r24,-44-curframesz-lastframesz(%r30) ; save r24
434 + STW %r23,-48-curframesz-lastframesz(%r30) ; save r23
435 + COPY %r26,%r25 ; method index is arg1
436 + LDW -36-curframesz-lastframesz(%r30),%r26 ; self is arg0
437 + LDO -40-curframesz-lastframesz(%r30),%r24 ; normal args is arg2
438 + LDO -80(%r30),%r23 ; floating args is arg3
439 +
440 +; BL .+8,%r2
441 +; ADDIL L'PrepareAndDispatch-$PIC_pcrel$0+4,%r2
442 +; LDO R'PrepareAndDispatch-$PIC_pcrel$1+8(%r1),%r1
443 +;$PIC_pcrel$0
444 +; LDSID (%r1),%r31
445 +;$PIC_pcrel$1
446 +; MTSP %r31,%sr0
447 + .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=23-26;out=28;
448 + BL PrepareAndDispatch, %r31
449 + COPY %r31,%r2
450 +
451 + LDW -32(%r30),%r19
452 +
453 + LDW -148(%sp),%rp
454 + LDO -128(%sp),%sp
455 +
456 +
457 + BV,N (%rp)
458 + NOP
459 + NOP
460 +
461 + .EXIT
462 + .PROCEND ;in=26;out=28;
463 +
464 + .SIZE SharedStub, .-SharedStub
465
466
467
468 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/005_mozilla-firefox-1.5-ia64.patch
469
470 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
471 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
472
473 Index: 005_mozilla-firefox-1.5-ia64.patch
474 ===================================================================
475 --- mozilla.orig/extensions/transformiix/source/base/Double.cpp
476 +++ mozilla/extensions/transformiix/source/base/Double.cpp
477 @@ -75,14 +75,7 @@
478 #define CPU_IS_ARM
479 #endif
480
481 -#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
482 -/**
483 - * This version of the macros is safe for the alias optimizations
484 - * that gcc does, but uses gcc-specific extensions.
485 - */
486 -
487 typedef union txdpun {
488 - PRFloat64 d;
489 struct {
490 #if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
491 PRUint32 lo, hi;
492 @@ -90,8 +83,14 @@
493 PRUint32 hi, lo;
494 #endif
495 } s;
496 + PRFloat64 d;
497 } txdpun;
498
499 +#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
500 +/**
501 + * This version of the macros is safe for the alias optimizations
502 + * that gcc does, but uses gcc-specific extensions.
503 + */
504 #define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; }))
505 #define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; }))
506
507 @@ -117,20 +116,20 @@
508
509 //-- Initialize Double related constants
510 #ifdef IS_BIG_ENDIAN
511 -const PRUint32 nanMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
512 - 0xffffffff};
513 -const PRUint32 infMask[2] = {TX_DOUBLE_HI32_EXPMASK, 0};
514 -const PRUint32 negInfMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
515 +const txdpun nanMask = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
516 + 0xffffffff};
517 +const txdpun infMask = {TX_DOUBLE_HI32_EXPMASK, 0};
518 +const txdpun negInfMask = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
519 #else
520 -const PRUint32 nanMask[2] = {0xffffffff,
521 - TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
522 -const PRUint32 infMask[2] = {0, TX_DOUBLE_HI32_EXPMASK};
523 -const PRUint32 negInfMask[2] = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
524 +const txdpun nanMask = {0xffffffff,
525 + TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
526 +const txdpun infMask = {0, TX_DOUBLE_HI32_EXPMASK};
527 +const txdpun negInfMask = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
528 #endif
529
530 -const double Double::NaN = *((double*)nanMask);
531 -const double Double::POSITIVE_INFINITY = *((double*)infMask);
532 -const double Double::NEGATIVE_INFINITY = *((double*)negInfMask);
533 +const double Double::NaN = nanMask.d;
534 +const double Double::POSITIVE_INFINITY = infMask.d;
535 +const double Double::NEGATIVE_INFINITY = negInfMask.d;
536
537 /*
538 * Determines whether the given double represents positive or negative
539 --- mozilla.orig/js/src/fdlibm/fdlibm.h
540
541
542
543 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/006_mips-asm.patch
544
545 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
546 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
547
548 Index: 006_mips-asm.patch
549 ===================================================================
550 Upstream Bug: http://bugzilla.mozilla.org/show_bug.cgi?id=258429
551
552 This patch is required to fix build issues with Mozilla on MIPS architectures.
553 The out-of-the-box code is coded to build on a PlayStation 2 game console, which
554 is a highly specialised MIPS machine based around the Toshiba TX5900. This CPU
555 is very non-standard, causing problems with generic MIPS machines like Silicon
556 Graphics workstations.
557
558 The following patch fixes the assembly language routines for generic MIPS
559 machines. In the case where it is being compiled for a PlayStation 2, the older
560 PS2-specific implementation is used instead.
561
562 Patch $Revision: 1.1 $
563 Index: mozilla/configure.in
564 ===================================================================
565 RCS file: /cvsroot/mozilla/configure.in,v
566 retrieving revision 1.1819
567 diff -p -u -r1.1819 configure.in
568 --- mozilla/configure.in 24 May 2007 17:45:55 -0000 1.1819
569 +++ mozilla/configure.in 30 May 2007 09:08:10 -0000
570 @@ -1706,6 +1706,12 @@ case "$target" in
571 MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1
572 ;;
573 mips*)
574 + if test -z "$CROSS_COMPILE" ; then
575 + if grep -c -E '^system type\W*:.*EE PS2' /proc/cpuinfo >/dev/null; then
576 + OS_TEST="mipsEE"
577 + fi
578 + fi
579 +
580 CFLAGS="$CFLAGS -Wa,-xgot"
581 CXXFLAGS="$CXXFLAGS -Wa,-xgot"
582 ;;
583 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
584 ===================================================================
585 RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v
586 retrieving revision 1.92
587 diff -p -u -r1.92 Makefile.in
588 --- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 14 Dec 2006 19:13:43 -0000 1.92
589 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 30 May 2007 09:08:10 -0000
590 @@ -229,16 +229,28 @@ endif
591 endif
592 endif
593
594 +#
595 +# Linux/MIPS
596 +#
597 ifeq ($(OS_ARCH),Linux)
598 -ifneq (,$(findstring mips, $(OS_TEST)))
599 -CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp
600 -ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s
601 -#xptcstubs_mips.cpp
602 -# xptcstubs_asm_mips.s
603 +
604 +# PlayStation2 Linux
605 +ifneq (,$(findstring mipsEE, $(OS_TEST)))
606 +CPPSRCS := xptcinvoke_ps2mips.cpp xptcstubs_ps2mips.cpp
607 +ASFILES := xptcinvoke_asm_ps2mips.s xptcstubs_asm_ps2mips.s
608 ifdef GNU_CC
609 ASFLAGS += $(INCLUDES) -x assembler-with-cpp -D__GNUC__
610 endif
611 +else
612 +
613 +endif
614 +# Generic 32-bit Linux
615 +ifneq (,$(findstring mips, $(OS_TEST)))
616 +CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp
617 +ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s
618 +AS := $(CC) $(CFLAGS) $(INCLUDES) -c -x assembler-with-cpp
619 endif
620 +
621 endif
622
623 ######################################################################
624 @@ -386,14 +398,24 @@ LOCAL_INCLUDES += \
625 $(NULL)
626
627 ifeq ($(OS_ARCH),Linux)
628 +
629 +# PlayStation 2 Linux
630 +ifneq (,$(findstring mipsEE, $(OS_TEST)))
631 +xptcstubs_asm_ps2mips.o: xptcstubs_asm_ps2mips.s.m4 $(PUBLIC)/xptcstubsdef.inc
632 + m4 $(INCLUDES) $< > ./xptcstubs_asm_ps2mips.s && \
633 + $(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) ./xptcstubs_asm_ps2mips.s
634 + $(RM) -f ./xptcstubs_asm_ps2mips.s
635 +else
636 +
637 +# Generic Linux
638 ifneq (,$(findstring mips, $(OS_TEST)))
639 -xptcstubs_asm_mips.o: xptcstubs_asm_mips.s.m4 $(PUBLIC)/xptcstubsdef.inc
640 - m4 $(INCLUDES) $< > ./xptcstubs_asm_mips.s && \
641 - $(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) ./xptcstubs_asm_mips.s
642 - $(RM) -f ./xptcstubs_asm_mips.s
643 +xptcstubs_asm_mips.o: xptcstubs_asm_mips.s $(PUBLIC)/xptcstubsdef.inc
644 + $(AS) -o $@ $<
645 endif
646 endif
647
648 +endif
649 +
650 ifeq ($(OS_ARCH),Darwin)
651 xptcstubs_asm_ppc_darwin.o: xptcstubs_asm_ppc_darwin.s.m4 $(PUBLIC)/xptcstubsdef.inc Makefile
652 gm4 $(INCLUDES) $< > ./xptcstubs_asm_ppc_darwin.s && \
653 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s
654 ===================================================================
655 RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s,v
656 retrieving revision 1.3
657 diff -p -u -r1.3 xptcinvoke_asm_mips.s
658 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s.orig 2007-07-09 09:02:07 +1000
659 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s 2007-07-09 09:04:37 +1000
660 @@ -21,6 +21,7 @@
661 * Contributor(s):
662 * Brendan Eich <brendan@×××××××.org>
663 * Stuart Parmenter <pavlov@××××××××.com>
664 + * Thiemo Seufer <seufer@×××××××××××××××××××××.de>
665 */
666
667 /* This code is for MIPS using the O32 ABI. */
668 @@ -28,139 +29,123 @@
669 #include <sys/regdef.h>
670 #include <sys/asm.h>
671
672 -.text
673 -.globl invoke_count_words
674 -.globl invoke_copy_to_stack
675 -
676 -# We need a variable number of words allocated from the stack for copies of
677 -# the params, and this space must come between the high frame (where ra, gp,
678 -# and s0 are saved) and the low frame (where a0-a3 are saved by the callee
679 -# functions we invoke).
680 -
681 -LOCALSZ=4 # s0, s1, ra, gp
682 -NARGSAVE=4 # a0, a1, a2, a3
683 -HIFRAMESZ=(LOCALSZ*SZREG)
684 -LOFRAMESZ=(NARGSAVE*SZREG)
685 -FRAMESZ=(HIFRAMESZ+LOFRAMESZ+ALSZ)&ALMASK
686 -
687 -# XXX these 2*SZREG, etc. are very magic -- we *know* that ALSZ&ALMASK cause
688 -# FRAMESZ to be 0 mod 8, in this case to be 16 and not 12.
689 -RAOFF=FRAMESZ - (2*SZREG)
690 -GPOFF=FRAMESZ - (3*SZREG)
691 -S0OFF=FRAMESZ - (4*SZREG)
692 -S1OFF=FRAMESZ - (5*SZREG)
693 -
694 -# These are not magic -- they are just our argsave slots in the caller frame.
695 -A0OFF=FRAMESZ
696 -A1OFF=FRAMESZ + (1*SZREG)
697 -A2OFF=FRAMESZ + (2*SZREG)
698 -A3OFF=FRAMESZ + (3*SZREG)
699 -
700 - #
701 - # _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
702 - # a0 a1 a2 a3
703 -
704 -NESTED(_XPTC_InvokeByIndex, FRAMESZ, ra)
705 -
706 - .set noreorder
707 - .cpload t9
708 - .set reorder
709 -
710 +# NARGSAVE is the argument space in the callers frame, including extra
711 +# 'shadowed' space for the argument registers. The minimum of 4
712 +# argument slots is sometimes predefined in the header files.
713 +#ifndef NARGSAVE
714 +#define NARGSAVE 4
715 +#endif
716 +
717 +#define LOCALSZ 3 /* gp, fp, ra */
718 +#define FRAMESZ ((((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK)
719 +
720 +#define RAOFF (FRAMESZ - (1*SZREG))
721 +#define FPOFF (FRAMESZ - (2*SZREG))
722 +#define GPOFF (FRAMESZ - (3*SZREG))
723 +
724 +#define A0OFF (FRAMESZ + (0*SZREG))
725 +#define A1OFF (FRAMESZ + (1*SZREG))
726 +#define A2OFF (FRAMESZ + (2*SZREG))
727 +#define A3OFF (FRAMESZ + (3*SZREG))
728 +
729 + .text
730 +
731 +#
732 +# _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
733 +# a0 a1 a2 a3
734 +
735 + .globl _XPTC_InvokeByIndex
736 + .align 2
737 + .type _XPTC_InvokeByIndex,@function
738 + .ent _XPTC_InvokeByIndex,0
739 + .frame fp, FRAMESZ, ra
740 +_XPTC_InvokeByIndex:
741 + SETUP_GP
742 subu sp, FRAMESZ
743
744 - # specify the save register mask -- XXX do we want the a0-a3 here, given
745 - # our "split" frame where the args are saved below a dynamicly allocated
746 - # region under the high frame?
747 - #
748 - # 10010000000000010000000011110000
749 - .mask 0x900100F0, -((NARGSAVE+LOCALSZ)*SZREG)
750 -
751 - # thou shalt not use .cprestore if yer frame has variable size...
752 - # .cprestore GPOFF
753 -
754 - REG_S ra, RAOFF(sp)
755 -
756 - # this happens automatically with .cprestore, but we cannot use that op...
757 - REG_S gp, GPOFF(sp)
758 - REG_S s0, S0OFF(sp)
759 - REG_S s1, S1OFF(sp)
760 -
761 - REG_S a0, A0OFF(sp)
762 - REG_S a1, A1OFF(sp)
763 - REG_S a2, A2OFF(sp)
764 - REG_S a3, A3OFF(sp)
765 + # specify the save register mask for gp, fp, ra, a3 - a0
766 + .mask 0xD00000F0, RAOFF-FRAMESZ
767
768 - # invoke_count_words(paramCount, params)
769 - move a0, a2
770 - move a1, a3
771 + sw ra, RAOFF(sp)
772 + sw fp, FPOFF(sp)
773
774 - jal invoke_count_words
775 - lw gp, GPOFF(sp)
776 + # we can't use .cprestore in a variable stack frame
777 + sw gp, GPOFF(sp)
778
779 - # save the old sp so we can pop the param area and any "low frame"
780 - # needed as an argsave area below the param block for callees that
781 - # we invoke.
782 - move s0, sp
783 -
784 - REG_L a1, A2OFF(sp) # a1 = paramCount
785 - REG_L a2, A3OFF(sp) # a2 = params
786 -
787 - # we define a word as 4 bytes, period end of story!
788 - sll v0, 2 # 4 bytes * result of invoke_copy_words
789 - subu v0, LOFRAMESZ # but we take back the argsave area built into
790 - # our stack frame -- SWEET!
791 - subu sp, sp, v0 # make room
792 - move a0, sp # a0 = param stack address
793 - move s1, a0 # save it for later -- it should be safe here
794 -
795 - # the old sp is still saved in s0, but we now need another argsave
796 - # area ("low frame") for the invoke_copy_to_stack call.
797 - subu sp, sp, LOFRAMESZ
798 + sw a0, A0OFF(sp)
799 + sw a1, A1OFF(sp)
800 + sw a2, A2OFF(sp)
801 + sw a3, A3OFF(sp)
802 +
803 + # save bottom of fixed frame
804 + move fp, sp
805 +
806 + # extern "C" uint32
807 + # invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s);
808 + la t9, invoke_count_words
809 + move a0, a2
810 + move a1, a3
811 + jalr t9
812 + lw gp, GPOFF(fp)
813
814 - # copy the param into the stack areas
815 + # allocate variable stack, with a size of:
816 + # wordsize (of 4 bytes) * result (already aligned to dword)
817 + # but a minimum of 16 byte
818 + sll v0, 2
819 + slt t0, v0, 16
820 + beqz t0, 1f
821 + li v0, 16
822 +1: subu sp, v0
823 +
824 + # let a0 point to the bottom of the variable stack, allocate
825 + # another fixed stack for:
826 + # extern "C" void
827 # invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
828 - # nsXPTCVariant* s)
829 - jal invoke_copy_to_stack
830 - lw gp, GPOFF(s0)
831 -
832 - move sp, s0 # get orig sp back, popping params and argsave
833 -
834 - REG_L a0, A0OFF(sp) # a0 = set "that" to be "this"
835 - REG_L a1, A1OFF(sp) # a1 = methodIndex
836 -
837 - # t1 = methodIndex * 4
838 - # (use shift instead of mult)
839 - sll t1, a1, 2
840 -
841 - # calculate the function we need to jump to,
842 - # which must then be saved in t9
843 + # nsXPTCVariant* s);
844 + la t9, invoke_copy_to_stack
845 + move a0, sp
846 + lw a1, A2OFF(fp)
847 + lw a2, A3OFF(fp)
848 + subu sp, 16
849 + jalr t9
850 + lw gp, GPOFF(fp)
851 +
852 + # back to the variable stack frame
853 + addu sp, 16
854 +
855 + # calculate the function we need to jump to, which must then be
856 + # stored in t9
857 + lw a0, A0OFF(fp) # a0 = set "that" to be "this"
858 + lw t0, A1OFF(fp) # a1 = methodIndex
859 lw t9, 0(a0)
860 - addu t9, t9, t1
861 - lw t9, 8(t9)
862 -
863 - # a1..a3 and f13..f14 should now be set to what
864 - # invoke_copy_to_stack told us. skip a0 and f12
865 - # because that is the "this" pointer
866 -
867 - REG_L a1, 1*SZREG(s1)
868 - REG_L a2, 2*SZREG(s1)
869 - REG_L a3, 3*SZREG(s1)
870 -
871 - l.d $f13, 8(s1)
872 - l.d $f14, 16(s1)
873 -
874 - # Create the stack pointer for the function, which must have 4 words
875 - # of space for callee-saved args. invoke_count_words allocated space
876 - # for a0 starting at s1, so we just move s1 into sp.
877 - move sp, s1
878 + # t0 = methodIndex << PTRLOG
879 + sll t0, t0, PTRLOG
880 + addu t9, t0
881 +#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
882 + lw t9, (t9)
883 +#else /* not G++ V3 ABI */
884 + lw t9, 2*PTRSIZE(t9)
885 +#endif /* G++ V3 ABI */
886 +
887 + # Set a1-a3 to what invoke_copy_to_stack told us. a0 is already
888 + # the "this" pointer. We don't have to care about floating
889 + # point arguments, the non-FP "this" pointer as first argument
890 + # means they'll never be used.
891 + lw a1, 1*SZREG(sp)
892 + lw a2, 2*SZREG(sp)
893 + lw a3, 3*SZREG(sp)
894 +
895 + jalr t9
896 + # Micro-optimization: There's no gp usage below this point, so
897 + # we don't reload.
898 + # lw gp, GPOFF(fp)
899
900 - jalr ra, t9
901 - lw gp, GPOFF(s0)
902 + # leave variable stack frame
903 + move sp, fp
904
905 - move sp, s0
906 + lw ra, RAOFF(sp)
907 + lw fp, FPOFF(sp)
908
909 - REG_L ra, RAOFF(sp)
910 - REG_L s0, S0OFF(sp)
911 - addu sp, FRAMESZ
912 + addiu sp, FRAMESZ
913 j ra
914 -.end _XPTC_InvokeByIndex
915 +END(_XPTC_InvokeByIndex)
916 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s
917 ===================================================================
918 RCS file: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s
919 diff -N mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s
920 --- /dev/null 1 Jan 1970 00:00:00 -0000
921 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s 30 May 2007 09:08:10 -0000
922 @@ -0,0 +1,166 @@
923 +/* -*- Mode: asm; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
924 + * Version: MPL 1.1
925 + *
926 + * The contents of this file are subject to the Mozilla Public License Version
927 + * 1.1 (the "License"); you may not use this file except in compliance with
928 + * the License. You may obtain a copy of the License at
929 + * http://www.mozilla.org/MPL/
930 + *
931 + * Software distributed under the License is distributed on an "AS IS" basis,
932 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
933 + * for the specific language governing rights and limitations under the
934 + * License.
935 + *
936 + * The Original Code is mozilla.org code.
937 + *
938 + * The Initial Developer of the Original Code is
939 + * Netscape Communications Corp, Inc.
940 + * Portions created by the Initial Developer are Copyright (C) 2001
941 + * the Initial Developer. All Rights Reserved.
942 + *
943 + * Contributor(s):
944 + * Brendan Eich <brendan@×××××××.org>
945 + * Stuart Parmenter <pavlov@××××××××.com>
946 + */
947 +
948 +/* This code is for MIPS using the O32 ABI. */
949 +
950 +#include <sys/regdef.h>
951 +#include <sys/asm.h>
952 +
953 +.text
954 +.globl invoke_count_words
955 +.globl invoke_copy_to_stack
956 +
957 +# We need a variable number of words allocated from the stack for copies of
958 +# the params, and this space must come between the high frame (where ra, gp,
959 +# and s0 are saved) and the low frame (where a0-a3 are saved by the callee
960 +# functions we invoke).
961 +
962 +LOCALSZ=4 # s0, s1, ra, gp
963 +NARGSAVE=4 # a0, a1, a2, a3
964 +HIFRAMESZ=(LOCALSZ*SZREG)
965 +LOFRAMESZ=(NARGSAVE*SZREG)
966 +FRAMESZ=(HIFRAMESZ+LOFRAMESZ+ALSZ)&ALMASK
967 +
968 +# XXX these 2*SZREG, etc. are very magic -- we *know* that ALSZ&ALMASK cause
969 +# FRAMESZ to be 0 mod 8, in this case to be 16 and not 12.
970 +RAOFF=FRAMESZ - (2*SZREG)
971 +GPOFF=FRAMESZ - (3*SZREG)
972 +S0OFF=FRAMESZ - (4*SZREG)
973 +S1OFF=FRAMESZ - (5*SZREG)
974 +
975 +# These are not magic -- they are just our argsave slots in the caller frame.
976 +A0OFF=FRAMESZ
977 +A1OFF=FRAMESZ + (1*SZREG)
978 +A2OFF=FRAMESZ + (2*SZREG)
979 +A3OFF=FRAMESZ + (3*SZREG)
980 +
981 + #
982 + # _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
983 + # a0 a1 a2 a3
984 +
985 +NESTED(_XPTC_InvokeByIndex, FRAMESZ, ra)
986 +
987 + .set noreorder
988 + .cpload t9
989 + .set reorder
990 +
991 + subu sp, FRAMESZ
992 +
993 + # specify the save register mask -- XXX do we want the a0-a3 here, given
994 + # our "split" frame where the args are saved below a dynamicly allocated
995 + # region under the high frame?
996 + #
997 + # 10010000000000010000000011110000
998 + .mask 0x900100F0, -((NARGSAVE+LOCALSZ)*SZREG)
999 +
1000 + # thou shalt not use .cprestore if yer frame has variable size...
1001 + # .cprestore GPOFF
1002 +
1003 + REG_S ra, RAOFF(sp)
1004 +
1005 + # this happens automatically with .cprestore, but we cannot use that op...
1006 + REG_S gp, GPOFF(sp)
1007 + REG_S s0, S0OFF(sp)
1008 + REG_S s1, S1OFF(sp)
1009 +
1010 + REG_S a0, A0OFF(sp)
1011 + REG_S a1, A1OFF(sp)
1012 + REG_S a2, A2OFF(sp)
1013 + REG_S a3, A3OFF(sp)
1014 +
1015 + # invoke_count_words(paramCount, params)
1016 + move a0, a2
1017 + move a1, a3
1018 +
1019 + jal invoke_count_words
1020 + lw gp, GPOFF(sp)
1021 +
1022 + # save the old sp so we can pop the param area and any "low frame"
1023 + # needed as an argsave area below the param block for callees that
1024 + # we invoke.
1025 + move s0, sp
1026 +
1027 + REG_L a1, A2OFF(sp) # a1 = paramCount
1028 + REG_L a2, A3OFF(sp) # a2 = params
1029 +
1030 + # we define a word as 4 bytes, period end of story!
1031 + sll v0, 2 # 4 bytes * result of invoke_copy_words
1032 + subu v0, LOFRAMESZ # but we take back the argsave area built into
1033 + # our stack frame -- SWEET!
1034 + subu sp, sp, v0 # make room
1035 + move a0, sp # a0 = param stack address
1036 + move s1, a0 # save it for later -- it should be safe here
1037 +
1038 + # the old sp is still saved in s0, but we now need another argsave
1039 + # area ("low frame") for the invoke_copy_to_stack call.
1040 + subu sp, sp, LOFRAMESZ
1041 +
1042 + # copy the param into the stack areas
1043 + # invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
1044 + # nsXPTCVariant* s)
1045 + jal invoke_copy_to_stack
1046 + lw gp, GPOFF(s0)
1047 +
1048 + move sp, s0 # get orig sp back, popping params and argsave
1049 +
1050 + REG_L a0, A0OFF(sp) # a0 = set "that" to be "this"
1051 + REG_L a1, A1OFF(sp) # a1 = methodIndex
1052 +
1053 + # t1 = methodIndex * 4
1054 + # (use shift instead of mult)
1055 + sll t1, a1, 2
1056 +
1057 + # calculate the function we need to jump to,
1058 + # which must then be saved in t9
1059 + lw t9, 0(a0)
1060 + addu t9, t9, t1
1061 + lw t9, 8(t9)
1062 +
1063 + # a1..a3 and f13..f14 should now be set to what
1064 + # invoke_copy_to_stack told us. skip a0 and f12
1065 + # because that is the "this" pointer
1066 +
1067 + REG_L a1, 1*SZREG(s1)
1068 + REG_L a2, 2*SZREG(s1)
1069 + REG_L a3, 3*SZREG(s1)
1070 +
1071 + l.d $f13, 8(s1)
1072 + l.d $f14, 16(s1)
1073 +
1074 + # Create the stack pointer for the function, which must have 4 words
1075 + # of space for callee-saved args. invoke_count_words allocated space
1076 + # for a0 starting at s1, so we just move s1 into sp.
1077 + move sp, s1
1078 +
1079 + jalr ra, t9
1080 + lw gp, GPOFF(s0)
1081 +
1082 + move sp, s0
1083 +
1084 + REG_L ra, RAOFF(sp)
1085 + REG_L s0, S0OFF(sp)
1086 + addu sp, FRAMESZ
1087 + j ra
1088 +.end _XPTC_InvokeByIndex
1089 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp
1090 ===================================================================
1091 RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp,v
1092 retrieving revision 1.2
1093 diff -p -u -r1.2 xptcinvoke_mips.cpp
1094 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp 18 Apr 2004 14:18:18 -0000 1.2
1095 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp 30 May 2007 09:08:10 -0000
1096 @@ -1,6 +1,4 @@
1097 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
1098 - * Version: MPL 1.1
1099 - *
1100 * ***** BEGIN LICENSE BLOCK *****
1101 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1102 *
1103 @@ -24,6 +22,7 @@
1104 * Contributor(s):
1105 * Stuart Parmenter <pavlov@××××××××.com>
1106 * Brendan Eich <brendan@×××××××.org>
1107 + * Thiemo Seufer <seufer@×××××××××××××××××××××.de>
1108 *
1109 * Alternatively, the contents of this file may be used under the terms of
1110 * either of the GNU General Public License Version 2 or later (the "GPL"),
1111 @@ -52,10 +51,8 @@ invoke_count_words(PRUint32 paramCount,
1112 // Count a word for a0 even though it's never stored or loaded
1113 // We do this only for alignment of register pairs.
1114 PRUint32 result = 1;
1115 - for (PRUint32 i = 0; i < paramCount; i++, s++)
1116 + for (PRUint32 i = 0; i < paramCount; i++, result++, s++)
1117 {
1118 - result++;
1119 -
1120 if (s->IsPtrData())
1121 continue;
1122
1123 @@ -68,6 +65,9 @@ invoke_count_words(PRUint32 paramCount,
1124 result++;
1125 result++;
1126 break;
1127 +
1128 + default:
1129 + break;
1130 }
1131 }
1132 return (result + 1) & ~(PRUint32)1;
1133 @@ -88,8 +88,6 @@ invoke_copy_to_stack(PRUint32* d, PRUint
1134 continue;
1135 }
1136
1137 - *((void**)d) = s->val.p;
1138 -
1139 switch(s->type)
1140 {
1141 case nsXPTType::T_I64 :
1142 @@ -104,6 +102,9 @@ invoke_copy_to_stack(PRUint32* d, PRUint
1143 if ((PRWord)d & 4) d++;
1144 *((double*) d) = s->val.d; d++;
1145 break;
1146 + default:
1147 + *((void**)d) = s->val.p;
1148 + break;
1149 }
1150 }
1151 }
1152 @@ -118,5 +119,4 @@ XPTC_InvokeByIndex(nsISupports* that, PR
1153 PRUint32 paramCount, nsXPTCVariant* params)
1154 {
1155 return _XPTC_InvokeByIndex(that, methodIndex, paramCount, params);
1156 -}
1157 -
1158 +}
1159 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp
1160 ===================================================================
1161 RCS file: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp
1162 diff -N mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp
1163 --- /dev/null 1 Jan 1970 00:00:00 -0000
1164 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp 30 May 2007 09:08:10 -0000
1165 @@ -0,0 +1,122 @@
1166 +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
1167 + * Version: MPL 1.1
1168 + *
1169 + * ***** BEGIN LICENSE BLOCK *****
1170 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1171 + *
1172 + * The contents of this file are subject to the Mozilla Public License Version
1173 + * 1.1 (the "License"); you may not use this file except in compliance with
1174 + * the License. You may obtain a copy of the License at
1175 + * http://www.mozilla.org/MPL/
1176 + *
1177 + * Software distributed under the License is distributed on an "AS IS" basis,
1178 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1179 + * for the specific language governing rights and limitations under the
1180 + * License.
1181 + *
1182 + * The Original Code is mozilla.org code.
1183 + *
1184 + * The Initial Developer of the Original Code is
1185 + * Netscape Communications Corp, Inc.
1186 + * Portions created by the Initial Developer are Copyright (C) 2001
1187 + * the Initial Developer. All Rights Reserved.
1188 + *
1189 + * Contributor(s):
1190 + * Stuart Parmenter <pavlov@××××××××.com>
1191 + * Brendan Eich <brendan@×××××××.org>
1192 + *
1193 + * Alternatively, the contents of this file may be used under the terms of
1194 + * either of the GNU General Public License Version 2 or later (the "GPL"),
1195 + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1196 + * in which case the provisions of the GPL or the LGPL are applicable instead
1197 + * of those above. If you wish to allow use of your version of this file only
1198 + * under the terms of either the GPL or the LGPL, and not to allow others to
1199 + * use your version of this file under the terms of the MPL, indicate your
1200 + * decision by deleting the provisions above and replace them with the notice
1201 + * and other provisions required by the GPL or the LGPL. If you do not delete
1202 + * the provisions above, a recipient may use your version of this file under
1203 + * the terms of any one of the MPL, the GPL or the LGPL.
1204 + *
1205 + * ***** END LICENSE BLOCK ***** */
1206 +
1207 +/* This code is for MIPS using the O32 ABI. */
1208 +
1209 +/* Platform specific code to invoke XPCOM methods on native objects */
1210 +
1211 +#include "xptcprivate.h"
1212 +
1213 +
1214 +extern "C" uint32
1215 +invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
1216 +{
1217 + // Count a word for a0 even though it's never stored or loaded
1218 + // We do this only for alignment of register pairs.
1219 + PRUint32 result = 1;
1220 + for (PRUint32 i = 0; i < paramCount; i++, s++)
1221 + {
1222 + result++;
1223 +
1224 + if (s->IsPtrData())
1225 + continue;
1226 +
1227 + switch(s->type)
1228 + {
1229 + case nsXPTType::T_I64 :
1230 + case nsXPTType::T_U64 :
1231 + case nsXPTType::T_DOUBLE :
1232 + if (result & 1)
1233 + result++;
1234 + result++;
1235 + break;
1236 + }
1237 + }
1238 + return (result + 1) & ~(PRUint32)1;
1239 +}
1240 +
1241 +extern "C" void
1242 +invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
1243 + nsXPTCVariant* s)
1244 +{
1245 + // Skip the unused a0 slot, which we keep only for register pair alignment.
1246 + d++;
1247 +
1248 + for (PRUint32 i = 0; i < paramCount; i++, d++, s++)
1249 + {
1250 + if (s->IsPtrData())
1251 + {
1252 + *((void**)d) = s->ptr;
1253 + continue;
1254 + }
1255 +
1256 + *((void**)d) = s->val.p;
1257 +
1258 + switch(s->type)
1259 + {
1260 + case nsXPTType::T_I64 :
1261 + if ((PRWord)d & 4) d++;
1262 + *((PRInt64*) d) = s->val.i64; d++;
1263 + break;
1264 + case nsXPTType::T_U64 :
1265 + if ((PRWord)d & 4) d++;
1266 + *((PRUint64*) d) = s->val.u64; d++;
1267 + break;
1268 + case nsXPTType::T_DOUBLE :
1269 + if ((PRWord)d & 4) d++;
1270 + *((double*) d) = s->val.d; d++;
1271 + break;
1272 + }
1273 + }
1274 +}
1275 +
1276 +extern "C" nsresult _XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
1277 + PRUint32 paramCount,
1278 + nsXPTCVariant* params);
1279 +
1280 +extern "C"
1281 +XPTC_PUBLIC_API(nsresult)
1282 +XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
1283 + PRUint32 paramCount, nsXPTCVariant* params)
1284 +{
1285 + return _XPTC_InvokeByIndex(that, methodIndex, paramCount, params);
1286 +}
1287 +
1288 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp
1289 ===================================================================
1290 RCS file: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp
1291 diff -N mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp
1292 --- /dev/null 1 Jan 1970 00:00:00 -0000
1293 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp 30 May 2007 09:08:10 -0000
1294 @@ -0,0 +1,131 @@
1295 +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
1296 + * Version: MPL 1.1
1297 + *
1298 + * ***** BEGIN LICENSE BLOCK *****
1299 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1300 + *
1301 + * The contents of this file are subject to the Mozilla Public License Version
1302 + * 1.1 (the "License"); you may not use this file except in compliance with
1303 + * the License. You may obtain a copy of the License at
1304 + * http://www.mozilla.org/MPL/
1305 + *
1306 + * Software distributed under the License is distributed on an "AS IS" basis,
1307 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1308 + * for the specific language governing rights and limitations under the
1309 + * License.
1310 + *
1311 + * The Original Code is mozilla.org code.
1312 + *
1313 + * The Initial Developer of the Original Code is
1314 + * Netscape Communications Corp, Inc.
1315 + * Portions created by the Initial Developer are Copyright (C) 2001
1316 + * the Initial Developer. All Rights Reserved.
1317 + *
1318 + * Contributor(s):
1319 + * Stuart Parmenter <pavlov@××××××××.com>
1320 + *
1321 + * Alternatively, the contents of this file may be used under the terms of
1322 + * either of the GNU General Public License Version 2 or later (the "GPL"),
1323 + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1324 + * in which case the provisions of the GPL or the LGPL are applicable instead
1325 + * of those above. If you wish to allow use of your version of this file only
1326 + * under the terms of either the GPL or the LGPL, and not to allow others to
1327 + * use your version of this file under the terms of the MPL, indicate your
1328 + * decision by deleting the provisions above and replace them with the notice
1329 + * and other provisions required by the GPL or the LGPL. If you do not delete
1330 + * the provisions above, a recipient may use your version of this file under
1331 + * the terms of any one of the MPL, the GPL or the LGPL.
1332 + *
1333 + * ***** END LICENSE BLOCK ***** */
1334 +
1335 +#include "xptcprivate.h"
1336 +
1337 +/*
1338 + * This is for MIPS O32 ABI
1339 + * Args contains a0-3 and then the stack.
1340 + * Because a0 is 'this', we want to skip it
1341 + */
1342 +extern "C" nsresult
1343 +PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex, PRUint32* args)
1344 +{
1345 + args++; // always skip over a0
1346 +
1347 +#define PARAM_BUFFER_COUNT 16
1348 +
1349 + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
1350 + nsXPTCMiniVariant* dispatchParams = NULL;
1351 + nsIInterfaceInfo* iface_info = NULL;
1352 + const nsXPTMethodInfo* info;
1353 + PRUint8 paramCount;
1354 + PRUint8 i;
1355 + nsresult result = NS_ERROR_FAILURE;
1356 +
1357 + NS_ASSERTION(self,"no self");
1358 +
1359 + self->GetInterfaceInfo(&iface_info);
1360 + NS_ASSERTION(iface_info,"no interface info");
1361 +
1362 + iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
1363 + NS_ASSERTION(info,"no interface info");
1364 +
1365 + paramCount = info->GetParamCount();
1366 +
1367 + // setup variant array pointer
1368 + if(paramCount > PARAM_BUFFER_COUNT)
1369 + dispatchParams = new nsXPTCMiniVariant[paramCount];
1370 + else
1371 + dispatchParams = paramBuffer;
1372 + NS_ASSERTION(dispatchParams,"no place for params");
1373 +
1374 + PRUint32* ap = args;
1375 + for(i = 0; i < paramCount; i++, ap++)
1376 + {
1377 + const nsXPTParamInfo& param = info->GetParam(i);
1378 + const nsXPTType& type = param.GetType();
1379 + nsXPTCMiniVariant* dp = &dispatchParams[i];
1380 +
1381 + if(param.IsOut() || !type.IsArithmetic())
1382 + {
1383 + dp->val.p = (void*) *ap;
1384 + continue;
1385 + }
1386 +
1387 + dp->val.p = (void*) *ap;
1388 +
1389 + switch(type)
1390 + {
1391 + case nsXPTType::T_I64 :
1392 + if ((PRWord)ap & 4) ap++;
1393 + dp->val.i64 = *((PRInt64*) ap); ap++;
1394 + break;
1395 + case nsXPTType::T_U64 :
1396 + if ((PRWord)ap & 4) ap++;
1397 + dp->val.u64 = *((PRInt64*) ap); ap++;
1398 + break;
1399 + case nsXPTType::T_DOUBLE:
1400 + if ((PRWord)ap & 4) ap++;
1401 + dp->val.d = *((double*) ap); ap++;
1402 + break;
1403 + }
1404 + }
1405 +
1406 + result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
1407 +
1408 + NS_RELEASE(iface_info);
1409 +
1410 + if(dispatchParams != paramBuffer)
1411 + delete [] dispatchParams;
1412 +
1413 + return result;
1414 +}
1415 +
1416 +#define STUB_ENTRY(n) // done in the .s file
1417 +
1418 +#define SENTINEL_ENTRY(n) \
1419 +nsresult nsXPTCStubBase::Sentinel##n() \
1420 +{ \
1421 + NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
1422 + return NS_ERROR_NOT_IMPLEMENTED; \
1423 +}
1424 +
1425 +#include "xptcstubsdef.inc"
1426
1427
1428
1429 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/007_mozilla-firefox-1.5-asneeded.patch
1430
1431 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
1432 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
1433
1434 Index: 007_mozilla-firefox-1.5-asneeded.patch
1435 ===================================================================
1436 --- mozilla/embedding/browser/gtk/tests/Makefile.in.orig 2005-02-04 00:01:41.000000000 +0100
1437 +++ mozilla/embedding/browser/gtk/tests/Makefile.in 2006-04-28 05:21:10.000000000 +0200
1438 @@ -75,6 +75,8 @@
1439 endif
1440 endif
1441
1442 +OS_LDFLAGS += -Wl,-rpath-link,'$(DEPTH)/dist/bin'
1443 +
1444 ifdef MOZ_ENABLE_GTK
1445 LIBS += \
1446 -lgtkembedmoz \
1447
1448
1449
1450 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/008_firefox-pkgconfig-1.patch
1451
1452 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
1453 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
1454
1455 Index: 008_firefox-pkgconfig-1.patch
1456 ===================================================================
1457 Fixup pkgconfig files for broken out NSPR and NSS. Patch from Fedora.
1458
1459 --- mozilla/config/autoconf.mk.in.orig 2006-06-14 22:16:08.000000000 +0200
1460 +++ mozilla/config/autoconf.mk.in 2006-07-20 11:00:13.000000000 +0200
1461 @@ -57,13 +57,13 @@
1462 prefix = @prefix@
1463 exec_prefix = @exec_prefix@
1464 bindir = @bindir@
1465 -includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
1466 +includedir = $(mozappdir)/include
1467 libdir = @libdir@
1468 datadir = @datadir@
1469 mandir = @mandir@
1470 -idldir = @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
1471 +idldir = $(mozappdir)/idl
1472
1473 -mozappdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
1474 +mozappdir = $(libdir)/mozilla-$(MOZ_APP_NAME)
1475 mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION)
1476 mrelibdir = $(mredir)/lib
1477
1478 --- mozilla/build/unix/Makefile.in.orig 2005-07-07 20:24:39.000000000 +0200
1479 +++ mozilla/build/unix/Makefile.in 2006-07-20 11:00:13.000000000 +0200
1480 @@ -61,6 +61,19 @@
1481 NSPR_VERSION=$(shell $(DEPTH)/nsprpub/config/nspr-config --version)
1482 endif
1483
1484 +# Hack to make sure that mozilla-nss.pc has the proper nss dependencies
1485 +ifdef MOZ_NATIVE_NSS
1486 +FULL_NSS_CFLAGS=$(shell $(NSS_CONFIG) --cflags)
1487 +FULL_NSS_LIBS=$(shell $(NSS_CONFIG) --libs)
1488 +NSS_NAME=nss
1489 +NSS_VERSION=$(shell $(NSS_CONFIG) --version)
1490 +else
1491 +FULL_NSS_CFLAGS=-I$(includedir)/nss
1492 +FULL_NSS_LIBS=-L$(mozappdir)/nss -lnss3 -lsmime3 -lssl3 -lsoftokn3
1493 +NSS_NAME=$(MOZ_APP_NAME)-nss
1494 +NSS_VERSION=$(MOZ_APP_VERSION)
1495 +endif
1496 +
1497 ifdef MOZ_ENABLE_GTK
1498 SUPERWIN_LIBS=-lgtksuperwin
1499 endif
1500 @@ -83,7 +96,8 @@
1501 -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
1502 -e "s|%DEFS%|$(_DEFS)|" \
1503 -e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
1504 - -e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" > $@
1505 + -e 's|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|' \
1506 + -e 's|\(echo -L.*\)\($$\)|\1 -Wl,-R$(mozappdir)\2|' > $@
1507
1508 $(MOZ_APP_NAME)-%.pc : mozilla-%.pc.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk
1509 cat $< | sed \
1510 @@ -99,7 +113,12 @@
1511 -e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
1512 -e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" \
1513 -e "s|%NSPR_NAME%|$(NSPR_NAME)|" \
1514 - -e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" > $@
1515 + -e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" \
1516 + -e "s|%FULL_NSS_LIBS%|$(FULL_NSS_LIBS)|" \
1517 + -e "s|%FULL_NSS_CFLAGS%|$(FULL_NSS_CFLAGS)|" \
1518 + -e "s|%NSS_NAME%|$(NSS_NAME)|" \
1519 + -e "s|%NSS_VERSION%|$(NSS_VERSION)|" \
1520 + -e "s|\(^Libs: -L.*\)|\1 -Wl,-R\$$\{libdir}|" > $@
1521
1522 libs:: $(MOZ_APP_NAME)-config
1523 chmod 755 $<
1524 --- mozilla/build/unix/mozilla-js.pc.in.orig 2006-07-20 10:58:48.000000000 +0200
1525 +++ mozilla/build/unix/mozilla-js.pc.in 2006-07-20 11:00:13.000000000 +0200
1526 @@ -6,6 +6,6 @@
1527 Name: JavaScript
1528 Description: The Mozilla JavaScript Library
1529 Version: %MOZILLA_VERSION%
1530 -Requires: %NSPR_NAME% >= %NSPR_VERSION%
1531 +Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION%
1532 Libs: -L${libdir} -lmozjs
1533 Cflags: -I${includedir}/js -DXP_UNIX
1534 --- mozilla/build/unix/mozilla-nspr.pc.in.orig 2006-07-20 10:59:11.000000000 +0200
1535 +++ mozilla/build/unix/mozilla-nspr.pc.in 2006-07-20 11:00:13.000000000 +0200
1536 @@ -1,12 +1,5 @@
1537 -prefix=%prefix%
1538 -exec_prefix=%exec_prefix%
1539 -libdir=%libdir%
1540 -includedir=%includedir%
1541 -
1542 Name: NSPR
1543 Description: The Netscape Portable Runtime
1544 Version: %NSPR_VERSION%
1545 -Libs: %FULL_NSPR_LIBS%
1546 -Cflags: %FULL_NSPR_CFLAGS%
1547 -
1548 +Requires: %NSPR_NAME% >= %NSPR_VERSION%
1549
1550 --- mozilla/build/unix/mozilla-xpcom.pc.in.orig 2006-07-20 10:59:32.000000000 +0200
1551 +++ mozilla/build/unix/mozilla-xpcom.pc.in 2006-07-20 11:00:13.000000000 +0200
1552 @@ -7,6 +7,6 @@
1553 Name: XPCOM
1554 Description: The Mozilla Cross Platform Component Library
1555 Version: %MOZILLA_VERSION%
1556 -Requires: %NSPR_NAME% >= %NSPR_VERSION%
1557 +Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION%
1558 Libs: -L${libdir} -lxpcom
1559 Cflags: -I${includedir} -I${includedir}/xpcom -I${includedir}/string
1560 --- mozilla/build/unix/mozilla-nss.pc.in.orig 2006-07-20 10:59:41.000000000 +0200
1561 +++ mozilla/build/unix/mozilla-nss.pc.in 2006-07-20 11:00:13.000000000 +0200
1562 @@ -1,11 +1,4 @@
1563 -prefix=%prefix%
1564 -exec_prefix=%exec_prefix%
1565 -libdir=%libdir%
1566 -includedir=%includedir%
1567 -
1568 Name: NSS
1569 Description: Mozilla Network Security Services
1570 -Version: %MOZILLA_VERSION%
1571 -Requires: %NSPR_NAME% >= %NSPR_VERSION%
1572 -Libs: -L${libdir} -lnss3 -lsmime3 -lssl3 -lsoftokn3
1573 -Cflags: -I${includedir}/nss
1574 +Version: %NSS_VERSION%
1575 +Requires: %NSS_NAME% >= %NSS_VERSION%
1576
1577
1578
1579 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/010_visibility-gcc-4.2.patch
1580
1581 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
1582 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
1583
1584 Index: 010_visibility-gcc-4.2.patch
1585 ===================================================================
1586 --- configure.in.orig 2007-10-12 20:39:27.000000000 +0200
1587 +++ configure.in 2007-10-12 20:40:49.000000000 +0200
1588 @@ -2657,8 +2657,7 @@
1589 ])
1590 if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
1591 "$ac_cv_have_visibility_class_bug" = "no"; then
1592 - VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
1593 - WRAP_SYSTEM_INCLUDES=1
1594 + VISIBILITY_FLAGS='-fvisibility=hidden'
1595 else
1596 VISIBILITY_FLAGS='-fvisibility=hidden'
1597 fi # have visibility pragma bug
1598
1599
1600
1601 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/016_firefox-nss-3.12-asneeded.patch
1602
1603 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
1604 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
1605
1606 Index: 016_firefox-nss-3.12-asneeded.patch
1607 ===================================================================
1608 # Fix a FTBFS with system libnss (caused by bad linking order with libcrmf)
1609 # by Fabien Tassin <fta@×××××××××.org>
1610
1611 Index: seamonkey-1.1.4/configure.in
1612 ===================================================================
1613 --- seamonkey-1.1.4.orig/configure.in
1614 +++ seamonkey-1.1.4/configure.in
1615 @@ -3735,17 +3735,17 @@
1616 [ --with-system-nss Use system installed NSS],
1617 _USE_SYSTEM_NSS=1 )
1618
1619 if test -n "$_USE_SYSTEM_NSS"; then
1620 AM_PATH_NSS(3.0.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
1621 fi
1622
1623 if test -n "$MOZ_NATIVE_NSS"; then
1624 - NSS_LIBS="$NSS_LIBS -lcrmf"
1625 + NSS_LIBS=" -lcrmf $NSS_LIBS"
1626 else
1627 NSS_CFLAGS='-I$(DIST)/public/nss'
1628 NSS_DEP_LIBS='\\\
1629 $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \\\
1630 $(DIST)/lib/$(DLL_PREFIX)smime'$NSS_VERSION'$(DLL_SUFFIX) \\\
1631 $(DIST)/lib/$(DLL_PREFIX)ssl'$NSS_VERSION'$(DLL_SUFFIX) \\\
1632 $(DIST)/lib/$(DLL_PREFIX)nss'$NSS_VERSION'$(DLL_SUFFIX) \\\
1633 $(DIST)/lib/$(DLL_PREFIX)softokn'$NSS_VERSION'$(DLL_SUFFIX)'
1634
1635
1636
1637
1638 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/032_firefox-2.0_ppc64-1.patch
1639
1640 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
1641 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
1642
1643 Index: 032_firefox-2.0_ppc64-1.patch
1644 ===================================================================
1645 # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=361415
1646
1647 unchanged:
1648 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2006-11-21 17:09:28.000000000 +0000
1649 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2006-11-20 10:13:38.000000000 +0000
1650 @@ -267,6 +267,11 @@
1651 ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
1652 AS := $(CC) -c -x assembler-with-cpp
1653 endif
1654 +ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64)
1655 +CPPSRCS := xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp
1656 +ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
1657 +AS := $(CC) -c -x assembler-with-cpp
1658 +endif
1659
1660 #
1661 # NetBSD/PPC
1662 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
1663 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-21 14:01:45.000000000 +0000
1664 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-22 10:43:26.000000000 +0000
1665 @@ -0,0 +1,154 @@
1666 +// -*- Mode: Asm -*-
1667 +//
1668 +// The contents of this file are subject to the Netscape Public
1669 +// License Version 1.1 (the "License"); you may not use this file
1670 +// except in compliance with the License. You may obtain a copy of
1671 +// the License at http://www.mozilla.org/NPL/
1672 +//
1673 +// Software distributed under the License is distributed on an "AS
1674 +// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
1675 +// implied. See the License for the specific language governing
1676 +// rights and limitations under the License.
1677 +//
1678 +// The Original Code is mozilla.org code.
1679 +//
1680 +// The Initial Developer of the Original Code is Netscape
1681 +// Communications Corporation. Portions created by Netscape are
1682 +// Copyright (C) 1999 Netscape Communications Corporation. All
1683 +// Rights Reserved.
1684 +//
1685 +// Contributor(s):
1686 +// dwmw2@×××××××××.org (David Woodhouse)
1687 +// Franz.Sirl-kernel@××××××××××.com (Franz Sirl)
1688 +// beard@××××××××.com (Patrick Beard)
1689 +// waterson@××××××××.com (Chris Waterson)
1690 +//
1691 +
1692 +.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4
1693 +.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
1694 +.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
1695 +.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
1696 +.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
1697 +.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
1698 +.set r30,30; .set r31,31
1699 +.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
1700 +.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
1701 +.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
1702 +.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
1703 +.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
1704 +.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
1705 +.set f30,30; .set f31,31
1706 +
1707 +
1708 +//
1709 +// XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
1710 +// PRUint32 paramCount, nsXPTCVariant* params)
1711 +//
1712 +
1713 + .section ".toc","aw"
1714 + .section ".text"
1715 + .align 2
1716 + .globl XPTC_InvokeByIndex
1717 + .section ".opd","aw"
1718 + .align 3
1719 +XPTC_InvokeByIndex:
1720 + .quad .XPTC_InvokeByIndex,.TOC.@tocbase
1721 + .previous
1722 + .type XPTC_InvokeByIndex,@function
1723 +.XPTC_InvokeByIndex:
1724 + mflr 0
1725 + std 0,16(r1)
1726 +
1727 + std r29,-24(r1)
1728 + std r30,-16(r1)
1729 + std r31,-8(r1)
1730 +
1731 + mr r29,r3 // Save 'that' in r29
1732 + mr r30,r4 // Save 'methodIndex' in r30
1733 + mr r31,r1 // Save old frame
1734 +
1735 + // Allocate stack frame with space for params. Since at least the
1736 + // first 7 parameters (not including 'that') will be in registers,
1737 + // we don't actually need stack space for those. We must ensure
1738 + // that the stack remains 16-byte aligned.
1739 + //
1740 + // | ..128-byte stack frame.. | | 7 GP | 13 FP | 3 NV |
1741 + // | |(params)........| regs | regs | regs |
1742 + // (r1)...........(+112)....(+128)
1743 + // (-23*8).(-16*8).(-3*8)..(r31)
1744 +
1745 + // +stack frame, -unused stack params, +regs storage, +1 for alignment
1746 + addi r7,r5,((112/8)-7+7+13+3+1)
1747 + rldicr r7,r7,3,59 // multiply by 8 and mask with ~15
1748 + neg r7,r7
1749 + stdux r1,r1,r7
1750 +
1751 +
1752 + // Call invoke_copy_to_stack(PRUint64* gpregs, double* fpregs,
1753 + // PRUint32 paramCount, nsXPTCVariant* s,
1754 + // PRUint64* d))
1755 +
1756 + // r5, r6 are passed through intact (paramCount, params)
1757 + // r7 (d) has to be r1+112 -- where parameters are passed on the stack.
1758 + // r3, r4 are above that, easier to address from r31 than from r1
1759 +
1760 + subi r3,r31,(23*8) // r3 --> GPRS
1761 + subi r4,r31,(16*8) // r4 --> FPRS
1762 + addi r7,r1,112 // r7 --> params
1763 + bl invoke_copy_to_stack
1764 + nop
1765 +
1766 + // Set up to invoke function
1767 +
1768 + ld r9,0(r29) // vtable (r29 is 'that')
1769 + mr r3,r29 // self is first arg, obviously
1770 +
1771 + sldi r30,r30,3 // Find function descriptor
1772 + add r9,r9,r30
1773 + ld r9,0(r9)
1774 +
1775 + ld r0,0(r9) // Actual address from fd.
1776 + std r2,40(r1) // Save r2 (TOC pointer)
1777 +
1778 + mtctr 0
1779 + ld r11,16(r9) // Environment pointer from fd.
1780 + ld r2,8(r9) // TOC pointer from fd.
1781 +
1782 + // Load FP and GP registers as required
1783 + ld r4, -(23*8)(r31)
1784 + ld r5, -(22*8)(r31)
1785 + ld r6, -(21*8)(r31)
1786 + ld r7, -(20*8)(r31)
1787 + ld r8, -(19*8)(r31)
1788 + ld r9, -(18*8)(r31)
1789 + ld r10, -(17*8)(r31)
1790 +
1791 + lfd f1, -(16*8)(r31)
1792 + lfd f2, -(15*8)(r31)
1793 + lfd f3, -(14*8)(r31)
1794 + lfd f4, -(13*8)(r31)
1795 + lfd f5, -(12*8)(r31)
1796 + lfd f6, -(11*8)(r31)
1797 + lfd f7, -(10*8)(r31)
1798 + lfd f8, -(9*8)(r31)
1799 + lfd f9, -(8*8)(r31)
1800 + lfd f10, -(7*8)(r31)
1801 + lfd f11, -(6*8)(r31)
1802 + lfd f12, -(5*8)(r31)
1803 + lfd f13, -(4*8)(r31)
1804 +
1805 + bctrl // Do it
1806 +
1807 + ld r2,40(r1) // Load our own TOC pointer
1808 + ld r1,0(r1) // Revert stack frame
1809 + ld 0,16(r1) // Reload lr
1810 + ld 29,-24(r1) // Restore NVGPRS
1811 + ld 30,-16(r1)
1812 + ld 31,-8(r1)
1813 + mtlr 0
1814 + blr
1815 +
1816 + .size XPTC_InvokeByIndex,.-.XPTC_InvokeByIndex
1817 +
1818 + /* Magic indicating no need for an executable stack */
1819 + .section .note.GNU-stack, "", @progbits ; .previous
1820 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 1970-01-01 01:00:00.000000000 +0100
1821 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 2006-11-21 17:00:06.000000000 +0000
1822 @@ -0,0 +1,127 @@
1823 +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
1824 +/* ***** BEGIN LICENSE BLOCK *****
1825 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1826 + *
1827 + * The contents of this file are subject to the Mozilla Public License Version
1828 + * 1.1 (the "License"); you may not use this file except in compliance with
1829 + * the License. You may obtain a copy of the License at
1830 + * http://www.mozilla.org/MPL/
1831 + *
1832 + * Software distributed under the License is distributed on an "AS IS" basis,
1833 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1834 + * for the specific language governing rights and limitations under the
1835 + * License.
1836 + *
1837 + * The Original Code is mozilla.org code.
1838 + *
1839 + * The Initial Developer of the Original Code is
1840 + * Netscape Communications Corporation.
1841 + * Portions created by the Initial Developer are Copyright (C) 1998
1842 + * the Initial Developer. All Rights Reserved.
1843 + *
1844 + * Contributor(s):
1845 + * dwmw2@×××××××××.org (David Woodhouse)
1846 + * Franz.Sirl-kernel@××××××××××.com (Franz Sirl)
1847 + * beard@××××××××.com (Patrick Beard)
1848 + * waterson@××××××××.com (Chris Waterson)
1849 + *
1850 + * Alternatively, the contents of this file may be used under the terms of
1851 + * either of the GNU General Public License Version 2 or later (the "GPL"),
1852 + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1853 + * in which case the provisions of the GPL or the LGPL are applicable instead
1854 + * of those above. If you wish to allow use of your version of this file only
1855 + * under the terms of either the GPL or the LGPL, and not to allow others to
1856 + * use your version of this file under the terms of the MPL, indicate your
1857 + * decision by deleting the provisions above and replace them with the notice
1858 + * and other provisions required by the GPL or the LGPL. If you do not delete
1859 + * the provisions above, a recipient may use your version of this file under
1860 + * the terms of any one of the MPL, the GPL or the LGPL.
1861 + *
1862 + * ***** END LICENSE BLOCK ***** */
1863 +
1864 +// Platform specific code to invoke XPCOM methods on native objects
1865 +
1866 +// The purpose of XPTC_InvokeByIndex() is to map a platform
1867 +// independent call to the platform ABI. To do that,
1868 +// XPTC_InvokeByIndex() has to determine the method to call via vtable
1869 +// access. The parameters for the method are read from the
1870 +// nsXPTCVariant* and prepared for the native ABI.
1871 +
1872 +#include <stdio.h>
1873 +#include "xptcprivate.h"
1874 +
1875 +// 8 integral parameters are passed in registers, not including 'that'
1876 +#define GPR_COUNT 7
1877 +
1878 +// 8 floating point parameters are passed in registers, floats are
1879 +// promoted to doubles when passed in registers
1880 +#define FPR_COUNT 13
1881 +
1882 +extern "C" PRUint32
1883 +invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
1884 +{
1885 + return PRUint32(((paramCount * 2) + 3) & ~3);
1886 +}
1887 +
1888 +extern "C" void
1889 +invoke_copy_to_stack(PRUint64* gpregs,
1890 + double* fpregs,
1891 + PRUint32 paramCount,
1892 + nsXPTCVariant* s,
1893 + PRUint64* d)
1894 +{
1895 + PRUint64 tempu64;
1896 +
1897 + for(uint32 i = 0; i < paramCount; i++, s++) {
1898 + if(s->IsPtrData())
1899 + tempu64 = (PRUint64) s->ptr;
1900 + else {
1901 + switch(s->type) {
1902 + case nsXPTType::T_FLOAT: break;
1903 + case nsXPTType::T_DOUBLE: break;
1904 + case nsXPTType::T_I8: tempu64 = s->val.i8; break;
1905 + case nsXPTType::T_I16: tempu64 = s->val.i16; break;
1906 + case nsXPTType::T_I32: tempu64 = s->val.i32; break;
1907 + case nsXPTType::T_I64: tempu64 = s->val.i64; break;
1908 + case nsXPTType::T_U8: tempu64 = s->val.u8; break;
1909 + case nsXPTType::T_U16: tempu64 = s->val.u16; break;
1910 + case nsXPTType::T_U32: tempu64 = s->val.u32; break;
1911 + case nsXPTType::T_U64: tempu64 = s->val.u64; break;
1912 + case nsXPTType::T_BOOL: tempu64 = s->val.b; break;
1913 + case nsXPTType::T_CHAR: tempu64 = s->val.c; break;
1914 + case nsXPTType::T_WCHAR: tempu64 = s->val.wc; break;
1915 + default: tempu64 = (PRUint64) s->val.p; break;
1916 + }
1917 + }
1918 +
1919 + if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
1920 + if (i < FPR_COUNT)
1921 + fpregs[i] = s->val.d;
1922 + else
1923 + *(double *)d = s->val.d;
1924 + }
1925 + else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
1926 + if (i < FPR_COUNT) {
1927 + fpregs[i] = s->val.f; // if passed in registers, floats are promoted to doubles
1928 + } else {
1929 + float *p = (float *)d;
1930 + p++;
1931 + *p = s->val.f;
1932 + }
1933 + }
1934 + else {
1935 + if (i < GPR_COUNT)
1936 + gpregs[i] = tempu64;
1937 + else
1938 + *d = tempu64;
1939 + }
1940 + if (i >= 7)
1941 + d++;
1942 + }
1943 +}
1944 +
1945 +extern "C"
1946 +XPTC_PUBLIC_API(nsresult)
1947 +XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
1948 + PRUint32 paramCount, nsXPTCVariant* params);
1949 +
1950 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
1951 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s 2006-11-21 16:38:52.000000000 +0000
1952 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s 2006-11-22 10:51:14.000000000 +0000
1953 @@ -0,0 +1,102 @@
1954 +// -*- Mode: Asm -*-
1955 +//
1956 +// The contents of this file are subject to the Netscape Public
1957 +// License Version 1.1 (the "License"); you may not use this file
1958 +// except in compliance with the License. You may obtain a copy of
1959 +// the License at http://www.mozilla.org/NPL/
1960 +//
1961 +// Software distributed under the License is distributed on an "AS
1962 +// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
1963 +// implied. See the License for the specific language governing
1964 +// rights and limitations under the License.
1965 +//
1966 +// The Original Code is mozilla.org code.
1967 +//
1968 +// The Initial Developer of the Original Code is Netscape
1969 +// Communications Corporation. Portions created by Netscape are
1970 +// Copyright (C) 1999 Netscape Communications Corporation. All
1971 +// Rights Reserved.
1972 +//
1973 +// Contributor(s):
1974 +// dwmw2@×××××××××.org (David Woodhouse)
1975 +// Franz.Sirl-kernel@××××××××××.com (Franz Sirl)
1976 +// beard@××××××××.com (Patrick Beard)
1977 +// waterson@××××××××.com (Chris Waterson)
1978 +//
1979 +
1980 +.set r0,0; .set r1,1; .set RTOC,2; .set r3,3; .set r4,4
1981 +.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
1982 +.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
1983 +.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
1984 +.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
1985 +.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
1986 +.set r30,30; .set r31,31
1987 +.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
1988 +.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
1989 +.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
1990 +.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
1991 +.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
1992 +.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
1993 +.set f30,30; .set f31,31
1994 +
1995 + .section ".text"
1996 + .align 2
1997 + .globl SharedStub
1998 + .section ".opd","aw"
1999 + .align 3
2000 +
2001 +SharedStub:
2002 + .quad .SharedStub,.TOC.@tocbase
2003 + .previous
2004 + .type SharedStub,@function
2005 +
2006 +.SharedStub:
2007 + mflr r0
2008 +
2009 + std r4, -56(r1) // Save all GPRS
2010 + std r5, -48(r1)
2011 + std r6, -40(r1)
2012 + std r7, -32(r1)
2013 + std r8, -24(r1)
2014 + std r9, -16(r1)
2015 + std r10, -8(r1)
2016 +
2017 + stfd f13, -64(r1) // ... and FPRS
2018 + stfd f12, -72(r1)
2019 + stfd f11, -80(r1)
2020 + stfd f10, -88(r1)
2021 + stfd f9, -96(r1)
2022 + stfd f8, -104(r1)
2023 + stfd f7, -112(r1)
2024 + stfd f6, -120(r1)
2025 + stfd f5, -128(r1)
2026 + stfd f4, -136(r1)
2027 + stfd f3, -144(r1)
2028 + stfd f2, -152(r1)
2029 + stfd f1, -160(r1)
2030 +
2031 + subi r6,r1,56 // r6 --> gprData
2032 + subi r7,r1,160 // r7 --> fprData
2033 + addi r5,r1,112 // r5 --> extra stack args
2034 +
2035 + std r0, 16(r1)
2036 +
2037 + stdu r1,-288(r1)
2038 + // r3 has the 'self' pointer already
2039 +
2040 + mr r4,r11 // r4 is methodIndex selector, passed
2041 + // via r11 in the nsXPTCStubBase::StubXX() call
2042 +
2043 + bl PrepareAndDispatch
2044 + nop
2045 +
2046 + ld 1,0(r1) // restore stack
2047 + ld r0,16(r1) // restore LR
2048 + mtlr r0
2049 + blr
2050 +
2051 + .size SharedStub,.-.SharedStub
2052 +
2053 +
2054 +/* Magic indicating no need for an executable stack */
2055 +.section .note.GNU-stack, "", @progbits ; .previous
2056 unchanged:
2057 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp 1970-01-01 01:00:00.000000000 +0100
2058 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp 2006-11-21 16:59:46.000000000 +0000
2059 @@ -0,0 +1,247 @@
2060 +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2061 +/* ***** BEGIN LICENSE BLOCK *****
2062 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
2063 + *
2064 + * The contents of this file are subject to the Mozilla Public License Version
2065 + * 1.1 (the "License"); you may not use this file except in compliance with
2066 + * the License. You may obtain a copy of the License at
2067 + * http://www.mozilla.org/MPL/
2068 + *
2069 + * Software distributed under the License is distributed on an "AS IS" basis,
2070 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
2071 + * for the specific language governing rights and limitations under the
2072 + * License.
2073 + *
2074 + * The Original Code is mozilla.org code.
2075 + *
2076 + * The Initial Developer of the Original Code is
2077 + * Netscape Communications Corporation.
2078 + * Portions created by the Initial Developer are Copyright (C) 1999
2079 + * the Initial Developer. All Rights Reserved.
2080 + *
2081 + * Contributor(s):
2082 + * dwmw2@×××××××××.org (David Woodhouse)
2083 + * Franz.Sirl-kernel@××××××××××.com (Franz Sirl)
2084 + * beard@××××××××.com (Patrick Beard)
2085 + * waterson@××××××××.com (Chris Waterson)
2086 + *
2087 + * Alternatively, the contents of this file may be used under the terms of
2088 + * either of the GNU General Public License Version 2 or later (the "GPL"),
2089 + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
2090 + * in which case the provisions of the GPL or the LGPL are applicable instead
2091 + * of those above. If you wish to allow use of your version of this file only
2092 + * under the terms of either the GPL or the LGPL, and not to allow others to
2093 + * use your version of this file under the terms of the MPL, indicate your
2094 + * decision by deleting the provisions above and replace them with the notice
2095 + * and other provisions required by the GPL or the LGPL. If you do not delete
2096 + * the provisions above, a recipient may use your version of this file under
2097 + * the terms of any one of the MPL, the GPL or the LGPL.
2098 + *
2099 + * ***** END LICENSE BLOCK ***** */
2100 +
2101 +// Implement shared vtbl methods.
2102 +
2103 +#include "xptcprivate.h"
2104 +
2105 +// The Linux/PPC ABI (aka PPC/SYSV ABI) passes the first 8 integral
2106 +// parameters and the first 13 floating point parameters in registers
2107 +// (r3-r10 and f1-f13), no stack space is allocated for these by the
2108 +// caller. The rest of the parameters are passed in the callers stack
2109 +// area. The stack pointer has to retain 16-byte alignment, longlongs
2110 +// and doubles are aligned on 8-byte boundaries.
2111 +
2112 +#define PARAM_BUFFER_COUNT 16
2113 +#define GPR_COUNT 7
2114 +#define FPR_COUNT 13
2115 +
2116 +// PrepareAndDispatch() is called by SharedStub() and calls the actual method.
2117 +//
2118 +// - 'args[]' contains the arguments passed on stack
2119 +// - 'gprData[]' contains the arguments passed in integer registers
2120 +// - 'fprData[]' contains the arguments passed in floating point registers
2121 +//
2122 +// The parameters are mapped into an array of type 'nsXPTCMiniVariant'
2123 +// and then the method gets called.
2124 +#include <stdio.h>
2125 +extern "C" nsresult
2126 +PrepareAndDispatch(nsXPTCStubBase* self,
2127 + PRUint64 methodIndex,
2128 + PRUint64* args,
2129 + PRUint64 *gprData,
2130 + double *fprData)
2131 +{
2132 + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
2133 + nsXPTCMiniVariant* dispatchParams = NULL;
2134 + nsIInterfaceInfo* iface_info = NULL;
2135 + const nsXPTMethodInfo* info;
2136 + PRUint32 paramCount;
2137 + PRUint32 i;
2138 + nsresult result = NS_ERROR_FAILURE;
2139 +
2140 + NS_ASSERTION(self,"no self");
2141 +
2142 + self->GetInterfaceInfo(&iface_info);
2143 + NS_ASSERTION(iface_info,"no interface info");
2144 + if (! iface_info)
2145 + return NS_ERROR_UNEXPECTED;
2146 +
2147 + iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
2148 + NS_ASSERTION(info,"no method info");
2149 + if (! info)
2150 + return NS_ERROR_UNEXPECTED;
2151 +
2152 + paramCount = info->GetParamCount();
2153 +
2154 + // setup variant array pointer
2155 + if(paramCount > PARAM_BUFFER_COUNT)
2156 + dispatchParams = new nsXPTCMiniVariant[paramCount];
2157 + else
2158 + dispatchParams = paramBuffer;
2159 +
2160 + NS_ASSERTION(dispatchParams,"no place for params");
2161 + if (! dispatchParams)
2162 + return NS_ERROR_OUT_OF_MEMORY;
2163 +
2164 + PRUint64* ap = args;
2165 + PRUint64 tempu64;
2166 +
2167 + for(i = 0; i < paramCount; i++) {
2168 + const nsXPTParamInfo& param = info->GetParam(i);
2169 + const nsXPTType& type = param.GetType();
2170 + nsXPTCMiniVariant* dp = &dispatchParams[i];
2171 +
2172 + if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
2173 + if (i < FPR_COUNT)
2174 + dp->val.d = fprData[i];
2175 + else
2176 + dp->val.d = *(double*) ap;
2177 + } else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
2178 + if (i < FPR_COUNT)
2179 + dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles
2180 + else {
2181 + float *p = (float *)ap;
2182 + p++;
2183 + dp->val.f = *p;
2184 + }
2185 + } else { /* integer type or pointer */
2186 + if (i < GPR_COUNT)
2187 + tempu64 = gprData[i];
2188 + else
2189 + tempu64 = *ap;
2190 +
2191 + if (param.IsOut() || !type.IsArithmetic())
2192 + dp->val.p = (void*) tempu64;
2193 + else if (type ==nsXPTType::T_I8)
2194 + dp->val.i8 = (PRInt8) tempu64;
2195 + else if (type ==nsXPTType::T_I16)
2196 + dp->val.i16 = (PRInt16) tempu64;
2197 + else if (type ==nsXPTType::T_I32)
2198 + dp->val.i32 = (PRInt32) tempu64;
2199 + else if (type ==nsXPTType::T_I64)
2200 + dp->val.i64 = (PRInt64) tempu64;
2201 + else if (type ==nsXPTType::T_U8)
2202 + dp->val.u8 = (PRUint8) tempu64;
2203 + else if (type ==nsXPTType::T_U16)
2204 + dp->val.u16 = (PRUint16) tempu64;
2205 + else if (type ==nsXPTType::T_U32)
2206 + dp->val.u32 = (PRUint32) tempu64;
2207 + else if (type ==nsXPTType::T_U64)
2208 + dp->val.u64 = (PRUint64) tempu64;
2209 + else if (type ==nsXPTType::T_BOOL)
2210 + dp->val.b = (PRBool) tempu64;
2211 + else if (type ==nsXPTType::T_CHAR)
2212 + dp->val.c = (char) tempu64;
2213 + else if (type ==nsXPTType::T_WCHAR)
2214 + dp->val.wc = (wchar_t) tempu64;
2215 + else
2216 + NS_ASSERTION(0, "bad type");
2217 + }
2218 +
2219 + if (i >= 7)
2220 + ap++;
2221 + }
2222 +
2223 + result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams);
2224 +
2225 + NS_RELEASE(iface_info);
2226 +
2227 + if (dispatchParams != paramBuffer)
2228 + delete [] dispatchParams;
2229 +
2230 + return result;
2231 +}
2232 +
2233 +// Load r11 with the constant 'n' and branch to SharedStub().
2234 +//
2235 +// XXX Yes, it's ugly that we're relying on gcc's name-mangling here;
2236 +// however, it's quick, dirty, and'll break when the ABI changes on
2237 +// us, which is what we want ;-).
2238 +
2239 +#if __GXX_ABI_VERSION < 100
2240 +#error Prehistoric GCC not supported here
2241 +#else
2242 +// gcc-3 version
2243 +//
2244 +// As G++3 ABI contains the length of the functionname in the mangled
2245 +// name, it is difficult to get a generic assembler mechanism like
2246 +// in the G++ 2.95 case.
2247 +// Create names would be like:
2248 +// _ZN14nsXPTCStubBase5Stub1Ev
2249 +// _ZN14nsXPTCStubBase6Stub12Ev
2250 +// _ZN14nsXPTCStubBase7Stub123Ev
2251 +// _ZN14nsXPTCStubBase8Stub1234Ev
2252 +// etc.
2253 +// Use assembler directives to get the names right...
2254 +
2255 +# define STUB_ENTRY(n) \
2256 +__asm__ ( \
2257 + ".section \".toc\",\"aw\" \n\t" \
2258 + ".section \".text\" \n\t" \
2259 + ".align 2 \n\t" \
2260 + ".if "#n" < 10 \n\t" \
2261 + ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
2262 + ".section \".opd\",\"aw\" \n\t" \
2263 + ".align 3 \n\t" \
2264 +"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
2265 + ".quad ._ZN14nsXPTCStubBase5Stub"#n"Ev,.TOC.@tocbase \n\t" \
2266 + ".previous \n\t" \
2267 + ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
2268 +"._ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
2269 + \
2270 + ".elseif "#n" < 100 \n\t" \
2271 + ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
2272 + ".section \".opd\",\"aw\" \n\t" \
2273 + ".align 3 \n\t" \
2274 +"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
2275 + ".quad ._ZN14nsXPTCStubBase6Stub"#n"Ev,.TOC.@tocbase \n\t" \
2276 + ".previous \n\t" \
2277 + ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
2278 +"._ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
2279 + \
2280 + ".elseif "#n" < 1000 \n\t" \
2281 + ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
2282 + ".section \".opd\",\"aw\" \n\t" \
2283 + ".align 3 \n\t" \
2284 +"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
2285 + ".quad ._ZN14nsXPTCStubBase7Stub"#n"Ev,.TOC.@tocbase \n\t" \
2286 + ".previous \n\t" \
2287 + ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
2288 +"._ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
2289 + \
2290 + ".else \n\t" \
2291 + ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
2292 + ".endif \n\t" \
2293 + \
2294 + "li 11,"#n" \n\t" \
2295 + "b SharedStub \n" \
2296 +);
2297 +#endif
2298 +
2299 +#define SENTINEL_ENTRY(n) \
2300 +nsresult nsXPTCStubBase::Sentinel##n() \
2301 +{ \
2302 + NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
2303 + return NS_ERROR_NOT_IMPLEMENTED; \
2304 +}
2305 +
2306 +#include "xptcstubsdef.inc"
2307
2308
2309
2310 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/033_firefox-2.0_ppc_powerpc.patch
2311
2312 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
2313 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
2314
2315 Index: 033_firefox-2.0_ppc_powerpc.patch
2316 ===================================================================
2317 --- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2007-03-05 13:46:38.000000000 +0100
2318 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2007-03-05 13:47:30.000000000 +0100
2319 @@ -288,12 +288,12 @@
2320 #
2321 # Linux/PPC
2322 #
2323 -ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc)
2324 +ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc)
2325 CPPSRCS := xptcinvoke_ppc_linux.cpp xptcstubs_ppc_linux.cpp
2326 ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
2327 AS := $(CC) -c -x assembler-with-cpp
2328 endif
2329 -ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64)
2330 +ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc64)
2331 CPPSRCS := xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp
2332 ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
2333 AS := $(CC) -c -x assembler-with-cpp
2334
2335
2336
2337 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/050_respect-host-variable.patch
2338
2339 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
2340 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
2341
2342 Index: 050_respect-host-variable.patch
2343 ===================================================================
2344 # https://bugs.gentoo.org/show_bug.cgi?id=168893
2345
2346 --- mozilla/configure.in.old 2007-03-02 23:28:27.000000000 +0200
2347 +++ mozilla/configure.in 2007-03-02 23:29:23.000000000 +0200
2348 @@ -825,7 +825,6 @@
2349 OS_TARGET="${target_os}"
2350 OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
2351 OS_RELEASE=
2352 - OS_TEST="${target_cpu}"
2353 case "${target_os}" in
2354 linux*) OS_ARCH=Linux ;;
2355 solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
2356 @@ -837,8 +836,10 @@
2357 OS_TARGET=`uname -s`
2358 OS_ARCH=`uname -s | sed -e 's|/|_|g'`
2359 OS_RELEASE=`uname -r`
2360 - OS_TEST=`uname -m`
2361 fi
2362 +
2363 +OS_TEST="${target_cpu}"
2364 +
2365 _COMPILER_PREFIX=
2366
2367 HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
2368
2369
2370
2371 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/055_firefox-2.0_gfbsd-pthreads.patch
2372
2373 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
2374 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
2375
2376 Index: 055_firefox-2.0_gfbsd-pthreads.patch
2377 ===================================================================
2378 # https://bugs.gentoo.org/show_bug.cgi?id=169825
2379
2380 --- mozilla/config/rules.mk.orig Thu Sep 14 14:07:03 2006
2381 +++ mozilla/config/rules.mk Wed Oct 18 11:00:09 2006
2382 @@ -442,9 +442,7 @@
2383 endif
2384
2385 ifeq ($(OS_ARCH),FreeBSD)
2386 -ifdef IS_COMPONENT
2387 -EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
2388 -endif
2389 +EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
2390 endif
2391
2392 ifeq ($(OS_ARCH),NetBSD)
2393 --- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300
2394 +++ mozilla/configure.in 2007-03-07 15:35:41 -0300
2395 @@ -2667,7 +2667,7 @@
2396 *-hpux11.*)
2397 ;;
2398 *)
2399 - AC_CHECK_LIB(c_r, gethostbyname_r)
2400 + AC_SEARCH_LIBS([gethostbyname_r], [c_r])
2401 ;;
2402 esac
2403 AC_CHECK_LIB(m, atan)
2404 --- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300
2405 +++ mozilla/configure.in 2007-03-07 13:59:53 -0300
2406 @@ -2839,11 +2839,12 @@
2407 *-*-freebsd*)
2408 AC_DEFINE(_REENTRANT)
2409 AC_DEFINE(_THREAD_SAFE)
2410 - dnl -pthread links in -lc_r, so don't specify it explicitly.
2411 - if test "$ac_cv_have_dash_pthread" = "yes"; then
2412 - _PTHREAD_LDFLAGS="-pthread"
2413 + dnl use the environment PTHREAD_LIBS
2414 + if test -n "$PTHREAD_LIBS"; then
2415 + _PTHREAD_LDFLAGS="$PTHREAD_LIBS"
2416 else
2417 - _PTHREAD_LDFLAGS="-lc_r"
2418 + _PTHREAD_LDFLAGS="-lpthread"
2419 fi
2420 + LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
2421 ;;
2422
2423
2424
2425 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/060_embed-typeaheadfind-1.patch
2426
2427 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
2428 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
2429
2430 Index: 060_embed-typeaheadfind-1.patch
2431 ===================================================================
2432 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/Makefile.in mozilla/extensions/typeaheadfind/Makefile.in
2433 --- mozilla.orig/extensions/typeaheadfind/Makefile.in 2005-03-26 00:12:02.000000000 -0500
2434 +++ mozilla/extensions/typeaheadfind/Makefile.in 2005-03-26 11:39:29.000000000 -0500
2435 @@ -31,7 +31,7 @@
2436
2437 include $(DEPTH)/config/autoconf.mk
2438
2439 -MODULE = typeaheadfind
2440 +MODULE = typeaheadfindsea
2441 DIRS = public src resources
2442
2443 include $(topsrcdir)/config/rules.mk
2444 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/public/Makefile.in mozilla/extensions/typeaheadfind/public/Makefile.in
2445 --- mozilla.orig/extensions/typeaheadfind/public/Makefile.in 2005-03-26 00:12:02.000000000 -0500
2446 +++ mozilla/extensions/typeaheadfind/public/Makefile.in 2005-03-26 11:39:29.000000000 -0500
2447 @@ -31,11 +31,11 @@
2448
2449 include $(DEPTH)/config/autoconf.mk
2450
2451 -MODULE=typeaheadfind
2452 -XPIDL_MODULE=typeaheadfind
2453 +MODULE=typeaheadfindsea
2454 +XPIDL_MODULE=typeaheadfindsea
2455 GRE_MODULE = 1
2456
2457 -XPIDLSRCS= ./nsITypeAheadFind.idl \
2458 +XPIDLSRCS= ./nsITypeAheadFindSea.idl \
2459 $(NULL)
2460
2461
2462 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFind.idl mozilla/extensions/typeaheadfind/public/nsITypeAheadFind.idl
2463 --- mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFind.idl 2005-03-26 00:12:02.000000000 -0500
2464 +++ mozilla/extensions/typeaheadfind/public/nsITypeAheadFind.idl 1969-12-31 19:00:00.000000000 -0500
2465 @@ -1,88 +0,0 @@
2466 -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2467 -/* ***** BEGIN LICENSE BLOCK *****
2468 - * Version: MPL 1.1/GPL 2.0/LGPL 2.1
2469 - *
2470 - * The contents of this file are subject to the Mozilla Public License Version
2471 - * 1.1 (the "License"); you may not use this file except in compliance with
2472 - * the License. You may obtain a copy of the License at
2473 - * http://www.mozilla.org/MPL/
2474 - *
2475 - * Software distributed under the License is distributed on an "AS IS" basis,
2476 - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
2477 - * for the specific language governing rights and limitations under the
2478 - * License.
2479 - *
2480 - * The Original Code is mozilla.org code.
2481 - *
2482 - * The Initial Developer of the Original Code is
2483 - * Netscape Communications Corporation.
2484 - * Portions created by the Initial Developer are Copyright (C) 1998
2485 - * the Initial Developer. All Rights Reserved.
2486 - *
2487 - * Contributor(s):
2488 - * Original Author: Aaron Leventhal (aaronl@××××××××.com)
2489 - *
2490 - * Alternatively, the contents of this file may be used under the terms of
2491 - * either the GNU General Public License Version 2 or later (the "GPL"), or
2492 - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
2493 - * in which case the provisions of the GPL or the LGPL are applicable instead
2494 - * of those above. If you wish to allow use of your version of this file only
2495 - * under the terms of either the GPL or the LGPL, and not to allow others to
2496 - * use your version of this file under the terms of the MPL, indicate your
2497 - * decision by deleting the provisions above and replace them with the notice
2498 - * and other provisions required by the GPL or the LGPL. If you do not delete
2499 - * the provisions above, a recipient may use your version of this file under
2500 - * the terms of any one of the MPL, the GPL or the LGPL.
2501 - *
2502 - * ***** END LICENSE BLOCK ***** */
2503 -
2504 -#include "nsISupports.idl"
2505 -#include "domstubs.idl"
2506 -#include "nsISupportsPrimitives.idl"
2507 -
2508 -%{ C++
2509 - #include "nsIDOMEvent.h"
2510 -
2511 - #define NS_TYPEAHEADFIND_CID \
2512 - {0x46590685, 0xbc00, 0x4aac, {0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4}}
2513 -
2514 - #define NS_TYPEAHEADFIND_CONTRACTID "@mozilla.org/typeaheadfind;1"
2515 -%}
2516 -
2517 -interface nsIDOMEvent;
2518 -
2519 -[scriptable, uuid(AD1C62CC-72F4-4c5b-BE78-503854F9E0D8)]
2520 -interface nsITypeAheadFind : nsISupports
2521 -{
2522 - /** Is type ahead find mode currently on? */
2523 - readonly attribute boolean isActive;
2524 -
2525 - /** Manually start type ahead find mode */
2526 - void startNewFind(in nsIDOMWindow aWindow, in boolean aLinksOnly);
2527 -
2528 - /** Manually cancel type ahead find mode */
2529 - void cancelFind();
2530 -
2531 - /**
2532 - * Will find as you type start automatically if the user
2533 - * types with the focus on page content other than a textfield or select?
2534 - * If autostart is off, the startNewFind() method can be used to enact
2535 - * type ahead find, as well as cmd_findTypeLinks or cmd_findTypeText.
2536 - */
2537 - void setAutoStart(in nsIDOMWindow aWindow, in boolean aIsAutoStartOn);
2538 - boolean getAutoStart(in nsIDOMWindow aWindow);
2539 -
2540 - /**
2541 - * Find next recurrence if typeaheadfind was the last used find,
2542 - * as opposed to regular find. Returns false in nsISupportsPRBool if we
2543 - * don't handle the request.
2544 - */
2545 - void findNext(in boolean aReverse, in nsISupportsInterfacePointer aCallerWindowSupports);
2546 -
2547 - /*
2548 - * Go back and remove one character from find string
2549 - * Returns true if backspace used
2550 - */
2551 - boolean backOneChar();
2552 -};
2553 -
2554 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl mozilla/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl
2555 --- mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl 1969-12-31 19:00:00.000000000 -0500
2556 +++ mozilla/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl 2005-03-26 11:39:29.000000000 -0500
2557 @@ -0,0 +1,88 @@
2558 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2559 +/* ***** BEGIN LICENSE BLOCK *****
2560 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
2561 + *
2562 + * The contents of this file are subject to the Mozilla Public License Version
2563 + * 1.1 (the "License"); you may not use this file except in compliance with
2564 + * the License. You may obtain a copy of the License at
2565 + * http://www.mozilla.org/MPL/
2566 + *
2567 + * Software distributed under the License is distributed on an "AS IS" basis,
2568 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
2569 + * for the specific language governing rights and limitations under the
2570 + * License.
2571 + *
2572 + * The Original Code is mozilla.org code.
2573 + *
2574 + * The Initial Developer of the Original Code is
2575 + * Netscape Communications Corporation.
2576 + * Portions created by the Initial Developer are Copyright (C) 1998
2577 + * the Initial Developer. All Rights Reserved.
2578 + *
2579 + * Contributor(s):
2580 + * Original Author: Aaron Leventhal (aaronl@××××××××.com)
2581 + *
2582 + * Alternatively, the contents of this file may be used under the terms of
2583 + * either the GNU General Public License Version 2 or later (the "GPL"), or
2584 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
2585 + * in which case the provisions of the GPL or the LGPL are applicable instead
2586 + * of those above. If you wish to allow use of your version of this file only
2587 + * under the terms of either the GPL or the LGPL, and not to allow others to
2588 + * use your version of this file under the terms of the MPL, indicate your
2589 + * decision by deleting the provisions above and replace them with the notice
2590 + * and other provisions required by the GPL or the LGPL. If you do not delete
2591 + * the provisions above, a recipient may use your version of this file under
2592 + * the terms of any one of the MPL, the GPL or the LGPL.
2593 + *
2594 + * ***** END LICENSE BLOCK ***** */
2595 +
2596 +#include "nsISupports.idl"
2597 +#include "domstubs.idl"
2598 +#include "nsISupportsPrimitives.idl"
2599 +
2600 +%{ C++
2601 + #include "nsIDOMEvent.h"
2602 +
2603 + #define NS_TYPEAHEADFINDSEA_CID \
2604 + {0x46590685, 0xbc00, 0x4aac, {0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4}}
2605 +
2606 + #define NS_TYPEAHEADFINDSEA_CONTRACTID "@mozilla.org/typeaheadfindsea;1"
2607 +%}
2608 +
2609 +interface nsIDOMEvent;
2610 +
2611 +[scriptable, uuid(AD1C62CC-72F4-4c5b-BE78-503854F9E0D8)]
2612 +interface nsITypeAheadFindSea : nsISupports
2613 +{
2614 + /** Is type ahead find mode currently on? */
2615 + readonly attribute boolean isActive;
2616 +
2617 + /** Manually start type ahead find mode */
2618 + void startNewFind(in nsIDOMWindow aWindow, in boolean aLinksOnly);
2619 +
2620 + /** Manually cancel type ahead find mode */
2621 + void cancelFind();
2622 +
2623 + /**
2624 + * Will find as you type start automatically if the user
2625 + * types with the focus on page content other than a textfield or select?
2626 + * If autostart is off, the startNewFind() method can be used to enact
2627 + * type ahead find, as well as cmd_findTypeLinks or cmd_findTypeText.
2628 + */
2629 + void setAutoStart(in nsIDOMWindow aWindow, in boolean aIsAutoStartOn);
2630 + boolean getAutoStart(in nsIDOMWindow aWindow);
2631 +
2632 + /**
2633 + * Find next recurrence if typeaheadfindsea was the last used find,
2634 + * as opposed to regular find. Returns false in nsISupportsPRBool if we
2635 + * don't handle the request.
2636 + */
2637 + void findNext(in boolean aReverse, in nsISupportsInterfacePointer aCallerWindowSupports);
2638 +
2639 + /*
2640 + * Go back and remove one character from find string
2641 + * Returns true if backspace used
2642 + */
2643 + boolean backOneChar();
2644 +};
2645 +
2646 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js mozilla/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js
2647 --- mozilla.orig/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js 2005-03-26 00:12:02.000000000 -0500
2648 +++ mozilla/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js 2005-03-26 11:39:29.000000000 -0500
2649 @@ -36,7 +36,7 @@
2650 *
2651 * ***** END LICENSE BLOCK ***** */
2652
2653 -pref("accessibility.typeaheadfind", true);
2654 -pref("accessibility.typeaheadfind.linksonly", true);
2655 -pref("accessibility.typeaheadfind.startlinksonly", false);
2656 -pref("accessibility.typeaheadfind.timeout", 5000);
2657 +pref("accessibility.typeaheadfindsea", true);
2658 +pref("accessibility.typeaheadfindsea.linksonly", true);
2659 +pref("accessibility.typeaheadfindsea.startlinksonly", false);
2660 +pref("accessibility.typeaheadfindsea.timeout", 5000);
2661 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/jar.mn mozilla/extensions/typeaheadfind/resources/jar.mn
2662 --- mozilla.orig/extensions/typeaheadfind/resources/jar.mn 2005-03-26 00:12:02.000000000 -0500
2663 +++ mozilla/extensions/typeaheadfind/resources/jar.mn 2005-03-26 11:39:29.000000000 -0500
2664 @@ -1,5 +1,5 @@
2665 en-US.jar:
2666 - locale/en-US/global/typeaheadfind.properties (locale/en-US/typeaheadfind.properties)
2667 + locale/en-US/global/typeaheadfindsea.properties (locale/en-US/typeaheadfindsea.properties)
2668
2669 toolkit.jar:
2670 content/global/notfound.wav (content/notfound.wav)
2671 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties
2672 --- mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties 2005-03-26 00:12:02.000000000 -0500
2673 +++ mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties 1969-12-31 19:00:00.000000000 -0500
2674 @@ -1,13 +0,0 @@
2675 -openparen = (
2676 -closeparen = )
2677 -textfound = Text found: "
2678 -textnotfound = Text not found: "
2679 -linkfound = Link found: "
2680 -linknotfound = Link not found: "
2681 -closequote = "
2682 -stopfind = Find stopped.
2683 -starttextfind = Starting -- find text as you type
2684 -startlinkfind = Starting -- find links as you type
2685 -repeated = repeated
2686 -nextmatch = - next match
2687 -prevmatch = - previous match
2688 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties
2689 --- mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties 1969-12-31 19:00:00.000000000 -0500
2690 +++ mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties 2005-03-26 11:39:29.000000000 -0500
2691 @@ -0,0 +1,13 @@
2692 +openparen = (
2693 +closeparen = )
2694 +textfound = Text found: "
2695 +textnotfound = Text not found: "
2696 +linkfound = Link found: "
2697 +linknotfound = Link not found: "
2698 +closequote = "
2699 +stopfind = Find stopped.
2700 +starttextfind = Starting -- find text as you type
2701 +startlinkfind = Starting -- find links as you type
2702 +repeated = repeated
2703 +nextmatch = - next match
2704 +prevmatch = - previous match
2705 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/Makefile.in mozilla/extensions/typeaheadfind/src/Makefile.in
2706 --- mozilla.orig/extensions/typeaheadfind/src/Makefile.in 2005-03-26 00:12:02.000000000 -0500
2707 +++ mozilla/extensions/typeaheadfind/src/Makefile.in 2005-03-26 11:39:29.000000000 -0500
2708 @@ -31,15 +31,15 @@
2709
2710 include $(DEPTH)/config/autoconf.mk
2711
2712 -MODULE = typeaheadfind
2713 -LIBRARY_NAME = typeaheadfind
2714 +MODULE = typeaheadfindsea
2715 +LIBRARY_NAME = typeaheadfindsea
2716 ifneq ($(OS_ARCH),WINNT)
2717 -SHORT_LIBNAME = typahead
2718 +SHORT_LIBNAME = typaheadsea
2719 endif
2720 GRE_MODULE = 1
2721 MOZILLA_INTERNAL_API = 1
2722
2723 -PACKAGE_FILE = typeaheadfind.pkg
2724 +PACKAGE_FILE = typeaheadfindsea.pkg
2725
2726 REQUIRES = appcomps \
2727 embedcomponents \
2728 @@ -66,7 +66,7 @@
2729
2730 EXPORT_LIBRARY = 1
2731 IS_COMPONENT = 1
2732 -MODULE_NAME = nsTypeAheadFind
2733 +MODULE_NAME = nsTypeAheadFindSea
2734
2735 CPPSRCS = \
2736 nsTypeAheadFind.cpp \
2737 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.cpp mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp
2738 --- mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.cpp 2005-03-26 00:12:02.000000000 -0500
2739 +++ mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp 2005-03-26 11:39:29.000000000 -0500
2740 @@ -114,8 +114,8 @@
2741 ////////////////////////////////////////////////////////////////////////
2742
2743
2744 -NS_INTERFACE_MAP_BEGIN(nsTypeAheadFind)
2745 - NS_INTERFACE_MAP_ENTRY(nsITypeAheadFind)
2746 +NS_INTERFACE_MAP_BEGIN(nsTypeAheadFindSea)
2747 + NS_INTERFACE_MAP_ENTRY(nsITypeAheadFindSea)
2748 NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
2749 NS_INTERFACE_MAP_ENTRY(nsITimerCallback)
2750 NS_INTERFACE_MAP_ENTRY(nsIScrollPositionListener)
2751 @@ -128,8 +128,8 @@
2752 NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener, nsIDOMKeyListener)
2753 NS_INTERFACE_MAP_END
2754
2755 -NS_IMPL_ADDREF(nsTypeAheadFind)
2756 -NS_IMPL_RELEASE(nsTypeAheadFind)
2757 +NS_IMPL_ADDREF(nsTypeAheadFindSea)
2758 +NS_IMPL_RELEASE(nsTypeAheadFindSea)
2759
2760 static NS_DEFINE_IID(kRangeCID, NS_RANGE_CID);
2761 static NS_DEFINE_CID(kStringBundleServiceCID, NS_STRINGBUNDLESERVICE_CID);
2762 @@ -138,11 +138,11 @@
2763
2764 #define NS_FIND_CONTRACTID "@mozilla.org/embedcomp/rangefind;1"
2765
2766 -nsTypeAheadFind* nsTypeAheadFind::sInstance = nsnull;
2767 -PRInt32 nsTypeAheadFind::sAccelKey = -1; // magic value of -1 when unitialized
2768 +nsTypeAheadFindSea* nsTypeAheadFindSea::sInstance = nsnull;
2769 +PRInt32 nsTypeAheadFindSea::sAccelKey = -1; // magic value of -1 when unitialized
2770
2771
2772 -nsTypeAheadFind::nsTypeAheadFind():
2773 +nsTypeAheadFindSea::nsTypeAheadFindSea():
2774 mIsFindAllowedInWindow(PR_FALSE), mAutoStartPref(PR_FALSE),
2775 mLinksOnlyPref(PR_FALSE), mStartLinksOnlyPref(PR_FALSE),
2776 mLinksOnly(PR_FALSE), mIsTypeAheadOn(PR_FALSE), mCaretBrowsingOn(PR_FALSE),
2777 @@ -161,25 +161,25 @@
2778 static PRInt32 gInstanceCount;
2779 ++gInstanceCount;
2780 NS_ASSERTION(gInstanceCount == 1,
2781 - "There should be only 1 instance of nsTypeAheadFind!");
2782 + "There should be only 1 instance of nsTypeAheadFindSea!");
2783 #endif
2784 }
2785
2786
2787 -nsTypeAheadFind::~nsTypeAheadFind()
2788 +nsTypeAheadFindSea::~nsTypeAheadFindSea()
2789 {
2790 RemoveDocListeners();
2791 mTimer = nsnull;
2792
2793 nsCOMPtr<nsIPrefBranch2> prefInternal(do_GetService(NS_PREFSERVICE_CONTRACTID));
2794 if (prefInternal) {
2795 - prefInternal->RemoveObserver("accessibility.typeaheadfind", this);
2796 + prefInternal->RemoveObserver("accessibility.typeaheadfindsea", this);
2797 prefInternal->RemoveObserver("accessibility.browsewithcaret", this);
2798 }
2799 }
2800
2801 nsresult
2802 -nsTypeAheadFind::Init()
2803 +nsTypeAheadFindSea::Init()
2804 {
2805 nsresult rv = NS_NewISupportsArray(getter_AddRefs(mManualFindWindows));
2806 NS_ENSURE_SUCCESS(rv, rv);
2807 @@ -196,7 +196,7 @@
2808 }
2809
2810 // ----------- Listen to prefs ------------------
2811 - rv = prefInternal->AddObserver("accessibility.typeaheadfind", this, PR_FALSE);
2812 + rv = prefInternal->AddObserver("accessibility.typeaheadfindsea", this, PR_FALSE);
2813 NS_ENSURE_SUCCESS(rv, rv);
2814
2815 rv = prefInternal->AddObserver("accessibility.browsewithcaret", this, PR_FALSE);
2816 @@ -217,11 +217,11 @@
2817 return rv;
2818 }
2819
2820 -nsTypeAheadFind *
2821 -nsTypeAheadFind::GetInstance()
2822 +nsTypeAheadFindSea *
2823 +nsTypeAheadFindSea::GetInstance()
2824 {
2825 if (!sInstance) {
2826 - sInstance = new nsTypeAheadFind();
2827 + sInstance = new nsTypeAheadFindSea();
2828 if (!sInstance)
2829 return nsnull;
2830
2831 @@ -241,14 +241,14 @@
2832
2833
2834 void
2835 -nsTypeAheadFind::ReleaseInstance()
2836 +nsTypeAheadFindSea::ReleaseInstance()
2837 {
2838 NS_IF_RELEASE(sInstance);
2839 }
2840
2841
2842 void
2843 -nsTypeAheadFind::Shutdown()
2844 +nsTypeAheadFindSea::Shutdown()
2845 {
2846 // Application shutdown
2847 mTimer = nsnull;
2848 @@ -264,14 +264,14 @@
2849 // ------- Pref Callbacks (2) ---------------
2850
2851 nsresult
2852 -nsTypeAheadFind::PrefsReset()
2853 +nsTypeAheadFindSea::PrefsReset()
2854 {
2855 nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
2856 NS_ENSURE_TRUE(prefBranch, NS_ERROR_FAILURE);
2857
2858 PRBool wasTypeAheadOn = mIsTypeAheadOn;
2859
2860 - prefBranch->GetBoolPref("accessibility.typeaheadfind", &mIsTypeAheadOn);
2861 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea", &mIsTypeAheadOn);
2862
2863 if (mIsTypeAheadOn != wasTypeAheadOn) {
2864 if (!mIsTypeAheadOn) {
2865 @@ -291,7 +291,7 @@
2866 do_GetService(kStringBundleServiceCID);
2867
2868 if (stringBundleService)
2869 - stringBundleService->CreateBundle(TYPEAHEADFIND_BUNDLE_URL,
2870 + stringBundleService->CreateBundle(TYPEAHEADFINDSEA_BUNDLE_URL,
2871 getter_AddRefs(mStringBundle));
2872
2873 // Observe find again commands. We'll handle them if we were the last find
2874 @@ -306,34 +306,34 @@
2875 }
2876
2877 PRBool oldAutoStartPref = mAutoStartPref;
2878 - prefBranch->GetBoolPref("accessibility.typeaheadfind.autostart",
2879 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.autostart",
2880 &mAutoStartPref);
2881 if (mAutoStartPref != oldAutoStartPref) {
2882 ResetGlobalAutoStart(mAutoStartPref);
2883 }
2884
2885 - prefBranch->GetBoolPref("accessibility.typeaheadfind.linksonly",
2886 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.linksonly",
2887 &mLinksOnlyPref);
2888
2889 - prefBranch->GetBoolPref("accessibility.typeaheadfind.startlinksonly",
2890 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.startlinksonly",
2891 &mStartLinksOnlyPref);
2892
2893 PRBool isSoundEnabled = PR_TRUE;
2894 - prefBranch->GetBoolPref("accessibility.typeaheadfind.enablesound",
2895 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.enablesound",
2896 &isSoundEnabled);
2897 nsXPIDLCString soundStr;
2898 if (isSoundEnabled) {
2899 - prefBranch->GetCharPref("accessibility.typeaheadfind.soundURL",
2900 + prefBranch->GetCharPref("accessibility.typeaheadfindsea.soundURL",
2901 getter_Copies(soundStr));
2902 }
2903 mNotFoundSoundURL = soundStr;
2904
2905 PRBool isTimeoutEnabled = PR_FALSE;
2906 - prefBranch->GetBoolPref("accessibility.typeaheadfind.enabletimeout",
2907 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.enabletimeout",
2908 &isTimeoutEnabled);
2909 PRInt32 timeoutLength = 0;
2910 if (isTimeoutEnabled) {
2911 - prefBranch->GetIntPref("accessibility.typeaheadfind.timeout",
2912 + prefBranch->GetIntPref("accessibility.typeaheadfindsea.timeout",
2913 &timeoutLength);
2914 }
2915 mTimeoutLength = timeoutLength;
2916 @@ -349,7 +349,7 @@
2917 // ------- nsITimer Methods (1) ---------------
2918
2919 NS_IMETHODIMP
2920 -nsTypeAheadFind::Notify(nsITimer *timer)
2921 +nsTypeAheadFindSea::Notify(nsITimer *timer)
2922 {
2923 CancelFind();
2924 return NS_OK;
2925 @@ -358,7 +358,7 @@
2926 // ----------- nsIObserver Methods (1) -------------------
2927
2928 NS_IMETHODIMP
2929 -nsTypeAheadFind::Observe(nsISupports *aSubject, const char *aTopic,
2930 +nsTypeAheadFindSea::Observe(nsISupports *aSubject, const char *aTopic,
2931 const PRUnichar *aData)
2932 {
2933 PRBool isOpening;
2934 @@ -476,7 +476,7 @@
2935
2936
2937 nsresult
2938 -nsTypeAheadFind::UseInWindow(nsIDOMWindow *aDOMWin)
2939 +nsTypeAheadFindSea::UseInWindow(nsIDOMWindow *aDOMWin)
2940 {
2941 NS_ENSURE_ARG_POINTER(aDOMWin);
2942
2943 @@ -529,7 +529,7 @@
2944 // ------- nsIDOMEventListener Methods (1) ---------------
2945
2946 NS_IMETHODIMP
2947 -nsTypeAheadFind::HandleEvent(nsIDOMEvent* aEvent)
2948 +nsTypeAheadFindSea::HandleEvent(nsIDOMEvent* aEvent)
2949 {
2950 nsAutoString eventType;
2951 aEvent->GetType(eventType);
2952 @@ -589,21 +589,21 @@
2953 // ------- nsIDOMKeyListener Methods (3) ---------------
2954
2955 NS_IMETHODIMP
2956 -nsTypeAheadFind::KeyDown(nsIDOMEvent* aEvent)
2957 +nsTypeAheadFindSea::KeyDown(nsIDOMEvent* aEvent)
2958 {
2959 return NS_OK;
2960 }
2961
2962
2963 NS_IMETHODIMP
2964 -nsTypeAheadFind::KeyUp(nsIDOMEvent* aEvent)
2965 +nsTypeAheadFindSea::KeyUp(nsIDOMEvent* aEvent)
2966 {
2967 return NS_OK;
2968 }
2969
2970
2971 NS_IMETHODIMP
2972 -nsTypeAheadFind::KeyPress(nsIDOMEvent* aEvent)
2973 +nsTypeAheadFindSea::KeyPress(nsIDOMEvent* aEvent)
2974 {
2975 if (!mIsTypeAheadOn || mIsMenuBarActive || mIsMenuPopupActive) {
2976 return NS_OK;
2977 @@ -733,7 +733,7 @@
2978
2979
2980 NS_IMETHODIMP
2981 -nsTypeAheadFind::BackOneChar(PRBool *aIsBackspaceUsed)
2982 +nsTypeAheadFindSea::BackOneChar(PRBool *aIsBackspaceUsed)
2983 {
2984 if (!mFocusedDocSelection) {
2985 *aIsBackspaceUsed = PR_FALSE;
2986 @@ -863,7 +863,7 @@
2987
2988
2989 nsresult
2990 -nsTypeAheadFind::HandleChar(PRUnichar aChar)
2991 +nsTypeAheadFindSea::HandleChar(PRUnichar aChar)
2992 {
2993 // Add a printable char to mTypeAheadBuffer, then search for buffer contents
2994
2995 @@ -1039,7 +1039,7 @@
2996
2997
2998 void
2999 -nsTypeAheadFind::SaveFind()
3000 +nsTypeAheadFindSea::SaveFind()
3001 {
3002 // Store find string for find-next
3003 mFindNextBuffer = mTypeAheadBuffer;
3004 @@ -1060,14 +1060,14 @@
3005 mFindService->SetSearchString(mFindNextBuffer);
3006 }
3007
3008 - // --- If accessibility.typeaheadfind.timeout is set,
3009 + // --- If accessibility.typeaheadfindsea.timeout is set,
3010 // cancel find after specified # milliseconds ---
3011 StartTimeout();
3012 }
3013
3014
3015 void
3016 -nsTypeAheadFind::PlayNotFoundSound()
3017 +nsTypeAheadFindSea::PlayNotFoundSound()
3018 {
3019 if (mNotFoundSoundURL.IsEmpty()) // no sound
3020 return;
3021 @@ -1097,7 +1097,7 @@
3022
3023
3024 NS_IMETHODIMP
3025 -nsTypeAheadFind::HandleText(nsIDOMEvent* aTextEvent)
3026 +nsTypeAheadFindSea::HandleText(nsIDOMEvent* aTextEvent)
3027 {
3028 // This is called multiple times in the middle of an
3029 // IME composition
3030 @@ -1145,7 +1145,7 @@
3031
3032
3033 NS_IMETHODIMP
3034 -nsTypeAheadFind::HandleStartComposition(nsIDOMEvent* aCompositionEvent)
3035 +nsTypeAheadFindSea::HandleStartComposition(nsIDOMEvent* aCompositionEvent)
3036 {
3037 // This is called once at the start of an IME composition
3038
3039 @@ -1167,7 +1167,7 @@
3040
3041
3042 NS_IMETHODIMP
3043 -nsTypeAheadFind::HandleEndComposition(nsIDOMEvent* aCompositionEvent)
3044 +nsTypeAheadFindSea::HandleEndComposition(nsIDOMEvent* aCompositionEvent)
3045 {
3046 // This is called once at the end of an IME composition
3047
3048 @@ -1198,28 +1198,28 @@
3049
3050
3051 NS_IMETHODIMP
3052 -nsTypeAheadFind::HandleQueryComposition(nsIDOMEvent* aCompositionEvent)
3053 +nsTypeAheadFindSea::HandleQueryComposition(nsIDOMEvent* aCompositionEvent)
3054 {
3055 return NS_OK;
3056 }
3057
3058
3059 NS_IMETHODIMP
3060 -nsTypeAheadFind::HandleQueryReconversion(nsIDOMEvent* aCompositionEvent)
3061 +nsTypeAheadFindSea::HandleQueryReconversion(nsIDOMEvent* aCompositionEvent)
3062 {
3063 return NS_OK;
3064 }
3065
3066
3067 NS_IMETHODIMP
3068 -nsTypeAheadFind::HandleQueryCaretRect(nsIDOMEvent* aCompositionEvent)
3069 +nsTypeAheadFindSea::HandleQueryCaretRect(nsIDOMEvent* aCompositionEvent)
3070 {
3071 return NS_OK;
3072 }
3073
3074
3075 nsresult
3076 -nsTypeAheadFind::FindItNow(nsIPresShell *aPresShell,
3077 +nsTypeAheadFindSea::FindItNow(nsIPresShell *aPresShell,
3078 PRBool aIsRepeatingSameChar, PRBool aIsLinksOnly,
3079 PRBool aIsFirstVisiblePreferred)
3080 {
3081 @@ -1241,7 +1241,7 @@
3082
3083 nsCOMPtr<nsISupports> startingContainer = presContext->GetContainer();
3084 nsCOMPtr<nsIDocShellTreeItem> treeItem(do_QueryInterface(startingContainer));
3085 - NS_ASSERTION(treeItem, "Bug 175321 Crashes with Type Ahead Find [@ nsTypeAheadFind::FindItNow]");
3086 + NS_ASSERTION(treeItem, "Bug 175321 Crashes with Type Ahead Find [@ nsTypeAheadFindSea::FindItNow]");
3087 if (!treeItem) {
3088 return NS_ERROR_FAILURE;
3089 }
3090 @@ -1465,7 +1465,7 @@
3091
3092
3093 nsresult
3094 -nsTypeAheadFind::GetSearchContainers(nsISupports *aContainer,
3095 +nsTypeAheadFindSea::GetSearchContainers(nsISupports *aContainer,
3096 PRBool aIsRepeatingSameChar,
3097 PRBool aIsFirstVisiblePreferred,
3098 PRBool aCanUseDocSelection,
3099 @@ -1573,7 +1573,7 @@
3100
3101
3102 void
3103 -nsTypeAheadFind::RangeStartsInsideLink(nsIDOMRange *aRange,
3104 +nsTypeAheadFindSea::RangeStartsInsideLink(nsIDOMRange *aRange,
3105 nsIPresShell *aPresShell,
3106 PRBool *aIsInsideLink,
3107 PRBool *aIsStartingLink)
3108 @@ -1680,7 +1680,7 @@
3109
3110
3111 NS_IMETHODIMP
3112 -nsTypeAheadFind::ScrollPositionWillChange(nsIScrollableView *aView,
3113 +nsTypeAheadFindSea::ScrollPositionWillChange(nsIScrollableView *aView,
3114 nscoord aX, nscoord aY)
3115 {
3116 return NS_OK;
3117 @@ -1688,7 +1688,7 @@
3118
3119
3120 NS_IMETHODIMP
3121 -nsTypeAheadFind::ScrollPositionDidChange(nsIScrollableView *aScrollableView,
3122 +nsTypeAheadFindSea::ScrollPositionDidChange(nsIScrollableView *aScrollableView,
3123 nscoord aX, nscoord aY)
3124 {
3125 if (!mIsFindingText)
3126 @@ -1699,7 +1699,7 @@
3127
3128
3129 NS_IMETHODIMP
3130 -nsTypeAheadFind::NotifySelectionChanged(nsIDOMDocument *aDoc,
3131 +nsTypeAheadFindSea::NotifySelectionChanged(nsIDOMDocument *aDoc,
3132 nsISelection *aSel, PRInt16 aReason)
3133 {
3134 if (!mIsFindingText) {
3135 @@ -1716,10 +1716,10 @@
3136 }
3137
3138
3139 -// ---------------- nsITypeAheadFind --------------------
3140 +// ---------------- nsITypeAheadFindSea --------------------
3141
3142 NS_IMETHODIMP
3143 -nsTypeAheadFind::FindNext(PRBool aFindBackwards, nsISupportsInterfacePointer *aCallerWindowSupports)
3144 +nsTypeAheadFindSea::FindNext(PRBool aFindBackwards, nsISupportsInterfacePointer *aCallerWindowSupports)
3145 {
3146 NS_ENSURE_TRUE(aCallerWindowSupports, NS_ERROR_FAILURE);
3147
3148 @@ -1731,7 +1731,7 @@
3149 return NS_OK;
3150 }
3151
3152 - // Compare the top level content pres shell of typeaheadfind
3153 + // Compare the top level content pres shell of typeaheadfindsea
3154 // with the top level content pres shell window where find next is happening
3155 // If they're different, exit so that webbrowswerfind can handle FindNext()
3156
3157 @@ -1764,7 +1764,7 @@
3158 NS_ENSURE_TRUE(callerPresShell, NS_OK);
3159
3160 if (callerPresShell != typeAheadPresShell) {
3161 - // This means typeaheadfind is active in a different window or doc
3162 + // This means typeaheadfindsea is active in a different window or doc
3163 // So it's not appropriate to find next for the current window
3164 mFindNextBuffer.Truncate();
3165 return NS_OK;
3166 @@ -1782,7 +1782,7 @@
3167 webBrowserFind->GetSearchString(getter_Copies(webBrowserFindString));
3168 if (!webBrowserFindString.Equals(mFindNextBuffer)) {
3169 // If they're not equal, then the find dialog was used last,
3170 - // not typeaheadfind. Typeaheadfind applies to the last find,
3171 + // not typeaheadfindsea. Typeaheadfind applies to the last find,
3172 // so we should let nsIWebBrowserFind::FindNext() do it.
3173 mFindNextBuffer.Truncate();
3174 return NS_OK;
3175 @@ -1832,7 +1832,7 @@
3176
3177
3178 NS_IMETHODIMP
3179 -nsTypeAheadFind::GetIsActive(PRBool *aIsActive)
3180 +nsTypeAheadFindSea::GetIsActive(PRBool *aIsActive)
3181 {
3182 *aIsActive = mLinksOnlyManuallySet || !mTypeAheadBuffer.IsEmpty();
3183
3184 @@ -1845,7 +1845,7 @@
3185 */
3186
3187 NS_IMETHODIMP
3188 -nsTypeAheadFind::StartNewFind(nsIDOMWindow *aWindow, PRBool aLinksOnly)
3189 +nsTypeAheadFindSea::StartNewFind(nsIDOMWindow *aWindow, PRBool aLinksOnly)
3190 {
3191 if (!mFind || !mIsTypeAheadOn || !aWindow)
3192 return NS_ERROR_FAILURE; // Type Ahead Find not correctly initialized
3193 @@ -1878,7 +1878,7 @@
3194 }
3195
3196 void
3197 -nsTypeAheadFind::ResetGlobalAutoStart(PRBool aAutoStart)
3198 +nsTypeAheadFindSea::ResetGlobalAutoStart(PRBool aAutoStart)
3199 {
3200 // Enumerate through the current top level windows
3201 // and either attach or remove window listeners
3202 @@ -1916,7 +1916,7 @@
3203
3204
3205 NS_IMETHODIMP
3206 -nsTypeAheadFind::SetAutoStart(nsIDOMWindow *aDOMWin, PRBool aAutoStartOn)
3207 +nsTypeAheadFindSea::SetAutoStart(nsIDOMWindow *aDOMWin, PRBool aAutoStartOn)
3208 {
3209 if (!aDOMWin) {
3210 return NS_ERROR_FAILURE;
3211 @@ -1946,7 +1946,7 @@
3212
3213
3214 NS_IMETHODIMP
3215 -nsTypeAheadFind::GetAutoStart(nsIDOMWindow *aDOMWin, PRBool *aIsAutoStartOn)
3216 +nsTypeAheadFindSea::GetAutoStart(nsIDOMWindow *aDOMWin, PRBool *aIsAutoStartOn)
3217 {
3218 *aIsAutoStartOn = PR_FALSE;
3219
3220 @@ -2014,7 +2014,7 @@
3221
3222
3223 NS_IMETHODIMP
3224 -nsTypeAheadFind::CancelFind()
3225 +nsTypeAheadFindSea::CancelFind()
3226 {
3227 // Stop current find if:
3228 // 1. Escape pressed
3229 @@ -2070,7 +2070,7 @@
3230 // ------- Helper Methods ---------------
3231
3232 void
3233 -nsTypeAheadFind::GetTopContentPresShell(nsIDocShellTreeItem *aDocShellTreeItem,
3234 +nsTypeAheadFindSea::GetTopContentPresShell(nsIDocShellTreeItem *aDocShellTreeItem,
3235 nsIPresShell **aPresShell)
3236 {
3237 *aPresShell = nsnull;
3238 @@ -2086,7 +2086,7 @@
3239 }
3240
3241 void
3242 -nsTypeAheadFind::GetStartWindow(nsIDOMWindow *aWindow, nsIDOMWindow **aStartWindow)
3243 +nsTypeAheadFindSea::GetStartWindow(nsIDOMWindow *aWindow, nsIDOMWindow **aStartWindow)
3244 {
3245 // Return the root ancestor content window of aWindow
3246
3247 @@ -2118,7 +2118,7 @@
3248 }
3249
3250 nsresult
3251 -nsTypeAheadFind::GetWebBrowserFind(nsIDOMWindow *aWin,
3252 +nsTypeAheadFindSea::GetWebBrowserFind(nsIDOMWindow *aWin,
3253 nsIWebBrowserFind **aWebBrowserFind)
3254 {
3255 NS_ENSURE_ARG_POINTER(aWin);
3256 @@ -2143,7 +2143,7 @@
3257
3258
3259 void
3260 -nsTypeAheadFind::StartTimeout()
3261 +nsTypeAheadFindSea::StartTimeout()
3262 {
3263 if (mTimeoutLength) {
3264 if (!mTimer) {
3265 @@ -2159,7 +2159,7 @@
3266 }
3267
3268 void
3269 -nsTypeAheadFind::SetSelectionLook(nsIPresShell *aPresShell,
3270 +nsTypeAheadFindSea::SetSelectionLook(nsIPresShell *aPresShell,
3271 PRBool aChangeColor,
3272 PRBool aEnabled)
3273 {
3274 @@ -2167,8 +2167,8 @@
3275 return;
3276
3277 // Show caret when type ahead find is on
3278 - // Also paint selection bright (typeaheadfind on) or normal
3279 - // (typeaheadfind off)
3280 + // Also paint selection bright (typeaheadfindsea on) or normal
3281 + // (typeaheadfindsea off)
3282
3283 if (aChangeColor) {
3284 mFocusedDocSelCon->SetDisplaySelection(nsISelectionController::SELECTION_ATTENTION);
3285 @@ -2211,7 +2211,7 @@
3286
3287
3288 void
3289 -nsTypeAheadFind::RemoveDocListeners()
3290 +nsTypeAheadFindSea::RemoveDocListeners()
3291 {
3292 nsCOMPtr<nsIPresShell> presShell(GetPresShell());
3293 nsIViewManager* vm = nsnull;
3294 @@ -2245,7 +2245,7 @@
3295
3296
3297 void
3298 -nsTypeAheadFind::AttachDocListeners(nsIPresShell *aPresShell)
3299 +nsTypeAheadFindSea::AttachDocListeners(nsIPresShell *aPresShell)
3300 {
3301 if (!aPresShell) {
3302 return;
3303 @@ -2275,7 +2275,7 @@
3304
3305
3306 void
3307 -nsTypeAheadFind::RemoveWindowListeners(nsIDOMWindow *aDOMWin)
3308 +nsTypeAheadFindSea::RemoveWindowListeners(nsIDOMWindow *aDOMWin)
3309 {
3310 nsCOMPtr<nsIDOMEventTarget> chromeEventHandler;
3311 GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler));
3312 @@ -2332,7 +2332,7 @@
3313
3314
3315 void
3316 -nsTypeAheadFind::AttachWindowListeners(nsIDOMWindow *aDOMWin)
3317 +nsTypeAheadFindSea::AttachWindowListeners(nsIDOMWindow *aDOMWin)
3318 {
3319 nsCOMPtr<nsIDOMEventTarget> chromeEventHandler;
3320 GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler));
3321 @@ -2385,7 +2385,7 @@
3322
3323
3324 void
3325 -nsTypeAheadFind::GetChromeEventHandler(nsIDOMWindow *aDOMWin,
3326 +nsTypeAheadFindSea::GetChromeEventHandler(nsIDOMWindow *aDOMWin,
3327 nsIDOMEventTarget **aChromeTarget)
3328 {
3329 nsCOMPtr<nsPIDOMWindow> privateDOMWindow(do_QueryInterface(aDOMWin));
3330 @@ -2401,7 +2401,7 @@
3331 }
3332
3333 PRBool
3334 -nsTypeAheadFind::IsTargetContentOkay(nsIContent *aContent)
3335 +nsTypeAheadFindSea::IsTargetContentOkay(nsIContent *aContent)
3336 {
3337 if (!aContent) {
3338 return PR_FALSE;
3339 @@ -2439,7 +2439,7 @@
3340
3341
3342 nsresult
3343 -nsTypeAheadFind::GetTargetIfTypeAheadOkay(nsIDOMEvent *aEvent,
3344 +nsTypeAheadFindSea::GetTargetIfTypeAheadOkay(nsIDOMEvent *aEvent,
3345 nsIContent **aTargetContent,
3346 nsIPresShell **aTargetPresShell)
3347 {
3348 @@ -2522,7 +2522,7 @@
3349
3350
3351 void
3352 -nsTypeAheadFind::GetSelection(nsIPresShell *aPresShell,
3353 +nsTypeAheadFindSea::GetSelection(nsIPresShell *aPresShell,
3354 nsISelectionController **aSelCon,
3355 nsISelection **aDOMSel)
3356 {
3357 @@ -2544,7 +2544,7 @@
3358
3359
3360 PRBool
3361 -nsTypeAheadFind::IsRangeVisible(nsIPresShell *aPresShell,
3362 +nsTypeAheadFindSea::IsRangeVisible(nsIPresShell *aPresShell,
3363 nsPresContext *aPresContext,
3364 nsIDOMRange *aRange, PRBool aMustBeInViewPort,
3365 PRBool aGetTopVisibleLeaf,
3366 @@ -2698,7 +2698,7 @@
3367
3368
3369 nsresult
3370 -nsTypeAheadFind::GetTranslatedString(const nsAString& aKey,
3371 +nsTypeAheadFindSea::GetTranslatedString(const nsAString& aKey,
3372 nsAString& aStringOut)
3373 {
3374 nsXPIDLString xsValue;
3375 @@ -2716,7 +2716,7 @@
3376
3377
3378 void
3379 -nsTypeAheadFind::DisplayStatus(PRBool aSuccess, nsIContent *aFocusedContent,
3380 +nsTypeAheadFindSea::DisplayStatus(PRBool aSuccess, nsIContent *aFocusedContent,
3381 PRBool aClearStatus, const PRUnichar *aText)
3382 {
3383 // pres shell -> pres context -> container -> tree item ->
3384 @@ -2863,7 +2863,7 @@
3385 // Make sure we're not focused on a text field, listbox
3386 // or other form control that needs typeahead keystrokes
3387 if (focusedContent) {
3388 - *aResult = nsTypeAheadFind::IsTargetContentOkay(focusedContent);
3389 + *aResult = nsTypeAheadFindSea::IsTargetContentOkay(focusedContent);
3390 return NS_OK;
3391 }
3392
3393 @@ -2928,8 +2928,8 @@
3394 EnsureContentWindow(domWinInternal, getter_AddRefs(startContentWin));
3395 NS_ENSURE_TRUE(startContentWin, NS_ERROR_FAILURE);
3396
3397 - nsCOMPtr<nsITypeAheadFind> typeAhead =
3398 - do_GetService(NS_TYPEAHEADFIND_CONTRACTID);
3399 + nsCOMPtr<nsITypeAheadFindSea> typeAhead =
3400 + do_GetService(NS_TYPEAHEADFINDSEA_CONTRACTID);
3401 NS_ENSURE_TRUE(typeAhead, NS_ERROR_FAILURE);
3402
3403 return typeAhead->StartNewFind(startContentWin, isLinkSearch);
3404 @@ -3013,7 +3013,7 @@
3405 }
3406
3407 already_AddRefed<nsIPresShell>
3408 -nsTypeAheadFind::GetPresShell()
3409 +nsTypeAheadFindSea::GetPresShell()
3410 {
3411 if (!mFocusedWeakShell)
3412 return nsnull;
3413 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.h mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.h
3414 --- mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.h 2005-03-26 00:12:02.000000000 -0500
3415 +++ mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.h 2005-03-26 11:39:29.000000000 -0500
3416 @@ -62,13 +62,13 @@
3417 #include "nsIDOMRange.h"
3418 #include "nsIDOMWindow.h"
3419 #include "nsIDocShellTreeItem.h"
3420 -#include "nsITypeAheadFind.h"
3421 +#include "nsITypeAheadFindSea.h"
3422 #include "nsIStringBundle.h"
3423 #include "nsISupportsArray.h"
3424 #include "nsISound.h"
3425
3426 -#define TYPEAHEADFIND_BUNDLE_URL \
3427 - "chrome://global/locale/typeaheadfind.properties"
3428 +#define TYPEAHEADFINDSEA_BUNDLE_URL \
3429 + "chrome://global/locale/typeaheadfindsea.properties"
3430 #define TYPEAHEADFIND_NOTFOUND_WAV_URL \
3431 "chrome://global/content/notfound.wav"
3432
3433 @@ -82,7 +82,7 @@
3434
3435 const int kMaxBadCharsBeforeCancel = 3;
3436
3437 -class nsTypeAheadFind : public nsITypeAheadFind,
3438 +class nsTypeAheadFindSea : public nsITypeAheadFindSea,
3439 public nsIDOMKeyListener,
3440 public nsIDOMTextListener,
3441 public nsIDOMCompositionListener,
3442 @@ -93,13 +93,13 @@
3443 public nsSupportsWeakReference
3444 {
3445 public:
3446 - nsTypeAheadFind();
3447 - virtual ~nsTypeAheadFind();
3448 + nsTypeAheadFindSea();
3449 + virtual ~nsTypeAheadFindSea();
3450
3451 - NS_DEFINE_STATIC_CID_ACCESSOR(NS_TYPEAHEADFIND_CID);
3452 + NS_DEFINE_STATIC_CID_ACCESSOR(NS_TYPEAHEADFINDSEA_CID);
3453
3454 NS_DECL_ISUPPORTS
3455 - NS_DECL_NSITYPEAHEADFIND
3456 + NS_DECL_NSITYPEAHEADFINDSEA
3457 NS_DECL_NSIOBSERVER
3458 NS_DECL_NSIDOMEVENTLISTENER
3459 NS_DECL_NSISELECTIONLISTENER
3460 @@ -127,7 +127,7 @@
3461 // ----- nsITimerCallback -----------------------------
3462 NS_DECL_NSITIMERCALLBACK
3463
3464 - static nsTypeAheadFind *GetInstance();
3465 + static nsTypeAheadFindSea *GetInstance();
3466 static void ReleaseInstance(void);
3467 static PRBool IsTargetContentOkay(nsIContent *aContent);
3468
3469 @@ -185,7 +185,7 @@
3470 nsresult GetTranslatedString(const nsAString& aKey, nsAString& aStringOut);
3471
3472 // Used by GetInstance and ReleaseInstance
3473 - static nsTypeAheadFind *sInstance;
3474 + static nsTypeAheadFindSea *sInstance;
3475
3476 // Current find state
3477 nsString mTypeAheadBuffer;
3478 @@ -196,7 +196,7 @@
3479
3480 // PRBool's are used instead of PRPackedBool's where the address of the
3481 // boolean variable is getting passed into a method. For example:
3482 - // GetBoolPref("accessibility.typeaheadfind.linksonly", &mLinksOnlyPref);
3483 + // GetBoolPref("accessibility.typeaheadfindsea.linksonly", &mLinksOnlyPref);
3484 PRBool mIsFindAllowedInWindow;
3485 PRBool mAutoStartPref;
3486 PRBool mLinksOnlyPref;
3487 @@ -251,7 +251,7 @@
3488 nsCOMPtr<nsIDOMWindow> mFocusedWindow;
3489 nsCOMPtr<nsIWeakReference> mFocusedWeakShell;
3490
3491 - // Windows where typeaheadfind doesn't auto start as the user types
3492 + // Windows where typeaheadfindsea doesn't auto start as the user types
3493 nsCOMPtr<nsISupportsArray> mManualFindWindows;
3494 };
3495
3496 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp mozilla/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp
3497 --- mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp 2005-03-26 00:12:02.000000000 -0500
3498 +++ mozilla/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp 2005-03-26 11:39:40.000000000 -0500
3499 @@ -55,7 +55,7 @@
3500
3501 // This function is called at component registration time
3502 static NS_METHOD
3503 -nsTypeAheadFindRegistrationProc(nsIComponentManager *aCompMgr, nsIFile *aPath,
3504 +nsTypeAheadFindSeaRegistrationProc(nsIComponentManager *aCompMgr, nsIFile *aPath,
3505 const char *registryLocation,
3506 const char *componentType,
3507 const nsModuleComponentInfo *info)
3508 @@ -64,7 +64,7 @@
3509 // an application component. This makes sure that we're
3510 // initialized on application startup.
3511
3512 - // Register nsTypeAheadFind to be instantiated on startup.
3513 + // Register nsTypeAheadFindSea to be instantiated on startup.
3514 // XXX This is needed on linux, but for some reason not needed on win32.
3515 nsresult rv;
3516 nsCOMPtr<nsICategoryManager> categoryManager =
3517 @@ -74,7 +74,7 @@
3518 rv = categoryManager->AddCategoryEntry(APPSTARTUP_CATEGORY,
3519 - "Type Ahead Find",
3520 + "Type Ahead Find Sea",
3521 "service,"
3522 - NS_TYPEAHEADFIND_CONTRACTID,
3523 + NS_TYPEAHEADFINDSEA_CONTRACTID,
3524 PR_TRUE, PR_TRUE, nsnull);
3525 }
3526
3527 @@ -82,22 +82,22 @@
3528 }
3529
3530
3531 -NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsTypeAheadFind,
3532 - nsTypeAheadFind::GetInstance)
3533 +NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsTypeAheadFindSea,
3534 + nsTypeAheadFindSea::GetInstance)
3535
3536 static void PR_CALLBACK
3537 -TypeAheadFindModuleDtor(nsIModule* self)
3538 +TypeAheadFindSeaModuleDtor(nsIModule* self)
3539 {
3540 - nsTypeAheadFind::ReleaseInstance();
3541 + nsTypeAheadFindSea::ReleaseInstance();
3542 }
3543
3544 static const nsModuleComponentInfo components[] =
3545 {
3546 - { "TypeAheadFind Component", NS_TYPEAHEADFIND_CID,
3547 - NS_TYPEAHEADFIND_CONTRACTID, nsTypeAheadFindConstructor,
3548 - nsTypeAheadFindRegistrationProc, nsnull // Unregistration proc
3549 + { "TypeAheadFindSea Component", NS_TYPEAHEADFINDSEA_CID,
3550 + NS_TYPEAHEADFINDSEA_CONTRACTID, nsTypeAheadFindSeaConstructor,
3551 + nsTypeAheadFindSeaRegistrationProc, nsnull // Unregistration proc
3552 }
3553 };
3554
3555 -NS_IMPL_NSGETMODULE_WITH_DTOR(nsTypeAheadFind, components,
3556 - TypeAheadFindModuleDtor)
3557 +NS_IMPL_NSGETMODULE_WITH_DTOR(nsTypeAheadFindSea, components,
3558 + TypeAheadFindSeaModuleDtor)
3559 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/typeaheadfind.pkg mozilla/extensions/typeaheadfind/src/typeaheadfind.pkg
3560 --- mozilla.orig/extensions/typeaheadfind/src/typeaheadfind.pkg 2005-03-26 00:12:02.000000000 -0500
3561 +++ mozilla/extensions/typeaheadfind/src/typeaheadfind.pkg 1969-12-31 19:00:00.000000000 -0500
3562 @@ -1,9 +0,0 @@
3563 -# why not ship this with GRE/embedding, if we're building it?
3564 -
3565 -[xpfe-browser browser]
3566 -#if SHARED_LIBRARY
3567 -dist/bin/components/@SHARED_LIBRARY@
3568 -#else
3569 -!staticcomp @LIBRARY@ @MODULE_NAME@
3570 -#endif
3571 -!xpt dist/bin/components/typeaheadfind.xpt
3572 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/typeaheadfindsea.pkg mozilla/extensions/typeaheadfind/src/typeaheadfindsea.pkg
3573 --- mozilla.orig/extensions/typeaheadfind/src/typeaheadfindsea.pkg 1969-12-31 19:00:00.000000000 -0500
3574 +++ mozilla/extensions/typeaheadfind/src/typeaheadfindsea.pkg 2005-03-26 11:39:29.000000000 -0500
3575 @@ -0,0 +1,9 @@
3576 +# why not ship this with GRE/embedding, if we're building it?
3577 +
3578 +[xpfe-browser browser]
3579 +#if SHARED_LIBRARY
3580 +dist/bin/components/@SHARED_LIBRARY@
3581 +#else
3582 +!staticcomp @LIBRARY@ @MODULE_NAME@
3583 +#endif
3584 +!xpt dist/bin/components/typeaheadfindsea.xpt
3585
3586
3587
3588 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/063_firefox-rpath-3.patch
3589
3590 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
3591 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
3592
3593 Index: 063_firefox-rpath-3.patch
3594 ===================================================================
3595 Embed library search paths. bug #100597
3596
3597 --- mozilla/config/rules.mk.orig 2006-07-07 06:13:36.000000000 +0200
3598 +++ mozilla/config/rules.mk 2006-07-19 13:22:04.000000000 +0200
3599 @@ -510,7 +510,12 @@
3600 #
3601 ifeq ($(OS_ARCH),Linux)
3602 ifdef IS_COMPONENT
3603 +DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
3604 +OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
3605 EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
3606 +else
3607 +DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN'
3608 +OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN'
3609 endif
3610 endif
3611
3612
3613
3614
3615 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/090_xul-gcc4.3.patch
3616
3617 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
3618 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
3619
3620 Index: 090_xul-gcc4.3.patch
3621 ===================================================================
3622 http://lists.opensuse.org/opensuse-commit/2007-11/msg00823.html
3623
3624 diff -Naur mozilla-orig/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h mozilla/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h
3625 --- mozilla-orig/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 2006-05-20 11:20:48.000000000 -0600
3626 +++ mozilla/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 2008-01-06 22:13:39.000000000 -0600
3627 @@ -39,8 +39,10 @@
3628 #include "imgIEncoder.h"
3629 #ifdef MOZILLA_1_8_BRANCH
3630 #define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH
3631 +#ifndef NS_DECL_IMGIENCODER
3632 #define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH
3633 #endif
3634 +#endif
3635
3636 // needed for JPEG library
3637 #include <stdio.h>
3638 @@ -69,6 +71,14 @@
3639
3640 nsJPEGEncoder();
3641
3642 + NS_IMETHOD InitFromData(const PRUint8* aData,
3643 + PRUint32 aLength, // (unused, req'd by JS)
3644 + PRUint32 aWidth,
3645 + PRUint32 aHeight,
3646 + PRUint32 aStride,
3647 + PRUint32 aInputFormat,
3648 + const nsAString& aOutputOptions);
3649 +
3650 private:
3651 ~nsJPEGEncoder();
3652
3653 diff -Naur mozilla-orig/modules/libpr0n/encoders/png/nsPNGEncoder.h mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.h
3654 --- mozilla-orig/modules/libpr0n/encoders/png/nsPNGEncoder.h 2006-05-20 11:20:49.000000000 -0600
3655 +++ mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.h 2008-01-06 22:11:36.000000000 -0600
3656 @@ -38,8 +38,10 @@
3657 #include "imgIEncoder.h"
3658 #ifdef MOZILLA_1_8_BRANCH
3659 #define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH
3660 +#ifndef NS_DECL_IMGIENCODER
3661 #define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH
3662 #endif
3663 +#endif
3664
3665 #include <png.h>
3666
3667 @@ -63,6 +65,14 @@
3668
3669 nsPNGEncoder();
3670
3671 + NS_IMETHOD InitFromData(const PRUint8* aData,
3672 + PRUint32 aLength, // (unused, req'd by JS)
3673 + PRUint32 aWidth,
3674 + PRUint32 aHeight,
3675 + PRUint32 aStride,
3676 + PRUint32 aInputFormat,
3677 + const nsAString& aOutputOptions);
3678 +
3679 private:
3680 ~nsPNGEncoder();
3681
3682 diff -Naur mozilla-orig/modules/libpr0n/public/imgIEncoder.idl mozilla/modules/libpr0n/public/imgIEncoder.idl
3683 --- mozilla-orig/modules/libpr0n/public/imgIEncoder.idl 2006-05-20 11:20:49.000000000 -0600
3684 +++ mozilla/modules/libpr0n/public/imgIEncoder.idl 2008-01-06 22:15:40.000000000 -0600
3685 @@ -96,6 +96,6 @@
3686 [scriptable, uuid(CCC5B3AD-3E67-4e3d-97E1-B06B2E96FEF8)]
3687 interface imgIEncoder : nsISupports
3688 {
3689 - void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile);
3690 + /* void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile); */
3691 };
3692
3693
3694
3695
3696 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/300_firefox-1.5-makeopts.patch
3697
3698 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
3699 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
3700
3701 Index: 300_firefox-1.5-makeopts.patch
3702 ===================================================================
3703 --- Makefile.in-orig 2006-01-31 14:25:38.508639384 -0600
3704 +++ Makefile.in 2006-01-31 14:25:52.018585560 -0600
3705 @@ -58,6 +58,7 @@
3706 $(MAKE) -C config export
3707 $(MAKE) nspr
3708 $(MAKE) ldap
3709 + $(MAKE) -C parser/expat
3710 $(MAKE) tier_0
3711 $(MAKE) tier_1
3712 $(MAKE) tier_2
3713
3714
3715
3716 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/301_reply-to-list.patch
3717
3718 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
3719 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
3720
3721 Index: 301_reply-to-list.patch
3722 ===================================================================
3723 diff -urN mozillaorig/mail/base/content/mailCommands.js mozilla/mail/base/content/mailCommands.js
3724 --- mozillaorig/mail/base/content/mailCommands.js 2007-02-07 15:24:40.000000000 +0100
3725 +++ mozilla/mail/base/content/mailCommands.js 2007-02-07 16:18:59.000000000 +0100
3726 @@ -271,8 +271,9 @@
3727 var messageIDScheme = messageID ? messageID.split(":")[0] : "";
3728 if (messageIDScheme && (messageIDScheme == 'http' || messageIDScheme == 'https') && "openComposeWindowForRSSArticle" in this)
3729 openComposeWindowForRSSArticle(messageID, hdr, type);
3730 - else if (type == msgComposeType.Reply ||
3731 + else if (type == msgComposeType.Reply ||
3732 type == msgComposeType.ReplyAll ||
3733 + type == msgComposeType.ReplyToList ||
3734 type == msgComposeType.ForwardInline ||
3735 type == msgComposeType.ReplyToGroup ||
3736 type == msgComposeType.ReplyToSender ||
3737 diff -urN mozillaorig/mailnews/base/resources/content/mailCommands.js mozilla/mailnews/base/resources/content/mailCommands.js
3738 --- mozillaorig/mailnews/base/resources/content/mailCommands.js 2007-02-07 15:26:44.000000000 +0100
3739 +++ mozilla/mailnews/base/resources/content/mailCommands.js 2007-02-07 16:18:59.000000000 +0100
3740 @@ -268,8 +268,9 @@
3741 }
3742 }
3743
3744 - if (type == msgComposeType.Reply ||
3745 + if (type == msgComposeType.Reply ||
3746 type == msgComposeType.ReplyAll ||
3747 + type == msgComposeType.ReplyToList ||
3748 type == msgComposeType.ForwardInline ||
3749 type == msgComposeType.ReplyToGroup ||
3750 type == msgComposeType.ReplyToSender ||
3751 diff -urN mozillaorig/mailnews/compose/public/nsIMsgComposeParams.idl mozilla/mailnews/compose/public/nsIMsgComposeParams.idl
3752 --- mozillaorig/mailnews/compose/public/nsIMsgComposeParams.idl 2007-02-07 15:26:46.000000000 +0100
3753 +++ mozilla/mailnews/compose/public/nsIMsgComposeParams.idl 2007-02-07 16:18:59.000000000 +0100
3754 @@ -59,6 +59,7 @@
3755 const long Template = 10;
3756 const long MailToUrl = 11;
3757 const long ReplyWithTemplate = 12;
3758 + const long ReplyToList = 13;
3759 };
3760
3761
3762 diff -urN mozillaorig/mailnews/compose/src/nsMsgCompose.cpp mozilla/mailnews/compose/src/nsMsgCompose.cpp
3763 --- mozillaorig/mailnews/compose/src/nsMsgCompose.cpp 2007-02-07 15:26:46.000000000 +0100
3764 +++ mozilla/mailnews/compose/src/nsMsgCompose.cpp 2007-02-07 16:18:59.000000000 +0100
3765 @@ -1751,6 +1751,7 @@
3766 default: break;
3767 case nsIMsgCompType::Reply :
3768 case nsIMsgCompType::ReplyAll:
3769 + case nsIMsgCompType::ReplyToList:
3770 case nsIMsgCompType::ReplyToGroup:
3771 case nsIMsgCompType::ReplyToSender:
3772 case nsIMsgCompType::ReplyToSenderAndGroup:
3773 @@ -2195,8 +2196,13 @@
3774 if (!mCiteReference.IsEmpty())
3775 compose->SetCiteReference(mCiteReference);
3776
3777 - if (mHeaders && (type == nsIMsgCompType::Reply || type == nsIMsgCompType::ReplyAll || type == nsIMsgCompType::ReplyToSender ||
3778 - type == nsIMsgCompType::ReplyToGroup || type == nsIMsgCompType::ReplyToSenderAndGroup) && mQuoteOriginal)
3779 + if (mHeaders && (type == nsIMsgCompType::Reply ||
3780 + type == nsIMsgCompType::ReplyAll ||
3781 + type == nsIMsgCompType::ReplyToList ||
3782 + type == nsIMsgCompType::ReplyToSender ||
3783 + type == nsIMsgCompType::ReplyToGroup ||
3784 + type == nsIMsgCompType::ReplyToSenderAndGroup) &&
3785 + mQuoteOriginal)
3786 {
3787 nsCOMPtr<nsIMsgCompFields> compFields;
3788 compose->GetCompFields(getter_AddRefs(compFields));
3789 @@ -2213,6 +2219,7 @@
3790 nsAutoString followUpTo;
3791 nsAutoString messageId;
3792 nsAutoString references;
3793 + nsAutoString listPost;
3794 nsXPIDLCString outCString;
3795 PRBool needToRemoveDup = PR_FALSE;
3796 if (!mMimeConverter)
3797 @@ -2266,6 +2273,29 @@
3798
3799 needToRemoveDup = PR_TRUE;
3800 }
3801 +
3802 + mHeaders->ExtractHeader(HEADER_LIST_POST, PR_TRUE, getter_Copies(outCString));
3803 + if (!outCString.IsEmpty())
3804 + mMimeConverter->DecodeMimeHeader(outCString, listPost, charset);
3805 +
3806 + if (type == nsIMsgCompType::ReplyToList && ! listPost.IsEmpty())
3807 + {
3808 + nsString::const_iterator mailtoStart, mailtoEnd;
3809 + listPost.BeginReading(mailtoStart);
3810 + listPost.EndReading(mailtoEnd);
3811 + nsAutoString mailtoText(NS_LITERAL_STRING("<mailto:"));
3812 + PRBool mailtoFound = FindInReadable(mailtoText, mailtoStart, mailtoEnd);
3813 +
3814 + // Strip off the leading "<mailto:" and trailing ">"
3815 + if (mailtoFound && listPost.Equals(mailtoStart.get()) &&
3816 + listPost.RFindChar('>') == listPost.Length() - 1)
3817 + {
3818 + listPost.Cut(0, mailtoText.Length());
3819 + listPost.Cut(listPost.Length() - 1, 1);
3820 +
3821 + compFields->SetTo(listPost);
3822 + }
3823 + }
3824
3825 mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString));
3826 if (outCString)
3827 @@ -2303,7 +2333,8 @@
3828 mMimeConverter->DecodeMimeHeader(outCString, references, charset);
3829 }
3830
3831 - if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()))
3832 + if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()) &&
3833 + ! ((type == nsIMsgCompType::ReplyToList) && ! listPost.IsEmpty()))
3834 {
3835 if (! mailReplyTo.IsEmpty())
3836 { // handle Mail-Reply-To (http://cr.yp.to/proto/replyto.html)
3837 @@ -2808,6 +2839,7 @@
3838 // the header that we then look at when we actually send the message.
3839 if (mType == nsIMsgCompType::Reply ||
3840 mType == nsIMsgCompType::ReplyAll ||
3841 + mType == nsIMsgCompType::ReplyToList ||
3842 mType == nsIMsgCompType::ReplyToGroup ||
3843 mType == nsIMsgCompType::ReplyToSender ||
3844 mType == nsIMsgCompType::ReplyToSenderAndGroup ||
3845 @@ -2846,6 +2878,7 @@
3846 // for this URI.
3847 if (mType == nsIMsgCompType::Reply ||
3848 mType == nsIMsgCompType::ReplyAll ||
3849 + mType == nsIMsgCompType::ReplyToList ||
3850 mType == nsIMsgCompType::ReplyToGroup ||
3851 mType == nsIMsgCompType::ReplyToSender ||
3852 mType == nsIMsgCompType::ReplyToSenderAndGroup ||
3853 @@ -3778,6 +3811,7 @@
3854 case nsIMsgCompType::MailToUrl : /* same as New */
3855 case nsIMsgCompType::Reply : /* should not happen! but just in case */
3856 case nsIMsgCompType::ReplyAll : /* should not happen! but just in case */
3857 + case nsIMsgCompType::ReplyToList : /* should not happen! but just in case */
3858 case nsIMsgCompType::ForwardAsAttachment : /* should not happen! but just in case */
3859 case nsIMsgCompType::ForwardInline :
3860 case nsIMsgCompType::NewsPost :
3861 diff -urN mozillaorig/mailnews/mime/public/nsMailHeaders.h mozilla/mailnews/mime/public/nsMailHeaders.h
3862 --- mozillaorig/mailnews/mime/public/nsMailHeaders.h 2007-02-07 15:26:58.000000000 +0100
3863 +++ mozilla/mailnews/mime/public/nsMailHeaders.h 2007-02-07 16:18:59.000000000 +0100
3864 @@ -65,6 +65,7 @@
3865 #define HEADER_FROM "From"
3866 #define HEADER_STATUS "Status"
3867 #define HEADER_LINES "Lines"
3868 +#define HEADER_LIST_POST "List-Post"
3869 #define HEADER_MAIL_FOLLOWUP_TO "Mail-Followup-To"
3870 #define HEADER_MAIL_REPLY_TO "Mail-Reply-To"
3871 #define HEADER_MESSAGE_ID "Message-ID"
3872
3873
3874
3875 1.1 src/patchsets/mozilla-thunderbird/2.0.0.14/803_fbsd-3.patch
3876
3877 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
3878 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
3879
3880 Index: 803_fbsd-3.patch
3881 ===================================================================
3882 --- a/config/rules.mk 2007-07-03 17:39:53 +0100
3883 +++ b/config/rules.mk 2007-07-03 17:41:50 +0100
3884 @@ -462,6 +462,8 @@
3885 endif
3886
3887 ifeq ($(OS_ARCH),FreeBSD)
3888 +DSO_LDOPTS += -Wl,-rpath,'$(mozappdir)'
3889 +OS_LDFLAGS += -Wl,-rpath,'$(mozappdir)'
3890 EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
3891 endif
3892
3893
3894
3895
3896 --
3897 gentoo-commits@l.g.o mailing list