[gtk-osx] Update WebKit to 1.3.10



commit 5be1faa2024f7485d47d5ad61960ddcb913611e9
Author: Philip Chimento <philip chimento gmail com>
Date:   Mon Dec 26 22:23:04 2011 +0100

    Update WebKit to 1.3.10
    
    That's the last version that will compile without upgrading any other
    modules in modulesets-stable.
    
    Some of the patches are quite hacky. Especially enabling the
    Core Foundation platform and then undefining it in certain source
    files.

 modulesets-stable/gtk-osx-unsupported.modules   |   12 +-
 patches/webkit-1.3-disallowctype.patch          |   14 +
 patches/webkit-1.3-missing-icu-files.patch      |  921 +++++++++++++++++++++++
 patches/webkit-1.3-platform-cf-stuff.patch      |   22 +
 patches/webkit-1.3-plugins-gtk-PluginView.patch |   64 ++
 5 files changed, 1027 insertions(+), 6 deletions(-)
---
diff --git a/modulesets-stable/gtk-osx-unsupported.modules b/modulesets-stable/gtk-osx-unsupported.modules
index bb58a85..b4bf58a 100644
--- a/modulesets-stable/gtk-osx-unsupported.modules
+++ b/modulesets-stable/gtk-osx-unsupported.modules
@@ -188,12 +188,12 @@ This issue was closed by revision r827.
   </autotools>
 
   <autotools id="WebKit" autogen-sh="configure"
-	     autogenargs="--with-target=quartz --disable-video --with-font-backend=pango">
-    <!--branch repo="webkit.org" module="webkit-1.1.12.tar.gz" version="1.1.12">
-      <patch file="http://git.gnome.org/browse/gtk-osx/plain/patches/webkit.patch"; strip="1"/ -->
-    <branch repo="webkit.org" module="webkit-1.1.15.4.tar.gz" version="1.1.15">
-      <patch file="http://git.gnome.org/browse/gtk-osx/plain/patches/webkit-1.1.15.patch"; strip="1"/>
-      <patch file="http://git.gnome.org/browse/gtk-osx/plain/patches/webkit-disallowctype.patch"; strip="1"/>
+	     autogenargs="--with-target=quartz --disable-video --with-font-backend=pango CFLAGS='-DWTF_PLATFORM_CF=1'">
+    <branch repo="webkit.org" module="webkit-1.3.10.tar.gz" version="1.3.10">
+      <patch file="http://git.gnome.org/browse/gtk-osx/plain/patches/webkit-1.3-missing-icu-files.patch"; strip="1"/>
+      <patch file="http://git.gnome.org/browse/gtk-osx/plain/patches/webkit-1.3-disallowctype.patch"; strip="1"/>
+      <patch file="http://git.gnome.org/browse/gtk-osx/plain/patches/webkit-1.3-plugins-gtk-PluginView.patch"; strip="1"/>
+      <patch file="http://git.gnome.org/browse/gtk-osx/plain/patches/webkit-1.3-platform-cf-stuff.patch"; strip="1"/>
     </branch>
     <dependencies>
       <dep package="enchant"/>
