From 4e28f19f310846b3c3c95115d5065d1c459f6eb1 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 11 Nov 1998 05:58:08 +0000 Subject: [PATCH] dummy commit before egcs merge --- include/libiberty.h | 53 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/include/libiberty.h b/include/libiberty.h index 498a7f0ff99..6fb29d21223 100644 --- a/include/libiberty.h +++ b/include/libiberty.h @@ -10,6 +10,10 @@ #ifndef LIBIBERTY_H #define LIBIBERTY_H +#ifdef __cplusplus +extern "C" { +#endif + #include "ansidecl.h" /* Build an argument vector from a string. Allocates memory using @@ -21,12 +25,22 @@ extern char **buildargv PARAMS ((char *)); extern void freeargv PARAMS ((char **)); +/* Duplicate an argument vector. Allocates memory using malloc. Use + freeargv to free the vector. */ + +extern char **dupargv PARAMS ((char **)); + + /* Return the last component of a path name. Note that we can't use a 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__) +extern char *basename PARAMS ((const char *)); +#else extern char *basename (); +#endif /* Concatenate an arbitrary number of strings, up to (char *) NULL. Allocates memory using xmalloc. */ @@ -97,8 +111,7 @@ extern int xatexit PARAMS ((void (*fn) (void))); #ifndef __GNUC__ extern void xexit PARAMS ((int status)); #else -typedef void libiberty_voidfn PARAMS ((int status)); -__volatile__ libiberty_voidfn xexit; +void xexit PARAMS ((int status)) __attribute__ ((noreturn)); #endif /* Set the program name used by xmalloc. */ @@ -107,20 +120,20 @@ extern void xmalloc_set_program_name PARAMS ((const char *)); /* Allocate memory without fail. If malloc fails, this will print a message to stderr (using the name set by xmalloc_set_program_name, - if any) and then call xexit. + if any) and then call xexit. */ - FIXME: We do not declare the parameter type (size_t) in order to - avoid conflicts with other declarations of xmalloc that exist in - programs which use libiberty. */ - -extern PTR xmalloc (); +#ifdef ANSI_PROTOTYPES +/* Get a definition for size_t. */ +#include +#endif +extern PTR xmalloc PARAMS ((size_t)); /* Reallocate memory without fail. This works like xmalloc. FIXME: We do not declare the parameter types for the same reason as xmalloc. */ -extern PTR xrealloc (); +extern PTR xrealloc PARAMS ((PTR, size_t)); /* Copy a string into a memory buffer without fail. */ @@ -137,4 +150,26 @@ extern void hex_init PARAMS ((void)); the argument being performed exactly once. */ #define hex_value(c) (_hex_value[(unsigned char) (c)]) +/* Definitions used by the pexecute routine. */ + +#define PEXECUTE_FIRST 1 +#define PEXECUTE_LAST 2 +#define PEXECUTE_ONE (PEXECUTE_FIRST + PEXECUTE_LAST) +#define PEXECUTE_SEARCH 4 +#define PEXECUTE_VERBOSE 8 + +/* Execute a program. */ + +extern int pexecute PARAMS ((const char *, char * const *, const char *, + const char *, char **, char **, int)); + +/* Wait for pexecute to finish. */ + +extern int pwait PARAMS ((int, int *, int)); + +#ifdef __cplusplus +} +#endif + + #endif /* ! defined (LIBIBERTY_H) */ -- 2.30.2