Commit Graph

1359 Commits

Author SHA1 Message Date
Guido van Rossum 1d8fb2d894 Added doc strings. 1998-06-28 16:54:49 +00:00
Guido van Rossum 0ef577b966 Added doc strings. 1998-06-27 20:38:36 +00:00
Guido van Rossum d2264bb5c3 # Remove an extra blank line from a doc string. 1998-06-27 19:45:17 +00:00
Guido van Rossum 75e9fc31d3 Added doc strings. Also export LockType from the modoule, and give it
a doc string.
1998-06-27 18:21:06 +00:00
Guido van Rossum 5cd70f4f66 Added <ctype.h>, needed for Windows. 1998-06-19 04:33:30 +00:00
Guido van Rossum f766e23f63 There was an error check in a loop in PythonCmd which called
PythonCmd_Error() but failed to return.  The error wasn't very likely
(only when we run out of memory) but since the check is there we might
as well return the error.  (I think that Barry introduced this buglet
when he added error checks everywhere.)
1998-06-19 04:28:10 +00:00
Guido van Rossum 5e97783c8f # Note: a previous checkin message was lost because I can now use CVS
# from my PC at home, but it can't send email :-(

Add a clarifying comment about the new ENTER_OVERLAP and
LEAVE_OVERLAP_TCL macros; get rid of all the bogus tests for deleted
interpreters (Tcl already tests for this; they were left over from an
earlier misguided attempt to fix the threading).
1998-06-15 14:03:52 +00:00
Guido van Rossum 62320c9b9b # (My first checkin from Windows NT using remote CVS!)
There were some serious problem with the thread-safety code.
The basic problem was that often the result was gotten out of
the Tcl interpreter object after releasing the Tcl lock.
Of course, another thread might have changed the return value
already, and this was indeed happening.  (Amazing what trying
it on a different thread implementation does!)

The solution is to grab the Python lock without releasing the
Tcl lock, so it's safe to create a string object or set the
exceptions from the Tcl interpreter.  Once that's done, the
Tcl lock is released.

Note that it's now legal to acquire the Python lock while the
the Tcl lock is held; but the reverse is not true: the Python
lock must be released before the Tcl lock is acquired.  This
in order to avoid deadlines.  Fortunately, there don't seem to
be any problems with this.
1998-06-15 04:36:09 +00:00
Guido van Rossum ad4db17552 Fixed the EventHook() code so that it also works on Windows, sort of.
(The "sort of" is because it uses kbhit() to detect that the user
starts typing, and then no events are processed until they hit
return.)

Also fixed a nasty locking bug: EventHook() is called without the Tcl
lock set, so it can't use the ENTER_PYTHON and LEAVE_PYTHON macros,
which manipulate both the Python and the Tcl lock.  I now only acquire
and release the Python lock.

(Haven't tested this on Unix yet...)
1998-06-13 13:56:28 +00:00
Guido van Rossum b3f9f4b729 On Windows, make the pipe() call return Unix file descriptors instead
of Windows file handles.  Now it is at least compatible with itself on
Unix!
1998-06-12 15:05:15 +00:00
Guido van Rossum e7c4193755 In tcsetattr(), first initialize the mode structure by calling
tcgetattr().  This seems to be the only correct way to cope with
platform-specific structure members...
1998-06-12 14:26:18 +00:00
Guido van Rossum 87ce7bbc39 Added strptime, if it exists. Modified after a patch by Jesse Hallio. 1998-06-09 16:30:31 +00:00
Guido van Rossum 3c8c5981b1 Sorry, the initializer for ob_type must really be NULL,
else the damn thing won't compile on Windows :-(
1998-05-29 02:58:20 +00:00
Guido van Rossum 2a5119b680 On Windows, need #include <windows.h>; and it's MS_WINDOWS, not MS_WIN32. 1998-05-29 01:28:40 +00:00
Guido van Rossum 00d93066b0 Changes to make it possible to write multi-threaded programs using
Tkinter.  This adds a separate lock -- read the comments.  (This was
also needed for Mark Hammond's attempts to make PythonWin
Tkinter-friendly.)

The changes have affected the EventHook slightly, too; and I've done
some more cleanup of the code that deals with the different versions
of Tcl_CreateFileHandler().
1998-05-28 23:06:38 +00:00
Guido van Rossum 578de30fd7 Some systems (e.g. Linux) use enums for some symbols (like IPPROTO_IP)
so that our #ifdef test has the wrong effect.  Substitute hardcoded
values for some important symbols (but not for the whole range -- some
are pretty obscure so it's not worth it).
1998-05-28 20:18:18 +00:00
Fred Drake d3dbb38e98 get_long(): Use PyErr_ExceptionMatches(...) instead of PyErr_Occurred(...). 1998-05-28 04:35:49 +00:00
Fred Drake bebc97fcd7 t_bootstrap(): Use PyErr_ExceptionMatches(...) instead of PyErr_Occurred(...). 1998-05-28 04:35:12 +00:00
Fred Drake 764b984db5 Use PyErr_ExceptionMatches(...) instead of PyErr_Occurred() == ... in two
places.
1998-05-28 04:33:37 +00:00
Guido van Rossum 7bf15648a4 Use a different implementation of EventHook(). The new version
registers an input file handler for stdin with Tcl and handles Tcl
events until something is available on stdin; it then deletes the
handler and returns from EventHook().

This works with or without GNU readline, and doesn't busy-wait.

It still doesn't work for Mac or Windows :-(
1998-05-22 18:28:17 +00:00
Guido van Rossum 832f6d2890 Add an alias (and preferred name) "contains" for "sequenceIncludes".
Rationalized the doc strings.

Also simplify the module initialization -- we don't need a __version__
which is set to "$Rev" :-) and we don't need a fatal error when the
initialization fails.
1998-05-22 18:12:59 +00:00
Guido van Rossum b88679b2a4 I think there was a tiny bug in new_function() -- the 'defaults'
argument was initialized to Py_None, but later checked for NULL.
Consistently use Py_None.
1998-05-22 00:57:31 +00:00
Guido van Rossum b1ed9c5295 PySequence_In() -> PySequence_Contains(). 1998-05-22 00:54:16 +00:00
Guido van Rossum 7df115de65 Make sure that no use of a function pointer gotten from a
tp_as_sequence or tp_as_mapping structure is made without checking it
for NULL first.
1998-05-22 00:53:47 +00:00
Guido van Rossum a88c5f30c7 Correct bug doc string (discovered by Berthold Hoellmann):
get_line_buffer() does not take an optional argument.
1998-05-20 15:50:56 +00:00
Guido van Rossum fa1fb7df31 When a .o file is an absolute pathname, assume it's a file for which
we have no .c source.
1998-05-14 02:37:45 +00:00
Guido van Rossum 4ccda15cd3 strop_replace(): balk if the pattern string is empty. 1998-05-14 02:36:29 +00:00
Guido van Rossum ed33a3f415 whichmodule(): remove redundant PyErr_Clear(); add explicit setting
of error when sys.modules isn't there.
1998-05-14 02:34:46 +00:00
Guido van Rossum 02759c03f1 Don't delete glmodule.c on 'make clobber' (it's a checked in file!). 1998-05-14 02:33:57 +00:00
Guido van Rossum b41addf6a6 Replace all calls to fprintf(stderr, ...) with calls to PySys_WriteStderr(...). 1998-05-12 15:02:41 +00:00
Guido van Rossum 597ac20708 Trivial little change: timer tokens shouldn't have a Print() function,
they should have a Repr() function.
1998-05-12 14:36:19 +00:00
Fred Drake ed3da23e44 parser_compare_nodes(): Corrected a minor type error; eliminate one GCC
warning (at least under Linux).
1998-05-11 03:31:16 +00:00
Guido van Rossum ae94cf292b Fix by Sean Reifschneider:
- When facility not specified to syslog() method, use default from openlog()
    (This is how it was claimed to work in the documentation)
  - Potential resource leak of o_ident, now cleaned up in closelog()
  - Minor comment accuracy fix.
