Changeset 11419
- Timestamp:
- 12/05/08 22:58:19 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/open-external-format/src/org/armedbear/lisp/Stream.java
r11417 r11419 68 68 69 69 // Character input. 70 private Reader reader; 71 private PushbackReader pushbackReader; 70 private PushbackReader reader; 72 71 protected int offset; 73 72 protected int lineNumber; … … 90 89 } 91 90 92 static final pr ivateSymbol keywordDefault = Packages.internKeyword("DEFAULT");91 static final protected Symbol keywordDefault = Packages.internKeyword("DEFAULT"); 93 92 94 93 static final private Symbol keywordCodePage = Packages.internKeyword("CODE-PAGE"); … … 107 106 protected LispObject externalFormat = LispObject.NIL; 108 107 protected String encoding = null; 108 protected char lastChar = 0; 109 109 110 110 // Binary input. … … 145 145 new InputStreamReader(inputStream); 146 146 } 147 pushbackReader = new PushbackReader(new BufferedReader(inputStreamReader), 148 2); 149 initAsCharacterInputStream(pushbackReader); 147 initAsCharacterInputStream(new BufferedReader(inputStreamReader)); 150 148 } 151 149 else … … 205 203 protected void initAsCharacterInputStream(Reader reader) 206 204 { 207 this.reader = reader; 205 if (! (reader instanceof PushbackReader)) 206 this.reader = new PushbackReader(reader, 2); 207 else 208 this.reader = (PushbackReader)reader; 209 208 210 isInputStream = true; 209 211 isCharacterStream = true; … … 1824 1826 try 1825 1827 { 1826 pushbackReader.unread(n);1828 reader.unread(n); 1827 1829 --offset; 1828 1830 if (n == eolChar) … … 1875 1877 { 1876 1878 if (c == '\n') { 1877 if (eolStyle == EolStyle.CRLF )1878 writer.write( "\r\n");1879 else 1880 1881 1879 if (eolStyle == EolStyle.CRLF && lastChar != '\r') 1880 writer.write('\r'); 1881 1882 writer.write(eolChar); 1883 lastChar = eolChar; 1882 1884 writer.flush(); 1883 1885 charPos = 0; 1884 1886 } else { 1885 1887 writer.write(c); 1888 lastChar = c; 1886 1889 ++charPos; 1887 1890 } … … 1916 1919 // writing the space between newlines as chunks. 1917 1920 _writeChar(chars[i]); 1918 1919 } else 1921 return; 1922 } 1923 1920 1924 writer.write(chars, start, end - start); 1921 1925 lastChar = chars[end-1]; 1922 1926 int index = -1; 1923 1927 for (int i = end; i-- > start;) … … 2138 2142 writer.write(sw.toString()); 2139 2143 writer.write('\n'); 2144 lastChar = '\n'; 2140 2145 writer.flush(); 2141 2146 charPos = 0;
Note: See TracChangeset
for help on using the changeset viewer.