bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Remove xalloc.h dependency from parse-duration


From: Bruce Korb
Subject: Re: Remove xalloc.h dependency from parse-duration
Date: Thu, 03 Mar 2011 15:09:37 -0800
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20101125 SUSE/3.0.11 Thunderbird/3.0.11

On 03/03/11 14:35, Eric Blake wrote:
>> -  if (pT != NUL)
>> +  if (pz == NULL)
>> +    return BAD_TIME;
> 
> Here, you want errno to be ENOMEM, but mingw doesn't guarantee that...

Ick.

> ACK with that fixed.

ACK:

Subject: [PATCH] parse-duration: remove xalloc.h dependency

* lib/parse-duration.c (parse_period): handle NULL return from
strdup instead of calling xstrdup().
* modules/parse-duration: remove "xalloc" dependency
---
 ChangeLog              |    7 +++++++
 lib/parse-duration.c   |   16 +++++++++++-----
 modules/parse-duration |    1 -
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 1b9a2f3..af2abe5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-03-03  Bruce Korb  <address@hidden>
+
+       parse-duration: remove xalloc.h dependency
+       * lib/parse-duration.c (parse_period): handle NULL return from
+       strdup instead of calling xstrdup().
+       * modules/parse-duration: remove "xalloc" dependency
+
 2011-03-03  Matthew Booth  <address@hidden>

        bootstrap: honor m4_base when running aclocal
diff --git a/lib/parse-duration.c b/lib/parse-duration.c
index 8c28133..0a8c4ad 100644
--- a/lib/parse-duration.c
+++ b/lib/parse-duration.c
@@ -26,7 +26,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "xalloc.h"

 #ifndef NUL
 #define NUL '\0'
@@ -381,7 +380,7 @@ parse_time (cch_t * pz)
 }

 /* Returns a substring of the given string, with spaces at the beginning and at
-   the end destructively removed.  */
+   the end destructively removed, per SNOBOL.  */
 static char *
 trim (char * pz)
 {
@@ -406,13 +405,20 @@ trim (char * pz)
 static time_t
 parse_period (cch_t * in_pz)
 {
-  char * pz   = xstrdup (in_pz);
-  char * pT   = strchr (pz, 'T');
+  char * pT;
   char * ps;
+  char * pz   = strdup (in_pz);
   void * fptr = pz;
   time_t res  = 0;

-  if (pT != NUL)
+  if (pz == NULL)
+    {
+      errno = ENOMEM;
+      return BAD_TIME;
+    }
+
+  pT = strchr (pz, 'T');
+  if (pT != NULL)
     {
       *(pT++) = NUL;
       pz = trim (pz);
diff --git a/modules/parse-duration b/modules/parse-duration
index 2e8f3d1..e36c917 100644
--- a/modules/parse-duration
+++ b/modules/parse-duration
@@ -6,7 +6,6 @@ lib/parse-duration.h
 lib/parse-duration.c

 Depends-on:
-xalloc

 configure.ac:
 AC_REQUIRE([AC_C_INLINE])
-- 
1.7.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]