OSDN Git Service

wiki table attribute fix.
authorvisor <visor@users.sourceforge.jp>
Thu, 9 Nov 2017 15:30:23 +0000 (00:30 +0900)
committervisor <visor@users.sourceforge.jp>
Thu, 9 Nov 2017 15:30:23 +0000 (00:30 +0900)
wiki/wikiattrib.cc
wiki/wikiattrib.h
wiki/wikiformat.cc

index 7f91eff..99fa229 100644 (file)
@@ -535,7 +535,7 @@ bool  WikiAttribTable::readAttribMore2 (const ustring& key, WikiMotorObjVec& cel
     return true;
 }
 
-void  WikiAttribTable::outputMore (MotorOutput* out) {
+void  WikiAttribTable::outputMore (MotorOutput* out, bool foutputwidth) {
     switch (halign) {
     case HAlignLeft:
        out->out_raw (CharConst (" align=\"left\""));
@@ -548,7 +548,8 @@ void  WikiAttribTable::outputMore (MotorOutput* out) {
        break;
     default:;
     }
-    wiki->outputName (out, CharConst ("width"), width);
+    if (foutputwidth)
+       wiki->outputName (out, CharConst ("width"), width);
     wiki->outputName (out, CharConst ("height"), height);
     wiki->outputName (out, CharConst ("bgcolor"), bgcolor);
 
index eca7cfb..091427d 100644 (file)
@@ -143,10 +143,14 @@ class  WikiAttribTable: public WikiAttrib1 {
     virtual  ~WikiAttribTable () {};
     virtual void  init ();
     virtual void  copyFrom (WikiAttribTable& b);
+    virtual void  outputCell (MotorOutput* out, bool foutputwidth) {
+       output (out);
+       outputMore (out, foutputwidth);
+    };
  private:
     virtual bool  readAttribMore (const ustring& key, WikiMotorObjVec& vval, bool& ferr);
     virtual bool  readAttribMore2 (const ustring& key, WikiMotorObjVec& cell, bool& ferr);
-    virtual void  outputMore (MotorOutput* out);
+    virtual void  outputMore (MotorOutput* out, bool foutputwidth);
 };
 
 class  WikiAttribImg: public WikiAttrib1 {
index a47e444..18b5f88 100644 (file)
@@ -814,7 +814,8 @@ void  WikiBlockTable::TableCell::outputTD (WikiFormat* wiki, MotorOutput* out, b
        out->out_raw (CharConst ("<th"));
     else
        out->out_raw (CharConst ("<td"));
-    cellattrib.output (out);
+    bool  foutputwidth = (! fturn && colspan == 1) || (fturn && rowspan == 1);
+    cellattrib.outputCell (out, foutputwidth);
     if (fturn) {
        if (colspan > 1)
            wiki->outputName (out, CharConst ("rowspan"), colspan, false);