1998-05-08 21:52:55 +00:00
Guido van Rossum 821a5e42bf Added URLs for zlib's home page and the Windows DLL's home page . 1998-05-08 14:56:29 +00:00
Guido van Rossum dda6696be6 AMK's revised version of the previous patch. 1998-05-07 15:32:44 +00:00
Guido van Rossum a5e54d02a0 Use (void) to throw away a function result, not (void *) ! 1998-05-01 18:58:59 +00:00
Guido van Rossum 302be44e96 When following symlinks to the real executable, use a loop so a
symlink to a symlink can work.
(Jack)
1998-04-29 21:07:06 +00:00
Guido van Rossum 212643f199 Still somewhat experimental speedup. This appears to speed up the
most common interface to Tcl, the call() method, by maybe 20-25%.

The speedup code avoids the construction of a Tcl command string from
the argument list -- the Tcl argument list is immediately parsed back
by Tcl_Eval() into a list that is *guaranteed* (by Tcl_Merge()) to be
exactly the same list, so instead we look up the command info and call
the command function directly.  If the lookup fails, we fall back to
the old method (Tcl_Merge() + Tcl_Eval()) so we don't need to worry
about special cases like undefined commands or the occasional command
("after") that sets the info.proc pointer to NULL -- let TclEval()
deal with these.
1998-04-29 16:22:14 +00:00
Guido van Rossum 9d1b7ae65b Add a new method of interpreter objects, interpaddr(). This returns
the address of the Tcl interpreter object, as an integer.  Not very
useful for the Python programmer, but this can be called by another C
extension that needs to make calls into the Tcl/Tk C API and needs to
get the address of the Tcl interpreter object.  A simple cast of the
return value to (Tcl_Interp *) will do the trick now.
1998-04-29 16:17:01 +00:00
Fred Drake 268397f513 Made lint a bit happier.
Fixed a memory leak in an error handler.
1998-04-29 14:16:32 +00:00
Guido van Rossum 2ea1c94b9a On the Mac a call to TkMacInitMenus is needed. Also, we pass
appropriate events to Sioux so the console window remains functional.
(Jack)
1998-04-28 16:12:43 +00:00
Guido van Rossum 19efc5fb80 Add a declaration for strdup() for the Mac.
(Jack)
1998-04-28 16:10:19 +00:00
Guido van Rossum 5c069fd4b1 Generate the clear() method manually (calling __GLclear(), another
name for clear()). This fixes the name clash with curses.
(Jack)
1998-04-28 16:09:16 +00:00
Guido van Rossum 239a218bac Type casts, and added a strdup() declaration for the Mac.
(Jack)
1998-04-28 16:08:19 +00:00
Guido van Rossum 1f41f846a3 Instead of calling mktime(), which has all sorts of unwanted side
effects, simply zero out the struct tm buffer before using it; this
should take care of the BSD folks' concern just as well.
1998-04-27 19:04:26 +00:00
Guido van Rossum 690119621e Purported fixes for 64-bit platforms with help from John Jorgensen 1998-04-23 20:23:00 +00:00
Guido van Rossum 115f517f77 Tiny patch for zlib 1.1.2 1998-04-23 20:22:11 +00:00
Fred Drake 301b5bea3f In method & function tables, added a cast for the function pointers to keep
compilers happy.

initparser():  Remove unused variable.

