DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24281>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24281

Broken cvstagdiff XML for filenames that contain & character

           Summary: Broken cvstagdiff XML for filenames that contain &
                    character
           Product: Ant
           Version: 1.5.3
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Core tasks
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


File names on Unix and Windows platform can contain '&' character.
When generating XML cvstagdiff report it need be properly escaped.

Solution:
Add method to class: org.apache.tools.ant.taskdefs.cvslib.CvsTagEntry

    public String getFile_XML_escaped() {
                // It seems that file names can contain only & characters
                if (m_filename.indexOf('&') < 0)
                        return m_filename;
                StringBuffer buf = new StringBuffer(m_filename);
                int index = 0;
                while(true) {
                        int pos = buf.toString().indexOf('&', index);
                        if (pos < 0)
                                break;
                        index = pos + 1;
                        buf.replace(pos, index, "&amp;");
                }
        return buf.toString();
    }

Use this method instead of CvsTagEntry.getFile() in class 
org.apache.tools.ant.taskdefs.cvslib.CvsTagDiff method writeTagEntry:
line 380:
    private void writeTagEntry(PrintWriter writer, CvsTagEntry entry) {
        writer.println("\t<entry>");
        writer.println("\t\t<file>");
        writer.println("\t\t\t<name>" + entry.getFile_XML_escaped() 
+ "</name>");

...

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to