Commit graph

5070 commits

Author SHA1 Message Date
Barry Warsaw
61a63e152d Quieted gcc -Wall by removing unused local variables.
Suppressing my urge to reformat according to Python coding standards!
:-)
1997-01-14 17:38:28 +00:00
Barry Warsaw
54dbf02da2 Quieted gcc -Wall by removing unused local variables. 1997-01-14 17:37:32 +00:00
Barry Warsaw
845a4c6bb7 Formatting. 1997-01-14 17:36:36 +00:00
Barry Warsaw
41317d120d Obsolete, now that xdrlib.py uses the new-and-improved struct module. 1997-01-14 17:34:06 +00:00
Barry Warsaw
58d40a7400 Renamed. 1997-01-13 22:57:42 +00:00
Barry Warsaw
4a6cf4167b Formatting, and minor error detection 1997-01-13 22:44:55 +00:00
Barry Warsaw
64278cf5f7 initthread(): Removed extraneous Py_INCREF(ThreadError) 1997-01-13 22:09:43 +00:00
Guido van Rossum
9c6ba5e901 Fix leak involving BuildValue("...O..."). 1997-01-12 20:02:04 +00:00
Guido van Rossum
ee88ff9d05 Add entries for cStringIO and cPickle 1997-01-11 19:29:30 +00:00
Guido van Rossum
f22d7e2c69 On Windows, -u implies binary mode for stdin/stdout
(as well as unbuffered stdout/stderr).
1997-01-11 19:28:55 +00:00
Barry Warsaw
5709dcfaec The usual return-value and memory management checks. I'm not planning
a test for this module though (it does compile at least on Solaris
2.5)
1997-01-10 18:42:18 +00:00
Barry Warsaw
43a476ac00 Formatting changes, plus memory management in initsyslog() 1997-01-09 23:51:21 +00:00
Barry Warsaw
73a75eb79b initsignal(): Py_DECREFs really should be Py_XDECREFs in case the
PyInt_FromLong's failed.
1997-01-09 23:50:28 +00:00
Barry Warsaw
42185a2d7a Plugged a couple of potential return value problems, memory leaks, and
descriptor leaks.
1997-01-09 22:29:57 +00:00
Barry Warsaw
2dc8c2c26b Primarily formatting changes, but I also plugged a couple of potential
return value problems, memory leaks, and descriptor leaks.
1997-01-09 22:29:12 +00:00
Barry Warsaw
4bc9d39560 Nailed a couple of memory leaks, caught by Purify. 1997-01-09 22:22:05 +00:00
Guido van Rossum
2f4caa4c48 cPickle, version 0.1. 1997-01-06 22:59:08 +00:00
Guido van Rossum
55702f8d6a Jim's latest version. 1997-01-06 22:57:52 +00:00
Barry Warsaw
d4ff1b908b New strop_joinfields implementation, highly optimized for Lists. All
other sequences use the Sequence protocol from the abstract API.  The
algorithm has changed so that only one pass through the sequences are
made.
1997-01-06 22:48:32 +00:00
Guido van Rossum
e0548b8da7 Rewrote translate() as follows:
- 'delete' is a C++ keyword; use 'del_table' instead
	- apply Py_CHARMASK() to del_table[i] before using it as an index
	  *** this fixes a bug that was just reported on the list ***
	- if the translation didn't make any changes, INCREF and return
	  the original string
	- when del_table is empty or omitted, don't copy the translation
	  table to a table of ints (should be a bit faster)

Rewrote maketrans() to avoid copying the table (2-3% faster).
1997-01-06 16:50:09 +00:00
Barry Warsaw
04d2d15b6b strop_upper(), strop_lower(): shared code version caused to much of a
performance hit.  Urg.  Reverted.

strop_joinfields(): re-instate optimizations for lists and tuples, but
support arbitrary other kinds of sequences as well.
1997-01-03 23:46:51 +00:00
Roger E. Masse
bf0c3ca9bd Renamed but not well tested. 1997-01-03 23:00:51 +00:00
Barry Warsaw
e8fc29cde7 Several changes:
- split_whitespace(): slightly better memory ref handling when errors
  occur.

