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