diff Objects/stringobject.c @ 13460:e6d17f15ae6a legacy-trunk

Somebody started playing with const, so of course the outcome was cascades of warnings about mismatching const decls. Overall, I think const creates lots of headaches and solves almost nothing. Added enough consts to shut up the warnings, but this did require casting away const in one spot too (another usual outcome of starting down this path): the function mymemreplace can't return const char*, but sometimes wants to return its first argument as-is, which latter must be declared const char* in order to avoid const warnings at mymemreplace's call sites. So, in the case the function wants to return the first arg, that arg's declared constness must be subverted.
author Tim Peters <tim.peters@gmail.com>
date Sun, 09 Jul 2000 08:02:21 +0000
parents 0f95c93f200b
children 16e490462e6b
line wrap: on
line diff
--- a/Objects/stringobject.c	Sun Jul 09 07:04:36 2000 +0000
+++ b/Objects/stringobject.c	Sun Jul 09 08:02:21 2000 +0000
@@ -609,7 +609,7 @@
 
 
 static PyObject *
-split_whitespace(char *s, int len, int maxsplit)
+split_whitespace(const char *s, int len, int maxsplit)
 {
 	int i, j, err;
 	PyObject* item;
@@ -1412,7 +1412,7 @@
   MEM, the function returns -1.
 */
 static int 
-mymemfind(char *mem, int len, char *pat, int pat_len)
+mymemfind(const char *mem, int len, const char *pat, int pat_len)
 {
 	register int ii;
 
@@ -1435,7 +1435,7 @@
            mem=11111 and pat==11 also return 2.
  */
 static int 
-mymemcnt(char *mem, int len, char *pat, int pat_len)
+mymemcnt(const char *mem, int len, const char *pat, int pat_len)
 {
 	register int offset = 0;
 	int nfound = 0;
@@ -1471,10 +1471,10 @@
        NULL if an error occurred.
 */
 static char *
-mymemreplace(char *str, int len,	/* input string */
-             char *pat, int pat_len,	/* pattern string to find */
-             char *sub, int sub_len,	/* substitution string */
-             int count,			/* number of replacements */
+mymemreplace(const char *str, int len,		/* input string */
+             const char *pat, int pat_len,	/* pattern string to find */
+             const char *sub, int sub_len,	/* substitution string */
+             int count,				/* number of replacements */
              int *out_len)
 {
 	char *out_s;
@@ -1526,7 +1526,7 @@
 
   return_same:
 	*out_len = -1;
-	return str;
+	return (char*)str;	/* have to cast away constness here */
 }