Written by Cygnus Support, 1994.
The libiberty library provides a number of functions which are
missing on some operating systems. We do not declare those here,
to avoid conflicts with the system header files on operating
systems that do support those functions. In this file we only
declare those functions which are specific to libiberty. */
#ifndef LIBIBERTY_H
#define LIBIBERTY_H
#ifdef __cplusplus
extern "C" {
#endif
#include "ansidecl.h"
malloc. Use freeargv to free the vector. */
extern char **buildargv PARAMS ((char *));
extern void freeargv PARAMS ((char **));
freeargv to free the vector. */
extern char **dupargv PARAMS ((char **));
prototype here because the parameter is declared inconsistently
across different systems, sometimes as "char *" and sometimes as
"const char *" */
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__)
extern char *basename PARAMS ((const char *));
#else
extern char *basename ();
#endif
Allocates memory using xmalloc. */
extern char *concat PARAMS ((const char *, ...));
extern int fdmatch PARAMS ((int fd1, int fd2));
extern long get_run_time PARAMS ((void));
extern char *choose_temp_base PARAMS ((void));
extern const char *spaces PARAMS ((int count));
string. */
extern int errno_max PARAMS ((void));
"EINVAL"). */
extern const char *strerrno PARAMS ((int));
extern int strtoerrno PARAMS ((const char *));
extern char *xstrerror PARAMS ((int));
string. */
extern int signo_max PARAMS ((void));
(e.g., strsignal (SIGHUP) returns something like "Hangup"). */
We still document its existence though. */
"SIGHUP"). */
extern const char *strsigno PARAMS ((int));
extern int strtosigno PARAMS ((const char *));
extern int xatexit PARAMS ((void (*fn) (void)));
#ifndef __GNUC__
extern void xexit PARAMS ((int status));
#else
void xexit PARAMS ((int status)) __attribute__ ((noreturn));
#endif
extern void xmalloc_set_program_name PARAMS ((const char *));
message to stderr (using the name set by xmalloc_set_program_name,
if any) and then call xexit. */
#ifdef ANSI_PROTOTYPES
#include <stddef.h>
#endif
extern PTR xmalloc PARAMS ((size_t));
FIXME: We do not declare the parameter types for the same reason as
xmalloc. */
extern PTR xrealloc PARAMS ((PTR, size_t));
xmalloc. */
extern PTR xcalloc PARAMS ((size_t, size_t));
extern char *xstrdup PARAMS ((const char *));
#define _hex_array_size 256
#define _hex_bad 99
extern char _hex_value[_hex_array_size];
extern void hex_init PARAMS ((void));
#define hex_p(c) (hex_value (c) != _hex_bad)
the argument being performed exactly once. */
#define hex_value(c) (_hex_value[(unsigned char) (c)])
#define PEXECUTE_FIRST 1
#define PEXECUTE_LAST 2
#define PEXECUTE_ONE (PEXECUTE_FIRST + PEXECUTE_LAST)
#define PEXECUTE_SEARCH 4
#define PEXECUTE_VERBOSE 8
extern int pexecute PARAMS ((const char *, char * const *, const char *,
const char *, char **, char **, int));
extern int pwait PARAMS ((int, int *, int));
#ifdef __cplusplus
}
#endif
#endif