When Tomcat generates servlet code from JSP, it changes all LF's into CRLF's. Is there a good reason for this? I intentionally use only LF's in my JSP files to save bandwidth, especially when they're large JSP files. In some cases, Tomcat produces ugly output with mixed LF and CRLF lines. Example: <p>Tomcat adds a CR on this line.</p> <% out.println("Tomcat _doesn't_ add a CR on this line."); %> Even worse, Tomcat converts only LF's to CRLF's. It completely ignores CR's. So on a Mac (which uses CR-terminated lines), the whole JSP file is converted into a single line! Attached are two patches that I think will fix the problem. Any takers? -- Si
Index: CharDataGenerator.java =================================================================== RCS file: /home/cvspublic/jakarta-tomcat/src/share/org/apache/jasper/compiler/CharDataGenerator.java,v retrieving revision 1.3 diff -u -r1.3 CharDataGenerator.java --- CharDataGenerator.java 2000/07/25 02:21:08 1.3 +++ CharDataGenerator.java 2001/06/29 02:42:18 @@ -108,7 +108,8 @@ sb.append("\\\\"); break; case '\r': - continue; + sb.append("\\r"); + break; /* case '\'': sb.append('\\'); @@ -116,7 +117,7 @@ break; */ case '\n': - sb.append("\\r\\n"); + sb.append("\\n"); break; case '\t': sb.append("\\t");
Index: MappedCharDataGenerator.java =================================================================== RCS file: /home/cvspublic/jakarta-tomcat/src/share/org/apache/jasper/compiler/MappedCharDataGenerator.java,v retrieving revision 1.2 diff -u -r1.2 MappedCharDataGenerator.java --- MappedCharDataGenerator.java 2000/03/06 00:33:51 1.2 +++ MappedCharDataGenerator.java 2001/06/29 02:42:30 @@ -93,7 +93,8 @@ sb.append("\\\\"); break; case '\r': - continue; + sb.append("\\r"); + break; /* case '\'': sb.append('\\'); @@ -101,7 +102,7 @@ break; */ case '\n': - sb.append("\\r\\n"); + sb.append("\\n"); writer.print(sb.toString()); writer.print("\");\n"); sb = new StringBuffer();