aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap
Commit message (Expand)AuthorAgeFilesLines
* If we are asking for the toplevel folders, use the IMAP store's namespaceJeffrey Stedfast2002-08-062-35/+15
* Fixes bug #26237.Jeffrey Stedfast2002-08-032-55/+20
* If the folder name contains the directory separator, reject it.Peter Williams2002-08-031-1/+9
* camel:Peter Williams2002-08-011-92/+171
* Disable my fix to not cache headers as it means that each time we load theJeffrey Stedfast2002-08-011-6/+8
* Use the same command-counter mojo that the append code uses in case thePeter Williams2002-07-311-1/+2
* The flags'n'tags copy was unnecessary. Removed it.Peter Williams2002-07-271-4/+0
* Prototype.Peter Williams2002-07-264-7/+42
* It would help to mark the UIDs as deleted before we try to expunge themPeter Williams2002-07-261-6/+16
* Sync before doing an expunge if we dont have uidplus. See #25766.Not Zed2002-07-241-1/+16
* Move folders to a subdirectory of storage_path, rather than in it. Bye byeNot Zed2002-07-241-12/+23
* Duplicated the very much hack in imap_store_refresh_folders() to avoid aNot Zed2002-07-241-1/+4
* Clean up some improper usage of CamelExceptions (looking atPeter Williams2002-07-173-10/+14
* If we're not online and the message isn't in our cache, give up.Peter Williams2002-07-161-1/+7
* >= is not appropriate here because the sequences are 1-based; so seq =Peter Williams2002-07-161-2/+3
* Only assign a uid if indexing is enabled. This stops us always assigning aNot Zed2002-07-151-1/+14
* Handle multipart/encrypted parts too.Jeffrey Stedfast2002-07-121-6/+10
* If we are fetching HEADERs, don't cache the stream - instead just create aJeffrey Stedfast2002-07-121-23/+34
* Make sure we hold the command_lock before accessing current_folder.Jeffrey Stedfast2002-06-202-2/+20
* Unlock the command_lock after each UID STORE command so that otherJeffrey Stedfast2002-06-151-5/+10
* setup/free the mech string.Not Zed2002-06-031-1/+45
* When the part is a multipart/signed, make sure to free the part_specJeffrey Stedfast2002-06-011-13/+14
* Free the path buffer when we're done with it.Jeffrey Stedfast2002-06-012-2/+6
* If we fail to read a literal, free the temporary string buffer.Jeffrey Stedfast2002-06-011-6/+5
* Revert my fix from the other day since camel_imap_command_response()Jeffrey Stedfast2002-06-012-6/+9
* On error, don't leak the GByteArray buffer.Jeffrey Stedfast2002-05-311-0/+1
* Free the response before checking for errors. I'm not sure this'llJeffrey Stedfast2002-05-311-4/+33
* Only free the LOGOUT response if it is non-NULL.Jeffrey Stedfast2002-05-301-1/+2
* On connection failure, unref the tcp stream.Jeffrey Stedfast2002-05-281-0/+3
* Helps if we allocate enough space here. Also, start smoking the sameJeffrey Stedfast2002-05-252-4/+12
* Use the new readline function.Jeffrey Stedfast2002-05-253-18/+34
* Added some NULL protection fixes.Jeffrey Stedfast2002-05-241-8/+21
* Removed from the build. Glory glory hallelujah.Jeffrey Stedfast2002-05-234-152/+445
* Don't call some retarded function to simply set an exception.Jeffrey Stedfast2002-05-223-4/+8
* New function to parse a NAMESPACE response properly.Jeffrey Stedfast2002-05-164-32/+283
* If the part_spec is an empty string for a leaft part, use "1" since weJeffrey Stedfast2002-05-161-3/+1
* removed. (imap_store_refresh_folders): Copy the folders first, thenNot Zed2002-05-151-9/+19
* fixed a simple logic mistakeJeffrey Stedfast2002-05-151-1/+4
* Fixes bug #24136.Jeffrey Stedfast2002-05-152-17/+94
* Previous fix reverted.Jeffrey Stedfast2002-05-151-6/+1
* Previous fix reverted. (get_content): Handle the case where a multipart'sJeffrey Stedfast2002-05-152-6/+10
* Overload the setv/getv CamelObject virtual methods. (imap_setv):Jeffrey Stedfast2002-05-142-1/+125
* Add a "char **appended_uid" argument, for the caller to optionally pass inDan Winship2002-05-141-38/+69
* Fetch the BODYSTRUCTURE rather than BODY since BODY seems to be lackingJeffrey Stedfast2002-05-111-1/+1
* Replace copy_messages_to and move_messages_to with a single function thatDan Winship2002-05-111-39/+43
* Instead of testing for SERVICE_CONNECTED, we need to also handleNot Zed2002-05-091-1/+1
* Check for LOGIN xxxx as well if debug is on, so we dont print passwords toNot Zed2002-05-077-21/+81
* Call camel_mime_message_encode_8bit_parts() which fixes bug #10885.Jeffrey Stedfast2002-05-071-3/+1
* Don't link to libibex.a anymore.Jeffrey Stedfast2002-04-271-1/+0
* When doing a contains match, split the words and perform an and on it.Not Zed2002-04-183-5/+38
* Added #include <sys/types.h> for dirent.h which needs it on MacOS X.Jeffrey Stedfast2002-04-151-1/+2
* If the last message(s) were deleted, and we had any messages output,Not Zed2002-04-111-1/+1
* Set the UID_SET_LIMIT value to 4096. I ran into an issue tonight whereJeffrey Stedfast2002-04-111-1/+3
* If (body-contains) is not passed any arguments, return empty/false. FixesNot Zed2002-04-051-1/+1
* make service_cache be an array of CAMEL_NUM_PROVIDER_TYPES elements so youDan Winship2002-04-041-1/+0
* Put back in the exception setup stuff i disabled for debugging.Not Zed2002-04-021-4/+3
* Temporarily disable indexing.Not Zed2002-04-022-9/+20
* Use -avoid-version instead of -version-info 0:0:0, and specify -module.Dan Winship2002-04-021-1/+1
* The day number has to be 2 chars wide, space filled to work properly withNot Zed2002-02-081-5/+9
* Implementation of NTLM (aka "Secure Password Authentication") auth, takenDan Winship2002-02-081-1/+1
* Added more kludge to an existing Exchange IMAP 5.5 kludge to work aroundJeffrey Stedfast2002-01-301-1/+5
* As a temporary solution, just printf ("\a"); to make a beep :-)Jeffrey Stedfast2002-01-224-41/+65
* New function to decode an IMAP mailbox name from modified UTF-7 encodingJeffrey Stedfast2002-01-192-1/+266
* Sort the needheaders UID array and fixed to respect the UID_SET_LIMIT.Jeffrey Stedfast2002-01-161-28/+41
* Updated to use the new imap_uid_array_to_set() interface.Jeffrey Stedfast2002-01-153-110/+171
* Rewritten to use a cache for body searches when online. Will need someNot Zed2002-01-143-111/+384
* Kludge around a bug in Exchange 5.5 that reports 2 messages with the sameJeffrey Stedfast2002-01-121-2/+24
* If mi is NULL, don't bother updating it. Should fix bug #17694.Jeffrey Stedfast2002-01-111-0/+5
* Kludge around Microsoft Exchange 5.5 (bug #5348) by forgetting ourJeffrey Stedfast2002-01-111-19/+36
* only use major and minor version in the camel providerdir, not micro and nanoDan Winship2001-12-181-5/+2
* Reverted my previous changes here since it doesn't actually work afterall.Jeffrey Stedfast2001-12-172-26/+26
* Try to use the original boundary so luis will stop bugging me about "dataJeffrey Stedfast2001-12-171-1/+7
* Try to use the original boundary so luis will stop bugging me about "dataJeffrey Stedfast2001-12-171-2/+4
* Don't use regex matching. Fixes bug #16227.Jeffrey Stedfast2001-12-013-46/+69
* Abort if body == NULL.Jeffrey Stedfast2001-11-171-1/+1
* see the ChangeLog, I forgetJeffrey Stedfast2001-11-171-4/+4
* If we get a BYE response, call camel_service_disconnect() and set anJeffrey Stedfast2001-11-171-13/+20
* If we get a user cancel and that causes us to fail to authenticate, abort92001-11-101-0/+3
* Now takes a command-length argument so we can 1) avoid duping the commandJeffrey Stedfast2001-11-094-28/+47
* If we can't retrieve the message, ignore it, it can't match.02001-10-302-10/+8
* If we get an empty name, then mark that as NoSelect. Workaround fix for02001-10-301-2/+2
* Set an X-Evolution-Source header on the returned message so replies comeDan Winship2001-10-301-0/+9
* Don't emit a folder_subscribed signal if we are in the process of renamingJeffrey Stedfast2001-10-303-60/+96
* Don't free the hash table key if the folder wasn't found in the hashDan Winship2001-10-301-4/+5
* Turn off w() -> warnings.92001-10-295-4/+114
* Use path not protocol as the path part of the uri of the folder_created82001-10-281-1/+5
* More fixing of the license texts.Ettore Perazzoli2001-10-282-24/+22
* More fixing of the license texts.Ettore Perazzoli2001-10-287-77/+77
* Fixing the license text.Ettore Perazzoli2001-10-2810-10/+0
* Finished implementation.72001-10-271-20/+3
* Don't bother checking ex since we can rely on the response being NULL onJeffrey Stedfast2001-10-271-12/+61
* Update the licensing information to require version 2 of the GPLEttore Perazzoli2001-10-2710-20/+20
* Check to make sure that the dataset is non-NULL before using and/orJeffrey Stedfast2001-10-271-19/+25
* Lets try putting a camel_stream_reset() here. Logic being that the streamJeffrey Stedfast2001-10-271-0/+1
* Don't let fi->name be NULL.Dan Winship2001-10-251-0/+2
* Added CAMEL_CFLAGS so we get the right iconv stuff, patch from Yanko82001-10-191-0/+1
* Flush the stream here, not sure it really matters but it might (hopefully)Jeffrey Stedfast2001-10-191-0/+1
* Fix my Cyrus imapd workaround...instead of checking to see if info->flagsJeffrey Stedfast2001-10-191-5/+5
* Patch from Danw, Use unread count of -1 to mark unflagged messages. Make72001-10-181-4/+6
* If CAMEL_DEBUG is defined, print some useful ref/unref info.Jeffrey Stedfast2001-10-171-1/+1
* Implement.92001-10-103-5/+88
* replace the ever-growing list of gbooleans with a single guint32 forDan Winship2001-10-091-3/+3
* Unlock the store before returning error. (noted by NotZed)Dan Winship2001-10-091-1/+3
* Use a folder_subscribed event rather than a folder_created one.52001-10-061-2/+22
* Remove now unused 'recents' array/freeing func.32001-10-041-5/+0
* Remove any cached messages that belonged to the deleted folder.Jeffrey Stedfast2001-10-021-6/+56
* Init the nntp url hash and url_equal functions.Jeffrey Stedfast2001-09-291-0/+2
* Grab the store's command_lock before grabbing the folder's cache_lock toDan Winship2001-09-281-2/+15
* In the 'lose' case, free messages, not fetch_data twice!42001-09-251-1/+1
* Go back to not using camel_folder_info_build() here because this seems toJeffrey Stedfast2001-09-221-4/+11
* Build the path on the folderinfo.02001-09-211-3/+1
* And finally here.Jeffrey Stedfast2001-09-211-25/+48
* If filter inbox is set on the store, and we're opening inbox '', then82001-09-193-88/+11
* Don't process the ImapResponse data, we don't want to block forever onJeffrey Stedfast2001-09-181-3/+18
* Don't process the ImapResponse data, we don't want to block forever onJeffrey Stedfast2001-09-181-8/+5
* Pass an exception to the cache. (imap_append_online): Same.Jeffrey Stedfast2001-09-143-33/+56
* Forgot to return the newly allocated msg.02001-09-101-0/+2
* Thread function to perform filtering. (filter_free): Free the filter62001-09-073-3/+123
* Whoops. Double-free and FMR = bad.Peter Williams2001-08-291-2/+3
* s/IMAPv4/IMAPJeffrey Stedfast2001-08-281-1/+1
* Get the entire directory structure for the folder we just created, meaningJeffrey Stedfast2001-08-203-17/+98
* Start scanning new messages at maxuid + 1 rather than uidval + 1? MaybeJeffrey Stedfast2001-08-181-35/+35
* If we are online and message flags have changed in the current folder,Jeffrey Stedfast2001-08-174-24/+47
* Don't ever send "STORE FLAGS.SILENT ()" since Cyrus imapd doesn't likeJeffrey Stedfast2001-08-171-9/+22
* Fix this again. Sigh. Problem of namespace = "" may not yet be completelyPeter Williams2001-08-171-1/+1
* Oh crap, huge killer typo.Peter Williams2001-08-151-1/+1
* Canonicalize store->namespace to end in store->dir_sep, once both valuesPeter Williams2001-08-151-1/+11
* We need to be ref'ing the folder if/when we add it to the hash. This mayJeffrey Stedfast2001-08-141-14/+14
* Fix a leak.Peter Williams2001-08-143-5/+24
* We need to be ref'ing the folder if/when we add it to the hash. This mayJeffrey Stedfast2001-08-141-13/+13
* Added an assert - at this point a backtrace would be more useful than aJeffrey Stedfast2001-08-112-6/+19
* Return FALSE here, not NULL.Jeffrey Stedfast2001-08-111-1/+1
* tedfast <fejj@ximian.com>Jeffrey Stedfast2001-08-111-4/+4
* Don't g_strdup() the uid into the trigger_event call.Jeffrey Stedfast2001-08-111-17/+17
* A quoted string cannot contain \n's so check for those as well.Jeffrey Stedfast2001-08-103-166/+163
* Don't strstr for noselect=yes, that's just plain broken.Jeffrey Stedfast2001-08-071-19/+33
* Fix off-by-one error in cleaning up deleted messages at the end of theDan Winship2001-08-071-1/+1
* Do a refresh_info on the selected folder before looking at its unreadDan Winship2001-08-071-7/+6
* Completely hide the namespace from everything external to the IMAP code,Peter Williams2001-08-075-66/+88
* Slightly re-arranged filter/change notification logic. If we;re filtering,Not Zed2001-08-011-17/+25
* Send an IMAP command, but don't wait for responses.Dan Winship2001-07-274-233/+483
* Change the break into a continue, we should process as many as we canNot Zed2001-07-251-1/+1
* Fixed a compiler warning about returning without a value in a non-voidJeffrey Stedfast2001-07-201-1/+1
* In camel:Peter Williams2001-07-201-29/+140
* Revert 7/11/2001 patch for IMAP INBOX filtering at NotZed's request.Peter Williams2001-07-191-67/+12
* Clean up some exception misusage.Peter Williams2001-07-181-5/+12
* Given: 4 EXISTS 1 EXPUNGE We have to pass 3, not 4 toDan Winship2001-07-171-0/+7
* If the message info for an expunged message is NULL, then just break out -Jeffrey Stedfast2001-07-151-0/+6
* We now use a structure as the bucket data rather than just a cache levelJeffrey Stedfast2001-07-131-2/+1
* Run the filter in its own thread to prevent locking issues.Peter Williams2001-07-121-12/+68
* Set the pipe fd's to nonblocking.Jeffrey Stedfast2001-07-071-2/+2
* Added an assert to make sure that `mi' isn't NULL.Jeffrey Stedfast2001-07-061-2/+6
* Doh. Don't remove things from the hash table while foreach'ing it. (AndDan Winship2001-07-032-23/+49
* new method to get an application-initialized filter driver.Dan Winship2001-07-025-5/+37
* If the folder is frozen, don't refresh, just record that we need to do itDan Winship2001-06-292-5/+41
* lock the cache around accessesDan Winship2001-06-272-5/+14
* Fix this: IMAP doesn't allow an extra argument to AUTHENTICATE to avoid aDan Winship2001-06-252-10/+6
* Update the copyrights, replacing Helix Code with Ximian andEttore Perazzoli2001-06-2311-22/+22
* Return the largest real UID in the cache (as an integer). Eventually to beDan Winship2001-06-162-0/+19
* Don't fetch the UID and FLAGS of messages we don't know about yet, sinceDan Winship2001-06-061-30/+34
* Create a CamelDiscoDiary. (imap_disconnect_offline): And free it.Dan Winship2001-05-307-72/+507
* Add a "need_rescan" flag saying if we want to rescan the entire folder forDan Winship2001-05-273-24/+43
* Optimize the match "" case.Jeffrey Stedfast2001-05-241-17/+30
* Store the CamelFolderInfo tree that was returned fromJeffrey Stedfast2001-05-221-4/+4
* Pass appropriate parameters to CF_CLASS and add comment explaining why myPeter Williams2001-05-101-1/+3
* Set the disconnected status. (camel_disco_store_can_work_offline): ReturnDan Winship2001-05-102-1/+36
* remove something jeff didn't mean to commitDan Winship2001-05-101-1/+1
* Wrap the content-id with <>'s.Jeffrey Stedfast2001-05-101-1/+1
* Fix up refcounting on current_folder.Dan Winship2001-05-041-2/+6
* new abstract class for disconnectable remote storesDan Winship2001-05-044-502/+479
* Clean this up a bit. Add a "tag_prefix" member. Move "useful_lsub" intoDan Winship2001-05-033-18/+19
* Fix this up... it was losing count in some cases and giving a more verboseDan Winship2001-05-031-14/+8
* Redo command locking. Since command_lock is recursive, we can just get aDan Winship2001-05-026-197/+211
* remove unused assignment that calls non-existent function.Dan Winship2001-05-011-2/+0
* Support the IMAP UIDPLUS extension (RFC 2359), which lets youDan Winship2001-05-015-73/+437
* New-and-improved version of get_uid_set() from camel-imap-folder.c. LooksDan Winship2001-05-013-38/+77
* Redo this a lot so that instead of having a class full of callbacks, weDan Winship2001-04-281-6/+5
* New file, with the int, string, time_t, and off_t encode/decode routinesDan Winship2001-04-272-16/+16
* Free base_url and storage_path.Dan Winship2001-04-191-0/+4
* Remove the EXTRA_GNOME_CFLAGS include.Jeffrey Stedfast2001-04-172-9/+6
* s/imap_store/store/, fixing a typo that was causing the build to fail.Jon Trowbridge2001-04-141-4/+4
* Plug leaks.Dan Winship2001-04-141-1/+10
* Plug memory leaks.Dan Winship2001-04-131-0/+1
* Simplify peterw's imap_is_atom_char fix.Dan Winship2001-04-121-2/+2
* Check if gethostbyname_r take five paramsJP Rosevear2001-04-121-0/+1
* It would be a good idea to recognize '\0'. Before, this code was runningPeter Williams2001-04-081-1/+1
* (imap_update_summary): When reading message flags, set theDan Winship2001-04-041-2/+9
* (imap_get_message): If the server_level < IMAP4rev1, always fetchDan Winship2001-04-041-3/+6
* If we don't change any flags or expunge, send a NOOP to give the server aDan Winship2001-04-041-1/+11
* Updated the authtype values.Jeffrey Stedfast2001-04-021-0/+1
* removed a g_warning for debuggingJeffrey Stedfast2001-03-301-2/+0
* Don't blindly append "/INBOX", construct a CamelURL and set the path thatJeffrey Stedfast2001-03-301-7/+34
* Big header cleanups and nntp compile fixKjartan Maraas2001-03-309-13/+24
* change "gboolean show_passwd" to "guint32 flags".Dan Winship2001-03-301-14/+8
* add an argument to say whether or not you want "PLAIN" in the list (so youDan Winship2001-03-272-2/+2
* Add an "extra_conf" field to CamelProvider with structures and defines andDan Winship2001-03-274-83/+98
* Rewrite to use imap_store->namespace, not service->url->pathDan Winship2001-03-271-8/+12
* Use camel_vtrash_folder_new() to create the vtrash folder now.Jeffrey Stedfast2001-03-271-50/+67
* keep a reference on the store's current_folder.Dan Winship2001-03-272-2/+11
* Don't look at untagged responses other than "* BYE"...Dan Winship2001-03-234-85/+116
* add a "GList *authtypes", so you can get the list of authtypes used by aDan Winship2001-03-222-37/+37
* Function to check if the store is online and set an exception if not.Dan Winship2001-03-218-190/+402
* translate NIL to "" in fetch body part responseDan Winship2001-03-161-1/+3
* First batch of disconnected IMAP-related stuff. This adds localDan Winship2001-03-1612-268/+739
* Uninclude prnetdb.h since it's not needed here.Jeffrey Stedfast2001-03-161-5/+0
* defined "ssmtp"Jeffrey Stedfast2001-03-151-4/+4
* also change the protocol name in the providersJeffrey Stedfast2001-03-151-1/+1
* Check for "simap" instead of "imaps".Jeffrey Stedfast2001-03-152-2/+2
* So it turns out that NSS_Init *isn't* idempotent, so we have to protectJeffrey Stedfast2001-03-151-5/+36
* Eek! So the service's URL isn't set until after this is initialized. ThisJeffrey Stedfast2001-03-151-13/+12
* Numerous fixes to get it to build correctly with NSS enabled.Jeffrey Stedfast2001-03-153-5/+16
* When trying again after a failed password attempt, check if the connectionDan Winship2001-03-141-0/+8
* i18n'd some strings in here.Jeffrey Stedfast2001-03-061-6/+4
* Don't forget to unref the SASL object.Jeffrey Stedfast2001-03-031-1/+7
* Add an "authtypes" hash table to CamelImapStore recording the supportedDan Winship2001-03-025-286/+134
* Added camel-sasl*.[c,h] to the build.Jeffrey Stedfast2001-03-011-25/+1
* Group messages into sets with the same flags and use the IMAP message setDan Winship2001-02-271-33/+144
* Add some internal progress reporting. (imap_rescan): Do some progressNot Zed2001-02-231-1/+18
* #define this as the set of all IMAP system flagsDan Winship2001-02-222-1/+8
* Fixes for IMAP4-pre-rev1 from Torsten Schulz.Dan Winship2001-02-221-2/+8
* Emit the folder_created signal here.Jeffrey Stedfast2001-02-161-1/+38
* IMAP4 (pre-rev1) doesn't allow BODY.PEEK[], so use RFC822.PEEK instead inDan Winship2001-02-161-3/+8
* (create_folder): Oops, and fix bug involving namespacesDan Winship2001-02-151-4/+3
* New method to create a folder when you don't know its full name.Dan Winship2001-02-151-8/+39
* Rewrite a bunch. Replace the existing folder cache stuff with much simplerDan Winship2001-02-101-22/+25
* Updated.Jeffrey Stedfast2001-02-061-9/+16
* Include the terminating NUL in the calculated string length. This hitNot Zed2001-01-291-1/+1
* Changed the subject search to handle case sensitive when it is mixed case.Not Zed2001-01-251-2/+2
* Add a lock around the delayed loading, so two threads won't try to do itDan Winship2001-01-243-2/+40
* Removed some debug 'warnings', as they should now be displayed at theNot Zed2001-01-231-10/+7
* Change the callbacks in this file to match the callback function types.Christopher James Lahey2001-01-231-1/+1
* Added profiling temp files.Not Zed2001-01-221-0/+4
* (subscribe_folder): add a missing UNLOCKDan Winship2001-01-201-0/+1
* If LISTing a subscribed folder doesn't return a LIST response, just ignoreDan Winship2001-01-201-3/+6
* More tweaking... skip separator characters after the namespace character.Dan Winship2001-01-191-1/+1
* Oops. Somewhere in one of the reorgs, the code to add new messages to theDan Winship2001-01-191-1/+2
* Add some g_warnings() to help debug later if I ever get the segfaults IJeffrey Stedfast2001-01-181-1/+5
* Delayed loading of IMAP message parts.Dan Winship2001-01-177-157/+884
* Ugh, this design is ugly like my butt.Jeffrey Stedfast2001-01-161-1/+1
* Chganged len back to be unsigned. And do a simple range check on theNot Zed2001-01-163-4/+39
* Lock around the imap_rescan, which needs it.Peter Williams2001-01-161-0/+2
* (imap_copy_message_to): Fix this up: sync flags to the serverDan Winship2001-01-121-33/+50
* Fix a bug in previous commit: don't check for deleted messages if thereDan Winship2001-01-121-30/+33
* New function to check for added/deleted messages when re-selecting aDan Winship2001-01-123-4/+83
* New header to prevent recursive #include problemsDan Winship2001-01-111-0/+39
* New header to prevent recursive #include problemsDan Winship2001-01-118-9/+14
* New class function, parallel to camel_folder_sync. (The defaultDan Winship2001-01-111-0/+18
* Mostly IMAP changes. Use the NAMESPACE extension (whereDan Winship2001-01-102-146/+258
* Kill off a long-hated Camel kludge: "empty" URLs andDan Winship2001-01-101-18/+4
* oops. commit-oDan Winship2001-01-051-509/+0