[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:14:48 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 89377f1ab746d7bbe4a8ebb6ec38b6c02eb723b2
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Dec 13 21:24:40 2002 +0000

    	Two fixes.  Bugs are 3121024, which had to do with handling
    	escaped characters in the CSS content property, and
    	bug 3127375 (44854 in bugs.kde.org), which had to do with
    	making sure table cells relayout properly when images load
    	async.
    
            Reviewed by darin and john
    
            * khtml/css/cssparser.cpp:
            (StyleBaseImpl::parseContent):
            (StyleBaseImpl::isHexadecimal):
            * khtml/css/cssparser.h:
            * khtml/rendering/bidi.cpp:
            (RenderFlow::layoutInlineChildren):
            * khtml/rendering/render_flow.cpp:
            (RenderFlow::layout):
            * khtml/rendering/render_flow.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3039 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 9a30b66..ef91d6d 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,23 @@
+2002-12-13  David Hyatt  <hyatt at apple.com>
+
+	Two fixes.  Bugs are 3121024, which had to do with handling
+	escaped characters in the CSS content property, and 
+	bug 3127375 (44854 in bugs.kde.org), which had to do with
+	making sure table cells relayout properly when images load
+	async.
+	
+        Reviewed by darin and john
+
+        * khtml/css/cssparser.cpp:
+        (StyleBaseImpl::parseContent):
+        (StyleBaseImpl::isHexadecimal):
+        * khtml/css/cssparser.h:
+        * khtml/rendering/bidi.cpp:
+        (RenderFlow::layoutInlineChildren):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::layout):
+        * khtml/rendering/render_flow.h:
+
 2002-12-13  Darin Adler  <darin at apple.com>
 
         Reviewed by Trey.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 9a30b66..ef91d6d 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,23 @@
+2002-12-13  David Hyatt  <hyatt at apple.com>
+
+	Two fixes.  Bugs are 3121024, which had to do with handling
+	escaped characters in the CSS content property, and 
+	bug 3127375 (44854 in bugs.kde.org), which had to do with
+	making sure table cells relayout properly when images load
+	async.
+	
+        Reviewed by darin and john
+
+        * khtml/css/cssparser.cpp:
+        (StyleBaseImpl::parseContent):
+        (StyleBaseImpl::isHexadecimal):
+        * khtml/css/cssparser.h:
+        * khtml/rendering/bidi.cpp:
+        (RenderFlow::layoutInlineChildren):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::layout):
+        * khtml/rendering/render_flow.h:
+
 2002-12-13  Darin Adler  <darin at apple.com>
 
         Reviewed by Trey.
diff --git a/WebCore/khtml/css/cssparser.cpp b/WebCore/khtml/css/cssparser.cpp
index 3d0db95..7c1b04e 100644
--- a/WebCore/khtml/css/cssparser.cpp
+++ b/WebCore/khtml/css/cssparser.cpp
@@ -2420,14 +2420,38 @@ CSSValueImpl* StyleBaseImpl::parseContent(const QChar *curP, const QChar *endP)
             QString strstr;
             for (int i = 0; i < l; ++i) {
                 if (i < l - 1 && str[i] == '\\') {
-                    if (str[i+1] == 'a')
-                        strstr += '\n';
-                    else
-                        strstr += str[i+1];
-                    ++i;
-                    continue;
+                    QChar nextChar = str[i+1];
+                    if (nextChar == '\n')
+                        i++;
+                    else if ( nextChar == '\r' ) {
+                        i++;
+                        if ( str[i+1] == '\n' )       
+                            i++;
+                    }
+                    else if ( isHexadecimal( nextChar ) ) 
+                    {                            
+                        int initial=i;                            
+                        QString hex;                            
+                        bool ok;                            
+                        while ( i-initial<6 && i<l-1 && isHexadecimal( nextChar ) ) {                                							hex += nextChar;                                
+                            i++;                                
+                            nextChar = str[i+1];                            
+                        }                               
+                            
+                        strstr += QChar( hex.toInt(&ok, 16) );                            
+                        
+                        if ( i<l-1 && nextChar.isSpace() ) {                                
+                            i++;                                
+                            if ( nextChar == '\r' && str[i+1] == '\n' )                                   										i++;
+                        }
+                    }                        
+                    else {                            
+                        ++i;                            
+                        strstr += nextChar;                
+                    }
                 }
-                strstr += str[i];
+                else if (str[i] != '\'' && str[i] != '"')
+                    strstr += str[i];
             }
             parsedValue = new CSSPrimitiveValueImpl(DOMString(strstr), CSSPrimitiveValue::CSS_STRING);
         }