- strop_joinfields(): First argument can now be any sequence-protocol
  conformant object.

- strop_find(), strop_rfind(): Use PyArg_ParseTuple for optional
  arguments

- strop_lower(), strop_upper(): Factor logic into a common function
  do_casechange().

- strop_atoi(), strop_atol(): Use PyArg_ParseTuple.

- strop_maketrans(): arguments used to be optional, although the
  documentation doesn't reflect this.  Make the source conform to the
  docs.  Arguments are required, but two empty strings will return the
  identity translation table.

- General pass fixing up formatting, and checking for return values.
1997-01-03 22:45:34 +00:00
Roger E. Masse
a2a8b27221 Renamed, but not throughly tested. 1997-01-03 22:40:34 +00:00
Roger E. Masse
7ba4c07768 Renamed, but untested. 1997-01-03 22:17:11 +00:00
Guido van Rossum
9bc7e0af50 Added PyLong*UnsignedLong and PyCobject interfaces. 1997-01-03 21:05:44 +00:00
Roger E. Masse
eaa6e1102f Renamed, reindented. (was already partially complete) 1997-01-03 19:26:27 +00:00
Guido van Rossum
549ab711aa Add new formats B, H, I, L for unsigned data types (analogous to the
recent changes in the struct module).
1997-01-03 19:09:47 +00:00
Guido van Rossum
6c87ecaff1 Changed the ``add/sub_offset'' hacks for dealing with C's unsigned
int/long types, and use the new PyLong_FromUnsignedLong() and
PyLong_AsUnsignedLong() interfaces instead.

Semantic change: the 'I' format will now always return a long int.
1997-01-03 19:08:16 +00:00
Roger E. Masse
5b0eba3ced Reindented. 1997-01-03 18:51:01 +00:00
Barry Warsaw
752300bbdf Check of return values and proper error handling. 1997-01-03 17:18:10 +00:00
Guido van Rossum
b9d338cbfb Fill pad bytes with zeros (fixing a bug dating from the very first version!). 1997-01-03 15:40:33 +00:00
Barry Warsaw
b9a781e177 Scratch the ears of gcc -Wall. 1997-01-03 00:26:28 +00:00
Barry Warsaw
929711765e Several changes:
- Conform to standard Python C coding styles.

- All static symbols were renamed and shorted.

- Eyeballed all return values and memory references.

- Fixed a bug in signal.pause() so that exceptions raised in signal
  handlers are now properly caught after pause() returns.

- Removed SIGCPU and SIGFSZ.  We surmise that these were typos for the
  previously missing SIGXCPU and SIGXFSZ.
1997-01-03 00:14:25 +00:00
Guido van Rossum
4ccc531f34 Ok, ok, I've fixed gradual underflow on packing too.
Still don't know what to do with Inf/NaN, so I raise an exception on
pack(), and something random decided by ldexp() will happen on
unpack().
1997-01-02 23:23:20 +00:00
Guido van Rossum
07ef655222 Oops -- unpack float/double didn't do the right thing if e==0. 1997-01-02 22:31:07 +00:00
Guido van Rossum
74679b455f Support float and double in non-native formats.
These use the ANSI/IEEE standard, which is also used by XDR;
so the _xdr module may become obsolete.
1997-01-02 22:21:36 +00:00
Barry Warsaw
9e3fceb5b3 rotorobj_setkey(): A single string argument is now required (i.e. no
long optional with nearly-no-op missing).
1997-01-02 20:36:36 +00:00
Guido van Rossum
60c50614e1 Added better handling of unsigned longs -- a Python long returned by
unpack('L', ...) is now acceptable to pack('L', ...).
1996-12-31 16:29:52 +00:00
Guido van Rossum
3aa27fd315 Fix the first bugs... treatment of 0 count was wrong, and memchr()
should be memset().
1996-12-31 02:10:45 +00:00
Guido van Rossum
f7e6b4b388 Pretty much rewritten to fulfull several long-standing wishes:
-- The whole implementation is now more table-driven.

