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