root/10050_filter_all_illegal_xml_characters.patch @ 55:8b22aecab4d9

Revision 55:8b22aecab4d9, 2.0 KB (checked in by Jiang Xin <worldhello.net AT gmail DOT com>, 3 years ago)

See #16: Refresh MQ patches for FreeMind 0.9.0 RC1.

  • freemind/modes/NodeAdapter.java

    diff -r 618ee1b1d5ae freemind/modes/NodeAdapter.java
    a b  
    210210 
    211211    /** \0 is not allowed: */ 
    212212    private String makeValidXml(String pXmlNoteText) { 
    213         return pXmlNoteText.replaceAll("\0", "").replaceAll("&#0;", ""); 
     213        return pXmlNoteText.replaceAll("[\0-\u0008]|\u000B|\u000C|[\u000E-\u001F]|[\uD800-\uDFFF]|\uFFFE|\uFFFF", "").replaceAll("&#0;", ""); 
    214214    } 
    215215    /* ************************************************************ 
    216216     * ********     Notes                                   ******* 
     
    10061006        // OSSXP.COM: not save TEXT attributes in .mmx file 
    10071007        if( node.isInWhiteAttlist("TEXT")) 
    10081008        { 
    1009         String text = this.toString().replace('\0', ' '); 
     1009        String text = this.makeValidXml(this.toString()); 
    10101010        if(!HtmlTools.isHtmlNode(text)) { 
    10111011            node.setAttribute(XMLElementAdapter.XML_NODE_TEXT,text); 
    10121012        } else { 
     
    10141014            XMLElement htmlElement = new XMLElement(); 
    10151015            htmlElement.setName(XMLElementAdapter.XML_NODE_XHTML_CONTENT_TAG); 
    10161016            htmlElement.setAttribute(XMLElementAdapter.XML_NODE_XHTML_TYPE_TAG, XMLElementAdapter.XML_NODE_XHTML_TYPE_NODE); 
    1017             htmlElement.setEncodedContent(getXmlText().replace('\0', ' ')); 
     1017            htmlElement.setEncodedContent(this.makeValidXml(getXmlText())); 
    10181018            node.addChild(htmlElement); 
    10191019        } 
    10201020        if(getXmlNoteText()!= null){ 
    10211021                        XMLElement htmlElement = new XMLElement(); 
    10221022                        htmlElement.setName(XMLElementAdapter.XML_NODE_XHTML_CONTENT_TAG); 
    10231023                        htmlElement.setAttribute(XMLElementAdapter.XML_NODE_XHTML_TYPE_TAG, XMLElementAdapter.XML_NODE_XHTML_TYPE_NOTE); 
    1024                         htmlElement.setEncodedContent(getXmlNoteText().replace('\0', ' ')); 
     1024                        htmlElement.setEncodedContent(this.makeValidXml(getXmlNoteText())); 
    10251025                        node.addChild(htmlElement); 
    10261026                 
    10271027        } 
Note: See TracBrowser for help on using the browser.