citadel.git
24 years ago* Issue 'cancel' messages for vCard when a user is deleted.
Art Cancro [Fri, 5 Nov 1999 03:57:11 +0000 (03:57 +0000)]
* Issue 'cancel' messages for vCard when a user is deleted.
* Try to delete 'cancel' messages locally after they've been distributed.

24 years ago* Changed 'number of worker threads' from a sysconfig.h #define to an actual
Art Cancro [Thu, 4 Nov 1999 02:06:51 +0000 (02:06 +0000)]
* Changed 'number of worker threads' from a sysconfig.h #define to an actual
  server configuration setting.  Added it to the client .AS command.

24 years ago* Added 'number of worker threads' to site config screen
Art Cancro [Thu, 4 Nov 1999 02:05:02 +0000 (02:05 +0000)]
* Added 'number of worker threads' to site config screen

24 years ago* Fixed buffer overrun problems in cmd_rchg(), cmd_hchg(), and cmd_uchg()
Art Cancro [Wed, 3 Nov 1999 04:01:23 +0000 (04:01 +0000)]
* Fixed buffer overrun problems in cmd_rchg(), cmd_hchg(), and cmd_uchg()
* Removed my email address as the feedback content from the docs; replaced
  it with a reference to the Citadel/UX web site.

24 years ago* Fixed timeout problem for remote client sessions (all timeouts were set to
Art Cancro [Tue, 2 Nov 1999 19:51:24 +0000 (19:51 +0000)]
* Fixed timeout problem for remote client sessions (all timeouts were set to
  1 second ... probably a temporary hack that was missed in the cleanup)

24 years ago* Several fixes to msgbase.c and netproc.c to prevent corrupted incoming
Art Cancro [Tue, 2 Nov 1999 03:03:28 +0000 (03:03 +0000)]
* Several fixes to msgbase.c and netproc.c to prevent corrupted incoming
  network traffic from crashing the server.  Reject bad messages.

24 years ago* Message-ID: rfc822 fix
Art Cancro [Tue, 2 Nov 1999 02:24:54 +0000 (02:24 +0000)]
* Message-ID: rfc822 fix

24 years ago* Fixed a concurrency bug which crashed the server when multiple sessions
Art Cancro [Mon, 1 Nov 1999 04:21:35 +0000 (04:21 +0000)]
* Fixed a concurrency bug which crashed the server when multiple sessions
  terminated simultaneously.

24 years ago* CtdlFetchMessage() - generate a "<no text>" message body if there's none
Art Cancro [Mon, 1 Nov 1999 00:54:02 +0000 (00:54 +0000)]
* CtdlFetchMessage() - generate a "<no text>" message body if there's none
  on disk.  Too much stuff goes haywire if there's no M field.

24 years ago* Fixed buffer overrun in cmd_rchg()
Art Cancro [Sun, 31 Oct 1999 18:17:17 +0000 (18:17 +0000)]
* Fixed buffer overrun in cmd_rchg()
* Call master_cleanup() when time_to_die==1 for proper shutdown

24 years ago* Fixed incorrect assignment of new session ID's
Art Cancro [Sun, 31 Oct 1999 16:27:05 +0000 (16:27 +0000)]
* Fixed incorrect assignment of new session ID's

24 years ago* Fixed a bug which was crashing the server during very long message entry.
Art Cancro [Sun, 31 Oct 1999 04:17:17 +0000 (04:17 +0000)]
* Fixed a bug which was crashing the server during very long message entry.

24 years ago* database.c: Removed arbitrary limit on maximum number of sessions
Art Cancro [Fri, 29 Oct 1999 01:48:45 +0000 (01:48 +0000)]
* database.c: Removed arbitrary limit on maximum number of sessions

24 years ago* Debugged all possible ways for a session to terminate; do them cleanly.
Art Cancro [Fri, 29 Oct 1999 01:03:03 +0000 (01:03 +0000)]
* Debugged all possible ways for a session to terminate; do them cleanly.
* Assign session numbers in a more portable and less arbitrary way.

24 years ago* Fixed a problem where the client protocol would spit out two responses
Art Cancro [Thu, 28 Oct 1999 19:50:55 +0000 (19:50 +0000)]
* Fixed a problem where the client protocol would spit out two responses
  and therefore get out of sync if ASUP command set the access level to
  0 and therefore deleted the user (thanks to Eric McDonald)

24 years ago* Removed all of the thread cancellation cruft that is no longer necessary
Art Cancro [Thu, 28 Oct 1999 05:08:50 +0000 (05:08 +0000)]
* Removed all of the thread cancellation cruft that is no longer necessary
* Moved the now non-system-dependent RemoveContext() out of sysdep.c (now
  it's part of cleanup() in citserver.c)
* Removed all references to pthread_* from all modules except sysdep.c

24 years ago* Fixed the problem of worker threads waking up prematurely.
Art Cancro [Thu, 28 Oct 1999 03:20:18 +0000 (03:20 +0000)]
* Fixed the problem of worker threads waking up prematurely.
* 'QUIT'-terminated sessions now exit properly.  Still need to fix code for
  sessions which are terminated from another session or by the server.

24 years ago* Initial hack of worker-thread rearchitecture. Right now it is successfully
Art Cancro [Wed, 27 Oct 1999 04:26:59 +0000 (04:26 +0000)]
* Initial hack of worker-thread rearchitecture.  Right now it is successfully
  dispatching worker threads to active client sockets (and to the master
  socket too, of course).  Removing sessions is currently broken.  There is
  also a problem with worker threads waking up too quickly when a client
  command is entered (race condition?).   More cleanup to follow.

24 years ago* Removed the auto-reconnect stuff... it was locking the client in an active
Art Cancro [Tue, 26 Oct 1999 20:20:29 +0000 (20:20 +0000)]
* Removed the auto-reconnect stuff... it was locking the client in an active
  loop more often than it was reconnecting.

24 years agoadd .AppleDouble
Nathan Bryant [Tue, 26 Oct 1999 20:17:27 +0000 (20:17 +0000)]
add .AppleDouble

24 years agodamn bugs
Art Cancro [Tue, 26 Oct 1999 13:59:12 +0000 (13:59 +0000)]
damn bugs

24 years ago* Shuffled around the order of events when a thread is terminating. All
Art Cancro [Tue, 26 Oct 1999 03:48:40 +0000 (03:48 +0000)]
* Shuffled around the order of events when a thread is terminating.  All
  mutex operations now happen prior to the freeing of the CitContext structure,
  otherwise begin_critical_section() and end_critical_section() try to
  manipulate the context's mutex count when there isn't any context.

24 years ago* Changed a lot of strncpy() calls to safestrncpy() and replaced most of their
Art Cancro [Tue, 26 Oct 1999 03:21:17 +0000 (03:21 +0000)]
* Changed a lot of strncpy() calls to safestrncpy() and replaced most of their
  hardcoded size arguments with 'sizeof' based arguments.
* Moved the CitContext destruction into the housekeeper thread and out of the
  thread being cancelled.  Didn't fix it, though (to see what happens, link
  the server against ElectricFence and watch what happens when a session ends).

24 years ago* Shuffled around the room editing commands
Art Cancro [Mon, 25 Oct 1999 02:25:09 +0000 (02:25 +0000)]
* Shuffled around the room editing commands

24 years ago * Makefile.in, configure.in: added --enable-icq flag; made checks for
Nathan Bryant [Sun, 24 Oct 1999 19:22:52 +0000 (19:22 +0000)]
* Makefile.in, configure.in: added --enable-icq flag; made checks for
  authentication libraries more intelligent.

24 years ago* Finished moving vCard functionality to the new message base functions.
Art Cancro [Sat, 23 Oct 1999 03:39:12 +0000 (03:39 +0000)]
* Finished moving vCard functionality to the new message base functions.

24 years ago* header change
Art Cancro [Thu, 21 Oct 1999 03:36:05 +0000 (03:36 +0000)]
* header change

24 years ago* Finished up the flags and replication checks in CtdlSaveMsgPointerInRoom().
Art Cancro [Thu, 21 Oct 1999 00:50:15 +0000 (00:50 +0000)]
* Finished up the flags and replication checks in CtdlSaveMsgPointerInRoom().

24 years ago* More code shuffle. Added some flags to CtdlSaveMessagePointerInRoom() and
Art Cancro [Wed, 20 Oct 1999 16:46:28 +0000 (16:46 +0000)]
* More code shuffle.  Added some flags to CtdlSaveMessagePointerInRoom() and
  enabled the MOVE command to also do a "copy" operation (actually just
  creates a second link and bumps the ref count).  Implemented "<C>opy" in
  the client.

24 years ago* Wholist fixes for users who are in chat mode
Art Cancro [Wed, 20 Oct 1999 16:07:50 +0000 (16:07 +0000)]
* Wholist fixes for users who are in chat mode

24 years ago* In the wholist, only show <private room> if the user viewing the list
Art Cancro [Wed, 20 Oct 1999 03:42:31 +0000 (03:42 +0000)]
* In the wholist, only show <private room> if the user viewing the list
  doesn't know that room.  Otherwise show the name.

24 years ago* Code reorganization. Making it easier to move/copy messages without
Art Cancro [Wed, 20 Oct 1999 02:59:24 +0000 (02:59 +0000)]
* Code reorganization.  Making it easier to move/copy messages without
  duplicating existing code.

24 years ago* Started vCard migration to new Extended ID stuff
Art Cancro [Mon, 18 Oct 1999 04:05:34 +0000 (04:05 +0000)]
* Started vCard migration to new Extended ID stuff

24 years ago* Got the new replicator working. Now to move vCard to it...
Art Cancro [Sun, 17 Oct 1999 03:23:25 +0000 (03:23 +0000)]
* Got the new replicator working.  Now to move vCard to it...

24 years ago* Oops
Art Cancro [Sun, 17 Oct 1999 02:27:54 +0000 (02:27 +0000)]
* Oops

24 years ago* Discovered a huge design flaw in the replication algorithm. Ripped it
Art Cancro [Sun, 17 Oct 1999 02:25:19 +0000 (02:25 +0000)]
* Discovered a huge design flaw in the replication algorithm.  Ripped it
  out and replaced it with something a bit more robust.

24 years ago* Replication fixes
Art Cancro [Sat, 16 Oct 1999 22:46:24 +0000 (22:46 +0000)]
* Replication fixes

24 years ago* Changes to message replication code. Don't do server-side hooks during
Art Cancro [Sat, 16 Oct 1999 05:30:17 +0000 (05:30 +0000)]
* Changes to message replication code.  Don't do server-side hooks during
  an ENT3 command.  Also fixed a bug in cmd_whok() that caused crashes
  after a file format change.

24 years ago* Don't do hooks during cmd_ent3()
Art Cancro [Sat, 16 Oct 1999 05:06:47 +0000 (05:06 +0000)]
* Don't do hooks during cmd_ent3()

24 years ago* Run netproc -i after a successful NUOP
Art Cancro [Sat, 16 Oct 1999 03:53:46 +0000 (03:53 +0000)]
* Run netproc -i after a successful NUOP

24 years ago* Cleaned up the bottom-of-page icons
Art Cancro [Thu, 14 Oct 1999 04:07:21 +0000 (04:07 +0000)]
* Cleaned up the bottom-of-page icons

24 years ago* Finished the netproc side of Z (zap/supersede) processing for replication
Art Cancro [Thu, 14 Oct 1999 03:04:24 +0000 (03:04 +0000)]
* Finished the netproc side of Z (zap/supersede) processing for replication

24 years ago* Added search-by-header-fields to CtdlForEachMessage(), and then to the
Art Cancro [Wed, 13 Oct 1999 04:24:20 +0000 (04:24 +0000)]
* Added search-by-header-fields to CtdlForEachMessage(), and then to the
  server MSGS command.  This will have lots of uses.

24 years ago* Starting some work on network zap (supersede) mode for replication
Art Cancro [Wed, 13 Oct 1999 01:36:39 +0000 (01:36 +0000)]
* Starting some work on network zap (supersede) mode for replication

24 years ago* Minor bug fix in registration screen
Art Cancro [Fri, 8 Oct 1999 23:58:11 +0000 (23:58 +0000)]
* Minor bug fix in registration screen

24 years ago* More vCard-related debugging
Art Cancro [Fri, 8 Oct 1999 02:55:57 +0000 (02:55 +0000)]
* More vCard-related debugging

24 years ago* Semi-broken vCard replacement implementation in place.
Art Cancro [Thu, 7 Oct 1999 02:58:50 +0000 (02:58 +0000)]
* Semi-broken vCard replacement implementation in place.
* Added "Z" (Zap, supersede) field to message format

24 years ago* vCard upload now copies the user's card to the global address book (but it
Art Cancro [Wed, 6 Oct 1999 23:17:51 +0000 (23:17 +0000)]
* vCard upload now copies the user's card to the global address book (but it
  hangs the server if the target room doesn't exist)

24 years ago* Figured out a way to get the user's vCard to automatically delete in the
Art Cancro [Wed, 6 Oct 1999 03:51:01 +0000 (03:51 +0000)]
* Figured out a way to get the user's vCard to automatically delete in the
  global address book when it's replaced.  Now to find a way to add the new
  one...

24 years ago* Per Nick's request, removed the key bindings stuff. He knows how to fit
Art Cancro [Wed, 6 Oct 1999 02:44:02 +0000 (02:44 +0000)]
* Per Nick's request, removed the key bindings stuff.  He knows how to fit
  it back in when it's fixed.  Also added more attempts at cache disabling,
  but it still doesn't work in the StarOffice browser.  I don't know why.

24 years ago* We now have a housekeeping thread and a housekeeping queue.
Art Cancro [Mon, 4 Oct 1999 03:19:52 +0000 (03:19 +0000)]
* We now have a housekeeping thread and a housekeeping queue.

24 years ago* Minor vCard fixes
Art Cancro [Mon, 4 Oct 1999 02:04:02 +0000 (02:04 +0000)]
* Minor vCard fixes

24 years ago* Misc fixes and comment/docs updates
Art Cancro [Sun, 3 Oct 1999 23:31:50 +0000 (23:31 +0000)]
* Misc fixes and comment/docs updates

24 years ago* Added serv_upgrade.h to automagically convert pre-5.55 format user records
Art Cancro [Sun, 3 Oct 1999 21:48:21 +0000 (21:48 +0000)]
* Added serv_upgrade.h to automagically convert pre-5.55 format user records
  to 5.55 format user records and generate vCards.

24 years ago* Merged in Nick's bit of JavaScript to handle key commands.
Art Cancro [Sat, 2 Oct 1999 03:26:14 +0000 (03:26 +0000)]
* Merged in Nick's bit of JavaScript to handle key commands.
  BROKEN BUILD ALERT!!  This runs all the time, even when the cursor is
  in a text field.  Right now you can't even log in.

24 years ago* CtdlWriteObject() can now store objects in personal rooms for any specified
Art Cancro [Wed, 29 Sep 1999 21:13:18 +0000 (21:13 +0000)]
* CtdlWriteObject() can now store objects in personal rooms for any specified
  user -- rather than only the current user or non-personal rooms.

24 years ago* serv_vcard.c: fixed crashola bug in cmd_greg()
Art Cancro [Wed, 29 Sep 1999 17:26:56 +0000 (17:26 +0000)]
* serv_vcard.c: fixed crashola bug in cmd_greg()
* tools.c: simplified and improved the string tokenizer.  Now it runs in a
           single pass with no intermediate buffer.

24 years ago* Fully migrated cmd_greg() and cmd_regi() into serv_vcard (still has bugs)
Art Cancro [Tue, 28 Sep 1999 03:27:38 +0000 (03:27 +0000)]
* Fully migrated cmd_greg() and cmd_regi() into serv_vcard (still has bugs)

24 years ago* cmd_regi() is now in serv_vcard and writes to the vcard instead of to the
Art Cancro [Mon, 27 Sep 1999 03:33:41 +0000 (03:33 +0000)]
* cmd_regi() is now in serv_vcard and writes to the vcard instead of to the
  usersupp file.  Still needs tweaking.

24 years ago* "read my vCard" and "write my vCard" are written and tested.
Art Cancro [Fri, 24 Sep 1999 03:32:19 +0000 (03:32 +0000)]
* "read my vCard" and "write my vCard" are written and tested.

24 years ago* Worked a little more on the vCard stuff. The serv_vcard module is now in
Art Cancro [Fri, 24 Sep 1999 02:54:18 +0000 (02:54 +0000)]
* Worked a little more on the vCard stuff.  The serv_vcard module is now in
  place, and a "read my vcard" function is there; "write my" is next...

24 years ago* serv_vcard.c: added. Nothing in it yet.
Art Cancro [Thu, 23 Sep 1999 23:58:35 +0000 (23:58 +0000)]
* serv_vcard.c: added.  Nothing in it yet.

24 years ago* The vCard 'class' is now linked into the server, though it's not really
Art Cancro [Thu, 23 Sep 1999 03:07:56 +0000 (03:07 +0000)]
* The vCard 'class' is now linked into the server, though it's not really
  functional yet.  Its constructors/destructors are debugged, though.

24 years ago* Began work on vCard. This could be kinda cool.
Art Cancro [Tue, 21 Sep 1999 02:25:39 +0000 (02:25 +0000)]
* Began work on vCard.  This could be kinda cool.

24 years ago* Finished off the message architecture stuff with a new class of hooks to
Art Cancro [Sun, 19 Sep 1999 21:28:33 +0000 (21:28 +0000)]
* Finished off the message architecture stuff with a new class of hooks to
  enable future server-side handlers.

24 years ago* Debugging in cmd_ent3()
Art Cancro [Sun, 19 Sep 1999 16:24:16 +0000 (16:24 +0000)]
* Debugging in cmd_ent3()

24 years ago* migrated cmd_ent3() to CtdlSaveMessage()
Art Cancro [Sun, 19 Sep 1999 15:57:08 +0000 (15:57 +0000)]
* migrated cmd_ent3() to CtdlSaveMessage()

24 years ago* Debugged the new version of CtdlWriteObject()
Art Cancro [Sun, 19 Sep 1999 05:13:57 +0000 (05:13 +0000)]
* Debugged the new version of CtdlWriteObject()

24 years ago* Did most of the migration from save_message() to CtdlSaveMsg(). The
Art Cancro [Thu, 16 Sep 1999 03:23:27 +0000 (03:23 +0000)]
* Did most of the migration from save_message() to CtdlSaveMsg().  The
  latter builds a "struct CtdlMessage" (so we can run server-side handlers
  against it later on), then serializes it and stores to disk.
* BROKEN BUILD ALERT!!  cmd_ent3() and CtdlWriteObject() are still not
  migrated.  They are stubbed out and will MALFUNCTION if used right now!!

24 years ago* cmd_msg3() now uses serialize_message() for its output. All message
Art Cancro [Tue, 7 Sep 1999 01:42:45 +0000 (01:42 +0000)]
* cmd_msg3() now uses serialize_message() for its output.  All message
  commands will eventually exist as a "struct CtdlMessage" at some point
  so that we can install server-side handler hooks.

24 years ago* netproc.c: put outgoing messages into the use table, too -- this prevents
Art Cancro [Tue, 7 Sep 1999 00:04:13 +0000 (00:04 +0000)]
* netproc.c: put outgoing messages into the use table, too -- this prevents
  locally originated messages from showing up again if a remote system is
  misconfigured and spools them back to us.

24 years ago* citadel.c: run strproc() on new passwords
Art Cancro [Mon, 6 Sep 1999 03:39:15 +0000 (03:39 +0000)]
* citadel.c: run strproc() on new passwords

24 years agoFor URL view, don't prompt user to select url if there is only one. Display
Ben Mehlman [Fri, 3 Sep 1999 17:50:26 +0000 (17:50 +0000)]
For URL view, don't prompt user to select url if there is only one.  Display
<U>RL View prompt if message contains url(s). -Ben

24 years ago* msgbase.c: new function serialize_message() for future use
Art Cancro [Thu, 2 Sep 1999 02:09:59 +0000 (02:09 +0000)]
* msgbase.c: new function serialize_message() for future use

24 years ago* database.c: isplay the GDBM version string on startup
Art Cancro [Wed, 1 Sep 1999 21:09:25 +0000 (21:09 +0000)]
* database.c: isplay the GDBM version string on startup

24 years ago* Added malloc checking
Art Cancro [Wed, 1 Sep 1999 20:24:36 +0000 (20:24 +0000)]
* Added malloc checking

24 years ago* Actually _enforce_ the max msg len limit
Art Cancro [Wed, 1 Sep 1999 02:36:35 +0000 (02:36 +0000)]
* Actually _enforce_ the max msg len limit

24 years ago* Fixed quote thing
Art Cancro [Wed, 1 Sep 1999 02:09:35 +0000 (02:09 +0000)]
* Fixed quote thing

24 years ago* Added the ability to handle embedded URL's from the text client
Art Cancro [Wed, 1 Sep 1999 01:51:49 +0000 (01:51 +0000)]
* Added the ability to handle embedded URL's from the text client

24 years ago* Added "max message length" field in global config screen
Art Cancro [Wed, 1 Sep 1999 01:06:11 +0000 (01:06 +0000)]
* Added "max message length" field in global config screen

24 years ago* Implemented "maximum message length" in global system config
Art Cancro [Wed, 1 Sep 1999 01:02:50 +0000 (01:02 +0000)]
* Implemented "maximum message length" in global system config

24 years ago* Handle multipart/alternative properly during legacy message outputs.
Art Cancro [Tue, 31 Aug 1999 00:57:18 +0000 (00:57 +0000)]
* Handle multipart/alternative properly during legacy message outputs.
  Basically it just prints the first alternative and skips the rest.

24 years ago* Output multipart header before the parts
Art Cancro [Sun, 29 Aug 1999 21:51:57 +0000 (21:51 +0000)]
* Output multipart header before the parts

24 years ago* Made some changes to the output of MIME (especially multipart) messages.
Art Cancro [Sun, 29 Aug 1999 21:12:24 +0000 (21:12 +0000)]
* Made some changes to the output of MIME (especially multipart) messages.

24 years ago* HTML now works.
Art Cancro [Sun, 29 Aug 1999 20:07:53 +0000 (20:07 +0000)]
* HTML now works.

24 years ago* HTML updates
Art Cancro [Sun, 29 Aug 1999 19:56:43 +0000 (19:56 +0000)]
* HTML updates

24 years agoAdded menus, real room info
Chilly [Sat, 28 Aug 1999 12:57:08 +0000 (12:57 +0000)]
Added menus, real room info

24 years agoCleaned up the interface, the whoOnline window updates automatically, and
Chilly [Fri, 27 Aug 1999 16:08:41 +0000 (16:08 +0000)]
Cleaned up the interface, the whoOnline window updates automatically, and
messed around with the NOOP to cut down needless chatter...

24 years ago* HTML updates
Art Cancro [Thu, 26 Aug 1999 03:01:30 +0000 (03:01 +0000)]
* HTML updates

24 years agoadded sample source for buttons
Art Cancro [Tue, 24 Aug 1999 21:11:50 +0000 (21:11 +0000)]
added sample source for buttons

24 years ago* Got the html.c mostly working.
Art Cancro [Tue, 24 Aug 1999 03:48:22 +0000 (03:48 +0000)]
* Got the html.c mostly working.

24 years ago* html.c: added. This is an overly simplistic HTML-to-text converter.
Art Cancro [Tue, 24 Aug 1999 02:01:03 +0000 (02:01 +0000)]
* html.c: added.  This is an overly simplistic HTML-to-text converter.

24 years agoMinor cosmetic cleanup. No code changes.
Art Cancro [Sat, 21 Aug 1999 18:37:30 +0000 (18:37 +0000)]
Minor cosmetic cleanup.  No code changes.

24 years ago* mailinglist.c, netmailer.c: fixed to allow list submissions from all posters
Art Cancro [Sat, 21 Aug 1999 05:15:34 +0000 (05:15 +0000)]
* mailinglist.c, netmailer.c: fixed to allow list submissions from all posters
  on a Citadel network rather than only on the local system.

24 years agoInitial revision
Reginald Oot [Wed, 18 Aug 1999 01:08:44 +0000 (01:08 +0000)]
Initial revision

24 years agoroom info window
Chilly [Mon, 16 Aug 1999 16:17:35 +0000 (16:17 +0000)]
room info window

24 years agoAdded goto commands, zap room, room info window, and general bug fixed.
Chilly [Mon, 16 Aug 1999 16:16:32 +0000 (16:16 +0000)]
Added goto commands, zap room, room info window, and general bug fixed.

24 years agoShortened
Art Cancro [Sun, 15 Aug 1999 03:33:09 +0000 (03:33 +0000)]
Shortened

24 years agoRemoved obsolete files.
Art Cancro [Sun, 15 Aug 1999 03:30:15 +0000 (03:30 +0000)]
Removed obsolete files.

24 years ago* Fixed escputs() and its friends to properly handle ' (single quote) chars
Art Cancro [Sat, 14 Aug 1999 18:16:10 +0000 (18:16 +0000)]
* Fixed escputs() and its friends to properly handle ' (single quote) chars