OSDN Git Service

* Added select tag with CSS for CHTML3.0 converter.
authorkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Fri, 18 Jul 2008 06:34:13 +0000 (06:34 +0000)
committerkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Fri, 18 Jul 2008 06:34:13 +0000 (06:34 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/branches/sandbox@3001 1a406e8e-add9-4483-a2c8-d8cac5b7c224

src/chxj_chtml10.c
src/chxj_chtml20.c
src/chxj_chtml30.c

index 2fb1814..703cdd3 100644 (file)
@@ -2781,7 +2781,7 @@ s_chtml10_start_select_tag(void *pdoc, Node *node)
         /*--------------------------------------------------------------------*/
         size = apr_pstrdup(doc->buf.pool, val);
       }
-      else if (strcasecmp(nm, "style") == 0) {
+      else if (strcasecmp(nm, "style") == 0 && val && *val) {
         /*--------------------------------------------------------------------*/
         /* CHTML 1.0 version 2.0                                              */
         /*--------------------------------------------------------------------*/
index fd40116..7980f5a 100644 (file)
@@ -2677,7 +2677,7 @@ s_chtml20_start_select_tag(void *pdoc, Node *node)
         /*--------------------------------------------------------------------*/
         size = apr_pstrdup(doc->buf.pool, val);
       }
-      else if (strcasecmp(nm, "style") == 0) {
+      else if (strcasecmp(nm, "style") == 0 && val && *val) {
         /*--------------------------------------------------------------------*/
         /* CHTML 1.0 version 2.0                                              */
         /*--------------------------------------------------------------------*/
index 3be8c88..386dc43 100644 (file)
@@ -2261,7 +2261,7 @@ s_chtml30_end_img_tag(void *pdoc, Node *UNUSED(child))
  * @return The conversion result is returned.
  */
 static char *
-s_chtml30_start_select_tag(void *pdoc, Node *child)
+s_chtml30_start_select_tag(void *pdoc, Node *node)
 {
   chtml30_t   *chtml30  = GET_CHTML30(pdoc);
   Doc         *doc      = chtml30->doc;
@@ -2269,9 +2269,10 @@ s_chtml30_start_select_tag(void *pdoc, Node *child)
   char        *name     = NULL;
   char        *multiple = NULL;
   Attr        *attr;
+  char        *attr_style = NULL;
 
   W_L("<select");
-  for (attr = qs_get_attr(doc,child);
+  for (attr = qs_get_attr(doc,node);
        attr;
        attr = qs_get_next_attr(doc,attr)) {
     char *nm  = qs_get_attr_name(doc,attr);
@@ -2282,6 +2283,12 @@ s_chtml30_start_select_tag(void *pdoc, Node *child)
       /*----------------------------------------------------------------------*/
       size = apr_pstrdup(doc->buf.pool, val);
     }
+    else if (STRCASEEQ('s','S',"style", nm) && val && *val) {
+      /*----------------------------------------------------------------------*/
+      /* CHTML 1.0 version 2.0                                                */
+      /*----------------------------------------------------------------------*/
+      attr_style = apr_pstrdup(doc->buf.pool, val);
+    }
     else if (STRCASEEQ('n','N',"name", nm)) {
       /*----------------------------------------------------------------------*/
       /* CHTML 1.0 version 2.0                                                */
@@ -2309,6 +2316,9 @@ s_chtml30_start_select_tag(void *pdoc, Node *child)
     W_L(" multiple");
   }
   W_L(">");
+  if (IS_CSS_ON(chtml30->entryp)) {
+    s_chtml30_push_and_get_now_style(pdoc, node, attr_style);
+  }
   return chtml30->out;
 }
 
@@ -2328,6 +2338,10 @@ s_chtml30_end_select_tag(void *pdoc, Node *UNUSED(child))
   Doc          *doc   = chtml30->doc;
 
   W_L("</select>");
+  if (IS_CSS_ON(chtml30->entryp)) {
+    chxj_css_pop_prop_list(chtml30->css_prop_stack);
+  }
+
   return chtml30->out;
 }