mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-02-17 15:10:02 +08:00
* 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:
parent
82e6dd805b
commit
fa901264b3
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user