Changeset 11407
- Timestamp:
- 11/30/08 21:54:52 (15 years ago)
- Location:
- branches/open-external-format/src/org/armedbear/lisp
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/open-external-format/src/org/armedbear/lisp/socket.lisp
r11391 r11407 32 32 (in-package "SYSTEM") 33 33 34 (defun get-socket-stream (socket &key (element-type 'character) )34 (defun get-socket-stream (socket &key (element-type 'character) (external-format :default)) 35 35 ":ELEMENT-TYPE must be CHARACTER or (UNSIGNED-BYTE 8); the default is CHARACTER." 36 36 (cond ((eq element-type 'character)) … … 40 40 :format-control 41 41 ":ELEMENT-TYPE must be CHARACTER or (UNSIGNED-BYTE 8)."))) 42 (%socket-stream socket element-type ))42 (%socket-stream socket element-type external-format)) 43 43 44 44 (defun make-socket (host port) -
branches/open-external-format/src/org/armedbear/lisp/socket_stream.java
r11391 r11407 41 41 private socket_stream() 42 42 { 43 super("%socket-stream", PACKAGE_SYS, false, "socket element-type ");43 super("%socket-stream", PACKAGE_SYS, false, "socket element-type external-format"); 44 44 } 45 45 46 public LispObject execute(LispObject first, LispObject second) 46 static final private Symbol keywordCodePage = Packages.internKeyword("CODE-PAGE"); 47 48 public LispObject execute(LispObject first, LispObject second, LispObject third) 47 49 throws ConditionThrowable 48 50 { 49 51 Socket socket = (Socket) ((JavaObject)first).getObject(); 50 52 LispObject elementType = second; // Checked by caller. 53 LispObject externalFormat = third; 54 String encoding = "ISO-8859-1"; // for default 55 if (externalFormat != NIL) { 56 if (externalFormat instanceof Symbol) { 57 Symbol enc = (Symbol)externalFormat; //FIXME: class cast exception to be caught 58 if (enc != NIL) { 59 if (enc != keywordCodePage) { 60 encoding = enc.getName(); 61 } 62 //FIXME: the else for the keywordCodePage to be filled in 63 } 64 //FIXME: the else for the == NIL to be filled in: raise an error... 65 } else if (externalFormat instanceof AbstractString) { 66 AbstractString encName = (AbstractString) externalFormat; 67 encoding = encName.getStringValue(); 68 } 69 } 51 70 try { 52 71 Stream in = 53 new Stream(socket.getInputStream(), elementType );72 new Stream(socket.getInputStream(), elementType, encoding); 54 73 Stream out = 55 new Stream(socket.getOutputStream(), elementType );74 new Stream(socket.getOutputStream(), elementType, encoding); 56 75 return new SocketStream(socket, in, out); 57 76 } -
branches/open-external-format/src/org/armedbear/lisp/util/RandomAccessCharacterFile.java
r11405 r11407 174 174 fcnpos = fcn.position(); 175 175 fcnsize = fcn.size(); 176 177 cset = Charset.forName(encoding);176 177 cset = (encoding == null) ? Charset.defaultCharset() : Charset.forName(encoding); 178 178 cdec = cset.newDecoder(); 179 179 cenc = cset.newEncoder();
Note: See TracChangeset
for help on using the changeset viewer.