public static String denormalize(final CharSequence self){
  if (lineSeparator == null) {
    final StringWriter sw=new StringWriter(2);
    try {
      final BufferedWriter bw=new BufferedWriter(sw);
      bw.newLine();
      bw.flush();
      lineSeparator=sw.toString();
    }
 catch (    IOException ioe) {
      lineSeparator="\n";
    }
  }
  final int len=self.length();
  if (len < 1) {
    return self.toString();
  }
  final StringBuilder sb=new StringBuilder((110 * len) / 100);
  int i=0;
  CharSequence cs=(self instanceof GString) ? self.toString() : self;
  while (i < len) {
    final char ch=cs.charAt(i++);
switch (ch) {
case '\r':
      sb.append(lineSeparator);
    if ((i < len) && (cs.charAt(i) == '\n')) {
      ++i;
    }
  break;
case '\n':
sb.append(lineSeparator);
break;
default :
sb.append(ch);
break;
}
}
return sb.toString();
}

public static String denormalize ( final CharSequence self ) { if ( lineSeparator == null ) { final StringWriter sw = new StringWriter ( 2 ) ; try { final BufferedWriter bw = new BufferedWriter ( sw ) ; bw . newLine ( ) ; bw . flush ( ) ; lineSeparator = sw . toString ( ) ; } catch ( IOException ioe ) { lineSeparator = "\n" ; } } final int len = self . length ( ) ; if ( len < 1 ) { return self . toString ( ) ; } final StringBuilder sb = new StringBuilder ( ( 110 * len ) / 100 ) ; int i = 0 ; CharSequence cs = ( self instanceof GString ) ? self . toString ( ) : self ; while ( i < len ) { final char ch = cs . charAt ( i ++ ) ; switch ( ch ) { case '\r' : sb . append ( lineSeparator ) ; if ( ( i < len ) && ( cs . charAt ( i ) == '\n' ) ) { ++ i ; } break ; case '\n' : sb . append ( lineSeparator ) ; break ; default : sb . append ( ch ) ; break ; } } return sb . toString ( ) ; }
return a charsequence with lines ( separated by lf , cr / lf , or cr ) terminated by the platform specific line separator .