@@ -2441,6 +2465,10 @@ CSSValueImpl* StyleBaseImpl::parseContent(const QChar *curP, const QChar *endP)
     return values;
 }
 
+bool StyleBaseImpl::isHexadecimal( const QChar &c )
+{
+    return ( c >= '0' && c <= '9' ) || ( c >= 'a' && c <= 'f' ) || ( c >= 'A' && c <= 'F' );
+}
 
 QPtrList<QChar> StyleBaseImpl::splitShorthandProperties(const QChar *curP, const QChar *endP)
 {
diff --git a/WebCore/khtml/css/cssparser.h b/WebCore/khtml/css/cssparser.h
index 113b585..caea5ff 100644
--- a/WebCore/khtml/css/cssparser.h
+++ b/WebCore/khtml/css/cssparser.h
@@ -167,6 +167,7 @@ public:
 	void setParsedValue(int propId, const CSSValueImpl *parsedValue);
 	void setParsedValue(int propId, const CSSValueImpl *parsedValue,
 			    bool important, bool nonCSSHint, QPtrList<CSSProperty> *propList);
+    bool isHexadecimal( const QChar &c );
 	QPtrList<QChar> splitShorthandProperties(const QChar *curP, const QChar *endP);
 	bool parseBackgroundPosition(const QChar *curP, const QChar *&nextP, const QChar *endP);
 
diff --git a/WebCore/khtml/rendering/bidi.cpp b/WebCore/khtml/rendering/bidi.cpp
index e7ef5bd..65a5bbf 100644
--- a/WebCore/khtml/rendering/bidi.cpp
+++ b/WebCore/khtml/rendering/bidi.cpp
@@ -988,7 +988,7 @@ static void deleteMidpoints(RenderArena* arena, QPtrList<BidiIterator>* midpoint
     }
 }
 
-void RenderFlow::layoutInlineChildren()
+void RenderFlow::layoutInlineChildren(bool relayoutChildren)
 {
     m_overflowHeight = 0;
     
@@ -1016,7 +1016,7 @@ void RenderFlow::layoutInlineChildren()
         while ( o ) {
             if(o->isReplaced() || o->isFloating() || o->isPositioned()) {
                 //kdDebug(6041) << "layouting replaced or floating child" << endl;
-                if (o->isReplaced() && (o->style()->width().isPercent() || o->style()->height().isPercent()))
+                if (relayoutChildren || o->style()->width().isPercent() || o->style()->height().isPercent())
                     o->setLayouted(false);
                 if( !o->layouted() )
                     o->layout();
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index 8d8d21e..389edf6 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -315,7 +315,7 @@ void RenderFlow::layout()
     if(childrenInline()) {
         // ### make bidi resumeable so that we can get rid of this ugly hack
         if (!m_blockBidi)
-            layoutInlineChildren();
+            layoutInlineChildren( relayoutChildren );
     }
     else
         layoutBlockChildren( relayoutChildren );
diff --git a/WebCore/khtml/rendering/render_flow.h b/WebCore/khtml/rendering/render_flow.h
index 8aea16f..39dc6f4 100644
--- a/WebCore/khtml/rendering/render_flow.h
+++ b/WebCore/khtml/rendering/render_flow.h
@@ -127,7 +127,7 @@ protected:
     virtual void newLine();
 
     void layoutBlockChildren( bool relayoutChildren );
-    void layoutInlineChildren();
+    void layoutInlineChildren( bool relayoutChildren );
     void layoutSpecialObjects( bool relayoutChildren );
 
 public:

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list