1 /* Name frobnication for compiling argp outside of glibc 2 Copyright (C) 1997-2020 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 Written by Miles Bader <miles@gnu.ai.mit.edu>. 5 6 This program is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 18 19 #if !_LIBC 20 /* This code is written for inclusion in gnu-libc, and uses names in the 21 namespace reserved for libc. If we're not compiling in libc, define those 22 names to be the normal ones instead. */ 23 24 /* argp-parse functions */ 25 #undef __argp_parse 26 #define __argp_parse argp_parse 27 #undef __option_is_end 28 #define __option_is_end _option_is_end 29 #undef __option_is_short 30 #define __option_is_short _option_is_short 31 #undef __argp_input 32 #define __argp_input _argp_input 33 34 /* argp-help functions */ 35 #undef __argp_help 36 #define __argp_help argp_help 37 #undef __argp_error 38 #define __argp_error argp_error 39 #undef __argp_failure 40 #define __argp_failure argp_failure 41 #undef __argp_state_help 42 #define __argp_state_help argp_state_help 43 #undef __argp_usage 44 #define __argp_usage argp_usage 45 46 /* argp-fmtstream functions */ 47 #undef __argp_make_fmtstream 48 #define __argp_make_fmtstream argp_make_fmtstream 49 #undef __argp_fmtstream_free 50 #define __argp_fmtstream_free argp_fmtstream_free 51 #undef __argp_fmtstream_putc 52 #define __argp_fmtstream_putc argp_fmtstream_putc 53 #undef __argp_fmtstream_puts 54 #define __argp_fmtstream_puts argp_fmtstream_puts 55 #undef __argp_fmtstream_write 56 #define __argp_fmtstream_write argp_fmtstream_write 57 #undef __argp_fmtstream_printf 58 #define __argp_fmtstream_printf argp_fmtstream_printf 59 #undef __argp_fmtstream_set_lmargin 60 #define __argp_fmtstream_set_lmargin argp_fmtstream_set_lmargin 61 #undef __argp_fmtstream_set_rmargin 62 #define __argp_fmtstream_set_rmargin argp_fmtstream_set_rmargin 63 #undef __argp_fmtstream_set_wmargin 64 #define __argp_fmtstream_set_wmargin argp_fmtstream_set_wmargin 65 #undef __argp_fmtstream_point 66 #define __argp_fmtstream_point argp_fmtstream_point 67 #undef __argp_fmtstream_update 68 #define __argp_fmtstream_update _argp_fmtstream_update 69 #undef __argp_fmtstream_ensure 70 #define __argp_fmtstream_ensure _argp_fmtstream_ensure 71 #undef __argp_fmtstream_lmargin 72 #define __argp_fmtstream_lmargin argp_fmtstream_lmargin 73 #undef __argp_fmtstream_rmargin 74 #define __argp_fmtstream_rmargin argp_fmtstream_rmargin 75 #undef __argp_fmtstream_wmargin 76 #define __argp_fmtstream_wmargin argp_fmtstream_wmargin 77 78 /* normal libc functions we call */ 79 #undef __flockfile 80 #define __flockfile flockfile 81 #undef __funlockfile 82 #define __funlockfile funlockfile 83 #undef __mempcpy 84 #define __mempcpy mempcpy 85 #undef __sleep 86 #define __sleep sleep 87 #undef __strcasecmp 88 #define __strcasecmp strcasecmp 89 #undef __strchrnul 90 #define __strchrnul strchrnul 91 #undef __strerror_r 92 #define __strerror_r strerror_r 93 #undef __strndup 94 #define __strndup strndup 95 #undef __vsnprintf 96 #define __vsnprintf vsnprintf 97 98 #if defined(HAVE_DECL_CLEARERR_UNLOCKED) && !HAVE_DECL_CLEARERR_UNLOCKED 99 # define clearerr_unlocked(x) clearerr (x) 100 #endif 101 #if defined(HAVE_DECL_FEOF_UNLOCKED) && !HAVE_DECL_FEOF_UNLOCKED 102 # define feof_unlocked(x) feof (x) 103 #endif 104 #if defined(HAVE_DECL_FERROR_UNLOCKED) && !HAVE_DECL_FERROR_UNLOCKED 105 # define ferror_unlocked(x) ferror (x) 106 #endif 107 #if defined(HAVE_DECL_FFLUSH_UNLOCKED) && !HAVE_DECL_FFLUSH_UNLOCKED 108 # define fflush_unlocked(x) fflush (x) 109 #endif 110 #if defined(HAVE_DECL_FGETS_UNLOCKED) && !HAVE_DECL_FGETS_UNLOCKED 111 # define fgets_unlocked(x,y,z) fgets (x,y,z) 112 #endif 113 #if defined(HAVE_DECL_FPUTC_UNLOCKED) && !HAVE_DECL_FPUTC_UNLOCKED 114 # define fputc_unlocked(x,y) fputc (x,y) 115 #endif 116 #if defined(HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED 117 # define fputs_unlocked(x,y) fputs (x,y) 118 #endif 119 #if defined(HAVE_DECL_FREAD_UNLOCKED) && !HAVE_DECL_FREAD_UNLOCKED 120 # define fread_unlocked(w,x,y,z) fread (w,x,y,z) 121 #endif 122 #if defined(HAVE_DECL_FWRITE_UNLOCKED) && !HAVE_DECL_FWRITE_UNLOCKED 123 # define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z) 124 #endif 125 #if defined(HAVE_DECL_GETC_UNLOCKED) && !HAVE_DECL_GETC_UNLOCKED 126 # define getc_unlocked(x) getc (x) 127 #endif 128 #if defined(HAVE_DECL_GETCHAR_UNLOCKED) && !HAVE_DECL_GETCHAR_UNLOCKED 129 # define getchar_unlocked() getchar () 130 #endif 131 #if defined(HAVE_DECL_PUTC_UNLOCKED) && !HAVE_DECL_PUTC_UNLOCKED 132 # define putc_unlocked(x,y) putc (x,y) 133 #endif 134 #if defined(HAVE_DECL_PUTCHAR_UNLOCKED) && !HAVE_DECL_PUTCHAR_UNLOCKED 135 # define putchar_unlocked(x) putchar (x) 136 #endif 137 138 #endif /* !_LIBC */ 139 140 #ifndef __set_errno 141 #define __set_errno(e) (errno = (e)) 142 #endif 143 144 #if defined GNULIB_ARGP_DISABLE_DIRNAME 145 # define __argp_base_name(arg) arg 146 #elif defined GNULIB_ARGP_EXTERN_BASENAME 147 extern char *__argp_base_name (const char *arg); 148 #else 149 # include "dirname.h" 150 # define __argp_base_name last_component 151 #endif 152 153 #if defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 154 # define __argp_short_program_name() (program_invocation_short_name) 155 #else 156 extern char *__argp_short_program_name (void); 157 #endif 158