-- Unsigned integers.  Format characters 'B', 'H', 'I' and 'L'
mean unsigned byte, short, int and long.  For 'I' and 'L', the return
value is a Python long integer if a Python plain integer can't
represent the required range (note: this is dependent on the size of
the relevant C types only, not of the sign of the actual value).

-- A new format character 's' packs/unpacks a string.  When given a
count prefix, this is the size of the string, not a repeat count like
for the other format characters; e.g. '10s' means a single 10-byte
string, while '10c' means 10 characters.  For packing, the string is
truncated or padded with null bytes as appropriate to make it fit.
For unpacking, the resulting string always has exactly the specified
number of bytes.  As a special case, '0s' means a single, empty
string (while '0c' means 0 characters).

-- Various byte order options.  The first character of the format
string determines the byte order, size and alignment, as follows:

First character		Byte order		size and alignment

	'@'		native			native
	'='		native			standard
	'<'		little-endian		standard
	'>'		big-endian		standard
	'!'		network (= big-endian)	standard

If the first character is not one of these, '@' is assumed.

Native byte order is big-endian or little-endian, depending on the
host system (e.g. Motorola and Sun are big-endian; Intel and DEC are
little-endian).

Native size and alignment are determined using the C compiler's sizeof
expression.  This is always combined with native byte order.

Standard size and alignment are as follows: no alignment is required
for any type (so you have to use pad bytes); short is 2 bytes; int and
long are 4 bytes.  In this mode, there is no support for float and
double.

Note the difference between '@' and '=': both use native byte order,
but the size and alignment of the latter is standardized.

The form '!' is available for those poor souls who can't remember
whether network byte order is big-endian or little-endian.

There is no way to indicate non-native byte order (i.e. force
byte-swapping); use the appropriate choice of '<' or '>'.
1996-12-31 01:41:25 +00:00
Roger E. Masse
fbd1d74286 Renamed.
However: "cgensupport.h" is still present... otherwise I get
	maaaany type errors... not sure if this needs more attention.
1996-12-24 19:39:23 +00:00
Barry Warsaw
aeb207c6b6 Reworked to check for memory problems (one potential found),
non-checked error return values, and where appropriate,
PyArg_ParseTuple() style argument parsing.

I also changed some function names and converted all malloc/free calls
to PyMem_NEW/PyMem_DEL.

Some stylistic changes and formatting standardization.
1996-12-23 23:36:24 +00:00
Roger E. Masse
7f33e403a4 Renamed. 1996-12-20 21:56:08 +00:00
Barry Warsaw
c357325663 Several changes. Test program to follow.
- Where optional arguments were being used, converted to
  PyArg_ParseTuple() style instead of nested PyArg_Parse() style.

- Check for and handle many potential error conditions that were never
  being tested.

- internal reg_* functions renamed to regobj_* (makes it easier to
  figure out which are global regex functions and which are for regex
  objects).

- reg_group (now regobj_group) was quite extensively reworked.  it no
  longer recurses to do its job (by factoring core functionality into
  a separate function that knows about string and integer indexes).

- some minor formatting fixes.

- regex_set_syntax() now invalidates the cache.  Without this change
  (in the example below), the second search would produce different
  output depending on whether the first search were performed or not
  (since performing the first search would cache the compiled object
  with RE_SYNTAX_EMACS, causing the second test to unexpectedly fail).

  regex.search('(a+)|(b+)', 'cdb')
  prev = regex.set_syntax(RE_SYNTAX_AWK)
  regex.search('(a+)|(b+)', 'cdb')
1996-12-20 21:56:07 +00:00
Roger E. Masse
a141f8a31a Renamed. 1996-12-20 20:50:39 +00:00
Barry Warsaw
4a34209468 1. Export open(2) flag constants for every defined constant
2. Reworked error checking in initposix() and initnt().
1996-12-19 23:50:02 +00:00
Barry Warsaw
bab218e420 Minor formatting changes. 1996-12-19 22:22:32 +00:00
Barry Warsaw
43d68b8fb0 Minor formatting changes. 1996-12-19 22:10:44 +00:00
Guido van Rossum
25405c786b Added the new getprotobyname() call to the module overview at the top. 1996-12-19 16:42:52 +00:00