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