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