Chris Hanson [Tue, 28 Nov 2000 05:19:05 +0000 (05:19 +0000)]
Fix bug: purify wasn't properly saving and restoring the scan state
around the scan of constant space. Doing this right requires access
to internal state of bchmmg, so I built an abstraction to do this.
Chris Hanson [Sun, 19 Nov 2000 23:27:57 +0000 (23:27 +0000)]
Change IMAIL-SUMMARY-POP-UP-MESSAGE-BUFFER to use POP-UP-BUFFER again.
This should fix the problem of over-splitting windows. Don't use
IMAIL-SUMMARY-POP-UP-MESSAGE-BUFFER for fixed layout; instead simplify
that logic to use WINDOW-SPLIT-VERTICALLY!. Eliminate
SYNC-IMAIL-SUMMARY-BUFFER which was used in only one place.
Chris Hanson [Mon, 30 Oct 2000 19:53:23 +0000 (19:53 +0000)]
Fix bug: previously, selecting one of the buffers of a visible layout
into a window that held a different buffer of that layout would leave
the layout marked as visible. This fix notices this case and unmarks
the layout. However, the selection of the buffer causes the layout to
be reselected, which means the operation has no net effect.
Chris Hanson [Mon, 30 Oct 2000 15:43:28 +0000 (15:43 +0000)]
Fix bug: SELECT-CONTINUATION-BROWSER-BUFFER called BROWSER-SELECT-LINE
assuming that the buffer it had specified for selection was already
selected; this turned out not to be true. So modify the code to pass
the buffer explicitly rather than depend on selection. Also tweak
code that prompts for X window geometry so that it re-prompts if the
user's input isn't valid.
Chris Hanson [Mon, 30 Oct 2000 15:41:04 +0000 (15:41 +0000)]
Fix bug: UNDO-LEAVE-WINDOW! was being called on the wrong window from
SELECT-SCREEN and SELECT-WINDOW. Also change order of arguments to
CHANGE-SELECTED-BUFFER to match order used most other places in this
file.
Chris Hanson [Mon, 30 Oct 2000 15:39:10 +0000 (15:39 +0000)]
Don't abort prompt when an input event arrives; process the event and
restart the prompt. There may be subtle problems with this strategy;
find and fix them.
Chris Hanson [Fri, 27 Oct 2000 04:00:34 +0000 (04:00 +0000)]
When killing buffer, it's possible to signal an error if there are no
other buffers. Previously, this error could have been signalled
_after_ the killing procedure had already killed off any buffer
process, run the kill hooks, etc. Now the error test is done first,
and if the error is signalled, no other action is taken.
Chris Hanson [Fri, 27 Oct 2000 03:16:20 +0000 (03:16 +0000)]
Change MAYBE-SELECT-BUFFER-LAYOUT so that it does nothing if called
while running a layout selector; this will prevent infinite recursions
and that otherwise occur quite easily while instantiating the layout.
Simplify MAYBE-SELECT-BUFFER-LAYOUT so that it doesn't do anything
unless the layout is changing. Previously indirect tests were used,
now we just compare the current layout with the proposed layout and
implement the changes.
Chris Hanson [Thu, 26 Oct 2000 22:16:45 +0000 (22:16 +0000)]
Don't use POP-UP-BUFFER to split the window; use
WINDOW-SPLIT-VERTICALLY! instead. Also, tweak fixed layout generator
so that it doesn't go into infinite recursion.
Chris Hanson [Thu, 26 Oct 2000 18:03:15 +0000 (18:03 +0000)]
Fix long-standing bug that occurred when using multiple screens with a
window manager that supports multiple workspaces: switching workspaces
sometimes caused an error to be signalled by X-WINDOW-SET-INPUT-FOCUS.
The problem is that the workspace switch caused all of Edwin's windows
to be unmapped. Depending on the order in which the unmap events
arrived, Edwin might have queued a request to select another screen.
But since all of the screens were unmapped at the time the request was
processed, the attempt to set the input focus to one of these unmapped
screens always generated an error.
The fix eliminates the code that tried to select another screen.
Instead we depend on the window manager to tell us when another screen
needs to be selected.
Chris Hanson [Thu, 26 Oct 2000 02:31:12 +0000 (02:31 +0000)]
Comment out call to ADD-PRE-SELECT-BUFFER-HOOK. This procedure is
about to be removed from Edwin. It will shortly be replaced by a
different mechanism.
Chris Hanson [Thu, 26 Oct 2000 02:30:07 +0000 (02:30 +0000)]
Eliminate pre-select-buffer-hooks mechanism from previous change.
This turns out not to work quite right for the problem at hand.
Instead implement a buffer-layout mechanism that should solve the
problem more neatly.
Chris Hanson [Fri, 20 Oct 2000 04:33:20 +0000 (04:33 +0000)]
Implement new editor variable imail-summary-height to allow the user
to specify the height of the summary buffer. Normally this is set to
1/4 making the summary 1/4 the height of the screen.
Chris Hanson [Fri, 20 Oct 2000 02:14:59 +0000 (02:14 +0000)]
Fix bug: FLAGS->RMAIL-MARKERS was clobbering its argument to remove
the "seen" flag. This caused messages to be marked "unseen" when they
were written to an RMAIL file.
Chris Hanson [Fri, 20 Oct 2000 00:44:34 +0000 (00:44 +0000)]
Fix bug: WRITE-HEADER-FIELDS was generating the blank-line separator,
but all of the callers assumed that it wasn't. So messages were being
written with an extra newline.
Chris Hanson [Sat, 14 Oct 2000 00:57:28 +0000 (00:57 +0000)]
Update version number of runtime system to reflect change to semantics
of internal definitions. Update release number because it's time to
do another release.
Chris Hanson [Sat, 14 Oct 2000 00:56:20 +0000 (00:56 +0000)]
Eliminate old optimization that reused lambda parameters for internal
definitions of the same name. This needlessly complicated the
semantics, and the optimization is no longer interesting (if it ever
was).
Thanks to the 6.001 staff for bringing this to my attention.
Chris Hanson [Sun, 1 Oct 2000 02:18:55 +0000 (02:18 +0000)]
Fix bug: when a call to connect gets EINTR, one can't just restart the
connect, because it might be waiting for a packet from the other end
of the connection. Instead, it's necessary to wait for the connect to
finish (using select), and then check the SO_ERROR option to see if it
succeeded or failed.
Chris Hanson [Sun, 1 Oct 2000 02:14:14 +0000 (02:14 +0000)]
Fix bug: xterm_dump_rectangle, when given the coordinates of a window
that wasn't exactly a multiple of the character size, would dump
characters at the edges of the window. Instead, it must clip the
rectangle to the character size of the window.