Diff for /Amaya/amaya/styleparser.c between versions 1.361 and 1.362

version 1.361, 2006/05/23 07:43:46 version 1.362, 2006/06/09 15:16:08
Line 4457  static char *ParseACSSBackgroundRepeat ( Line 4457  static char *ParseACSSBackgroundRepeat (
   /* check if it's an important rule */    /* check if it's an important rule */
   if (DoApply)    if (DoApply)
     /* install the new presentation */      /* install the new presentation */
     TtaSetStylePresentation (PRPictureMode, element, tsch, ctxt, repeat);      TtaSetStylePresentation (PRBackgroundRepeat, element, tsch, ctxt, repeat);
   return (cssRule);    return (cssRule);
 }  }
   
Line 4497  static char *ParseACSSBackgroundAttachme Line 4497  static char *ParseACSSBackgroundAttachme
     {      {
       cssRule = SkipWord (cssRule);        cssRule = SkipWord (cssRule);
     }      }
     else if (!strncasecmp (cssRule, "inherit", 7))
       {
         cssRule = SkipWord (cssRule);
       }
   return (cssRule);    return (cssRule);
 }  }
   
Line 4515  static char *ParseCSSBackgroundAttachmen Line 4519  static char *ParseCSSBackgroundAttachmen
   cssRule = ParseACSSBackgroundAttachment (element, tsch, ctxt,    cssRule = ParseACSSBackgroundAttachment (element, tsch, ctxt,
                                            cssRule, css, isHTML);                                             cssRule, css, isHTML);
   if (ptr == cssRule)    if (ptr == cssRule)
     {      cssRule = SkipValue ("Invalid background-attachement value", cssRule);
       cssRule = SkipValue ("Invalid background-attachement value", cssRule);  
     }  
   return cssRule;    return cssRule;
 }  }
   
Line 4528  static char *ParseCSSBackgroundAttachmen Line 4530  static char *ParseCSSBackgroundAttachmen
 static char *ParseACSSBackgroundPosition (Element element, PSchema tsch,  static char *ParseACSSBackgroundPosition (Element element, PSchema tsch,
                                           PresentationContext ctxt,                                            PresentationContext ctxt,
                                           char *cssRule, CSSInfoPtr css,                                            char *cssRule, CSSInfoPtr css,
                                           ThotBool isHTML)                                            ThotBool isHTML, ThotBool *across)
 {  {
   ThotBool              ok;    PresentationValue   val;
     char               *ptr;
   
   cssRule = SkipBlanksAndComments (cssRule);    cssRule = SkipBlanksAndComments (cssRule);
   ok = TRUE;    ptr = cssRule;
     val.typed_data.value = 0;
     val.typed_data.real = FALSE;
     val.typed_data.unit = UNIT_INVALID;
   if (!strncasecmp (cssRule, "left", 4))    if (!strncasecmp (cssRule, "left", 4))
     cssRule = SkipWord (cssRule);      {
         val.typed_data.value = 0;
         val.typed_data.unit = UNIT_PERCENT;
         cssRule += 4;
         *across = TRUE;
       }
   else if (!strncasecmp (cssRule, "right", 5))    else if (!strncasecmp (cssRule, "right", 5))
     cssRule = SkipWord (cssRule);      {
         val.typed_data.value = 100;
         val.typed_data.unit = UNIT_PERCENT;
         cssRule += 5;
         *across = TRUE;
       }
   else if (!strncasecmp (cssRule, "center", 6))    else if (!strncasecmp (cssRule, "center", 6))
     cssRule = SkipWord (cssRule);      {
         val.typed_data.value = 50;
         val.typed_data.unit = UNIT_PERCENT;
         cssRule += 6;
       }
   else if (!strncasecmp (cssRule, "top", 3))    else if (!strncasecmp (cssRule, "top", 3))
     cssRule = SkipWord (cssRule);      {
         val.typed_data.value = 0;
         val.typed_data.unit = UNIT_PERCENT;
         cssRule += 3;
         *across = FALSE;
       }
   else if (!strncasecmp (cssRule, "bottom", 6))    else if (!strncasecmp (cssRule, "bottom", 6))
     cssRule = SkipWord (cssRule);  
   else if (isdigit (*cssRule) || *cssRule == '.' || *cssRule == '-')  
     {      {
       while (*cssRule != EOS && *cssRule != SPACE &&        val.typed_data.value = 100;
              *cssRule != ',' && *cssRule != ';')        val.typed_data.unit = UNIT_PERCENT;
         cssRule++;        cssRule += 6;
         *across = FALSE;
       }
     else if (!strncasecmp (cssRule, "inherit", 7))
       {
         val.typed_data.unit = VALUE_INHERIT;
         cssRule += 7;
     }      }
   else    else
     ok = FALSE;      /* <length> or <percentage> */
       {
         cssRule = ParseCSSUnit (cssRule, &val);
         if (val.typed_data.unit == UNIT_BOX && val.typed_data.value == 0)
           /* 0 with no unit. Accept */
           val.typed_data.unit = UNIT_PERCENT;
       }
   
   cssRule = SkipBlanksAndComments (cssRule);    if (val.typed_data.unit != UNIT_INVALID &&
         val.typed_data.unit != UNIT_BOX)
       {
         if (DoApply)
           /* install the new presentation */
           {
             if (val.typed_data.unit == VALUE_INHERIT)
               /* "inherit" applies to both dimensions */
               {
                 TtaSetStylePresentation (PRBackgroundHorizPos, element, tsch,
                                          ctxt, val);
                 TtaSetStylePresentation (PRBackgroundVertPos, element, tsch,
                                          ctxt, val);
               }
             else if (*across)
               TtaSetStylePresentation (PRBackgroundHorizPos, element, tsch,
                                        ctxt, val);
             else
               TtaSetStylePresentation (PRBackgroundVertPos, element, tsch,
                                        ctxt, val);
           }
       }
   return (cssRule);    return (cssRule);
 }  }
   
