Daniel wrote:
Still poking around.
Doh! I found my problem. Either commenting out #fconfigure stdin -encoding utf-8 -translation ~a #fconfigure stdout -encoding utf-8 or enabling (setf translation "crlf") fixes all my problems. Why I didn't see this earlier? Why did I let the :lispworks scare me away? The Ltk examples and ABLE both work fine now. A major benefit of the (sleep 1) was to let Tk appear before Ltk sent it bad commands. However, it should not be removed; I still need it for proper operation under clisp. By my understanding, SBCL is the only lisp that doesn't translate ~% as \r\n on MS platforms. Thus every other CL on windows should get the crlf translation. Here are my recommended patches to the current repl/ltk.lisp. With them, Ltk::ltktest and ABLE::start ran properly under both clozure-1.4 and clisp-2.48. Note that Clozure puts :windows on *features*, and Clisp uses :win32. @@ -681,7 +681,7 @@ proc moveToStart {sb} { (defun init-tcl (&key debug-tcl) (let ((translation "lf")) - #+(and :lispworks :windows) (setf translation "crlf") + #+(and (or windows win32) (not sbcl)) (setf translation "crlf") (format (wish-stream *wish*) "set buffer \"\" set server stdout @@ -764,7 +764,7 @@ fconfigure stdout -encoding utf-8 (if (null (wish-stream *wish*)) (progn (setf (wish-stream *wish*) (or stream (do-execute *wish-pathname* *wish-args*))) - #+mswindows (sleep 1) + #+(or windows win32) (sleep 1) (setf (wish-call-with-condition-handlers-function *wish*) (make-call-with-condition-handlers-function debugger-class)) ;; perform tcl initialisations Later, Daniel