* libltdl/argz.c (argz_add, argz_count): New functions.

* libltdl/argz_.h: Declare them.
Report by Juan Manuel Guerrero <juan.guerrero@gmx.de>.
This commit is contained in:
Karl Berry 2008-02-26 22:18:03 +00:00 committed by Ralf Wildenhues
parent 82e6dd805b
commit fa901264b3
3 changed files with 40 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2008-02-26 Karl Berry <karl@freefriends.org>
* libltdl/argz.c (argz_add, argz_count): New functions.
* libltdl/argz_.h: Declare them.
Report by Juan Manuel Guerrero <juan.guerrero@gmx.de>.
2008-02-20 Peter O'Gorman <peter@pogma.com>
* libltdl/m4/libtool.m4 (_LT_LANG_GCJ_CONFIG): Do not call the

View File

@ -1,6 +1,6 @@
/* 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
@ -76,6 +76,14 @@ argz_append (char **pargz, size_t *pargz_len, const char *buf, size_t buf_len)
}
/* 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)
{
@ -223,3 +231,24 @@ argz_stringify (char *argz, size_t argz_len, int sep)
}
}
}
/* 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;
}

View File

@ -1,6 +1,6 @@
/* 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
@ -49,6 +49,8 @@ extern "C" {
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,
@ -56,6 +58,7 @@ 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)
}