lynx-dev
[Top][All Lists]
Advanced

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

lynx-dev patch to justification support code


From: Vlad Harchev
Subject: lynx-dev patch to justification support code
Date: Sun, 25 Jul 1999 04:33:51 +0500 (SAMST)

 Here is a patch that fixes small bugs in the implementation of the
justification support code. 
 Before this patch, information associated with each element, that told
whether content of this element can be justified, was effectively unused. Now
it is.
 
 Best regards,
  -Vlad
diff -ru was/WWW/Library/Implementation/HTMLDTD.c 
fixed/WWW/Library/Implementation/HTMLDTD.c
--- was/WWW/Library/Implementation/HTMLDTD.c    Sat Jul 17 21:15:23 1999
+++ fixed/WWW/Library/Implementation/HTMLDTD.c  Sun Jul 25 04:22:09 1999
@@ -1485,7 +1485,7 @@
  { P("SUB")    , gen_attr,     HTML_GEN_ATTRIBUTES,    SGML_MIXED,T_SUB},
  { P("SUP")    , gen_attr,     HTML_GEN_ATTRIBUTES,    SGML_MIXED,T_SUP},
  { P("TAB")    , tab_attr,     HTML_TAB_ATTRIBUTES,    SGML_EMPTY,T_TAB},
- { P0("TABLE") , table_attr,   HTML_TABLE_ATTRIBUTES,  SGML_MIXED,T_TABLE},
+ { P("TABLE")  , table_attr,   HTML_TABLE_ATTRIBUTES,  SGML_MIXED,T_TABLE},
  { P("TBODY")  , tr_attr,      HTML_TR_ATTRIBUTES,     SGML_EMPTY,T_TBODY},
  { P("TD")     , td_attr,      HTML_TD_ATTRIBUTES,     SGML_EMPTY,T_TD},
  { P("TEXTAREA"), textarea_attr,HTML_TEXTAREA_ATTRIBUTES, 
SGML_LITTERAL,T_TEXTAREA},
@@ -1606,7 +1606,7 @@
  { P("SUB")    , gen_attr,     HTML_GEN_ATTRIBUTES,    SGML_MIXED,T_SUB},
  { P("SUP")    , gen_attr,     HTML_GEN_ATTRIBUTES,    SGML_MIXED,T_SUP},
  { P("TAB")    , tab_attr,     HTML_TAB_ATTRIBUTES,    SGML_EMPTY,T_TAB},
- { P0("TABLE") , table_attr,   HTML_TABLE_ATTRIBUTES,  SGML_ELEMENT,T_TABLE},
+ { P("TABLE")  , table_attr,   HTML_TABLE_ATTRIBUTES,  SGML_ELEMENT,T_TABLE},
  { P("TBODY")  , tr_attr,      HTML_TR_ATTRIBUTES,     SGML_ELEMENT,T_TBODY},
  { P("TD")     , td_attr,      HTML_TD_ATTRIBUTES,     SGML_MIXED,T_TD},
  { P("TEXTAREA"), textarea_attr,HTML_TEXTAREA_ATTRIBUTES, 
SGML_LITTERAL,T_TEXTAREA},
diff -ru was/src/GridText.c fixed/src/GridText.c
--- was/src/GridText.c  Sun Jul 25 04:19:01 1999
+++ fixed/src/GridText.c        Sun Jul 25 04:15:46 1999
@@ -2593,9 +2593,8 @@
                for (i=0; i<j; ++i)
                    *jdata++ = ' ';
            }
-           *m++ = justify_start_position + total_cell_len +
-                   spare + ht_num_runs - 1; /*map the end*/
-
+           *m++ = previous->size + spare; /*map the end */
+           
            text->chars += spare;
 
            jline->offset = previous->offset;
@@ -2614,10 +2613,15 @@
 
            /* now copy and fix colorstyles */
            for(i = 0; i < jline->numstyles; ++i) {
+               int hpos=previous->styles[i].horizpos;
+               
                jline->styles[i].style = previous->styles[i].style;
                jline->styles[i].direction = previous->styles[i].direction;
                jline->styles[i].previous = previous->styles[i].previous;
-               jline->styles[i].horizpos = 
justified_text_map[previous->styles[i].horizpos];
+               
+               /*there are stylechanges with hpos > line length */
+               jline->styles[i].horizpos = hpos > previous->size ? 
+                   previous->size + spare :justified_text_map[hpos];
            }
 #endif
            /* we have to fix anchors*/
diff -ru was/src/HTML.c fixed/src/HTML.c
--- was/src/HTML.c      Sun Jul 25 03:46:14 1999
+++ fixed/src/HTML.c    Sun Jul 25 04:21:34 1999
@@ -5722,7 +5722,7 @@
 #ifdef EXP_JUSTIFY_ELTS
        if (wait_for_this_stacked_elt<0 &&
                HTML_dtd.tags[ElementNumber].can_justify==FALSE)
-           wait_for_this_stacked_elt=me->stack - me->sp;
+           wait_for_this_stacked_elt=me->stack - me->sp + MAX_NESTING;
 #endif
     }
 
@@ -5907,7 +5907,7 @@
            return;
        } else if (me->sp < (me->stack + MAX_NESTING - 1)) {
 #ifdef EXP_JUSTIFY_ELTS
-           if (wait_for_this_stacked_elt==me->stack-me->sp)
+           if (wait_for_this_stacked_elt==me->stack - me->sp + MAX_NESTING)
                reached_awaited_stacked_elt=TRUE;
 #endif
            (me->sp)++;


reply via email to

[Prev in Thread] Current Thread [Next in Thread]