Guido van Rossum [Tue, 11 Mar 2003 14:46:48 +0000 (14:46 +0000)]
Add 'audio' resource.
ALERT! A month ago or so I made test_ossaudiodev.py require the
'audio' resource, but I didn't make the necessary changes to
regrtest.py. This means that *nobody* has been testing the oss module
all that time!
Barry Warsaw [Tue, 11 Mar 2003 05:03:25 +0000 (05:03 +0000)]
For email 2.5b1, we no longer add a trailing newline to
MIMEText.__init__()'s _text argument if it doesn't already end in a
newline. This may be controversial.
[Patch #649762] Fix for asynchat endless loop
When the null string is used as the terminator, it used to be the same
as None, meaning "collect all the data". In the current code, however, it
falls into an endless loop; this change reverts to the old behavior.
Greg Ward [Mon, 10 Mar 2003 03:17:06 +0000 (03:17 +0000)]
<sys/soundcard.h> seems to exist on both Linux and FreeBSD, so include
it instead of the OS-specific <linux/soundcard.h> or <machine/soundcard.h>.
Mixers devices have an ioctl-only interface, no read/write -- so the
flags passed to open() don't really matter. Thus, drop the 'mode'
parameter to openmixer() (ie. second arg to newossmixerobject()) and
always open mixers with O_RDWR.
Tim Peters [Fri, 7 Mar 2003 21:10:21 +0000 (21:10 +0000)]
Don't quote the path to Python unless the path contains an embedded space.
Quoting the path doesn't work on Win2K (cmd.exe) regardless, this is just
a hack to let the test pass again on Win2K (so long as Python isn't
installed in a path that does contain an embedded space). On Win2K it
looks like we'd also have to add a second pair of double quotes, around
the entire command line.
Skip Montanaro [Fri, 7 Mar 2003 15:45:15 +0000 (15:45 +0000)]
Add a little more verbiage about the bsddb module/package change. It's
clear from recent discussions on c.l.py that people are a bit confused about
the differences between the old bsddb, the new bssdb, the bsddb3/PyBSDDB
package and changes to file formats. Tried to clarify the issues.
Barry Warsaw [Fri, 7 Mar 2003 15:43:17 +0000 (15:43 +0000)]
_write_headers(), _split_header(): All of the smarts for splitting
long header lines is now (properly) in the Header class. So we no
longer need _split_header() and we'll just defer to Header.encode()
when we have a plain string.
Barry Warsaw [Fri, 7 Mar 2003 15:39:37 +0000 (15:39 +0000)]
More internal refinements of the ascii splitting algorithm.
_encode_chunks(): Pass maxlinelen in instead of always using
self._maxlinelen, so we can adjust for shorter initial lines.
Pass this value through to _max_append().
encode(): Weave maxlinelen through to the _encode_chunks() call.
_split_ascii(): When recursively splitting a line on spaces
(i.e. lower level syntactic split), don't append the whole returned
string. Instead, split it on linejoiners and extend the lines up to
the last line (for proper packing). Calculate the linelen based on
the last element in the this list.
- The extended type structure used for heap types (new-style
classes defined by Python code using a class statement) is now
exported from object.h as PyHeapTypeObject. (SF patch #696193.)
Jack Jansen [Fri, 7 Mar 2003 12:50:45 +0000 (12:50 +0000)]
Two fixes to make this test pass on MacOS9:
- the test was sloppy about filenames: "0-REGTYPE-TEXT" was used where
the archive held "/0-REGTYPE-TEXT".
- tarfile extracts all files in binary mode, but the test expected to be able to
read and compare text files in text mode. Use universal text mode.
Jack Jansen [Thu, 6 Mar 2003 23:02:04 +0000 (23:02 +0000)]
Module to get OSA terminology description through the "official channels",
in stead of manually getting the AETE/AEUT resource. Donated by Donovan
Preston. This is his original code (but with the filename changed) checked
in for reference only.
Barry Warsaw [Thu, 6 Mar 2003 20:33:04 +0000 (20:33 +0000)]
_split_ascii(): In the clause where curlen + partlen > maxlen, if the
part itself is longer than maxlen, and we aren't already splitting on
whitespace, then we recursively split the part on whitespace and
append that to the this list.
Reverted the previous change to read() and readline().
Kevin Jacobs found that the code simplification did not
exactly match the semantics of the original. Regression
test cases were requested.
Add a note explaining why you shouldn't try to compute mean and
standard deviation. Also add an XXX comment wondering if we should
refrain from using itertools.repeat().
Barry Warsaw [Thu, 6 Mar 2003 16:10:30 +0000 (16:10 +0000)]
__unicode__(): When converting to a unicode string, we need to
preserve spaces in the encoded/unencoded word boundaries. RFC 2047 is
ambiguous here, but most people expect the space to be preserved.
Really closes SF bug # 640110.
Barry Warsaw [Thu, 6 Mar 2003 06:37:42 +0000 (06:37 +0000)]
decode_header(): Typo when appending an unencoded chunk to the
previous unencoded chunk (e.g. when they appear on separate lines).
Closes the 2nd bug in SF #640110 (the first one's already been
fixed).
Barry Warsaw [Thu, 6 Mar 2003 05:39:46 +0000 (05:39 +0000)]
Merge of the folding-reimpl-branch. Specific changes,
_split(): New implementation of ASCII line splitting which should do a
better job and not be subject to the various weird artifacts (bugs)
reported. This should also do a better job of higher-level syntactic
splits by trying first to split on semis, then commas, then
whitespace.
Use a Timbot-ly binary search for optimal non-ASCII split points for
better packing of header lines. This also lets us remove one
recursion call. Don't pass in firstline, but instead pass in the
actual line length we're shooting for. Also pass in the list of split
characters.
encode(): Pass in the list of split characters so applications can
have some control over what "higher level syntactic breaks" are.
Also,
decode_header(): Transform binascii.Errors which can occur when
decoding a base64 RFC 2047 header with bogus data, into an
email.Errors.HeaderParseError. Closes SF bug #696712.
Barry Warsaw [Thu, 6 Mar 2003 05:22:02 +0000 (05:22 +0000)]
Merge of the folding-reimpl-branch. Specific changes,
_handle_multipart(): Ensure that if the preamble exists but does not
end in a newline, a newline is still added. Without this, the
boundary separator will end up on the preamble line, breaking the MIME
structure.
_make_boundary(): Handle differences in the decimal point character
based on the locale.
Barry Warsaw [Thu, 6 Mar 2003 05:16:29 +0000 (05:16 +0000)]
Merge of the folding-reimpl-branch. Specific changes,
Charset: Alias __repr__ to __str__ for debugging.
header_encode(): When calling quopriMIME.header_encode(), set
maxlinelen=None so that the lower level function doesn't (also) try to
wrap/fold the line.
Barry Warsaw [Thu, 6 Mar 2003 05:14:20 +0000 (05:14 +0000)]
Merge of the folding-reimpl-branch. Specific changes,
_max_append(): Change the comparison so that the new string is
concatenated if it's less than or equal to the max length.
header_encode(): Allow for maxlinelen == None to mean, don't do any
line splitting. This is because this module is mostly used by higher
level abstractions (Header.py) which already ensures line lengths. We
do this in a cheapo way by setting the max_encoding to some insanely
<100k wink> large number.
Jack Jansen [Wed, 5 Mar 2003 21:16:06 +0000 (21:16 +0000)]
Two ancient and obscure bugs found and fixed by Donovan Preston (these
could be responsible for various unexplained problems with Python/OSA
interaction over the years):
- Enum values were passed as their string counterparts. Most applications
don't seem to mind this, but some do (InDesign).
- Attributes have never worked (!), as they were incorrectly passed
as parameters. Apparently nobody uses them much:-)
Jack Jansen [Wed, 5 Mar 2003 16:13:19 +0000 (16:13 +0000)]
Fix for bug #697546: don't auto-register the Python documentation
by putting the help book in an array. Somehow the fact that Python.app
(and, hence, pythonw) got an automatic help menu messed up Tkinter's
handling of the help menu.