summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1995-03-14 17:43:02 (GMT)
committerGuido van Rossum <guido@python.org>1995-03-14 17:43:02 (GMT)
commit8c1688e132c42db3ffa39faa7920be8f131cd74e (patch)
tree1e32af56b8ab23c85e38391c9288c1d571c29f43
parent55d2f3997e208a290ee3c2f356ebb51c32f4da13 (diff)
downloadcpython-8c1688e132c42db3ffa39faa7920be8f131cd74e.zip
cpython-8c1688e132c42db3ffa39faa7920be8f131cd74e.tar.gz
cpython-8c1688e132c42db3ffa39faa7920be8f131cd74e.tar.bz2
add dummy base to atoi/atol; careful about negative start indices in find/count
-rw-r--r--Lib/string.py16
-rw-r--r--Lib/stringold.py16
2 files changed, 22 insertions, 10 deletions
diff --git a/Lib/string.py b/Lib/string.py
index 8a7c8fa..f69d62d 100644
--- a/Lib/string.py
+++ b/Lib/string.py
@@ -115,7 +115,7 @@ def rindex(s, sub, i = 0):
# Count non-overlapping occurrences of substring
def count(s, sub, i = 0):
- if i < 0: i = i + len(s)
+ if i < 0: i = max(0, i + len(s))
n = len(sub)
m = len(s) + 1 - n
if n == 0: return m-i
@@ -130,7 +130,7 @@ def count(s, sub, i = 0):
# Find substring, return -1 if not found
def find(s, sub, i = 0):
- if i < 0: i = i + len(s)
+ if i < 0: i = max(0, i + len(s))
n = len(sub)
m = len(s) + 1 - n
while i < m:
@@ -140,7 +140,7 @@ def find(s, sub, i = 0):
# Find last substring, return -1 if not found
def rfind(s, sub, i = 0):
- if i < 0: i = i + len(s)
+ if i < 0: i = max(0, i + len(s))
n = len(sub)
m = len(s) + 1 - n
r = -1
@@ -168,7 +168,10 @@ def atof(str):
raise ValueError, 'non-float argument to string.atof'
# Convert string to integer
-def atoi(str):
+def atoi(str, base=10):
+ if base != 10:
+ # We only get here if strop doesn't define atoi()
+ raise ValueError, "this string.atoi doesn't support base != 10"
sign = ''
s = str
if s and s[0] in '+-':
@@ -183,7 +186,10 @@ def atoi(str):
return eval(sign + s)
# Convert string to long integer
-def atol(str):
+def atol(str, base=10):
+ if base != 10:
+ # We only get here if strop doesn't define atol()
+ raise ValueError, "this string.atol doesn't support base != 10"
sign = ''
s = str
if s and s[0] in '+-':
diff --git a/Lib/stringold.py b/Lib/stringold.py
index 8a7c8fa..f69d62d 100644
--- a/Lib/stringold.py
+++ b/Lib/stringold.py
@@ -115,7 +115,7 @@ def rindex(s, sub, i = 0):
# Count non-overlapping occurrences of substring
def count(s, sub, i = 0):
- if i < 0: i = i + len(s)
+ if i < 0: i = max(0, i + len(s))
n = len(sub)
m = len(s) + 1 - n
if n == 0: return m-i
@@ -130,7 +130,7 @@ def count(s, sub, i = 0):
# Find substring, return -1 if not found
def find(s, sub, i = 0):
- if i < 0: i = i + len(s)
+ if i < 0: i = max(0, i + len(s))
n = len(sub)
m = len(s) + 1 - n
while i < m:
@@ -140,7 +140,7 @@ def find(s, sub, i = 0):
# Find last substring, return -1 if not found
def rfind(s, sub, i = 0):
- if i < 0: i = i + len(s)
+ if i < 0: i = max(0, i + len(s))
n = len(sub)
m = len(s) + 1 - n
r = -1
@@ -168,7 +168,10 @@ def atof(str):
raise ValueError, 'non-float argument to string.atof'
# Convert string to integer
-def atoi(str):
+def atoi(str, base=10):
+ if base != 10:
+ # We only get here if strop doesn't define atoi()
+ raise ValueError, "this string.atoi doesn't support base != 10"
sign = ''
s = str
if s and s[0] in '+-':
@@ -183,7 +186,10 @@ def atoi(str):
return eval(sign + s)
# Convert string to long integer
-def atol(str):
+def atol(str, base=10):
+ if base != 10:
+ # We only get here if strop doesn't define atol()
+ raise ValueError, "this string.atol doesn't support base != 10"
sign = ''
s = str
if s and s[0] in '+-':