Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Changeset 3522

Show
Ignore:
Timestamp:
05/25/08 23:36:46 (6 months ago)
Author:
kris
Message:

- deprecated XmlPrinter?
- made DocPrinter? more efficient

fixes #1100 ... thanks alexn

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/example/text/xmlpath.d

    r3292 r3522  
    22import tango.time.StopWatch; 
    33import tango.text.xml.Document; 
    4 import tango.text.xml.XmlPrinter; 
     4import tango.text.xml.DocPrinter; 
    55 
    66/******************************************************************************* 
     
    2626 
    2727        // emit document 
    28         auto print = new XmlPrinter!(char); 
     28        auto print = new DocPrinter!(char); 
    2929        Stdout(print(doc)).newline; 
    3030 
  • trunk/tango/text/xml/DocPrinter.d

    r3430 r3522  
    4646        final void print (Node root, void delegate(T[][]...) emit) 
    4747        { 
     48                T[256] tmp; 
    4849                T[256] spaces = ' '; 
    4950 
     
    6263         
    6364                               case XmlNodeType.Element: 
    64                                     emit ("\r\n", spaces[0..indent], "<", node.name); 
     65                                    emit ("\r\n", spaces[0..indent], "<", node.name(tmp)); 
    6566                                    foreach (attr; node.attributes) 
    6667                                             emit (` `, attr.name, `="`, attr.rawValue, `"`);   
     
    7576                                       if (node.lastChild_.type != XmlNodeType.Data) 
    7677                                           emit ("\r\n", spaces[0..indent]); 
    77                                        emit ("</", node.name, ">"); 
     78                                       emit ("</", node.name(tmp), ">"); 
    7879                                       } 
    7980                                    else  
  • trunk/tango/text/xml/Document.d

    r3430 r3522  
    5151        doc.parse (content); 
    5252 
    53         auto print = new XmlPrinter!(char); 
     53        auto print = new DocPrinter!(char); 
    5454        Stdout(print(doc)).newline; 
    5555         --- 
     
    6969                .element   (null, "child", "value"); 
    7070 
    71         auto print = new XmlPrinter!(char); 
     71        auto print = new DocPrinter!(char); 
    7272        Stdout(print(doc)).newline; 
    7373        --- 
     
    477477                        if (prefix.length) 
    478478                           { 
    479 version (old) 
    480 
     479                           if (prefix.ptr + prefix.length + 1 is localName.ptr) 
     480                               return prefix.ptr [0 .. prefix.length + localName.length + 1]; 
     481 
    481482                           auto len = prefix.length + localName.length + 1; 
    482483                           if (output.length < len) 
     
    486487                           output[prefix.length+1 .. len] = localName; 
    487488                           return output[0..len]; 
    488 } 
    489 else 
    490                            return prefix.ptr [0 .. prefix.length + localName.length + 1]; 
    491489                           } 
    492490                        return localName;