* libltdl/argz.c (argz_add, argz_count): New functions.
* libltdl/argz.in.h: Declare them.
Report by Juan Manuel Guerrero <juan.guerrero@gmx.de>.
+2008-02-26 Karl Berry <karl@freefriends.org>
+
+ Sync from Libtool:
+ * libltdl/argz.c (argz_add, argz_count): New functions.
+ * libltdl/argz.in.h: Declare them.
+ Report by Juan Manuel Guerrero <juan.guerrero@gmx.de>.
+
2008-02-22 Bruno Haible <bruno@clisp.org>
* m4/time_r.m4 (gl_TIME_R): Also check that localtime_r's return type
/* argz.c -- argz implementation for non-glibc systems
- Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
}
+/* Add a string to the argz vector. */
+error_t
+argz_add (char **pargz, size_t *pargz_len, const char *str)
+{
+ return argz_append (pargz, pargz_len, str, strlen (str) + 1);
+}
+
+
error_t
argz_create_sep (const char *str, int delim, char **pargz, size_t *pargz_len)
{
}
}
}
+
+
+/* Count number of elements (null bytes) in argz vector. */
+
+size_t
+argz_count (const char *argz, size_t argz_len)
+{
+ size_t count = 0;
+
+ assert ((argz && argz_len) || (!argz && !argz_len));
+
+ while (argz_len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len + 1;
+ argz_len -= part_len + 1;
+ count++;
+ }
+
+ return count;
+}
/* lt__argz.h -- internal argz interface for non-glibc systems
- Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
LT_SCOPE error_t argz_append (char **pargz, size_t *pargz_len,
const char *buf, size_t buf_len);
+LT_SCOPE error_t argz_add (char **pargz, size_t *pargz_len,
+ const char *str);
LT_SCOPE error_t argz_create_sep(const char *str, int delim,
char **pargz, size_t *pargz_len);
LT_SCOPE error_t argz_insert (char **pargz, size_t *pargz_len,
LT_SCOPE char * argz_next (char *argz, size_t argz_len,
const char *entry);
LT_SCOPE void argz_stringify (char *argz, size_t argz_len, int sep);
+LT_SCOPE size_t argz_count (const char *argz, size_t argz_len);
#if defined(__cplusplus)
}