[ltk-user] no error stream use

Kenny Tilton ktilton at nyc.rr.com
Thu Feb 2 20:04:42 UTC 2006


Kenny Tilton wrote:

> Kenny Tilton wrote:
>
>> Peter Herth wrote:
>>
>>> On 2/2/06, Kenny Tilton <ktilton at nyc.rr.com> wrote:
>>>  
>>>
>>>> Is there some reason the error stream from Tk is not being used? In
>>>> Celtic I bound that to a second global and read that (with read-line,
>>>> not read since the error output is not Lisp friendly) before trying to
>>>> read the regular stream.
>>>>
>>>> As it is read-data just flails away at error text until it hits
>>>> something that upsets the reader, such as a comma.
>>>>   
>>>
>>>
>>>
>>> Well, there is no deep reason - besides I do not know offhand how the
>>> support for a seperate error stream across all the lisps Ltk runs on
>>> is. For sure, it probably would remove some of the weird errors of Ltk
>>> when Tk sends something unreadable...
>>>  
>>>
>>
>> Here is the change I made for Celtic:
>>
>>    #+allegro (multiple-value-bind (stream error-stream process-id)
>>                  (excl:run-shell-command
>>                   #+mswindows fullstring
>>                   #-mswindows (apply #'vector program program args)
>>                   :input :stream :output :stream
>>                   :error-output :stream
>>                   :wait wt)
>>                (declare (ignorable dummy error-stream process-id))
>>                (trc "doexec!!!> " stream error-stream process-id)
>>                (if stream
>>                    (progn
>>                      (setf *ewish* error-stream)
>>                      stream)
>>                  (error "Cannot create WISH process.")))))
>>
>>
>> Then before reading *wish* (this of course in the day when that was 
>> the stream):
>>
>>   (loop
>>        while (peek-char-no-hang *ewish*)
>>        do (break "ewish!!!!!!!> ~a" (read-line *ewish* nil nil)))
>>
>> That looks like it could be a little smarter and not break until all 
>> the error output was read, but that is the general idea.
>>
>> kt
>> _______________________________________________
>> ltk-user site list
>> ltk-user at common-lisp.net
>> http://common-lisp.net/mailman/listinfo/ltk-user
>>
> FYI I have now added the above to my copy and it does not seem to be 
> picking up the unreadable TK stuff from the error-stream. Still 
> investigating, but I wanted to give you a heads up in case you were 
> playing with it. kt 


No, it works, I did not see that there are two places where the the 
stream is read. Tsk tsk. :)

Meanwhile, here is peek-char-no-hang:

(defun peek-char-no-hang (stream)
  (and (listen stream) (peek-char t stream)))

kt



More information about the ltk-user mailing list