diff options
author | Russ Allbery <rra@stanford.edu> | 2010-02-09 16:00:04 -0800 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2010-02-09 16:00:04 -0800 |
commit | d05f66dbff10b525d37f60ee01d5b9f94bf5192e (patch) | |
tree | 36657983c619cfb7260781b2607ead4afc3ad866 /util/concat.h | |
parent | ccf1cd7efa90bdcbe834e0d4ca144289cca97fd7 (diff) |
Update util code and import Kerberos portability glue
Use the Kerberos portability layer from rra-c-util 3.0 and avoid
Kerberos API calls deprecated on Heimdal. Break util/util.h into
separate header files and update all source files accordingly.
The test suite is not yet updated. That will come in subsequent
commits.
Diffstat (limited to 'util/concat.h')
-rw-r--r-- | util/concat.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/util/concat.h b/util/concat.h new file mode 100644 index 0000000..ef8b38d --- /dev/null +++ b/util/concat.h @@ -0,0 +1,36 @@ +/* + * Prototypes for string concatenation with dynamic memory allocation. + * + * Written by Russ Allbery <rra@stanford.edu> + * This work is hereby placed in the public domain by its author. + */ + +#ifndef UTIL_CONCAT_H +#define UTIL_CONCAT_H 1 + +#include <config.h> +#include <portable/macros.h> + +BEGIN_DECLS + +/* Default to a hidden visibility for all util functions. */ +#pragma GCC visibility push(hidden) + +/* Concatenate NULL-terminated strings into a newly allocated string. */ +char *concat(const char *first, ...) + __attribute__((__malloc__, __nonnull__(1))); + +/* + * Given a base path and a file name, create a newly allocated path string. + * The name will be appended to base with a / between them. Exceptionally, if + * name begins with a slash, it will be strdup'd and returned as-is. + */ +char *concatpath(const char *base, const char *name) + __attribute__((__malloc__, __nonnull__(2))); + +/* Undo default visibility change. */ +#pragma GCC visibility pop + +END_DECLS + +#endif /* UTIL_CONCAT_H */ |