Changeset 144:1f35baf27620 in livinglogic.java.ul4

Show
Ignore:
Timestamp:
07/09/08 21:52:30 (11 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Tags:
exp-4
Message:

Added support for a csvescape() function.

Files:
5 modified

Legend:

Unmodified
Added
Removed
  • docs/versiondoc.txt

    r142 r144  
     1exp-4: 
     2----- 
     3Comments: 
     4* Added support for a csvescape() function. 
     5 
     6 
    17exp-3: 
    2 ------ 
     8----- 
    39Comments: 
    410* The org.apache.commons package is now used to implement some of the operations. 
  • library/src/com/livinglogic/ul4/Main.java

    r141 r144  
    1414    public static void main(String[] args) 
    1515    { 
    16         Template tmpl = Compiler.compile("<?for o in [None, True, False, 42, 4.2, 'fo\\'\"\\r\\n', now(), [0, 1, None], {1: 'eins', 2: 'zwei', 3: 'drei'}]?><?print repr(o)?>\n<?end for?>"); 
     16        Template tmpl = Compiler.compile("<?for o in [None, True, False, 42, 4.2, 'fo\\'\"\\r\\n', now(), [0, 1, None], {1: 'eins', 2: 'zwei', 3: 'drei'}]?><?print csvescape(o)?>\n<?end for?>"); 
    1717        long start = new Date().getTime(); 
    1818        String output = tmpl.renders(); 
  • library/src/com/livinglogic/ul4/Opcode.java

    r141 r144  
    8989    public static final int CF1_SORTED = 20; 
    9090    public static final int CF1_RANGE = 21; 
     91    public static final int CF1_CSVESCAPE = 22; 
    9192 
    9293    public static final int CF2_RANGE = 0; 
     
    308309        else if (name.equals("range")) 
    309310            return CF1_RANGE; 
     311        if (name.equals("csvescape")) 
     312            return CF1_CSVESCAPE; 
    310313        else 
    311314            throw new UnknownFunctionException(name); 
  • library/src/com/livinglogic/ul4/Template.java

    r141 r144  
    11041104                                    reg[code.r1] = Utils.xmlescape(reg[code.r2]); 
    11051105                                    break; 
     1106                                case Opcode.CF1_CSVESCAPE: 
     1107                                    reg[code.r1] = Utils.csvescape(reg[code.r2]); 
     1108                                    break; 
    11061109                                case Opcode.CF1_STR: 
    11071110                                    reg[code.r1] = ObjectUtils.toString(reg[code.r2]); 
  • library/src/com/livinglogic/ul4/Utils.java

    r141 r144  
    517517    } 
    518518 
    519     public static Object xmlescape(Object obj) 
     519    public static String xmlescape(Object obj) 
    520520    { 
    521521        if (obj == null) 
     
    568568    } 
    569569 
     570    public static String csvescape(Object obj) 
     571    { 
     572        if (obj == null) 
     573            return ""; 
     574        if (!(obj instanceof String)) 
     575            obj = repr(obj); 
     576        return StringEscapeUtils.escapeCsv((String)obj); 
     577    } 
     578 
    570579    public static Object toInteger(String obj) 
    571580    {