changeset 79905:de27c7b1b268

(pop_stat, pop_last): Fix last fix.
author Chong Yidong <cyd@stupidchicken.com>
date Tue, 22 Jan 2008 15:36:05 +0000
parents e790904c1f51
children dbb6bb5288bf
files lib-src/pop.c
diffstat 1 files changed, 4 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lib-src/pop.c	Tue Jan 22 15:22:54 2008 +0000
+++ b/lib-src/pop.c	Tue Jan 22 15:36:05 2008 +0000
@@ -381,25 +381,18 @@
   errno = 0;
   *count = strtol (&fromserver[4], &end_ptr, 10);
   /* Check validity of string-to-integer conversion. */
-  if (fromserver[4] == 0 || *end_ptr != 0 || errno)
+  if (fromserver + 4 == end_ptr || *end_ptr != ' ' || errno)
     {
       strcpy (pop_error, "Unexpected response from POP server in pop_stat");
       pop_trash (server);
       return (-1);
     }
 
-  fromserver = index (&fromserver[4], ' ');
-  if (! fromserver)
-    {
-      strcpy (pop_error,
-	      "Badly formatted response from server in pop_stat");
-      pop_trash (server);
-      return (-1);
-    }
+  fromserver = end_ptr;
 
   errno = 0;
   *size = strtol (fromserver + 1, &end_ptr, 10);
-  if (*(fromserver + 1) == 0 || *end_ptr != 0 || errno)
+  if (fromserver + 1 == end_ptr || errno)
     {
       strcpy (pop_error, "Unexpected response from POP server in pop_stat");
       pop_trash (server);
@@ -933,7 +926,7 @@
       int count;
       errno = 0;
       count = strtol (&fromserver[4], &end_ptr, 10);
-      if (fromserver[4] == 0 || *end_ptr != 0 || errno)
+      if (fromserver + 4 == end_ptr || errno)
 	{
 	  strcpy (pop_error, "Unexpected response from server in pop_last");
 	  pop_trash (server);