OSDN Git Service

* Added option tag with CSS for SoftBank XHTML converter.
authorkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Fri, 18 Jul 2008 06:34:37 +0000 (06:34 +0000)
committerkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Fri, 18 Jul 2008 06:34:37 +0000 (06:34 +0000)
  * Added option tag with CSS for SoftBank HTML converter.

git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/branches/sandbox@3011 1a406e8e-add9-4483-a2c8-d8cac5b7c224

src/chxj_jhtml.c
src/chxj_jxhtml.c

index 64ebae9..602b19f 100644 (file)
@@ -2864,7 +2864,7 @@ s_jhtml_end_select_tag(void *pdoc, Node *UNUSED(child))
  * @return The conversion result is returned.
  */
 static char *
-s_jhtml_start_option_tag(void *pdoc, Node *child)
+s_jhtml_start_option_tag(void *pdoc, Node *node)
 {
   jhtml_t *jhtml = GET_JHTML(pdoc);
   Doc     *doc   = jhtml->doc;
@@ -2872,9 +2872,10 @@ s_jhtml_start_option_tag(void *pdoc, Node *child)
 
   char *selected   = NULL;
   char *value      = NULL;
+  char *attr_style = NULL;
 
   W_L("<option");
-  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);
@@ -2885,6 +2886,12 @@ s_jhtml_start_option_tag(void *pdoc, Node *child)
       /*----------------------------------------------------------------------*/
       selected = 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('v','V',"value",nm)) {
       /*----------------------------------------------------------------------*/
       /* CHTML 1.0 version 2.0                                                */
@@ -2901,6 +2908,11 @@ s_jhtml_start_option_tag(void *pdoc, Node *child)
     W_L(" selected");
   }
   W_L(">");
+
+  if (IS_CSS_ON(jhtml->entryp)) {
+    s_jhtml_push_and_get_now_style(pdoc, node, attr_style);
+  }
+
   return jhtml->out;
 }
 
@@ -2918,6 +2930,9 @@ s_jhtml_end_option_tag(void *pdoc, Node *UNUSED(child))
 {
   jhtml_t *jhtml = GET_JHTML(pdoc);
   /* Don't close */
+  if (IS_CSS_ON(jhtml->entryp)) {
+    chxj_css_pop_prop_list(jhtml->css_prop_stack);
+  }
   return jhtml->out;
 }
 
index e83de63..0cf558f 100644 (file)
@@ -3051,7 +3051,7 @@ s_jxhtml_end_select_tag(void *pdoc, Node *UNUSED(child))
  * @return The conversion result is returned.
  */
 static char *
-s_jxhtml_start_option_tag(void *pdoc, Node *child)
+s_jxhtml_start_option_tag(void *pdoc, Node *node)
 {
   jxhtml_t *jxhtml = GET_JXHTML(pdoc);
   Doc     *doc   = jxhtml->doc;
@@ -3059,9 +3059,10 @@ s_jxhtml_start_option_tag(void *pdoc, Node *child)
 
   char *selected   = NULL;
   char *value      = NULL;
+  char *attr_style = NULL;
 
   W_L("<option");
-  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);
@@ -3072,6 +3073,12 @@ s_jxhtml_start_option_tag(void *pdoc, Node *child)
       /*----------------------------------------------------------------------*/
       selected = 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('v','V',"value",nm)) {
       /*----------------------------------------------------------------------*/
       /* CHTML 1.0 version 2.0                                                */
@@ -3088,6 +3095,11 @@ s_jxhtml_start_option_tag(void *pdoc, Node *child)
     W_L(" selected");
   }
   W_L(">");
+
+  if (IS_CSS_ON(jxhtml->entryp)) {
+    s_jxhtml_push_and_get_now_style(pdoc, node, attr_style);
+  }
+
   return jxhtml->out;
 }
 
@@ -3105,7 +3117,12 @@ s_jxhtml_end_option_tag(void *pdoc, Node *UNUSED(child))
 {
   jxhtml_t *jxhtml = GET_JXHTML(pdoc);
   Doc      *doc = jxhtml->doc;
+
   W_L("</option>");
+  if (IS_CSS_ON(jxhtml->entryp)) {
+    chxj_css_pop_prop_list(jxhtml->css_prop_stack);
+  }
+
   return jxhtml->out;
 }