Andrew Dalke
8c9091074b
Fixed problem identified by Georg. The special-case in-place code for replace
...
made a copy of the string using PyString_FromStringAndSize(s, n) and modify
the copied string in-place. However, 1 (and 0) character strings are shared
from a cache. This cause "A".replace("A", "a") to change the cached version
of "A" -- used by everyone.
Now may the copy with NULL as the string and do the memcpy manually. I've
added regression tests to check if this happens in the future. Perhaps
there should be a PyString_Copy for this case?
2006-05-25 17:53:00 +00:00
Fredrik Lundh
e68955cf32
needforspeed: new replace implementation by Andrew Dalke. replace is
...
now about 3x faster on my machine, for the replace tests from string-
bench.
2006-05-25 17:08:14 +00:00
Fredrik Lundh
0c71f88fc9
needforspeed: check for overflow in replace (from Andrew Dalke)
2006-05-25 16:46:54 +00:00
Fredrik Lundh
dfe503d3f0
needforspeed: _toupper/_tolower is a SUSv2 thing; fall back on ISO C
...
versions if they're not defined.
2006-05-25 16:10:12 +00:00
Fredrik Lundh
4b4e33ef14
needforspeed: make new upper/lower work properly for single-character
...
strings too... (thanks to georg brandl for spotting the exact problem
faster than anyone else)
2006-05-25 15:49:45 +00:00
Fredrik Lundh
39ccef607e
needforspeed: speed up upper and lower for 8-bit string objects.
...
(the unicode versions of these are still 2x faster on windows,
though...)
based on work by Andrew Dalke, with tweaks by yours truly.
2006-05-25 15:22:03 +00:00
Fredrik Lundh
763b50f9d9
docstring tweaks: count counts non-overlapping substrings, not
...
total number of occurences
2006-05-22 15:35:12 +00:00
Tim Peters
8931ff1f67
Teach PyString_FromFormat, PyErr_Format, and PyString_FromFormatV
...
about "%u", "%lu" and "%zu" formats.
Since PyString_FromFormat and PyErr_Format have exactly the same rules
(both inherited from PyString_FromFormatV), it would be good if someone
with more LaTeX Fu changed one of them to just point to the other.
Their docs were way out of synch before this patch, and I just did a
mass copy+paste to repair that.
Not a backport candidate (this is a new feature).
2006-05-13 23:28:20 +00:00
Martin v. Löwis
822f34a848
Revert 43315: Printing of %zd must be signed.
2006-05-13 13:34:04 +00:00
Thomas Wouters
568f1d0eed
Py_ssize_t issue; repr()'ing a very large string would result in a teensy
...
string, because of a cast to int.
2006-04-21 13:54:43 +00:00
Thomas Wouters
dc5f808cbc
Make s.replace() work with explicit counts exceeding 2Gb.
2006-04-19 15:38:01 +00:00
Thomas Wouters
4abb3660ca
Use Py_ssize_t to hold the 'width' argument to the ljust, rjust, center and
...
zfill stringmethods, so they can create strings larger than 2Gb on 64bit
systems (even win64.) The unicode versions of these methods already did this
right.
2006-04-19 14:50:15 +00:00
Skip Montanaro
429433b30b
C++ compiler cleanup: bunch-o-casts, plus use of unsigned loop index var in a couple places
2006-04-18 00:35:43 +00:00
Neal Norwitz
0e2cbabb8d
No need to cast a Py_ssize_t, use %z in PyErr_Format
2006-04-17 05:56:32 +00:00
Martin v. Löwis
5cb6936672
Make Py_BuildValue, PyObject_CallFunction and
...
PyObject_CallMethod aware of PY_SSIZE_T_CLEAN.
2006-04-14 09:08:42 +00:00
Martin v. Löwis
83687c98dc
Change more occurrences of maxsplit to Py_ssize_t.
2006-04-13 08:52:56 +00:00
Martin v. Löwis
9c83076b7b
Change maxsplit types to Py_ssize_t.
2006-04-13 08:37:17 +00:00
Martin v. Löwis
8ce358f5fe
Replace most INT_MAX with PY_SSIZE_T_MAX.
2006-04-13 07:22:51 +00:00
Anthony Baxter
a62862120d
More low-hanging fruit. Still need to re-arrange some code (or find a better
...
solution) in the same way as listobject.c got changed. Hoping for a better
solution.
2006-04-11 07:42:36 +00:00
Neal Norwitz
7e957d38b7
Remove dead code (reported by HP compiler).
...
Can probably be backported if anyone cares.
2006-04-06 08:17:41 +00:00
Georg Brandl
347b30042b
Remove unnecessary casts in type object initializers.
2006-03-30 11:57:00 +00:00
Neal Norwitz
7fbd6916b6
Get rid of warnings on some platforms by using %u for a size_t.
2006-03-25 23:55:39 +00:00
Neal Norwitz
2aa9a5dfdd
Use macro versions instead of function versions when we already know the type.
...
This will hopefully get rid of some Coverity warnings, be a hint to
developers, and be marginally faster.
Some asserts were added when the type is currently known, but depends
on values from another function.
2006-03-20 01:53:23 +00:00
Tim Peters
ae1d0c978d
Introduced symbol PY_FORMAT_SIZE_T. See the new comments
...
in pyport.h. Changed PyString_FromFormatV() to use it
instead of inlining its own maze of #if'ery.
2006-03-17 03:29:34 +00:00
Guido van Rossum
38fff8c4e4
Checking in the code for PEP 357.
...
This was mostly written by Travis Oliphant.
I've inspected it all; Neal Norwitz and MvL have also looked at it
(in an earlier incarnation).
2006-03-07 18:50:55 +00:00