001 /** 002 * Implements the CFML Function paragraphformat 003 */ 004 package railo.runtime.functions.displayFormatting; 005 006 import railo.runtime.PageContext; 007 import railo.runtime.ext.function.Function; 008 009 public final class ParagraphFormat implements Function { 010 public static String call(PageContext pc , String str) { 011 StringBuffer sb = new StringBuffer(str.length()); 012 char[] chars=str.toCharArray(); 013 boolean flag = false; 014 015 for(int i=0; i<chars.length; i++) { 016 char c = chars[i]; 017 switch(c) { 018 case '\r': 019 if(i + 1 < chars.length && chars[i+1]=='\r') flag = false; 020 sb.append(' '); 021 break; 022 023 case '\n': 024 if(flag) { 025 sb.append(" <P>\r\n"); 026 flag = false; 027 } 028 else { 029 sb.append(' '); 030 flag = true; 031 } 032 break; 033 default: 034 sb.append(c); 035 flag = false; 036 break; 037 } 038 } 039 sb.append(" <P>"); 040 return sb.toString(); 041 } 042 }