Newsgroups: comp.sys.apollo
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!caen!umich!terminator!dabo.citi.umich.edu!rees
From: rees@dabo.citi.umich.edu (Jim Rees)
Subject: Re: DM-like editor under X11
Message-ID: <512af270.cb12@dabo.citi.umich.edu>
Sender: usenet@terminator.cc.umich.edu (usenet news)
Reply-To: rees@citi.umich.edu (Jim Rees)
Organization: University of Michigan ITD
References: <41853@netnews.upenn.edu>
Date: Wed, 24 Apr 91 17:16:08 GMT

In article <41853@netnews.upenn.edu>, george@hyper.lap.upenn.edu (George "Sir Lleb" Zipperlen) writes:

  I have about 50% of the the Apollo DM editor working using the Apollo
  Text Management Library (TMLib).

What I'd like to see more than the DM editor is DM pads.  I've got an xpad
client written, but it doesn't work exactly right because of limitations in
the way ptys work.  The xpad client needs to get a notification when the guy
at the other end of the pty is blocked on a read, so that it can then drain
all the output and update the boundary between the input and output sides of
the pad.  I can make this work in Domain/OS by either mucking with the
innards of ptys or writing my own pty type manager.  But I don't know how to
do it in general on a vanilla Unix pty.

What my xpad does now is it waits for output, and when it gets some, updates
the pads.  But this doesn't always work because there is no way to know the
order in which i/o events happened.  This is crucial for moving the input
text to the proper place in the output half of the pad.

Suggestions welcome.  Also, anyone know how to subclass Athena text widgets?
I want to be able to draw the line between the input and output halves of
the pad, and I think I need to subclass the sink widget to do this.

I suppose it might make sense to write a "DM edit" widget and use that
instead.  That's a bigger project than I want to get into, but maybe it
could be spun off of George's DM editor.

This is a low-priority project for me so I don't expect to have anything
usable for a while, if ever.
