Browse Source

Changed strto[l|ul|ull] functions to have correct signature

Updated man page as per Giacomo's comment

Change-Id: Id4a395dd997f6aeb4174aa6a859ed0aa38126341
Signed-off-by: Keith Poole <keith.poole@gmail.com>
Keith Poole 8 years ago
parent
commit
643cd6356b

+ 6 - 6
sys/include/libc.h

@@ -396,12 +396,12 @@ extern	int	putenv(char*, char*);
 extern	void	qsort(void*, int32_t, int32_t,
 				int (*)(const void*, const void*));
 extern	int	setjmp(jmp_buf);
-extern	double	strtod(char*, char**);
-extern	int32_t	strtol(char*, char**, int);
-extern	uint32_t	strtoul(char*, char**, int);
-extern	int64_t	strtoll(char*, char**, int);
-extern	uint64_t	strtoull(char*, char**, int);
-extern	void	sysfatal(char*, ...);
+extern	double	strtod(const char*, const char**);
+extern	int32_t	strtol(const char*, char**, int);
+extern	uint32_t	strtoul(const char*, char**, int);
+extern	int64_t	strtoll(const char*, char**, int);
+extern	uint64_t	strtoull(const char*, char**, int);
+extern	void	sysfatal(const char*, ...);
 #pragma	varargck	argpos	sysfatal	1
 extern	void	syslog(int, char*, char*, ...);
 #pragma	varargck	argpos	syslog	3

+ 4 - 4
sys/man/2/atof

@@ -27,16 +27,16 @@ double	charstod(int (*f)(void *), void *a)
 double	strtod(char *nptr, char **rptr)
 .PP
 .B
-long	strtol(char *nptr, char **rptr, int base)
+long	strtol(const char *nptr, char **rptr, int base)
 .PP
 .B
-vlong	strtoll(char *nptr, char **rptr, int base)
+vlong	strtoll(const char *nptr, char **rptr, int base)
 .PP
 .B
-ulong	strtoul(char *nptr, char **rptr, int base)
+ulong	strtoul(const char *nptr, char **rptr, int base)
 .PP
 .B
-uvlong	strtoull(char *nptr, char **rptr, int base)
+uvlong	strtoull(const char *nptr, char **rptr, int base)
 .fi
 .SH DESCRIPTION
 .IR Atof ,

+ 2 - 2
sys/src/libc/port/strtol.c

@@ -14,7 +14,7 @@
 #define LONG_MIN	-2147483648L
 
 int32_t
-strtol(char *nptr, char **endptr, int base)
+strtol(const char *nptr, char **endptr, int base)
 {
 	char *p;
 	int32_t n, nn, m;
@@ -98,7 +98,7 @@ Return:
 	if(ndig == 0)
 		p = nptr;
 	if(endptr)
-		*endptr = p;
+		*endptr = (char*)p;
 	if(ovfl){
 		if(neg)
 			return LONG_MIN;

+ 5 - 1
sys/src/libc/port/strtoll.c

@@ -14,7 +14,11 @@
 #define VLONG_MIN	(1LL<<63)
 
 int64_t
+<<<<<<< HEAD
 strtoll(char *nptr, char **endptr, int base)
+=======
+strtoll(const char *nptr, char **endptr, int base)
+>>>>>>> 064e99309... Changed strto[l|ul|ull] functions to have correct signature
 {
 	char *p;
 	int64_t n, nn, m;
@@ -98,7 +102,7 @@ Return:
 	if(ndig == 0)
 		p = nptr;
 	if(endptr)
-		*endptr = p;
+		*endptr = (char *)p;
 	if(ovfl){
 		if(neg)
 			return VLONG_MIN;

+ 5 - 1
sys/src/libc/port/strtoul.c

@@ -13,7 +13,11 @@
 #define ULONG_MAX	4294967295UL
 
 uint32_t
+<<<<<<< HEAD
 strtoul(char *nptr, char **endptr, int base)
+=======
+strtoul(const char *nptr, char **endptr, int base)
+>>>>>>> 064e99309... Changed strto[l|ul|ull] functions to have correct signature
 {
 	char *p;
 	uint32_t n, nn, m;
@@ -97,7 +101,7 @@ strtoul(char *nptr, char **endptr, int base)
 	if(ndig == 0)
 		p = nptr;
 	if(endptr)
-		*endptr = p;
+		*endptr = (char*)p;
 	if(ovfl)
 		return ULONG_MAX;
 	if(neg)

+ 2 - 2
sys/src/libc/port/strtoull.c

@@ -13,7 +13,7 @@
 #define UVLONG_MAX	(1LL<<63)
 
 uint64_t
-strtoull(char *nptr, char **endptr, int base)
+strtoull(const char *nptr, char **endptr, int base)
 {
 	char *p;
 	uint64_t n, nn, m;
@@ -97,7 +97,7 @@ Return:
 	if(ndig == 0)
 		p = nptr;
 	if(endptr)
-		*endptr = p;
+		*endptr = (char *)p;
 	if(ovfl)
 		return UVLONG_MAX;
 	if(neg)

+ 1 - 1
sys/src/libip/parseip.c

@@ -180,7 +180,7 @@ v4parsecidr(uint8_t *addr, uint8_t *mask, char *from)
 
 	if(*p == '/'){
 		/* as a number of prefix bits */
-		i = strtoul(p+1, &p, 0);
+		i = strtoul((const char*)p+1, &p, 0);
 		if(i > 32)
 			i = 32;
 		memset(mask, 0, IPv4addrlen);

+ 1 - 1
sys/src/liblex/yyless.c

@@ -18,7 +18,7 @@ extern	int	yyprevious;
 void	yyunput(int c);
 
 void
-yyless(int x)
+yyless(uintptr_t x)
 {
 	char *lastch, *ptr;