Chris Hanson [Sun, 3 Jun 2001 01:22:54 +0000 (01:22 +0000)]
Add optional argument NO-DEFER? to CLOSE-RESOURCE. If this argument
is true, it tells the operation that the resource must be closed
immediately. Otherwise, the operation may defer the closure.
Chris Hanson [Sat, 2 Jun 2001 22:25:38 +0000 (22:25 +0000)]
Add logic to GET-X-DISPLAY to test for existence of X primitives, and
to make sure that a display variable exists. This is necessary so
that Edwin will work on a system that doesn't have X support.
Chris Hanson [Sat, 2 Jun 2001 21:57:16 +0000 (21:57 +0000)]
PROMPT-FOR-DIRECTORY should not always perform PATHNAME-AS-DIRECTORY
on its result; if the REQUIRE-MATCH? option isn't given, the result
might not be a directory. For example, Dired uses this prompt, and an
input with a wildcard file part is permissible.
Chris Hanson [Sat, 2 Jun 2001 05:55:51 +0000 (05:55 +0000)]
Implement marked files for D and R commands (stub for C command needs
to be written). Change name of x command to M-x
imail-browser-do-flagged-delete to correspond to new name given
corresponding Emacs dired command.
Chris Hanson [Sat, 2 Jun 2001 01:26:39 +0000 (01:26 +0000)]
Add optional HOST argument to OPEN-TCP-SERVER-SOCKET, and new
procedures HOST-ADDRESS-ANY and HOST-ADDRESS-LOOPBACK. This allows
the user to specify the network interface(s) being listened to.
Chris Hanson [Fri, 1 Jun 2001 02:23:19 +0000 (02:23 +0000)]
Defer closing of connection when it is the last connection open to a
particular server. This prevents a pattern of opening and closing
that occurs when IMAIL starts up (due to probes performed prior to
opening the folder). It also allows the user to do completion in the
folder space without occurring the same penalty. The downside is that
the connection remains open for about a minute after the user "closes"
it, which will be remedied in a future revision.
Chris Hanson [Thu, 31 May 2001 20:34:17 +0000 (20:34 +0000)]
First draft of a mechanism to defer closing of connections. This
suffers from a fault: the background probe-folder thread is re-opening
the connection while it is in the deferred state.
Chris Hanson [Thu, 31 May 2001 19:58:40 +0000 (19:58 +0000)]
Implement START-STANDARD-POLLING-THREAD and
STOP-STANDARD-POLLING-THREAD to capture standard method of using
background thread to poll for output or events.
Chris Hanson [Thu, 31 May 2001 19:57:40 +0000 (19:57 +0000)]
Implement START-STANDARD-POLLING-THREAD and
STOP-STANDARD-POLLING-THREAD to capture standard method of using
background thread to poll for output or events.
Chris Hanson [Thu, 31 May 2001 19:41:53 +0000 (19:41 +0000)]
Add interrupt locking to REGISTER-INFERIOR-THREAD! and
DEREGISTER-INFERIOR-THREAD!. Change DEREGISTER-INFERIOR-THREAD! to
delete the entry from the list of inferior threads.
Chris Hanson [Wed, 30 May 2001 05:47:08 +0000 (05:47 +0000)]
Change how connections are allocated; when looking for a connection
for a folder, we'll now take over an existing compatible connection if
it's not being used by another folder. This will be useful after the
next change, which will cause connections to stay open a short while
after their last reference is dropped; when that happens, there will
be open connections lying around that can usefully be adopted.
Chris Hanson [Tue, 29 May 2001 21:25:33 +0000 (21:25 +0000)]
Don't use LOAD-OPTION to load cref; it probably doesn't exist on the
host system (outside of MIT), and this will cause an error if the user
has MITSCHEME_INF_DIRECTORY set.
Chris Hanson [Tue, 29 May 2001 19:58:28 +0000 (19:58 +0000)]
Don't use LOAD-OPTION to load cref; it probably doesn't exist on the
host system (outside of MIT), and this will cause an error if the user
has MITSCHEME_INF_DIRECTORY set.
Chris Hanson [Tue, 29 May 2001 17:45:37 +0000 (17:45 +0000)]
Restructure IMAP URLs so that each container URL has a corresponding
folder URL. The container URL inherits the components of the folder
URL rather than keeping its own copies. This sharing will be
important when we add caching of the IMAP server's LIST info.
Chris Hanson [Sun, 27 May 2001 05:05:54 +0000 (05:05 +0000)]
Cache result of URL-IS-CONTAINER?, to prevent going back to network
each time it's needed. This might not actually work, since the
definition of URL-IS-CONTAINER? specifies that the corresponding
mailbox must exist.
Chris Hanson [Sat, 26 May 2001 02:51:06 +0000 (02:51 +0000)]
Change IMAIL-DEFAULT-CONTAINER to use selected URL if any. This sets
default correctly in the folder browser when point is inside an
expanded subfolder.
Chris Hanson [Thu, 24 May 2001 17:46:51 +0000 (17:46 +0000)]
Simplify meaning of CONTAINER-URL; it no longer does anything special
for IMAP URLs. Define new operation CONTAINER-URL-FOR-PROMPT that has
the behavior that CONTAINER-URL used to.
Implement new operation URL-CHILD-NAME which is now the complement to
CONTAINER-URL. These operations now return compatible halves of the
URL, which may be recombined using MAKE-CHILD-URL to obtain the
original URL.
Change implementation of URL-PRESENTATION-NAME; it now just calls
URL-CHILD-NAME, stripping a slash off the end if present.
Clarify definition of URL-BASE-NAME.
Revert CONTAINER-CONTENTS back to CONTAINER-URL-CONTENTS. Maybe
tomorrow I'll change my mind again.
Chris Hanson [Wed, 23 May 2001 05:05:29 +0000 (05:05 +0000)]
Generalize implementations of properties and modification events so
that they can be mixed in to arbitrary classes. Simplify property
implementation to use an alist. This saves 4 words of memory, which
is important for message objects.
Create generalized resources, which are the referents of URLs. Use
these as the base for folders, and create a new container type.
Change CREATE-FOLDER, DELETE-FOLDER, RENAME-FOLDER, and APPEND-MESSAGE
to signal appropriate events to the container of the folders being
manipulated. This will allow folder browsers to automatically update
themselves as their contents are changed.
Add hooks to folder and container prompts, which allow the folder
browser to use some of the standard server commands. The browser
can supply the appropriate URL string without prompting.
Don't let M-x imail-copy-folder copy from a folder to itself.
Chris Hanson [Fri, 18 May 2001 00:55:32 +0000 (00:55 +0000)]
If ERROR? argument to SELECTED-FOLDER and SELECTED-MESSAGE is false,
don't signal an error even if the associated property isn't bound.
The old behavior has caused too many problems in weird places, and has
no real benefits.
Chris Hanson [Thu, 17 May 2001 04:00:04 +0000 (04:00 +0000)]
Split the IMAP URL type into two types: one for IMAP folders, and the
other for IMAP containers. The two are distinguished solely by the
form of their mailbox names: a trailing slash (or null mailbox) means
it's a container, otherwise it's a folder.
Chris Hanson [Tue, 15 May 2001 19:47:02 +0000 (19:47 +0000)]
New operation CONTAINER-URL-CONTENTS.
Reimplemented URL-IS-SELECTABLE? for file folders. New implementation
probes the file to determine if it is a known type.
File-folder completion now only considers files of known type and
directories. It also doesn't consider "." and ".." directories.
Code that mapped IMAP heirarchy delimiters was broken, although this
caused no practical consequences. It has been reimplemented to make
it both correct and simpler.
IMAP-folder completion used to probe subfolders of a folder to
determine if a folder should have a "/" at the end. This was wasteful
of network bandwidth and had no practical consequences, so it has been
changed to not do this.
Chris Hanson [Sun, 13 May 2001 03:46:17 +0000 (03:46 +0000)]
* Implement container URLs, which are separate from folder URLs.
These are implemented as directories for file-based folders. IMAP
folders are also containers.
* Eliminate URL-CONTAINER-STRING; now there is URL-CONTAINER that
returns a container URL.
* Rename URL-SELECTABLE? to URL-IS-SELECTABLE?.
* Eliminate "rmail" and "umail" protocols in favor of "file". This
now covers both Rmail and unix-mail folders, as well as directories.
The actual file type is determined by probing the first few bytes of
the file for known patterns. The names "rmail" and "umail" are now
treated as equivalent to "file" for upwards compatibility.
* Change prompting code in front end so that it is possible to specify
that the returned folder satisfies URL-IS-SELECTABLE?. Also add a
procedure to prompt for a container.
Chris Hanson [Wed, 9 May 2001 21:03:05 +0000 (21:03 +0000)]
Fix bug in M-x dired-create-directory: PROMPT-FOR-DIRECTORY recently
changed so that it always returns the result as a directory pathname
with no file part. The code here was assuming that the name part was
always present.