Line 4567  static char *ParseCSSBackgroundPosition Line 4623  static char *ParseCSSBackgroundPosition
                                          ThotBool isHTML)                                           ThotBool isHTML)
 {  {
   char     *ptr;    char     *ptr;
     ThotBool  across;
   
   ptr = cssRule;    ptr = cssRule;
   cssRule = ParseACSSBackgroundPosition (element, tsch, ctxt,    across = TRUE;
                                          cssRule, css, isHTML);    cssRule = ParseACSSBackgroundPosition (element, tsch, ctxt, cssRule, css,
                                            isHTML, &across);
   if (ptr == cssRule)    if (ptr == cssRule)
     cssRule = SkipValue ("Invalid background-position value", cssRule);      cssRule = SkipValue ("Invalid background-position value", cssRule);
   else if (*cssRule !=  ';' && *cssRule != EOS)    else
     {      {
       /* possible second value */        cssRule = SkipBlanksAndComments (cssRule);
       ptr = cssRule;        if (*cssRule !=  ';' && *cssRule !=  '!' && *cssRule != EOS)
       cssRule = ParseACSSBackgroundPosition (element, tsch, ctxt,          {
                                              cssRule, css, isHTML);            /* possible second value */
       if (ptr == cssRule)            ptr = cssRule;
         cssRule = SkipValue ("Invalid background-position value", cssRule);            across = !across;
             cssRule = ParseACSSBackgroundPosition (element, tsch, ctxt, cssRule,
                                                    css, isHTML, &across);
             if (ptr == cssRule)
               cssRule = SkipValue ("Invalid background-position value", cssRule);
           }
     }      }
   return (cssRule);    return (cssRule);
 }  }
Line 4594  static char *ParseCSSBackground (Element Line 4657  static char *ParseCSSBackground (Element
 {  {
   char           *ptr;    char           *ptr;
   int             skippedNL;    int             skippedNL;
   ThotBool        img, repeat, position, attach, color;    ThotBool        img, repeat, position, attach, color, across;
   
   cssRule = SkipBlanksAndComments (cssRule);    cssRule = SkipBlanksAndComments (cssRule);
   img = repeat = position = attach = color = FALSE;    img = repeat = position = attach = color = FALSE;
     across = TRUE;
   while (*cssRule != ';' && *cssRule != '}' && *cssRule != EOS && *cssRule != ',')    while (*cssRule != ';' && *cssRule != '}' && *cssRule != EOS && *cssRule != ',')
     {      {
       /* perhaps a Background Image */        /* perhaps a Background Image */
Line 4635  static char *ParseCSSBackground (Element Line 4699  static char *ParseCSSBackground (Element
                !strncasecmp (cssRule, "bottom", 6) ||                 !strncasecmp (cssRule, "bottom", 6) ||
                isdigit (*cssRule) || *cssRule == '.' || *cssRule == '-')                 isdigit (*cssRule) || *cssRule == '.' || *cssRule == '-')
         {          {
           cssRule = ParseACSSBackgroundPosition (element, tsch, ctxt,            cssRule = ParseACSSBackgroundPosition (element, tsch, ctxt, cssRule,
                                                  cssRule, css, isHTML);                                                   css, isHTML, &across);
             across = !across;
           position = repeat = TRUE;            position = repeat = TRUE;
         }          }
       /* perhaps a Background Color */        /* perhaps a Background Color */
Line 4670  static char *ParseCSSBackground (Element Line 4735  static char *ParseCSSBackground (Element
                                "repeat", css, isHTML);                                 "repeat", css, isHTML);
   if (img && !position)    if (img && !position)
     ParseACSSBackgroundPosition (element, tsch, ctxt,      ParseACSSBackgroundPosition (element, tsch, ctxt,
                                  "0% 0%", css, isHTML);                                   "0% 0%", css, isHTML, &across);
   if (img && !attach)    if (img && !attach)
     ParseACSSBackgroundAttachment (element, tsch, ctxt,      ParseACSSBackgroundAttachment (element, tsch, ctxt,
                                    "scroll", css, isHTML);                                     "scroll", css, isHTML);

Removed from v.1.361  
changed lines
  Added in v.1.362


Webmaster