gcc -Wall is now happy.
1998-04-21 22:31:45 +00:00
Guido van Rossum 2621637835 Add #ifdefs so Tcl_Finalize isn't referenced when it's not defined. 1998-04-20 18:47:52 +00:00
Guido van Rossum 7c33095b6b Typo in usage message. 1998-04-13 20:28:18 +00:00
Fred Drake 503d8d66cc The documentation threatened it would happen -- the functions that should
have been methods now are!  Still available as functions for compatibility.
1998-04-13 18:45:18 +00:00
Guido van Rossum cef113c524 Don't allow unescaped newlines in doc strings. 1998-04-13 18:11:55 +00:00
Fred Drake 43f8f9b894 Added support for pickling ast objects. 1998-04-13 16:25:46 +00:00
Fred Drake 10032ebb48 Module docstring indicated seek() isn't implemented, but it is. 1998-04-11 19:54:54 +00:00
Guido van Rossum 730806d3d9 Make new gcc -Wall happy 1998-04-10 22:27:42 +00:00
Guido van Rossum 39b0f8976c Address warnings issued by the MSVC++ compiler 1998-04-10 21:52:06 +00:00
Guido van Rossum 5d30e740f5 Delete reference to reopmodule.c. Add comment about soundex' obsolescence. 1998-04-10 20:44:11 +00:00
Guido van Rossum b53dc43769 Delete this obsolete module. 1998-04-10 20:38:41 +00:00
Guido van Rossum bba92ca555 Add -t option to set the Py_TabcheckFlag flag. 1998-04-10 19:39:15 +00:00
Fred Drake c542bc79c8 Support raise with no parameters. 1998-04-10 04:43:28 +00:00
Guido van Rossum c6a681a57d remove C++ entries of the form Class::method 1998-04-09 21:46:02 +00:00
Guido van Rossum 4f199eaa6e Threading speedup patches by Christopher Lindblad <cjl@infoseek.com>. 1998-04-09 20:56:35 +00:00
Guido van Rossum 99c185e787 Add not_ and __not__. 1998-04-09 17:54:26 +00:00
Guido van Rossum 042ff9eb3a AMK's latest 1998-04-03 21:13:31 +00:00
Guido van Rossum 104be4a4a7 Use %.17f to format floats/doubles 1998-04-03 21:13:02 +00:00
Fred Drake fcc6c68e11 Export MPZType -- the type of mpz objects.... 1998-04-03 15:33:43 +00:00
Guido van Rossum 031c6315e2 Check for boundary errors in [r]find -- find("x", "", 2) should return -1. 1998-03-24 04:19:22 +00:00
Guido van Rossum 816671c666 patch for re.sub bug, by AMK. 1998-03-10 04:55:29 +00:00
Guido van Rossum 60cd813810 Check for HAVE_MKTIME (if you don't have it, some tests will fail, but
at least the build will now succeed).  For Sony NEWS-OS, BSD 4.3 based.
1998-03-06 17:16:21 +00:00
Guido van Rossum 22ffac1b1f Don't use setvbuf unless HAVE_SETVBUF is defined. 1998-03-06 15:30:39 +00:00
Guido van Rossum 8a6dba3562 Clear class_map in constructor so that when it later detects an error
and the destructor is called early, it doesn't DECREF garbage.
1998-03-06 01:39:39 +00:00
Guido van Rossum 7853570651 Raise ValueError: "unconvertible time" when ctime() returns NULL,
instead of dumping core.
1998-03-03 22:19:10 +00:00
Guido van Rossum 1aca4d803d Doc strings added by Mitch Chapman. 1998-03-03 22:10:18 +00:00
Guido van Rossum 3e79c4492e Doc strings added by Mitch Chapman. 1998-03-03 22:03:26 +00:00
Guido van Rossum bfc49e8c75 Doc strings added by Mitch Chapman.
Also got rid of some inconsistent change log comments near the top.
1998-03-03 22:02:24 +00:00
Ken Manheimer 74a43470b1 Looks like mention of http://quest.jpl.nasa.gov/zlib/ got added but
not checked in, so i'm doing it.
1998-03-03 16:42:53 +00:00
Guido van Rossum d0f432b840 A bug in PCRE could cause core dumps in patterns such as
'((a)*)*'. Andrew Kuchling posted a fix to the string-sig.
1998-02-20 21:45:14 +00:00
Guido van Rossum 1c0d31565d Delete the 'exit' command from the Tcl interpreter -- it would allow
users to exit Python without the normal precautions.  (The can do this
using os._exit() anyway, but at least that's documented.)
1998-02-19 21:28:49 +00:00
Guido van Rossum 1ad1b3f911 Forgot to return NULL in joinfields() when a type error was detected
in one of the sequence items.
1998-02-06 22:37:12 +00:00
Guido van Rossum 64608cfb86 Updated URL for zlib. 1998-02-06 22:36:10 +00:00
Guido van Rossum 07e9fbf6b9 Register Tcl_Finalize as a Python exit handler. 1998-02-06 22:35:46 +00:00
Guido van Rossum 40769dd073 Don't store the exception info from an unhandled exception in a thread
in sys.last_*; it prevents proper calling of destructors of local
variables.
1998-02-06 22:32:08 +00:00
Guido van Rossum 131c92c069 - Use Py_GetPythonHome() instead of getenv("PYTHONHOME").
- Don't print error messages when Py_FrozenFlag is set.
1998-02-06 22:29:30 +00:00
Guido van Rossum 57d9f2e6ec Renamed Jim's PyErr_[JF]Format() to cPickle_ErrFormat(). It's not a
standard Python API function so it should not have a Py prefix.
1998-01-19 23:18:18 +00:00
Guido van Rossum d29806c37e Instead of a single exists(), differentiate between files, modules,
executable files, and directories.  When expecting a module, we also
look for the .pyc or .pyo file.
1998-01-19 22:06:22 +00:00
Guido van Rossum 73bacfc3d7 Add unistd.h for isatty(). 1998-01-19 22:05:22 +00:00
Guido van Rossum 3dacdc306e Add LOG_SYSLOG if defined. 1998-01-19 22:05:08 +00:00
Guido van Rossum 3dd264cc0f Deleted targets used only by Jim Fulton's now deleted "gMakefile".
Also change the build rules to use $(LIBRARY) instead of
  -L.. -lpython$(VERSION)
since the latter trips up the SunOS 4.1.x linker (sigh).
1998-01-13 18:57:24 +00:00
Guido van Rossum 74608f8b8a Oops, big glitch. Charles had put a 1 in the column for argument list
type for all functions.  However many function call PyArg_Parse() and
need a 0.  This is so that when they didn't change anything, the can
do Py_INCREF(args); return args.  Reverted this back.  For atof(),
there's no reason not to use PyArg_ParseTuple(), so I changed the code
(atoi and atol already used that).
1997-12-30 05:44:10 +00:00
Guido van Rossum 786205e385 Oops, the last checkin left a blank line in a string literal. 1997-12-30 05:10:14 +00:00
Guido van Rossum 1d0d7e4e48 At Jeff Rush' request, add Py_BEGIN/END_ALLOW_THREADS around call to
DosSleep().
1997-12-29 20:03:10 +00:00
Guido van Rossum bfaf3d6186 Moved some #ifdefs around that got put in the wrong place by the
latest OS/2 patch set.
1997-12-29 20:02:27 +00:00
Guido van Rossum 23e21e7cf3 Minor editing corrections. 1997-12-29 19:57:36 +00:00
Guido van Rossum 983c930c8d Added doc string, provided by Charles Waldman (with some reformatting
and a little editing my me).
1997-12-29 19:52:29 +00:00
Guido van Rossum 557dea1ca2 AMK's latest -- synchronized with PCRE 1.04. 1997-12-22 22:46:52 +00:00
Guido van Rossum 9897f0f847 Oops, left in a non-standard multi-line doc string that GCC finds okay
but other compilers don't like.
1997-12-21 06:46:20 +00:00
Guido van Rossum 414fd4843a Added doc strings, suggested by Charles G. Waldman (but massaged quite a bit). 1997-12-19 04:24:24 +00:00
Guido van Rossum 3c4bb802d0 Patch by Brian Gallew for DG/UX. I'm not quite sure what it does but
it seems harmless for other platforms.  It plays tricks with the name
of the library used to link with.  Apparently DG/UX really wants a
shared library to link with if it wants shared modules to use symbols
from the library.  I'm not sure why this wasn't an issue with 1.4;
DG/UX seems to be the only platform where moving to a single library
made things harder!

BTW This adds a target to create libpython$(VERSION).so; however this
target is *only* for DG/UX.
1997-12-18 23:55:32 +00:00
Guido van Rossum 9ec0f8b405 Win32 treatment. 1997-12-18 05:21:29 +00:00
Guido van Rossum 58132c6799 AMK's latest; plus three null bytes that I added for purify 1997-12-17 00:24:13 +00:00
Guido van Rossum e7951976ad Fix mysterious undetected error -- call to non-existant Py_Err_SetStr()
which shoulda coulda woulda oughta been PyErr_SetString().
1997-12-16 23:58:15 +00:00
Guido van Rossum bef74b5605 Add -lld option for AIX to _tkinter rules. 1997-12-16 18:12:30 +00:00
Guido van Rossum aa6fa6bbeb Patch by Oliver Andrich for Lunix using glibc. 1997-12-15 18:07:10 +00:00
Guido van Rossum 97250cb288 Untested change to include gmp-mparam.h instead of gmp-impl.h.
Chris Lawrence <quango@ix.netcom.com>
1997-12-15 17:55:53 +00:00
Guido van Rossum 1eadb41036 Patch (by Andrew Kuchling of course) to prevent named back references
in the pattern to wear out the reference count on small integers.
1997-12-15 17:33:24 +00:00
Guido van Rossum 9afad049e0 Move the dbm module around and add an introductory paragraph for dbm,
gdbm and bsddb, as suggested by Skip Montanaro.
1997-12-11 16:20:36 +00:00
Guido van Rossum 79f016a262 Remove "Lib/test" from the default path; this is now a package! 1997-12-10 23:38:26 +00:00
Guido van Rossum bd49ac4492 The 'l' flag (locale specific matching) has been renamed to 'L'. 1997-12-10 23:05:53 +00:00
Guido van Rossum c525e43b42 Add a test for a bad format character. 1997-12-09 20:37:25 +00:00
Guido van Rossum ebd05eb10b Typo: RUSAGE_CHILDERN -> RUSAGE_CHILDREN. 1997-12-09 19:35:48 +00:00
Guido van Rossum 8d9c2e33e1 LC_MESSAGES is not defined on all systems; use #ifdef LC_MESSAGES. 1997-12-09 19:35:11 +00:00
Guido van Rossum be1eb0d9ed (1) call mktime() just before strftime(); it normalizes the buffer and
may set the timezone name for BSD systems...

(2) fake all of the timezone variables for the mac.
1997-12-08 21:56:43 +00:00
Guido van Rossum 5070060d40 New pcre version from AMK 1997-12-08 17:15:20 +00:00
Guido van Rossum 9716aaa14c Jim Fulton:
- Loading non-binary string pickles checks for insecure
          strings. This is needed because cPickle (still)
          uses a restricted eval to parse non-binary string pickles.
          This change is needed to prevent untrusted
          pickles like::

            "S'hello world'*2000000\012p0\012."

          from hosing an application.

        - User-defined types can now support unpickling without
          executing a constructor.

          The second value returned from __reduce__ can now be None,
          rather than an argument tuple. On unpickling, if the second
          value returned from __reduce__ during pickling was None, then
          rather than calling the first value returned from __reduce__,
          directly, the __basicnew__ method of the first value returned
          from __reduce__ is called without arguments.
1997-12-08 15:15:16 +00:00
Guido van Rossum d48f252ce5 Another large batch of patches from Jeff Rush for OS/2.
I hope this time I've taken out all // comments and indended #ifdefs.
1997-12-05 22:19:34 +00:00
Guido van Rossum a075ce1618 Two changes by Jeff Rush (slightly tweaked):
- New option -x, to skip first line of script

- Use the correct platform-specific delimiter and library location in
the usage message

(Also removed two blank lines and moved one line around so that each
part of the usage message is again under 512 bytes and the whole usage
message still fits in 23 lines.)
1997-12-05 21:56:45 +00:00
Guido van Rossum fdde96ce98 New versions of cPickle and cStringIO, from Jim Fulton's cPickle 1.0b1
distribution.
1997-12-04 01:13:01 +00:00
Guido van Rossum a0cbb3dbae Moved the thread module to its own Setup.thread(.in) file,
which is edited by the config.status script depending on whether
--with-thread is specified or not.  Also needs changes to configure(.in).
1997-12-04 00:48:27 +00:00
Guido van Rossum 57ba4f35f7 Patches by Fred Lundh to make it compile better with K&R compilers.
(Should really let AMK do this, but don't know when he'll give me a
new version.)
1997-12-02 20:40:28 +00:00
Guido van Rossum e59d3f8ae1 Small bugfixes for broken old style use of the syntax table. AMK, of
course.
1997-12-02 20:39:23 +00:00
Guido van Rossum f259a8e5c3 Yes, Virginia, Tix does have a Tix_SafeInit() function. 1997-12-02 20:38:38 +00:00
Guido van Rossum b447d118ff Understand -Xlinker option. 1997-12-02 20:38:11 +00:00
Guido van Rossum 32c575da0a Left-aligned preprocessor directives and changed C++ comments to C
comments.
1997-12-02 20:37:32 +00:00
Guido van Rossum c5a0f532e7 Patch for QNX, by Chris Herborth. Also left-aligned preprocessor
directives and changed C++ comments to C comments.
1997-12-02 20:36:02 +00:00
Guido van Rossum 7bf22de753 Patch for QNX, by Chris Herborth. 1997-12-02 20:34:19 +00:00
Guido van Rossum 30e817ef32 Changed the occurrence of *shared* in the example so people won't
accidentally uncomment it...
1997-12-02 16:46:39 +00:00
Guido van Rossum f58575ea16 Comment out crypt by default; it's not used very much and messes up
the default build on Linux (because it requires -lcrypt which isn't
availabel everywhere).

Some improvements to the _tkinter build line suggested by Case Roole.
1997-12-02 03:23:01 +00:00
Barry Warsaw 93be92d309 split_whitespace(): Make sure delimiter is stripped from the beginning
of the remainder item (last item in list) when maxsplit is < the
number of occurrences.
1997-12-02 00:29:30 +00:00
Guido van Rossum f6e8316b01 Initialize __version__ to the correct version string regardless of
what RCS checkout options are used.  Problem first diagnosed by Marc
Lemburg.
1997-12-01 15:57:40 +00:00
Barry Warsaw f577c08683 mymemreplace(), strop_replace(): Add support for optional 4th argument
maxsplit which is implemented in string.py but wasn't here.  The
reference manual doesn't define what happens when maxsplit is negative
or larger than the number of occurrences, but in either case, I
implemented this as all get replaced.  Default value is zero which
replaces all occurrences.
1997-11-29 00:10:07 +00:00
Guido van Rossum 8e9ebfd337 os2 patch by Jeff Rush 1997-11-22 21:53:48 +00:00
Guido van Rossum 8700fe62f8 Redone the _tkinter configuration section with support for popular packages. 1997-11-22 17:35:19 +00:00
Guido van Rossum 7a206c8a05 New tkappinit supporting several popular packages. 1997-11-22 17:34:41 +00:00
Barry Warsaw 0d2d759d8c PySocketSock_methods: Added "connect_ex" so the method can actually be
called!
1997-11-20 21:39:02 +00:00
Guido van Rossum 3df69bca0a Add support for _locale. 1997-11-19 18:57:48 +00:00
Guido van Rossum fc4255db75 Add s.connect_ex() which returns errno instead of raising an exception. 1997-11-19 18:57:13 +00:00
Guido van Rossum aec7497f6f Add optional support fort Tix and BLT. 1997-11-19 18:56:17 +00:00
Guido van Rossum 220ecc8c4b Martin von Loewis' _locale module (locale.py follows tomorrow). 1997-11-18 21:03:39 +00:00
Guido van Rossum 359bcaa539 This fix (across 4 files in 3 directories) solves a subtle problem with
signal handlers in a fork()ed child process when Python is compiled with
thread support.  The bug was reported by Scott <scott@chronis.icgroup.com>.

What happens is that after a fork(), the variables used by the signal
module to determine whether this is the main thread or not are bogus,
and it decides that no thread is the main thread, so no signals will
be delivered.

The solution is the addition of PyOS_AfterFork(), which fixes the signal
module's variables.  A dummy version of the function is present in the
intrcheck.c source file which is linked when the signal module is not
used.
1997-11-14 22:24:28 +00:00
Guido van Rossum 851e7d5159 Got rid of the errorstr dictionary, which is redundant now that
there's os.strerror() -- also, it would form a locale liability.
1997-11-04 20:22:24 +00:00
Guido van Rossum 8f3c812e22 Fix due to Bill Noon for problem discovered by Ken Manheimer: packing
0.0 as float or double would yield the representation for 1.0!
1997-11-04 17:12:33 +00:00
Guido van Rossum 8607ae2e57 Move the Py_{{BEGIN,END}_ALLOW,BLOCK}_THREADS macros in time_sleep()
to inside floatsleep().  This is necessary because floatsleep() does
the error handling and it must have grabbed the interpreter lock and
thread state before it can do so.
1997-11-03 22:04:46 +00:00
Guido van Rossum 7ff20ac9c7 Change the signal finialization so that it also resets the signal
handlers.  After this has been called, our signal handlers are no
longer active!
1997-11-03 21:53:55 +00:00
Guido van Rossum 6345ac6d61 Add cast to realloc/malloc call to shut up AIX compiler. (Vladimir Marangozov) 1997-10-31 20:32:13 +00:00
Guido van Rossum 873c35c437 Take out the setlocale() call. It affects atof() and will break
floating point literals.  Need to do this differently...
1997-10-31 18:25:15 +00:00
Guido van Rossum 86aeb900e5 Add #include "mytime.h", needed for SunOS 4.1 (Matthias Klose). 1997-10-31 16:55:51 +00:00
Guido van Rossum 16cb6f4612 Forgot to add .cxx and .cpp to the second case statement.
Thanks to Daniel Larsson.
1997-10-21 19:30:29 +00:00
Guido van Rossum e85da651dd Some patches to Lee Busby's fpectl mods that accidentally didn't make it
into 1.5a4.
1997-10-20 23:50:01 +00:00
Guido van Rossum f6a84db034 Add getintarg(), getlongarg(), getstrarg() to macros since these no
longer exist in the general headers.
1997-10-20 23:22:07 +00:00
Guido van Rossum cb4d3032ae Add proper (getattrfunc) cast in Pcre_Type. 1997-10-20 23:21:23 +00:00
Guido van Rossum 266033e89b Change sharedmodules to lib-dynload.
### If you still have sharedmodules in your Modules/Setup file, remove it! ###
1997-10-20 23:20:32 +00:00
Guido van Rossum a59406abdf Darn. When thread support is disabled, the BEGIN/END macros don't
save and restore the tstate, but explicitly calling
PyEval_SaveThread() does reset it!  While I think about how to fix
this for real, here's a fix that avoids getting a fatal error.
1997-10-10 17:39:19 +00:00
Guido van Rossum 91922677ea Don Beaudry's changes to support SGI_ABI on Irix 6.x. 1997-10-09 20:24:13 +00:00
Fred Drake d49266eeed Remove requirement for strdup() since it causes so many troubles for too many
platforms.  Argh!
1997-10-09 16:29:31 +00:00
Guido van Rossum 44c36bb114 Add call to setlocale(LC_ALL, ""). 1997-10-08 22:49:17 +00:00
Guido van Rossum 1f14ccf6d1 Put back the extern declaration for strdup(), between #ifndef MS_WINDOWS.
This should make everybody happy, especially since we don't say what
the argument type is (there is disagreement on that, too :-( ).
1997-10-08 15:45:53 +00:00
Guido van Rossum e6a4b7bf3e timezone support for macintosh (Jack) 1997-10-08 15:27:56 +00:00
Guido van Rossum 5bd919b6d7 Include macbuildno.h here (mac only) (Jack) 1997-10-08 15:26:56 +00:00
Guido van Rossum b189a2f997 lots of "goto error" replaced by "return" (Jack) 1997-10-08 15:26:28 +00:00
Guido van Rossum 7dbb48a67f Converted to new exception style (Jack) 1997-10-08 15:26:07 +00:00
Guido van Rossum b0105444e2 Mac does support createfilehandler now (Jack) 1997-10-08 15:25:37 +00:00
Guido van Rossum c386107838 Checking in AMK's latest installement.
(Two small changes to shup up gcc added.)
1997-10-08 02:07:40 +00:00
Fred Drake 0225a38907 initparser(): Use PyErr_NewException() to create the exception. 1997-10-07 19:32:00 +00:00
Guido van Rossum 0e8457c4ec Fix EventHook (the trick to make widgets appear when using GNU
readline) to create and use a new thread state object -- otherwise it
would dump core!
1997-10-07 18:51:41 +00:00
Guido van Rossum 176bb41efa Add the Setup line for the pcre module. 1997-10-07 16:17:55 +00:00
Guido van Rossum 79378ffd91 Add get_line_buffer() and insert_text(), suggested by Michael McLay. 1997-10-07 14:53:21 +00:00
Guido van Rossum 51b3aa3d38 New "re" regular expression support.
This code is written by Philip Hazel and Andrew Kuchling.
It requires a new "re.py" module, too.
1997-10-06 14:43:11 +00:00
Guido van Rossum 88d8beec0a Oops, forgot one. 1997-10-01 04:43:39 +00:00
Guido van Rossum 0cb96de269 Apply two changes, systematically:
(1) Use PyErr_NewException("module.class", NULL, NULL) to create the
    exception object.

(2) Remove all calls to Py_FatalError(); instead, return or
    ignore the errors -- the import code now checks PyErr_Occurred()
    after calling a module's init function, so it's no longer a
    fatal error for the initialization to fail.

Also did some small cleanups, e.g. removed unnecessary test for
"already initialized" from initfpectl(), and unified
initposix()/initnt().

I haven't checked this very thoroughly, so while the changes are
pretty trivial -- beware of untested code!
1997-10-01 04:29:29 +00:00
Fred Drake fd9ef4a26d Removed extern declaration of strdup(). Doesn't appear to be important and
causes ugly noises under Windows.
1997-09-30 19:20:01 +00:00
Guido van Rossum 54e2091ba2 Add an optional hack for threads in Tkinter.
This one works!  However it requires using a modified version of
tclNotify.c (provided), which requires access to the Tcl source
to compile it.  In order to enable this hack, add the following
to the Setup line for _tkinter:
   tclNotify.c -DHAVE_PYTCL_WAITUNTILEVENT -I$(TCL)/generic
where TCL points to the source tree of Tcl 8.0.  Other versions
of Tcl are not supported.

The tclNotify.c file is copyrighted by Sun Microsystems; the
licensing terms are in the file license.terms.  According to this
file, no further permission to distribute this is required,
provided the file license.terms is included.  Hence, I am checking
that in, too.
1997-09-28 05:52:41 +00:00
Guido van Rossum a9f02b8bad Add plat- prefix to MACHDEPPATH, now that it's been removed from MACHDEP. 1997-09-28 05:45:40 +00:00
Guido van Rossum 49f9d8e405 Changes submitted by Marc-Andre Lemburg to add two tables: errorcode
maps errno numbers to errno names (e.g. EINTR), and errorcode maps
them to message strings.  (The latter is redundant because
the new call posix.strerror() now does the same, but alla...)
1997-09-28 05:41:56 +00:00
Guido van Rossum 4518823ad0 In whichmodule(), use __module__ if set. 1997-09-28 05:38:51 +00:00
Guido van Rossum b6c935a933 Set the completer's word break characters appropriate for Python. 1997-09-26 23:00:37 +00:00
Guido van Rossum 290900a5d7 Reordered and reformatted, and added some cool new features:
set_completer(function)
parse_and_bind(string)
read_init_file(filename)

The first is the most exciting feature: with an appropriate Python
completer function, it can do dynamic completion based on the contents
of your namespace!
1997-09-26 21:51:21 +00:00
Guido van Rossum 3bbeb7a318 Fix by Sjoerd: don't want to resize to zero length. 1997-09-22 16:14:27 +00:00
Guido van Rossum 3d26cc9542 Move the "import readline" to an earlier place so it is also done when
"-i" is given.  (Yes, I know, giving in to Marc Lemburg who wanted
this :-)
1997-09-16 16:11:28 +00:00
Guido van Rossum b6a4716298 Add strerror() interface. 1997-09-15 22:54:34 +00:00
Guido van Rossum 83551bfeda Export names for the types defined by this module: TkappType and TkttType. 1997-09-13 00:44:23 +00:00
Guido van Rossum 75626a3b93 Indent the #error so that a strict K&R cpp doesn't complain. 1997-09-08 02:04:00 +00:00
Guido van Rossum ab61c6b290 Change the names of the subdirectories tkinter and stdwin to
lib-tk and lib-stdwin.  (BTW this was also done in the previous
checkin of (toplevel)/Makefile.in, though not noted in the checkin
message.)
1997-09-08 01:54:43 +00:00
Guido van Rossum 970f5d33c7 Reverse the order in which Setup and Setup.local are passed to the
makesetup script.  (Sorry Sjoerd -- I know you proposed this a while
ago and I didn't think it would work then.  I looked again and it
does work.)
1997-09-07 16:44:37 +00:00
Guido van Rossum 9eb671fac3 Contribution by Hannu Krosing (with some changes).
Added 'p' format character for Pascal string (i.e. leading length
byte).  This uses the count prefix line 's' does, except that the
count includes the length byte; i.e. '10p' takes 10 bytes packed but
has space for a length byte and 9 data bytes.
1997-09-05 07:08:39 +00:00
Guido van Rossum bd4435abcc Don't use ANSI string literal concatenation (everything is K&R compatible). 1997-09-05 07:01:19 +00:00
Guido van Rossum 8102c005e0 Get rid of most silly #include and #ifdefs near the top; these are all
obsolete now it includes Python.h.

Make all functions K&R compatible (Sue Williams).
1997-09-05 01:48:48 +00:00
Jeremy Hylton cb91404890 Several changes:
1. Fix bug in (de)compression objects.  The final string resize used
zst.total_out to determine the length of the string, but the
(de)compression object will output data a little bit at a time, which
means total_out is not the string size.  Fix: save original value of
total_out at the start of the call.

2. Be sure to Py_DECREF the result value if you exit with an
exception.

3. Use PyInt_FromLong instead of Py_BuildValue

4. include more constants from the zlib header file

5. Use PyErr_Format instead of using a local buffer and sprintf.
1997-09-04 23:39:23 +00:00
Barry Warsaw c7736b9d49 Added first line to set Emacs makefile mode (pretty colors :-) 1997-09-04 13:05:14 +00:00
Guido van Rossum 9efe8ef7a1 #Plug small memory leaks in constructors. 1997-09-03 18:19:40 +00:00
Guido van Rossum c3beda2f27 Plug small leaks: the [de]compress object itself was never freed. 1997-09-03 18:14:30 +00:00
Guido van Rossum d19c04a88e Change [_Py_]re_compile_pattern() to return a char*.
Since it only returns an error message (or NULL) there's no reason
for it to be unsigned char *, and various compilers like this better.
1997-09-03 00:47:36 +00:00
Guido van Rossum 5ade084902 Mod suggested by Donn Cave -- invoke makexp_aix relative to $0
so it doesn't have to be on $PATH.
1997-09-03 00:45:30 +00:00
Guido van Rossum 3f0bff666d Disable the portable multimedia modules (audioop, imageop, rgbimg) by
default since they don't work on 64-bit platforms.
1997-09-03 00:44:14 +00:00
Guido van Rossum 15a40394b0 Fix the bug Jeremy was experiencing: both the close() and the
dealloc() functions contained code to free/DECREF the buffer
(there were differences between I and O objects but the logic bug was
the same).  Fixed this be setting the buffer pointer to NULL and
testing for that.  (This also makes it safe to call close() more than
once.)

XXX Worry: what if you try to read() or write() once the thing is
closed?
1997-09-03 00:09:26 +00:00
Guido van Rossum 7922bd7382 Added -X option to suppress default import of site.py. Also split the
usage message in *three* parts under 510 bytes, for low-end ANSI
compatibility.
1997-08-29 22:34:47 +00:00
Barry Warsaw 83b6709d8e Swap the sense of the -X option vis-a-vis Py_UseClassExceptionsFlag so
that class based exceptions are enabled by default.  -X disables them
in favor of the old-style string exceptions.
1997-08-29 22:20:16 +00:00
Barry Warsaw f488af3360 Parse new command line option -X which enables exception classes. 1997-08-29 21:57:49 +00:00
Guido van Rossum c1f088201f Added (binaryfunc) casts to function pointers in method lists. 1997-08-28 21:21:22 +00:00
Guido van Rossum 24a49941b3 Some long variables should have been int to match the 'i' format specifier. 1997-08-28 18:11:05 +00:00
Guido van Rossum e20aef574a Ignore whitespace between formats (not internal to a count+format). 1997-08-26 20:39:54 +00:00
Guido van Rossum d14c06819e Add unsupported variable EXE which can be set to .exe on systems where
the executable must have that suffix.  Note that there is no
corresponding support in the top-level Makefile because I'm not sure
that the install targets there make sense under these circumstances.
1997-08-22 20:53:47 +00:00
Guido van Rossum 1171ee6aaf Added configuration tests for presence of alarm(), pause(), and getpwent() 1997-08-22 20:42:00 +00:00
Barry Warsaw 779133c707 Removed JF's dollar-Log-dollar RCS turd that caused compilation to
crash due to GvR's last check in message :-).  Will try to convince JF
to remove all this evilness.
1997-08-21 22:36:26 +00:00
Guido van Rossum d7a7100c99 Remove redundant decl for PyOS_InputHook. 1997-08-21 17:26:04 +00:00
Guido van Rossum c6ef204830 Added /**/ around #end tags 1997-08-21 02:30:45 +00:00
Guido van Rossum bae6523a75 Must remove conflicting files from archive
*before* adding signalmodule.o, because some ar programs
are too smart for us...
1997-08-21 02:30:20 +00:00
Guido van Rossum 6b9fdf529a Globally renamed join() to joinpath() to avoid compilation error on Cray. 1997-08-20 23:48:16 +00:00
Guido van Rossum 725d941f0f Renamed strndup to pystrndup, to avoid conflicting prototype
in GNU libc on some platforms.
1997-08-20 23:38:57 +00:00
Guido van Rossum 4f46fc6d57 When we have signalmodule.o, remove intrcheck.o as well as sigcheck.o. 1997-08-20 22:45:52 +00:00
Guido van Rossum 5b02078e31 Alas, the thread support for Tk didn't work. Withdraw it, until I
figure out how to do this right.
1997-08-19 01:00:50 +00:00
Guido van Rossum 25f93036bb Moved inclusion of PURIFY in LINKCC to configure 1997-08-18 16:00:04 +00:00
Guido van Rossum ed2554a396 Casts by Jack to shut up the Mac compiler. 1997-08-18 15:31:24 +00:00
Guido van Rossum bad3c013d2 DeleteTimerHandler was accidentally #ifdef'ed out for macintosh with
Tk 8.0; this was a mistake.
1997-08-18 15:28:52 +00:00
Guido van Rossum 79fa8b0abe When making all, don't make sharedmods. That's now called separately
from the toplevel Makefile.  (For AIX, but doesn't hurt elsewhere.)
1997-08-18 14:23:13 +00:00
Guido van Rossum 57e846f803 Use a trick to make the test for GMP v2 to work when GMP v1 defines
__GNU_MP__ as empty: #if __GNU_MP__ + 0 == 2
(Untested.)
1997-08-17 19:08:33 +00:00
Guido van Rossum 607b33a1fe Different strategy regarding whether to declare getrusage() and
getpagesize() -- #ifdef doesn't work, Linux has conflicting decls in
its headers.  Choice: only declare the return type, not the argument
prototype, and not on Linux.
1997-08-17 16:24:30 +00:00
Guido van Rossum 53665e571f Last minute changes for \B. AMK. 1997-08-15 15:45:25 +00:00
Guido van Rossum 7c14103d77 Keep gcc -Wall happy 1997-08-15 02:52:08 +00:00
Guido van Rossum f84a539d38 Added std copyright notice. 1997-08-15 00:04:24 +00:00
Guido van Rossum f1c018de87 Fixed refcount bug (thank you, Purify and AMK). 1997-08-14 21:19:13 +00:00
Jeremy Hylton 644c17d2af Several bug fixes.
-- initialize length to DEFAULTALLOC and not 0
 -- resize string before returning (to remove '\000' padding)

Also converted some compression routines to use PyString instead of
buffer.
1997-08-14 21:06:42 +00:00
Guido van Rossum 6d8841c079 Added a bunch of XXX comments about things I'd like to see changed... 1997-08-14 19:57:39 +00:00
Guido van Rossum 0d2390c549 Merge Mac and Windows mods (which mostly affect the same problem -- no
usable createfilehandler).  Define HAVE_CREATEFILEHANDLER to test
later.  Also other Mac specific patches by Jack.
1997-08-14 19:57:07 +00:00
Guido van Rossum 0318bd6ae6 Use _Py_re_match/search instead of re_match/search; these may become
different in a future version.
1997-08-14 14:35:12 +00:00
Jeremy Hylton 41b9f00e8f Many changes.
Change default alloc size for uncompressing to 16K.

Remove comment about core dumps when an invalid window sizes is used.
This bug has been fixed in zlib 1.0.4.

Two new optional arguments to decompress, wbits and bufsize.  wbits
specifies the window size and bufsize specifies the initial output
string size.

In decompression code -- decompress and decompressobj methods -- use a
Python string (and _PyString_Resize) to collect the uncompressed
stream.  Replaces a separate buffer that was copied into a string.

Fix bug in decompress that caused it to always realloc the buffer when
it was finished decompressing.

Modernized handling of optional arguments to compressobj.

Updated doc strings.
1997-08-13 23:19:55 +00:00
Guido van Rossum 95e8053a9f 1.5a3 prerelease 1 from AMK 1997-08-13 22:34:14 +00:00
Jeremy Hylton a74ef66ac8 Must update the available space in the output buffer after
realloc. (Fixed in PyZlib_unflush.)
1997-08-13 21:39:18 +00:00
Guido van Rossum abed54ab4a Fix bug with \< (AMK). 1997-08-13 16:35:04 +00:00
Guido van Rossum c24f038464 Changes by AMK:
Removed handling of \e, \cX escapes, following a string-SIG discussion.

Fixed minor typos in re.py
re.error is now set equal to reop.error.
Move definition of constants like NORMAL and CHARCLASS into reop, which
  exports them; re.py was changed to import them from reop.
Added C equivalents of _expand and expand_escape to reop, and changed
  re.py to use them.
1997-08-13 03:24:53 +00:00
Guido van Rossum 52d6832554 Add syntax for hex,octal 1997-08-13 03:21:14 +00:00
Guido van Rossum 142eeb8339 cPickle release 0.3 from Jim Fulton 1997-08-13 03:14:41 +00:00
Guido van Rossum 7242905385 Megapatch for IRIX 6 by Sjoerd. 1997-08-12 14:58:54 +00:00
Guido van Rossum de4a4ca2dd Added buffer_info() method that returns address and length in bytes of
the buffer used to hold the array -- for dangerous low-level I/O.
1997-08-12 14:55:56 +00:00
Guido van Rossum 44620646fd Renamed Py_input_hook to PyOS_InputHook.
Also cleaned out some CR's left by the VC++ editor.
1997-08-11 18:57:29 +00:00
Guido van Rossum 98d9d09090 Added O_BINARY and O_TEXT (for Windows). 1997-08-08 21:48:51 +00:00
Guido van Rossum 02c0467f67 Rather unsatisfactory temporary hack to get it to run
under WIN32 -- remove file handler interface, don't use Py_input_hook.
1997-08-07 00:12:22 +00:00
Guido van Rossum fb84255e67 New version of Vladimir Marangozov's AIX hacks -- simpler etc. 1997-08-06 23:42:07 +00:00
Guido van Rossum 9b5dbedf43 Attempt to import readline at interactive startup. 1997-08-05 21:34:14 +00:00
Guido van Rossum 0969d36275 New mechanism for GNU readline interface, via module 1997-08-05 21:27:50 +00:00
Guido van Rossum 7f400be210 Add pointer to new BSDDB module. 1997-08-05 02:25:24 +00:00
Guido van Rossum 668e441a86 purported linux portability patch (Oliver Andrich) 1997-08-05 02:24:57 +00:00
Guido van Rossum 5d1770ee24 Py_Cleanup() is now Py_Finalize(). 1997-08-05 02:23:48 +00:00
Guido van Rossum 5c159bd855 Plug memory leak (DECREF doc string properly after inserting in dict). 1997-08-04 23:55:25 +00:00
Guido van Rossum b02158efa3 Oops, one more checkin. Use the new tstate/interp interface. 1997-08-02 03:13:11 +00:00
Guido van Rossum 08c166152e Add finialization routines; fixed some memory leaks related to this.
Reset the SIGINT handler when the finalization is invoked.
1997-08-02 03:01:42 +00:00
Guido van Rossum 05f7c50bfd Free the malloc'ed buffer that holds the command once we're done with it.
Instead of calling Py_Exit(sts), call Py_Cleanup() and return sts.
1997-08-02 03:00:42 +00:00
Guido van Rossum d0924f4585 Add a simple way to enable purify; now you can set the Make variable
PURIFY (e.g. in the Setup file or on the make command line) to point
to the purify command, to run purify.
1997-08-02 02:06:20 +00:00
Guido van Rossum 35d43377b4 Functionality enhancement: allow other threads to use Tk commands
while one thread is blocked in mainloop().  Also, handle signals (not
just interrupts) as soon as they happen.

Cleanup: remove support for Tcl/Tk versions 7.4/4.0.  (I've confirmed
that it works for 7.5/4.1 and 7.6/4.2, as well as 8.0b2.)

Coding style change: instead of ``func (args)'', write ``func(args)''
everywhere.

Minor functionality change: use PyArg_ParseTuple everywhere.  This
should only affect the errors reported for bad argument lists; in
particular, deletefilehandler() is much clearer about what's going
on.

(XXX Still to do: Mac and Win ports to 8.0b2.)
1997-08-02 00:09:09 +00:00
Guido van Rossum 3e819a7aa8 Compatibility with Tcl/Tk 8.0b*. 1997-08-01 19:29:02 +00:00
Guido van Rossum f4e32c729b Add definitions for symbolic constants LOCK_{EX,NB,SH,UN}. 1997-07-31 19:39:54 +00:00