diff --git a/patches/webkit-1.3-disallowctype.patch b/patches/webkit-1.3-disallowctype.patch
new file mode 100644
index 0000000..7f76aa5
--- /dev/null
+++ b/patches/webkit-1.3-disallowctype.patch
@@ -0,0 +1,14 @@
+diff -c /usr/local/gtk-stable/src/webkit-1.3.10/Source/WebCore/config.h\~ /usr/local/gtk-stable/src/webkit-1.3.10/Source/WebCore/config.h
+--- a/Source/WebCore/config.h	Tue Sep 22 08:29:21 2009
++++ b/Source/WebCore/config.h	Fri Oct  8 16:35:23 2010
+@@ -98,7 +98,7 @@
+ // Also generates errors on wx on Windows, presumably because these functions
+ // are used from wx headers.
+ #if !PLATFORM(QT) && !PLATFORM(WX) && !PLATFORM(CHROMIUM)
+-#include <wtf/DisallowCType.h>
++//#include <wtf/DisallowCType.h>
+ #endif
+ 
+ #if COMPILER(MSVC)
+
+Diff finished.  Fri Oct  8 16:35:49 2010
diff --git a/patches/webkit-1.3-missing-icu-files.patch b/patches/webkit-1.3-missing-icu-files.patch
new file mode 100644
index 0000000..c94a506
--- /dev/null
+++ b/patches/webkit-1.3-missing-icu-files.patch
@@ -0,0 +1,921 @@
+Index: Source/JavaScriptCore/icu/unicode/usearch.h
+===================================================================
+--- a/Source/JavaScriptCore/icu/unicode/usearch.h	(revision 55240)
++++ b/Source/JavaScriptCore/icu/unicode/usearch.h	(working copy)
+@@ -0,0 +1,643 @@
++/*
++**********************************************************************
++*   Copyright (C) 2001-2005 IBM and others. All rights reserved.
++**********************************************************************
++*   Date        Name        Description
++*  06/28/2001   synwee      Creation.
++**********************************************************************
++*/
++#ifndef USEARCH_H
++#define USEARCH_H
++
++#include "unicode/utypes.h"
++
++#if !UCONFIG_NO_COLLATION
++
++#include "unicode/ucol.h"
++#include "unicode/ucoleitr.h"
++#include "unicode/ubrk.h"
++
++/**
++ * \file
++ * \brief C API: StringSearch
++ *
++ * C Apis for an engine that provides language-sensitive text searching based 
++ * on the comparison rules defined in a <tt>UCollator</tt> data struct,
++ * see <tt>ucol.h</tt>. This ensures that language eccentricity can be 
++ * handled, e.g. for the German collator, characters &szlig; and SS will be matched 
++ * if case is chosen to be ignored. 
++ * See the <a href="http://dev.icu-project.org/cgi-bin/viewcvs.cgi/~checkout~/icuhtml/design/collation/ICU_collation_design.htm";>
++ * "ICU Collation Design Document"</a> for more information.
++ * <p> 
++ * The algorithm implemented is a modified form of the Boyer Moore's search.
++ * For more information  see 
++ * <a href="http://icu.sourceforge.net/docs/papers/efficient_text_searching_in_java.html";>
++ * "Efficient Text Searching in Java"</a>, published in <i>Java Report</i> 
++ * in February, 1999, for further information on the algorithm.
++ * <p>
++ * There are 2 match options for selection:<br>
++ * Let S' be the sub-string of a text string S between the offsets start and 
++ * end <start, end>.
++ * <br>
++ * A pattern string P matches a text string S at the offsets <start, end> 
++ * if
++ * <pre> 
++ * option 1. Some canonical equivalent of P matches some canonical equivalent 
++ *           of S'
++ * option 2. P matches S' and if P starts or ends with a combining mark, 
++ *           there exists no non-ignorable combining mark before or after S' 
++ *           in S respectively. 
++ * </pre>
++ * Option 2. will be the default.
++ * <p>
++ * This search has APIs similar to that of other text iteration mechanisms 
++ * such as the break iterators in <tt>ubrk.h</tt>. Using these 
++ * APIs, it is easy to scan through text looking for all occurances of 
++ * a given pattern. This search iterator allows changing of direction by 
++ * calling a <tt>reset</tt> followed by a <tt>next</tt> or <tt>previous</tt>. 
++ * Though a direction change can occur without calling <tt>reset</tt> first,  
++ * this operation comes with some speed penalty.
++ * Generally, match results in the forward direction will match the result 
++ * matches in the backwards direction in the reverse order
++ * <p>
++ * <tt>usearch.h</tt> provides APIs to specify the starting position 
++ * within the text string to be searched, e.g. <tt>usearch_setOffset</tt>,
++ * <tt>usearch_preceding</tt> and <tt>usearch_following</tt>. Since the 
++ * starting position will be set as it is specified, please take note that 
++ * there are some dangerous positions which the search may render incorrect 
++ * results:
++ * <ul>
++ * <li> The midst of a substring that requires normalization.
++ * <li> If the following match is to be found, the position should not be the
++ *      second character which requires to be swapped with the preceding 
++ *      character. Vice versa, if the preceding match is to be found, 
++ *      position to search from should not be the first character which 
++ *      requires to be swapped with the next character. E.g certain Thai and
++ *      Lao characters require swapping.
++ * <li> If a following pattern match is to be found, any position within a 
++ *      contracting sequence except the first will fail. Vice versa if a 
++ *      preceding pattern match is to be found, a invalid starting point 
++ *      would be any character within a contracting sequence except the last.
++ * </ul>
++ * <p>
++ * A breakiterator can be used if only matches at logical breaks are desired.
++ * Using a breakiterator will only give you results that exactly matches the
++ * boundaries given by the breakiterator. For instance the pattern "e" will
++ * not be found in the string "\u00e9" if a character break iterator is used.
++ * <p>
++ * Options are provided to handle overlapping matches. 
++ * E.g. In English, overlapping matches produces the result 0 and 2 
++ * for the pattern "abab" in the text "ababab", where else mutually 
++ * exclusive matches only produce the result of 0.
++ * <p>
++ * Though collator attributes will be taken into consideration while 
++ * performing matches, there are no APIs here for setting and getting the 
++ * attributes. These attributes can be set by getting the collator
++ * from <tt>usearch_getCollator</tt> and using the APIs in <tt>ucol.h</tt>.
++ * Lastly to update String Search to the new collator attributes, 
++ * usearch_reset() has to be called.
++ * <p> 
++ * Restriction: <br>
++ * Currently there are no composite characters that consists of a
++ * character with combining class > 0 before a character with combining 
++ * class == 0. However, if such a character exists in the future, the 
++ * search mechanism does not guarantee the results for option 1.
++ * 
++ * <p>
++ * Example of use:<br>
++ * <pre><code>
++ * char *tgtstr = "The quick brown fox jumped over the lazy fox";
++ * char *patstr = "fox";
++ * UChar target[64];
++ * UChar pattern[16];
++ * UErrorCode status = U_ZERO_ERROR;
++ * u_uastrcpy(target, tgtstr);
++ * u_uastrcpy(pattern, patstr);
++ *
++ * UStringSearch *search = usearch_open(pattern, -1, target, -1, "en_US", 
++ *                                  &status);
++ * if (U_SUCCESS(status)) {
++ *     for (int pos = usearch_first(search, &status); 
++ *                                      pos != USEARCH_DONE; 
++ *                                      pos = usearch_next(search, &status)) {
++ *         printf("Found match at %d pos, length is %d\n", pos, 
++ *                                        usearch_getMatchLength(search));
++ *     }
++ * }
++ * </code></pre>
++ * @stable ICU 2.4
++ */
++
++/**
++* DONE is returned by previous() and next() after all valid matches have 
++* been returned, and by first() and last() if there are no matches at all.
++* @stable ICU 2.4
++*/
++#define USEARCH_DONE -1
++
++/**
++* Data structure for searching
++* @stable ICU 2.4
++*/
++struct UStringSearch;
++/**
++* Data structure for searching
++* @stable ICU 2.4
++*/
++typedef struct UStringSearch UStringSearch;
++
++/**
++* @stable ICU 2.4
++*/
++typedef enum {
++    /** Option for overlapping matches */
++    USEARCH_OVERLAP,
++    /** 
++    Option for canonical matches. option 1 in header documentation.
++    The default value will be USEARCH_OFF
++    */
++    USEARCH_CANONICAL_MATCH,
++    USEARCH_ATTRIBUTE_COUNT
++} USearchAttribute;
++
++/**
++* @stable ICU 2.4
++*/
++typedef enum {
++    /** default value for any USearchAttribute */
++    USEARCH_DEFAULT = -1,
++    /** value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH */
++    USEARCH_OFF, 
++    /** value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH */
++    USEARCH_ON,
++    USEARCH_ATTRIBUTE_VALUE_COUNT
++} USearchAttributeValue;
++
++/* open and close ------------------------------------------------------ */
++
++/**
++* Creating a search iterator data struct using the argument locale language
++* rule set. A collator will be created in the process, which will be owned by
++* this search and will be deleted in <tt>usearch_close</tt>.
++* @param pattern for matching
++* @param patternlength length of the pattern, -1 for null-termination
++* @param text text string
++* @param textlength length of the text string, -1 for null-termination
++* @param locale name of locale for the rules to be used
++* @param breakiter A BreakIterator that will be used to restrict the points
++*                  at which matches are detected. If a match is found, but 
++*                  the match's start or end index is not a boundary as 
++*                  determined by the <tt>BreakIterator</tt>, the match will 
++*                  be rejected and another will be searched for. 
++*                  If this parameter is <tt>NULL</tt>, no break detection is 
++*                  attempted.
++* @param status for errors if it occurs. If pattern or text is NULL, or if
++*               patternlength or textlength is 0 then an 
++*               U_ILLEGAL_ARGUMENT_ERROR is returned.
++* @return search iterator data structure, or NULL if there is an error.
++* @stable ICU 2.4
++*/
++U_STABLE UStringSearch * U_EXPORT2 usearch_open(const UChar          *pattern, 
++                                              int32_t         patternlength, 
++                                        const UChar          *text, 
++                                              int32_t         textlength,
++                                        const char           *locale,
++                                              UBreakIterator *breakiter,
++                                              UErrorCode     *status);
++
++/**
++* Creating a search iterator data struct using the argument collator language
++* rule set. Note, user retains the ownership of this collator, thus the 
++* responsibility of deletion lies with the user.
++* NOTE: string search cannot be instantiated from a collator that has 
++* collate digits as numbers (CODAN) turned on.
++* @param pattern for matching
++* @param patternlength length of the pattern, -1 for null-termination
++* @param text text string
++* @param textlength length of the text string, -1 for null-termination
++* @param collator used for the language rules
++* @param breakiter A BreakIterator that will be used to restrict the points
++*                  at which matches are detected. If a match is found, but 
++*                  the match's start or end index is not a boundary as 
++*                  determined by the <tt>BreakIterator</tt>, the match will 
++*                  be rejected and another will be searched for. 
++*                  If this parameter is <tt>NULL</tt>, no break detection is 
++*                  attempted.
++* @param status for errors if it occurs. If collator, pattern or text is NULL, 
++*               or if patternlength or textlength is 0 then an 
++*               U_ILLEGAL_ARGUMENT_ERROR is returned.
++* @return search iterator data structure, or NULL if there is an error.
++* @stable ICU 2.4
++*/
++U_STABLE UStringSearch * U_EXPORT2 usearch_openFromCollator(
++                                         const UChar *pattern, 
++                                               int32_t         patternlength,
++                                         const UChar          *text, 
++                                               int32_t         textlength,
++                                         const UCollator      *collator,
++                                               UBreakIterator *breakiter,
++                                               UErrorCode     *status);
++
++/**
++* Destroying and cleaning up the search iterator data struct.
++* If a collator is created in <tt>usearch_open</tt>, it will be destroyed here.
++* @param searchiter data struct to clean up
++* @stable ICU 2.4
++*/
++U_STABLE void U_EXPORT2 usearch_close(UStringSearch *searchiter);
++
++/* get and set methods -------------------------------------------------- */
++
++/**
++* Sets the current position in the text string which the next search will 
++* start from. Clears previous states. 
++* This method takes the argument index and sets the position in the text 
++* string accordingly without checking if the index is pointing to a 
++* valid starting point to begin searching. 
++* Search positions that may render incorrect results are highlighted in the
++* header comments
++* @param strsrch search iterator data struct
++* @param position position to start next search from. If position is less
++*          than or greater than the text range for searching, 
++*          an U_INDEX_OUTOFBOUNDS_ERROR will be returned
++* @param status error status if any.
++* @stable ICU 2.4
++*/
++U_STABLE void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch, 
++                                        int32_t    position,
++                                        UErrorCode    *status);
++
++/**
++* Return the current index in the string text being searched.
++* If the iteration has gone past the end of the text (or past the beginning 
++* for a backwards search), <tt>USEARCH_DONE</tt> is returned.
++* @param strsrch search iterator data struct
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
++    
++/**
++* Sets the text searching attributes located in the enum USearchAttribute
++* with values from the enum USearchAttributeValue.
++* <tt>USEARCH_DEFAULT</tt> can be used for all attributes for resetting.
++* @param strsrch search iterator data struct
++* @param attribute text attribute to be set
++* @param value text attribute value
++* @param status for errors if it occurs
++* @see #usearch_getAttribute
++* @stable ICU 2.4
++*/
++U_STABLE void U_EXPORT2 usearch_setAttribute(UStringSearch         *strsrch, 
++                                           USearchAttribute       attribute,
++                                           USearchAttributeValue  value,
++                                           UErrorCode            *status);
++
++/**    
++* Gets the text searching attributes.
++* @param strsrch search iterator data struct
++* @param attribute text attribute to be retrieve
++* @return text attribute value
++* @see #usearch_setAttribute
++* @stable ICU 2.4
++*/
++U_STABLE USearchAttributeValue U_EXPORT2 usearch_getAttribute(
++                                         const UStringSearch    *strsrch,
++                                               USearchAttribute  attribute);
++
++/**
++* Returns the index to the match in the text string that was searched.
++* This call returns a valid result only after a successful call to 
++* <tt>usearch_first</tt>, <tt>usearch_next</tt>, <tt>usearch_previous</tt>, 
++* or <tt>usearch_last</tt>.
++* Just after construction, or after a searching method returns 
++* <tt>USEARCH_DONE</tt>, this method will return <tt>USEARCH_DONE</tt>.
++* <p>
++* Use <tt>usearch_getMatchedLength</tt> to get the matched string length.
++* @param strsrch search iterator data struct
++* @return index to a substring within the text string that is being 
++*         searched.
++* @see #usearch_first
++* @see #usearch_next
++* @see #usearch_previous
++* @see #usearch_last
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_getMatchedStart(
++                                               const UStringSearch *strsrch);
++    
++/**
++* Returns the length of text in the string which matches the search pattern. 
++* This call returns a valid result only after a successful call to 
++* <tt>usearch_first</tt>, <tt>usearch_next</tt>, <tt>usearch_previous</tt>, 
++* or <tt>usearch_last</tt>.
++* Just after construction, or after a searching method returns 
++* <tt>USEARCH_DONE</tt>, this method will return 0.
++* @param strsrch search iterator data struct
++* @return The length of the match in the string text, or 0 if there is no 
++*         match currently.
++* @see #usearch_first
++* @see #usearch_next
++* @see #usearch_previous
++* @see #usearch_last
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_getMatchedLength(
++                                               const UStringSearch *strsrch);
++
++/**
++* Returns the text that was matched by the most recent call to 
++* <tt>usearch_first</tt>, <tt>usearch_next</tt>, <tt>usearch_previous</tt>, 
++* or <tt>usearch_last</tt>.
++* If the iterator is not pointing at a valid match (e.g. just after 
++* construction or after <tt>USEARCH_DONE</tt> has been returned, returns
++* an empty string. If result is not large enough to store the matched text,
++* result will be filled with the partial text and an U_BUFFER_OVERFLOW_ERROR 
++* will be returned in status. result will be null-terminated whenever 
++* possible. If the buffer fits the matched text exactly, a null-termination 
++* is not possible, then a U_STRING_NOT_TERMINATED_ERROR set in status.
++* Pre-flighting can be either done with length = 0 or the API 
++* <tt>usearch_getMatchLength</tt>.
++* @param strsrch search iterator data struct
++* @param result UChar buffer to store the matched string
++* @param resultCapacity length of the result buffer
++* @param status error returned if result is not large enough
++* @return exact length of the matched text, not counting the null-termination
++* @see #usearch_first
++* @see #usearch_next
++* @see #usearch_previous
++* @see #usearch_last
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch, 
++                                            UChar         *result, 
++                                            int32_t        resultCapacity, 
++                                            UErrorCode    *status);
++
++#if !UCONFIG_NO_BREAK_ITERATION
++
++/**
++* Set the BreakIterator that will be used to restrict the points at which 
++* matches are detected.
++* @param strsrch search iterator data struct
++* @param breakiter A BreakIterator that will be used to restrict the points
++*                  at which matches are detected. If a match is found, but 
++*                  the match's start or end index is not a boundary as 
++*                  determined by the <tt>BreakIterator</tt>, the match will 
++*                  be rejected and another will be searched for. 
++*                  If this parameter is <tt>NULL</tt>, no break detection is 
++*                  attempted.
++* @param status for errors if it occurs
++* @see #usearch_getBreakIterator
++* @stable ICU 2.4
++*/
++U_STABLE void U_EXPORT2 usearch_setBreakIterator(UStringSearch  *strsrch, 
++                                               UBreakIterator *breakiter,
++                                               UErrorCode     *status);
++
++/**
++* Returns the BreakIterator that is used to restrict the points at which 
++* matches are detected. This will be the same object that was passed to the 
++* constructor or to <tt>usearch_setBreakIterator</tt>. Note that 
++* <tt>NULL</tt> 
++* is a legal value; it means that break detection should not be attempted.
++* @param strsrch search iterator data struct
++* @return break iterator used
++* @see #usearch_setBreakIterator
++* @stable ICU 2.4
++*/
++U_STABLE const UBreakIterator * U_EXPORT2 usearch_getBreakIterator(
++                                              const UStringSearch *strsrch);
++    
++#endif
++    
++/**
++* Set the string text to be searched. Text iteration will hence begin at the 
++* start of the text string. This method is useful if you want to re-use an 
++* iterator to search for the same pattern within a different body of text.
++* @param strsrch search iterator data struct
++* @param text new string to look for match
++* @param textlength length of the new string, -1 for null-termination
++* @param status for errors if it occurs. If text is NULL, or textlength is 0 
++*               then an U_ILLEGAL_ARGUMENT_ERROR is returned with no change
++*               done to strsrch.
++* @see #usearch_getText
++* @stable ICU 2.4
++*/
++U_STABLE void U_EXPORT2 usearch_setText(      UStringSearch *strsrch, 
++                                      const UChar         *text,
++                                            int32_t        textlength,
++                                            UErrorCode    *status);
++
++/**
++* Return the string text to be searched.
++* @param strsrch search iterator data struct
++* @param length returned string text length
++* @return string text 
++* @see #usearch_setText
++* @stable ICU 2.4
++*/
++U_STABLE const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch, 
++                                               int32_t       *length);
++
++/**
++* Gets the collator used for the language rules. 
++* <p>
++* Deleting the returned <tt>UCollator</tt> before calling 
++* <tt>usearch_close</tt> would cause the string search to fail.
++* <tt>usearch_close</tt> will delete the collator if this search owns it.
++* @param strsrch search iterator data struct
++* @return collator
++* @stable ICU 2.4
++*/
++U_STABLE UCollator * U_EXPORT2 usearch_getCollator(
++                                               const UStringSearch *strsrch);
++
++/**
++* Sets the collator used for the language rules. User retains the ownership 
++* of this collator, thus the responsibility of deletion lies with the user.
++* This method causes internal data such as Boyer-Moore shift tables to  
++* be recalculated, but the iterator's position is unchanged.
++* @param strsrch search iterator data struct
++* @param collator to be used
++* @param status for errors if it occurs
++* @stable ICU 2.4
++*/
++U_STABLE void U_EXPORT2 usearch_setCollator(      UStringSearch *strsrch, 
++                                          const UCollator     *collator,
++                                                UErrorCode    *status);
++
++/**
++* Sets the pattern used for matching.
++* Internal data like the Boyer Moore table will be recalculated, but the 
++* iterator's position is unchanged.
++* @param strsrch search iterator data struct
++* @param pattern string
++* @param patternlength pattern length, -1 for null-terminated string
++* @param status for errors if it occurs. If text is NULL, or textlength is 0 
++*               then an U_ILLEGAL_ARGUMENT_ERROR is returned with no change
++*               done to strsrch.
++* @stable ICU 2.4
++*/
++U_STABLE void U_EXPORT2 usearch_setPattern(      UStringSearch *strsrch, 
++                                         const UChar         *pattern,
++                                               int32_t        patternlength,
++                                               UErrorCode    *status);
++
++/**
++* Gets the search pattern
++* @param strsrch search iterator data struct
++* @param length return length of the pattern, -1 indicates that the pattern 
++*               is null-terminated
++* @return pattern string
++* @stable ICU 2.4
++*/
++U_STABLE const UChar * U_EXPORT2 usearch_getPattern(
++                                               const UStringSearch *strsrch, 
++                                                     int32_t       *length);
++
++/* methods ------------------------------------------------------------- */
++
++/**
++* Returns the first index at which the string text matches the search 
++* pattern.  
++* The iterator is adjusted so that its current index (as returned by 
++* <tt>usearch_getOffset</tt>) is the match position if one was found.
++* If a match is not found, <tt>USEARCH_DONE</tt> will be returned and
++* the iterator will be adjusted to the index <tt>USEARCH_DONE</tt>.
++* @param strsrch search iterator data struct
++* @param status for errors if it occurs
++* @return The character index of the first match, or 
++* <tt>USEARCH_DONE</tt> if there are no matches.
++* @see #usearch_getOffset
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch, 
++                                           UErrorCode    *status);
++
++/**
++* Returns the first index greater than <tt>position</tt> at which the string 
++* text 
++* matches the search pattern. The iterator is adjusted so that its current 
++* index (as returned by <tt>usearch_getOffset</tt>) is the match position if 
++* one was found.
++* If a match is not found, <tt>USEARCH_DONE</tt> will be returned and
++* the iterator will be adjusted to the index <tt>USEARCH_DONE</tt>
++* <p>
++* Search positions that may render incorrect results are highlighted in the
++* header comments. If position is less than or greater than the text range 
++* for searching, an U_INDEX_OUTOFBOUNDS_ERROR will be returned
++* @param strsrch search iterator data struct
++* @param position to start the search at
++* @param status for errors if it occurs
++* @return The character index of the first match following <tt>pos</tt>,
++*         or <tt>USEARCH_DONE</tt> if there are no matches.
++* @see #usearch_getOffset
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch, 
++                                               int32_t    position, 
++                                               UErrorCode    *status);
++    
++/**
++* Returns the last index in the target text at which it matches the search 
++* pattern. The iterator is adjusted so that its current 
++* index (as returned by <tt>usearch_getOffset</tt>) is the match position if 
++* one was found.
++* If a match is not found, <tt>USEARCH_DONE</tt> will be returned and
++* the iterator will be adjusted to the index <tt>USEARCH_DONE</tt>.
++* @param strsrch search iterator data struct
++* @param status for errors if it occurs
++* @return The index of the first match, or <tt>USEARCH_DONE</tt> if there 
++*         are no matches.
++* @see #usearch_getOffset
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch, 
++                                          UErrorCode    *status);
++
++/**
++* Returns the first index less than <tt>position</tt> at which the string text 
++* matches the search pattern. The iterator is adjusted so that its current 
++* index (as returned by <tt>usearch_getOffset</tt>) is the match position if 
++* one was found.
++* If a match is not found, <tt>USEARCH_DONE</tt> will be returned and
++* the iterator will be adjusted to the index <tt>USEARCH_DONE</tt>
++* <p>
++* Search positions that may render incorrect results are highlighted in the
++* header comments. If position is less than or greater than the text range 
++* for searching, an U_INDEX_OUTOFBOUNDS_ERROR will be returned
++* @param strsrch search iterator data struct
++* @param position index position the search is to begin at
++* @param status for errors if it occurs
++* @return The character index of the first match preceding <tt>pos</tt>,
++*         or <tt>USEARCH_DONE</tt> if there are no matches.
++* @see #usearch_getOffset
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch, 
++                                               int32_t    position, 
++                                               UErrorCode    *status);
++    
++/**
++* Returns the index of the next point at which the string text matches the
++* search pattern, starting from the current position.
++* The iterator is adjusted so that its current 
++* index (as returned by <tt>usearch_getOffset</tt>) is the match position if 
++* one was found.
++* If a match is not found, <tt>USEARCH_DONE</tt> will be returned and
++* the iterator will be adjusted to the index <tt>USEARCH_DONE</tt>
++* @param strsrch search iterator data struct
++* @param status for errors if it occurs
++* @return The index of the next match after the current position, or 
++*         <tt>USEARCH_DONE</tt> if there are no more matches.
++* @see #usearch_first
++* @see #usearch_getOffset
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, 
++                                          UErrorCode    *status);
++
++/**
++* Returns the index of the previous point at which the string text matches
++* the search pattern, starting at the current position.
++* The iterator is adjusted so that its current 
++* index (as returned by <tt>usearch_getOffset</tt>) is the match position if 
++* one was found.
++* If a match is not found, <tt>USEARCH_DONE</tt> will be returned and
++* the iterator will be adjusted to the index <tt>USEARCH_DONE</tt>
++* @param strsrch search iterator data struct
++* @param status for errors if it occurs
++* @return The index of the previous match before the current position,
++*         or <tt>USEARCH_DONE</tt> if there are no more matches.
++* @see #usearch_last
++* @see #usearch_getOffset
++* @see #USEARCH_DONE
++* @stable ICU 2.4
++*/
++U_STABLE int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch, 
++                                              UErrorCode    *status);
++    
++/** 
++* Reset the iteration.
++* Search will begin at the start of the text string if a forward iteration 
++* is initiated before a backwards iteration. Otherwise if a backwards 
++* iteration is initiated before a forwards iteration, the search will begin
++* at the end of the text string.
++* @param strsrch search iterator data struct
++* @see #usearch_first
++* @stable ICU 2.4
++*/
++U_STABLE void U_EXPORT2 usearch_reset(UStringSearch *strsrch);
++
++#endif /* #if !UCONFIG_NO_COLLATION */
++
++#endif
+Index: Source/JavaScriptCore/icu/unicode/ucoleitr.h
+===================================================================
++-- a/Source/JavaScriptCore/icu/unicode/ucoleitr.h	(revision 55240)
++++ b/Source/JavaScriptCore/icu/unicode/ucoleitr.h	(working copy)
+@@ -0,0 +1,268 @@
++/*
++*******************************************************************************
++*   Copyright (C) 2001-2004, International Business Machines
++*   Corporation and others.  All Rights Reserved.
++*******************************************************************************
++*
++* File ucoleitr.cpp
++*
++* Modification History:
++*
++* Date        Name        Description
++* 02/15/2001  synwee      Modified all methods to process its own function 
++*                         instead of calling the equivalent c++ api (coleitr.h)
++*******************************************************************************/
++
++#ifndef UCOLEITR_H
++#define UCOLEITR_H
++
++#include "unicode/utypes.h"
++
++#if !UCONFIG_NO_COLLATION
++
++/**  
++ * This indicates an error has occured during processing or if no more CEs is 
++ * to be returned.
++ * @stable ICU 2.0
++ */
++#define UCOL_NULLORDER        ((int32_t)0xFFFFFFFF)
++
++#include "unicode/ucol.h"
++
++/** 
++ * The UCollationElements struct.
++ * For usage in C programs.
++ * @stable ICU 2.0
++ */
++typedef struct UCollationElements UCollationElements;
++
++/**
++ * \file
++ * \brief C API: UCollationElements
++ *
++ * The UCollationElements API is used as an iterator to walk through each 
++ * character of an international string. Use the iterator to return the
++ * ordering priority of the positioned character. The ordering priority of a 
++ * character, which we refer to as a key, defines how a character is collated 
++ * in the given collation object.
++ * For example, consider the following in Spanish:
++ * <pre>
++ * .       "ca" -> the first key is key('c') and second key is key('a').
++ * .       "cha" -> the first key is key('ch') and second key is key('a').
++ * </pre>
++ * And in German,
++ * <pre>
++ * .       "<ae ligature>b"-> the first key is key('a'), the second key is key('e'), and
++ * .       the third key is key('b').
++ * </pre>
++ * <p>Example of the iterator usage: (without error checking)
++ * <pre>
++ * .  void CollationElementIterator_Example()
++ * .  {
++ * .      UChar *s;
++ * .      t_int32 order, primaryOrder;
++ * .      UCollationElements *c;
++ * .      UCollatorOld *coll;
++ * .      UErrorCode success = U_ZERO_ERROR;
++ * .      s=(UChar*)malloc(sizeof(UChar) * (strlen("This is a test")+1) );
++ * .      u_uastrcpy(s, "This is a test");
++ * .      coll = ucol_open(NULL, &success);
++ * .      c = ucol_openElements(coll, str, u_strlen(str), &status);
++ * .      order = ucol_next(c, &success);
++ * .      ucol_reset(c);
++ * .      order = ucol_prev(c, &success);
++ * .      free(s);
++ * .      ucol_close(coll);
++ * .      ucol_closeElements(c);
++ * .  }
++ * </pre>
++ * <p>
++ * ucol_next() returns the collation order of the next.
++ * ucol_prev() returns the collation order of the previous character.
++ * The Collation Element Iterator moves only in one direction between calls to
++ * ucol_reset. That is, ucol_next() and ucol_prev can not be inter-used. 
++ * Whenever ucol_prev is to be called after ucol_next() or vice versa, 
++ * ucol_reset has to be called first to reset the status, shifting pointers to 
++ * either the end or the start of the string. Hence at the next call of 
++ * ucol_prev or ucol_next, the first or last collation order will be returned. 
++ * If a change of direction is done without a ucol_reset, the result is 
++ * undefined.
++ * The result of a forward iterate (ucol_next) and reversed result of the  
++ * backward iterate (ucol_prev) on the same string are equivalent, if 
++ * collation orders with the value UCOL_IGNORABLE are ignored.
++ * Character based on the comparison level of the collator.  A collation order 
++ * consists of primary order, secondary order and tertiary order.  The data 
++ * type of the collation order is <strong>t_int32</strong>. 
++ *
++ * @see UCollator
++ */
++
++/**
++ * Open the collation elements for a string.
++ *
++ * @param coll The collator containing the desired collation rules.
++ * @param text The text to iterate over.
++ * @param textLength The number of characters in text, or -1 if null-terminated
++ * @param status A pointer to an UErrorCode to receive any errors.
++ * @return a struct containing collation element information
++ * @stable ICU 2.0
++ */
++U_STABLE UCollationElements* U_EXPORT2 
++ucol_openElements(const UCollator  *coll,
++                  const UChar      *text,
++                        int32_t    textLength,
++                        UErrorCode *status);
++
++/**
++ * get a hash code for a key... Not very useful!
++ * @param key    the given key.
++ * @param length the size of the key array.
++ * @return       the hash code.
++ * @stable ICU 2.0
++ */
++U_STABLE int32_t U_EXPORT2 
++ucol_keyHashCode(const uint8_t* key, int32_t length);
++
++/**
++ * Close a UCollationElements.
++ * Once closed, a UCollationElements may no longer be used.
++ * @param elems The UCollationElements to close.
++ * @stable ICU 2.0
++ */
++U_STABLE void U_EXPORT2 
++ucol_closeElements(UCollationElements *elems);
++
++/**
++ * Reset the collation elements to their initial state.
++ * This will move the 'cursor' to the beginning of the text.
++ * Property settings for collation will be reset to the current status.
++ * @param elems The UCollationElements to reset.
++ * @see ucol_next
++ * @see ucol_previous
++ * @stable ICU 2.0
++ */
++U_STABLE void U_EXPORT2 
++ucol_reset(UCollationElements *elems);
++
++/**
++ * Get the ordering priority of the next collation element in the text.
++ * A single character may contain more than one collation element.
++ * @param elems The UCollationElements containing the text.
++ * @param status A pointer to an UErrorCode to receive any errors.
++ * @return The next collation elements ordering, otherwise returns NULLORDER 
++ *         if an error has occured or if the end of string has been reached
++ * @stable ICU 2.0
++ */
++U_STABLE int32_t U_EXPORT2 
++ucol_next(UCollationElements *elems, UErrorCode *status);
++
++/**
++ * Get the ordering priority of the previous collation element in the text.
++ * A single character may contain more than one collation element.
++ * Note that internally a stack is used to store buffered collation elements. 
++ * It is very rare that the stack will overflow, however if such a case is 
++ * encountered, the problem can be solved by increasing the size 
++ * UCOL_EXPAND_CE_BUFFER_SIZE in ucol_imp.h.
++ * @param elems The UCollationElements containing the text.
++ * @param status A pointer to an UErrorCode to receive any errors. Noteably 
++ *               a U_BUFFER_OVERFLOW_ERROR is returned if the internal stack
++ *               buffer has been exhausted.
++ * @return The previous collation elements ordering, otherwise returns 
++ *         NULLORDER if an error has occured or if the start of string has 
++ *         been reached.
++ * @stable ICU 2.0
++ */
++U_STABLE int32_t U_EXPORT2 
++ucol_previous(UCollationElements *elems, UErrorCode *status);
++
++/**
++ * Get the maximum length of any expansion sequences that end with the 
++ * specified comparison order.
++ * This is useful for .... ?
++ * @param elems The UCollationElements containing the text.
++ * @param order A collation order returned by previous or next.
++ * @return maximum size of the expansion sequences ending with the collation 
++ *         element or 1 if collation element does not occur at the end of any 
++ *         expansion sequence
++ * @stable ICU 2.0
++ */
++U_STABLE int32_t U_EXPORT2 
++ucol_getMaxExpansion(const UCollationElements *elems, int32_t order);
++
++/**
++ * Set the text containing the collation elements.
++ * Property settings for collation will remain the same.
++ * In order to reset the iterator to the current collation property settings,
++ * the API reset() has to be called.
++ * @param elems The UCollationElements to set.
++ * @param text The source text containing the collation elements.
++ * @param textLength The length of text, or -1 if null-terminated.
++ * @param status A pointer to an UErrorCode to receive any errors.
++ * @see ucol_getText
++ * @stable ICU 2.0
++ */
++U_STABLE void U_EXPORT2 
++ucol_setText(      UCollationElements *elems, 
++             const UChar              *text,
++                   int32_t            textLength,
++                   UErrorCode         *status);
++
++/**
++ * Get the offset of the current source character.
++ * This is an offset into the text of the character containing the current
++ * collation elements.
++ * @param elems The UCollationElements to query.
++ * @return The offset of the current source character.
++ * @see ucol_setOffset
++ * @stable ICU 2.0
++ */
++U_STABLE int32_t U_EXPORT2 
++ucol_getOffset(const UCollationElements *elems);
++
++/**
++ * Set the offset of the current source character.
++ * This is an offset into the text of the character to be processed.
++ * Property settings for collation will remain the same.
++ * In order to reset the iterator to the current collation property settings,
++ * the API reset() has to be called.
++ * @param elems The UCollationElements to set.
++ * @param offset The desired character offset.
++ * @param status A pointer to an UErrorCode to receive any errors.
++ * @see ucol_getOffset
++ * @stable ICU 2.0
++ */
++U_STABLE void U_EXPORT2 
++ucol_setOffset(UCollationElements *elems,
++               int32_t        offset,
++               UErrorCode         *status);
++
++/**
++* Get the primary order of a collation order.
++* @param order the collation order
++* @return the primary order of a collation order.
++* @stable ICU 2.6
++*/
++U_STABLE int32_t U_EXPORT2
++ucol_primaryOrder (int32_t order); 
++
++/**
++* Get the secondary order of a collation order.
++* @param order the collation order
++* @return the secondary order of a collation order.
++* @stable ICU 2.6
++*/
++U_STABLE int32_t U_EXPORT2
++ucol_secondaryOrder (int32_t order); 
++
++/**
++* Get the tertiary order of a collation order.
++* @param order the collation order
++* @return the tertiary order of a collation order.
++* @stable ICU 2.6
++*/
++U_STABLE int32_t U_EXPORT2
++ucol_tertiaryOrder (int32_t order); 
++
++#endif /* #if !UCONFIG_NO_COLLATION */
++
++#endif
diff --git a/patches/webkit-1.3-platform-cf-stuff.patch b/patches/webkit-1.3-platform-cf-stuff.patch
new file mode 100644
index 0000000..3de958b
--- /dev/null
+++ b/patches/webkit-1.3-platform-cf-stuff.patch
@@ -0,0 +1,22 @@
+--- a/Source/WebCore/loader/archive/ArchiveFactory.cpp	2011-12-26 20:16:57.000000000 +0100
++++ b/Source/WebCore/loader/archive/ArchiveFactory.cpp	2011-12-26 20:21:20.000000000 +0100
+@@ -32,6 +32,8 @@
+ #include "MIMETypeRegistry.h"
+ #include "PlatformString.h"
+ 
++#undef WTF_PLATFORM_CF
++
+ #if PLATFORM(CF) && !PLATFORM(QT)
+ #include "LegacyWebArchive.h"
+ #endif
+--- a/Source/WebCore/platform/SharedBuffer.cpp	2011-12-26 21:57:38.000000000 +0100
++++ b/Source/WebCore/platform/SharedBuffer.cpp	2011-12-26 22:12:05.000000000 +0100
+@@ -30,6 +30,8 @@
+ #include "PurgeableBuffer.h"
+ #include <wtf/PassOwnPtr.h>
+ 
++#undef WTF_PLATFORM_CF
++
+ using namespace std;
+ 
+ namespace WebCore {
diff --git a/patches/webkit-1.3-plugins-gtk-PluginView.patch b/patches/webkit-1.3-plugins-gtk-PluginView.patch
new file mode 100644
index 0000000..41b1aef
--- /dev/null
+++ b/patches/webkit-1.3-plugins-gtk-PluginView.patch
@@ -0,0 +1,64 @@
+Index: Source/WebCore/plugins/gtk/PluginViewGtk.cpp
+===================================================================
+--- a/Source/WebCore/plugins/gtk/PluginViewGtk.cpp	2010-09-10 06:20:33.000000000 -0700
++++ b/Source/WebCore/plugins/gtk/PluginViewGtk.cpp	2010-10-06 09:45:37.000000000 -0700
+@@ -61,12 +61,15 @@
+ #include "runtime_root.h"
+ #include <runtime/JSLock.h>
+ #include <runtime/JSValue.h>
++#include "NotImplemented.h"
+ 
+ #ifdef GTK_API_VERSION_2
+ #include <gdkconfig.h>
+ #endif
+ #include <gtk/gtk.h>
+ 
++#undef XP_UNIX
++
+ #if defined(XP_UNIX)
+ #include "RefPtrCairo.h"
+ #include "gtk2xtbin.h"
+@@ -428,9 +431,9 @@
+         event->setDefaultHandled();
+ }
+ 
+-#if defined(XP_UNIX)
+ void PluginView::handleFocusInEvent()
+ {
++#if defined(XP_UNIX)
+     XEvent npEvent;
+     initXEvent(&npEvent);
+ 
+@@ -440,10 +443,12 @@
+     event.detail = NotifyDetailNone;
+ 
+     dispatchNPEvent(npEvent);
++#endif
+ }
+ 
+ void PluginView::handleFocusOutEvent()
+ {
++#if defined(XP_UNIX)
+     XEvent npEvent;
+     initXEvent(&npEvent);
+ 
+@@ -453,8 +458,8 @@
+     event.detail = NotifyDetailNone;
+ 
+     dispatchNPEvent(npEvent);
+-}
+ #endif
++}
+ 
+ void PluginView::setParent(ScrollView* parent)
+ {
+@@ -782,8 +787,8 @@
+     }
+ 
+     if (m_isWindowed) {
+-#if defined(XP_UNIX)
+         GtkWidget* pageClient = m_parentFrame->view()->hostWindow()->platformPageClient();
++#if defined(XP_UNIX)
+ 
+         if (m_needsXEmbed) {
+             // If our parent is not anchored the startup process will



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]