diff --git a/bash-5.1/.cargo/config.toml b/bash-5.1/.cargo/config.toml index 75e93c385bd56c7098600e76ed55f0e9128d965c..11bdee268c6482560d4bb54326142673fb3ff073 100644 --- a/bash-5.1/.cargo/config.toml +++ b/bash-5.1/.cargo/config.toml @@ -1,4 +1,3 @@ - [source.crates-io] replace-with = "vendored-sources" diff --git a/bash-5.1/README b/bash-5.1/README index 70b7a8517415c2fcf324693ee33aca429fd99977..d230927b386f3d228590cac2012b447a606cbcaa 100644 --- a/bash-5.1/README +++ b/bash-5.1/README @@ -1,3 +1,5 @@ +#This work was modified by UnionTech Software Technology Co., Ltd. in 2023-06-20 + Introduction ============ diff --git a/bash-5.1/r_bash/src/lib.rs b/bash-5.1/r_bash/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..4a7505d6942fd3f36797dbf8bcaabddc113421b0 --- /dev/null +++ b/bash-5.1/r_bash/src/lib.rs @@ -0,0 +1,14373 @@ +/* automatically generated by rust-bindgen */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit +where + Storage: AsRef<[u8]> + AsMut<[u8]>, +{ + storage: Storage, + align: [Align; 0], +} +impl __BindgenBitfieldUnit +where + Storage: AsRef<[u8]> + AsMut<[u8]>, +{ + #[inline] + pub fn new(storage: Storage) -> Self { + Self { storage, align: [] } + } + #[inline] + pub fn get_bit(&self, index: usize) -> bool { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = self.storage.as_ref()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; + byte & mask == mask + } + #[inline] + pub fn set_bit(&mut self, index: usize, val: bool) { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = &mut self.storage.as_mut()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; + if val { + *byte |= mask; + } else { + *byte &= !mask; + } + } + #[inline] + pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + let mut val = 0; + for i in 0..(bit_width as usize) { + if self.get_bit(i + bit_offset) { + let index = if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; + val |= 1 << index; + } + } + val + } + #[inline] + pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + for i in 0..(bit_width as usize) { + let mask = 1 << i; + let val_bit_is_set = val & mask == mask; + let index = if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; + self.set_bit(index + bit_offset, val_bit_is_set); + } + } +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { + #[inline] + pub fn new() -> Self { + __IncompleteArrayField(::core::marker::PhantomData, []) + } + #[inline] + pub unsafe fn as_ptr(&self) -> *const T { + ::core::mem::transmute(self) + } + #[inline] + pub unsafe fn as_mut_ptr(&mut self) -> *mut T { + ::core::mem::transmute(self) + } + #[inline] + pub unsafe fn as_slice(&self, len: usize) -> &[T] { + ::core::slice::from_raw_parts(self.as_ptr(), len) + } + #[inline] + pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { + ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) + } +} +impl ::core::fmt::Debug for __IncompleteArrayField { + fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + fmt.write_str("__IncompleteArrayField") + } +} +impl ::core::clone::Clone for __IncompleteArrayField { + #[inline] + fn clone(&self) -> Self { + Self::new() + } +} +pub const __EXTENSIONS__: u32 = 1; +pub const _ALL_SOURCE: u32 = 1; +pub const _GNU_SOURCE: u32 = 1; +pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; +pub const _TANDEM_SOURCE: u32 = 1; +pub const JOB_CONTROL: u32 = 1; +pub const ALIAS: u32 = 1; +pub const PUSHD_AND_POPD: u32 = 1; +pub const BRACE_EXPANSION: u32 = 1; +pub const READLINE: u32 = 1; +pub const BANG_HISTORY: u32 = 1; +pub const HISTORY: u32 = 1; +pub const HELP_BUILTIN: u32 = 1; +pub const RESTRICTED_SHELL: u32 = 1; +pub const PROCESS_SUBSTITUTION: u32 = 1; +pub const PROMPT_STRING_DECODE: u32 = 1; +pub const SELECT_COMMAND: u32 = 1; +pub const COMMAND_TIMING: u32 = 1; +pub const ARRAY_VARS: u32 = 1; +pub const DPAREN_ARITHMETIC: u32 = 1; +pub const EXTENDED_GLOB: u32 = 1; +pub const EXTGLOB_DEFAULT: u32 = 0; +pub const COND_COMMAND: u32 = 1; +pub const COND_REGEXP: u32 = 1; +pub const COPROCESS_SUPPORT: u32 = 1; +pub const ARITH_FOR_COMMAND: u32 = 1; +pub const NETWORK_REDIRECTIONS: u32 = 1; +pub const PROGRAMMABLE_COMPLETION: u32 = 1; +pub const DEBUGGER: u32 = 1; +pub const MEMSCRAMBLE: u32 = 1; +pub const CASEMOD_ATTRS: u32 = 1; +pub const CASEMOD_EXPANSIONS: u32 = 1; +pub const GLOBASCII_DEFAULT: u32 = 1; +pub const FUNCTION_IMPORT: u32 = 1; +pub const ENABLE_NLS: u32 = 1; +pub const DEFAULT_PATH_VALUE: &'static [u8; 63usize] = + b"/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.\0"; +pub const STANDARD_UTILS_PATH: &'static [u8; 30usize] = b"/bin:/usr/bin:/usr/sbin:/sbin\0"; +pub const PPROMPT: &'static [u8; 11usize] = b"\\s-\\\\v\\\\$ \0"; +pub const SPROMPT: &'static [u8; 3usize] = b"> \0"; +pub const DEFAULT_BASHRC: &'static [u8; 10usize] = b"~/.bashrc\0"; +pub const SYS_BASH_LOGOUT: &'static [u8; 22usize] = b"/etc/bash.bash_logout\0"; +pub const MULTIPLE_COPROCS: u32 = 0; +pub const CHECKWINSIZE_DEFAULT: u32 = 1; +pub const OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT: u32 = 1; +pub const CHECKHASH_DEFAULT: u32 = 0; +pub const EVALNEST_MAX: u32 = 0; +pub const SOURCENEST_MAX: u32 = 0; +pub const OLDPWD_CHECK_DIRECTORY: u32 = 1; +pub const HISTEXPAND_DEFAULT: u32 = 1; +pub const ASSOC_KVPAIR_ASSIGNMENT: u32 = 1; +pub const HAVE_STRINGIZE: u32 = 1; +pub const HAVE_LONG_DOUBLE: u32 = 1; +pub const PROTOTYPES: u32 = 1; +pub const __PROTOTYPES: u32 = 1; +pub const HAVE_LONG_LONG: u32 = 1; +pub const HAVE_UNSIGNED_LONG_LONG: u32 = 1; +pub const SIZEOF_INT: u32 = 4; +pub const SIZEOF_LONG: u32 = 8; +pub const SIZEOF_CHAR_P: u32 = 8; +pub const SIZEOF_DOUBLE: u32 = 8; +pub const SIZEOF_INTMAX_T: u32 = 8; +pub const SIZEOF_LONG_LONG: u32 = 8; +pub const SIZEOF_WCHAR_T: u32 = 4; +pub const DEFAULT_MAIL_DIRECTORY: &'static [u8; 10usize] = b"/var/mail\0"; +pub const STDC_HEADERS: u32 = 1; +pub const HAVE_ALLOCA: u32 = 1; +pub const HAVE_ALLOCA_H: u32 = 1; +pub const MAJOR_IN_SYSMACROS: u32 = 1; +pub const HAVE_MBSTATE_T: u32 = 1; +pub const HAVE_QUAD_T: u32 = 1; +pub const HAVE_WCHAR_T: u32 = 1; +pub const HAVE_WCTYPE_T: u32 = 1; +pub const HAVE_WINT_T: u32 = 1; +pub const HAVE_DECL_SYS_SIGLIST: u32 = 1; +pub const UNDER_SYS_SIGLIST_DECLARED: u32 = 1; +pub const HAVE_SYS_SIGLIST: u32 = 1; +pub const HAVE_UNDER_SYS_SIGLIST: u32 = 1; +pub const HAVE_SYS_ERRLIST: u32 = 1; +pub const HAVE_STRUCT_DIRENT_D_INO: u32 = 1; +pub const HAVE_STRUCT_DIRENT_D_FILENO: u32 = 1; +pub const FIONREAD_IN_SYS_IOCTL: u32 = 1; +pub const GWINSZ_IN_SYS_IOCTL: u32 = 1; +pub const STRUCT_WINSIZE_IN_SYS_IOCTL: u32 = 1; +pub const TERMIOS_LDISC: u32 = 1; +pub const TERMIO_LDISC: u32 = 1; +pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; +pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; +pub const HAVE_TM_ZONE: u32 = 1; +pub const HAVE_TIMEVAL: u32 = 1; +pub const HAVE_STRUCT_TIMEZONE: u32 = 1; +pub const WEXITSTATUS_OFFSET: u32 = 8; +pub const HAVE_STRUCT_TIMESPEC: u32 = 1; +pub const TIME_H_DEFINES_STRUCT_TIMESPEC: u32 = 1; +pub const HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC: u32 = 1; +pub const TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC: u32 = 1; +pub const HAVE_GETPW_DECLS: u32 = 1; +pub const HAVE_DECL_AUDIT_USER_TTY: u32 = 1; +pub const HAVE_DECL_CONFSTR: u32 = 1; +pub const HAVE_DECL_PRINTF: u32 = 1; +pub const HAVE_DECL_SBRK: u32 = 1; +pub const HAVE_DECL_STRCPY: u32 = 1; +pub const HAVE_DECL_STRSIGNAL: u32 = 1; +pub const HAVE_DECL_STRTOLD: u32 = 1; +pub const HAVE_DECL_STRTOIMAX: u32 = 1; +pub const HAVE_DECL_STRTOL: u32 = 1; +pub const HAVE_DECL_STRTOLL: u32 = 1; +pub const HAVE_DECL_STRTOUL: u32 = 1; +pub const HAVE_DECL_STRTOULL: u32 = 1; +pub const HAVE_DECL_STRTOUMAX: u32 = 1; +pub const GETPGRP_VOID: u32 = 1; +pub const PGRP_PIPE: u32 = 1; +pub const ULIMIT_MAXFDS: u32 = 1; +pub const CAN_REDEFINE_GETENV: u32 = 1; +pub const HAVE_STD_PUTENV: u32 = 1; +pub const HAVE_STD_UNSETENV: u32 = 1; +pub const HAVE_PRINTF_A_FORMAT: u32 = 1; +pub const HAVE_LANGINFO_CODESET: u32 = 1; +pub const HAVE_HASH_BANG_EXEC: u32 = 1; +pub const HAVE_DEV_FD: u32 = 1; +pub const DEV_FD_PREFIX: &'static [u8; 9usize] = b"/dev/fd/\0"; +pub const HAVE_DEV_STDIN: u32 = 1; +pub const VOID_SIGHANDLER: u32 = 1; +pub const HAVE_POSIX_SIGNALS: u32 = 1; +pub const HAVE_ASPRINTF: u32 = 1; +pub const HAVE_BCOPY: u32 = 1; +pub const HAVE_BZERO: u32 = 1; +pub const HAVE_CHOWN: u32 = 1; +pub const HAVE_CONFSTR: u32 = 1; +pub const HAVE_DLCLOSE: u32 = 1; +pub const HAVE_DLOPEN: u32 = 1; +pub const HAVE_DLSYM: u32 = 1; +pub const HAVE_DPRINTF: u32 = 1; +pub const HAVE_DUP2: u32 = 1; +pub const HAVE_EACCESS: u32 = 1; +pub const HAVE_FACCESSAT: u32 = 1; +pub const HAVE_FCNTL: u32 = 1; +pub const HAVE_FNMATCH: u32 = 1; +pub const FNMATCH_EQUIV_FALLBACK: u32 = 1; +pub const HAVE___FPURGE: u32 = 1; +pub const HAVE_DECL_FPURGE: u32 = 0; +pub const HAVE_GETADDRINFO: u32 = 1; +pub const HAVE_GETCWD: u32 = 1; +pub const HAVE_GETENTROPY: u32 = 1; +pub const HAVE_GETDTABLESIZE: u32 = 1; +pub const HAVE_GETGROUPS: u32 = 1; +pub const HAVE_GETHOSTBYNAME: u32 = 1; +pub const HAVE_GETHOSTNAME: u32 = 1; +pub const HAVE_GETPAGESIZE: u32 = 1; +pub const HAVE_GETPEERNAME: u32 = 1; +pub const HAVE_GETPWENT: u32 = 1; +pub const HAVE_GETPWNAM: u32 = 1; +pub const HAVE_GETPWUID: u32 = 1; +pub const HAVE_GETRANDOM: u32 = 1; +pub const HAVE_GETRLIMIT: u32 = 1; +pub const HAVE_GETRUSAGE: u32 = 1; +pub const HAVE_GETSERVBYNAME: u32 = 1; +pub const HAVE_GETSERVENT: u32 = 1; +pub const HAVE_GETTIMEOFDAY: u32 = 1; +pub const HAVE_ICONV: u32 = 1; +pub const HAVE_IMAXDIV: u32 = 1; +pub const HAVE_INET_ATON: u32 = 1; +pub const HAVE_ISASCII: u32 = 1; +pub const HAVE_ISBLANK: u32 = 1; +pub const HAVE_ISGRAPH: u32 = 1; +pub const HAVE_ISPRINT: u32 = 1; +pub const HAVE_ISSPACE: u32 = 1; +pub const HAVE_ISWCTYPE: u32 = 1; +pub const HAVE_ISWLOWER: u32 = 1; +pub const HAVE_ISWUPPER: u32 = 1; +pub const HAVE_ISXDIGIT: u32 = 1; +pub const HAVE_KILL: u32 = 1; +pub const HAVE_KILLPG: u32 = 1; +pub const HAVE_LSTAT: u32 = 1; +pub const HAVE_MBRLEN: u32 = 1; +pub const HAVE_MBRTOWC: u32 = 1; +pub const HAVE_MBSNRTOWCS: u32 = 1; +pub const HAVE_MBSRTOWCS: u32 = 1; +pub const HAVE_MEMMOVE: u32 = 1; +pub const HAVE_MEMSET: u32 = 1; +pub const HAVE_MKDTEMP: u32 = 1; +pub const HAVE_MKFIFO: u32 = 1; +pub const HAVE_MKSTEMP: u32 = 1; +pub const HAVE_PATHCONF: u32 = 1; +pub const HAVE_PSELECT: u32 = 1; +pub const HAVE_PREAD: u32 = 1; +pub const HAVE_PUTENV: u32 = 1; +pub const HAVE_RAISE: u32 = 1; +pub const HAVE_RANDOM: u32 = 1; +pub const HAVE_READLINK: u32 = 1; +pub const HAVE_REGCOMP: u32 = 1; +pub const HAVE_REGEXEC: u32 = 1; +pub const HAVE_RENAME: u32 = 1; +pub const HAVE_SBRK: u32 = 1; +pub const HAVE_SELECT: u32 = 1; +pub const HAVE_SETENV: u32 = 1; +pub const HAVE_SETITIMER: u32 = 1; +pub const HAVE_SETLINEBUF: u32 = 1; +pub const HAVE_SETLOCALE: u32 = 1; +pub const HAVE_DECL_SETREGID: u32 = 1; +pub const HAVE_SETRESGID: u32 = 1; +pub const HAVE_SETRESUID: u32 = 1; +pub const HAVE_SETVBUF: u32 = 1; +pub const HAVE_SIGINTERRUPT: u32 = 1; +pub const HAVE_POSIX_SIGSETJMP: u32 = 1; +pub const HAVE_SNPRINTF: u32 = 1; +pub const HAVE_STRCASECMP: u32 = 1; +pub const HAVE_STRCASESTR: u32 = 1; +pub const HAVE_STRCHR: u32 = 1; +pub const HAVE_STRCHRNUL: u32 = 1; +pub const HAVE_STRCOLL: u32 = 1; +pub const HAVE_STRERROR: u32 = 1; +pub const HAVE_STRFTIME: u32 = 1; +pub const HAVE_STRNLEN: u32 = 1; +pub const HAVE_STRPBRK: u32 = 1; +pub const HAVE_STRSTR: u32 = 1; +pub const HAVE_STRTOD: u32 = 1; +pub const HAVE_STRTOIMAX: u32 = 1; +pub const HAVE_STRTOL: u32 = 1; +pub const HAVE_STRTOLL: u32 = 1; +pub const HAVE_STRTOUL: u32 = 1; +pub const HAVE_STRTOULL: u32 = 1; +pub const HAVE_STRTOUMAX: u32 = 1; +pub const HAVE_STRSIGNAL: u32 = 1; +pub const HAVE_SYSCONF: u32 = 1; +pub const HAVE_SYSLOG: u32 = 1; +pub const HAVE_TCGETATTR: u32 = 1; +pub const HAVE_TCGETPGRP: u32 = 1; +pub const HAVE_TIMES: u32 = 1; +pub const HAVE_TOWLOWER: u32 = 1; +pub const HAVE_TOWUPPER: u32 = 1; +pub const HAVE_TTYNAME: u32 = 1; +pub const HAVE_TZSET: u32 = 1; +pub const HAVE_ULIMIT: u32 = 1; +pub const HAVE_UNAME: u32 = 1; +pub const HAVE_UNSETENV: u32 = 1; +pub const HAVE_VASPRINTF: u32 = 1; +pub const HAVE_VPRINTF: u32 = 1; +pub const HAVE_VSNPRINTF: u32 = 1; +pub const HAVE_WAITPID: u32 = 1; +pub const HAVE_WAIT3: u32 = 1; +pub const HAVE_WCRTOMB: u32 = 1; +pub const HAVE_WCSCOLL: u32 = 1; +pub const HAVE_WCSDUP: u32 = 1; +pub const HAVE_WCTYPE: u32 = 1; +pub const HAVE_WCSWIDTH: u32 = 1; +pub const HAVE_WCWIDTH: u32 = 1; +pub const HAVE_ARPA_INET_H: u32 = 1; +pub const HAVE_DIRENT_H: u32 = 1; +pub const HAVE_DLFCN_H: u32 = 1; +pub const HAVE_GRP_H: u32 = 1; +pub const HAVE_INTTYPES_H: u32 = 1; +pub const HAVE_LANGINFO_H: u32 = 1; +pub const HAVE_LIMITS_H: u32 = 1; +pub const HAVE_LOCALE_H: u32 = 1; +pub const HAVE_NETDB_H: u32 = 1; +pub const HAVE_NETINET_IN_H: u32 = 1; +pub const HAVE_PWD_H: u32 = 1; +pub const HAVE_REGEX_H: u32 = 1; +pub const HAVE_STDLIB_H: u32 = 1; +pub const HAVE_STDARG_H: u32 = 1; +pub const HAVE_STRING_H: u32 = 1; +pub const HAVE_STRINGS_H: u32 = 1; +pub const HAVE_MEMORY_H: u32 = 1; +pub const HAVE_STDBOOL_H: u32 = 1; +pub const HAVE_STDDEF_H: u32 = 1; +pub const HAVE_STDINT_H: u32 = 1; +pub const HAVE_SYSLOG_H: u32 = 1; +pub const HAVE_SYS_FILE_H: u32 = 1; +pub const HAVE_SYS_IOCTL_H: u32 = 1; +pub const HAVE_SYS_MMAN_H: u32 = 1; +pub const HAVE_SYS_PARAM_H: u32 = 1; +pub const HAVE_SYS_RANDOM_H: u32 = 1; +pub const HAVE_SYS_RESOURCE_H: u32 = 1; +pub const HAVE_SYS_SELECT_H: u32 = 1; +pub const HAVE_SYS_SOCKET_H: u32 = 1; +pub const HAVE_SYS_STAT_H: u32 = 1; +pub const HAVE_SYS_TIME_H: u32 = 1; +pub const TIME_WITH_SYS_TIME: u32 = 1; +pub const HAVE_SYS_TIMES_H: u32 = 1; +pub const HAVE_SYS_TYPES_H: u32 = 1; +pub const HAVE_SYS_WAIT_H: u32 = 1; +pub const HAVE_TERMCAP_H: u32 = 1; +pub const HAVE_TERMIO_H: u32 = 1; +pub const HAVE_TERMIOS_H: u32 = 1; +pub const HAVE_ULIMIT_H: u32 = 1; +pub const HAVE_UNISTD_H: u32 = 1; +pub const HAVE_WCHAR_H: u32 = 1; +pub const HAVE_WCTYPE_H: u32 = 1; +pub const HAVE_LIBDL: u32 = 1; +pub const HAVE_ARGZ_H: u32 = 1; +pub const HAVE_ERRNO_H: u32 = 1; +pub const HAVE_FCNTL_H: u32 = 1; +pub const HAVE_MALLOC_H: u32 = 1; +pub const HAVE_STDIO_EXT_H: u32 = 1; +pub const HAVE_DCGETTEXT: u32 = 1; +pub const HAVE_LOCALECONV: u32 = 1; +pub const HAVE_MEMPCPY: u32 = 1; +pub const HAVE_MMAP: u32 = 1; +pub const HAVE_MREMAP: u32 = 1; +pub const HAVE_MUNMAP: u32 = 1; +pub const HAVE_STPCPY: u32 = 1; +pub const HAVE_STRCSPN: u32 = 1; +pub const HAVE_STRDUP: u32 = 1; +pub const HAVE___ARGZ_COUNT: u32 = 1; +pub const HAVE___ARGZ_NEXT: u32 = 1; +pub const HAVE___ARGZ_STRINGIFY: u32 = 1; +pub const RESTRICTED_SHELL_NAME: &'static [u8; 6usize] = b"rbash\0"; +pub const _WCHAR_H: u32 = 1; +pub const _FEATURES_H: u32 = 1; +pub const _ISOC95_SOURCE: u32 = 1; +pub const _ISOC99_SOURCE: u32 = 1; +pub const _ISOC11_SOURCE: u32 = 1; +pub const _POSIX_SOURCE: u32 = 1; +pub const _POSIX_C_SOURCE: u32 = 200809; +pub const _XOPEN_SOURCE: u32 = 700; +pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; +pub const _LARGEFILE64_SOURCE: u32 = 1; +pub const _DEFAULT_SOURCE: u32 = 1; +pub const _ATFILE_SOURCE: u32 = 1; +pub const __USE_ISOC11: u32 = 1; +pub const __USE_ISOC99: u32 = 1; +pub const __USE_ISOC95: u32 = 1; +pub const __USE_POSIX: u32 = 1; +pub const __USE_POSIX2: u32 = 1; +pub const __USE_POSIX199309: u32 = 1; +pub const __USE_POSIX199506: u32 = 1; +pub const __USE_XOPEN2K: u32 = 1; +pub const __USE_XOPEN2K8: u32 = 1; +pub const __USE_XOPEN: u32 = 1; +pub const __USE_XOPEN_EXTENDED: u32 = 1; +pub const __USE_UNIX98: u32 = 1; +pub const _LARGEFILE_SOURCE: u32 = 1; +pub const __USE_XOPEN2K8XSI: u32 = 1; +pub const __USE_XOPEN2KXSI: u32 = 1; +pub const __USE_LARGEFILE: u32 = 1; +pub const __USE_LARGEFILE64: u32 = 1; +pub const __USE_MISC: u32 = 1; +pub const __USE_ATFILE: u32 = 1; +pub const __USE_GNU: u32 = 1; +pub const __USE_FORTIFY_LEVEL: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; +pub const _STDC_PREDEF_H: u32 = 1; +pub const __STDC_IEC_559__: u32 = 1; +pub const __STDC_IEC_559_COMPLEX__: u32 = 1; +pub const __STDC_ISO_10646__: u32 = 201706; +pub const __GNU_LIBRARY__: u32 = 6; +pub const __GLIBC__: u32 = 2; +pub const __GLIBC_MINOR__: u32 = 28; +pub const _SYS_CDEFS_H: u32 = 1; +pub const __glibc_c99_flexarr_available: u32 = 1; +pub const __WORDSIZE: u32 = 64; +pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; +pub const __SYSCALL_WORDSIZE: u32 = 64; +pub const __HAVE_GENERIC_SELECTION: u32 = 1; +pub const __GLIBC_USE_LIB_EXT2: u32 = 1; +pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 1; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 1; +pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 1; +pub const __HAVE_FLOAT128: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; +pub const __HAVE_FLOAT64X: u32 = 1; +pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; +pub const __HAVE_FLOAT16: u32 = 0; +pub const __HAVE_FLOAT32: u32 = 1; +pub const __HAVE_FLOAT64: u32 = 1; +pub const __HAVE_FLOAT32X: u32 = 1; +pub const __HAVE_FLOAT128X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; +pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; +pub const __GNUC_VA_LIST: u32 = 1; +pub const _BITS_WCHAR_H: u32 = 1; +pub const __wint_t_defined: u32 = 1; +pub const _WINT_T: u32 = 1; +pub const __mbstate_t_defined: u32 = 1; +pub const ____mbstate_t_defined: u32 = 1; +pub const ____FILE_defined: u32 = 1; +pub const __FILE_defined: u32 = 1; +pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; +pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; +pub const WEOF: u32 = 4294967295; +pub const _WCTYPE_H: u32 = 1; +pub const _BITS_TYPES_H: u32 = 1; +pub const _BITS_TYPESIZES_H: u32 = 1; +pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; +pub const __INO_T_MATCHES_INO64_T: u32 = 1; +pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; +pub const __FD_SETSIZE: u32 = 1024; +pub const _BITS_WCTYPE_WCHAR_H: u32 = 1; +pub const _ENDIAN_H: u32 = 1; +pub const __LITTLE_ENDIAN: u32 = 1234; +pub const __BIG_ENDIAN: u32 = 4321; +pub const __PDP_ENDIAN: u32 = 3412; +pub const __BYTE_ORDER: u32 = 1234; +pub const __FLOAT_WORD_ORDER: u32 = 1234; +pub const LITTLE_ENDIAN: u32 = 1234; +pub const BIG_ENDIAN: u32 = 4321; +pub const PDP_ENDIAN: u32 = 3412; +pub const BYTE_ORDER: u32 = 1234; +pub const _BITS_BYTESWAP_H: u32 = 1; +pub const _BITS_UINTN_IDENTITY_H: u32 = 1; +pub const HANDLE_MULTIBYTE: u32 = 1; +pub const _LIBC_LIMITS_H_: u32 = 1; +pub const MB_LEN_MAX: u32 = 16; +pub const CHAR_WIDTH: u32 = 8; +pub const SCHAR_WIDTH: u32 = 8; +pub const UCHAR_WIDTH: u32 = 8; +pub const SHRT_WIDTH: u32 = 16; +pub const USHRT_WIDTH: u32 = 16; +pub const INT_WIDTH: u32 = 32; +pub const UINT_WIDTH: u32 = 32; +pub const LONG_WIDTH: u32 = 64; +pub const ULONG_WIDTH: u32 = 64; +pub const LLONG_WIDTH: u32 = 64; +pub const ULLONG_WIDTH: u32 = 64; +pub const _BITS_POSIX1_LIM_H: u32 = 1; +pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; +pub const _POSIX_AIO_MAX: u32 = 1; +pub const _POSIX_ARG_MAX: u32 = 4096; +pub const _POSIX_CHILD_MAX: u32 = 25; +pub const _POSIX_DELAYTIMER_MAX: u32 = 32; +pub const _POSIX_HOST_NAME_MAX: u32 = 255; +pub const _POSIX_LINK_MAX: u32 = 8; +pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; +pub const _POSIX_MAX_CANON: u32 = 255; +pub const _POSIX_MAX_INPUT: u32 = 255; +pub const _POSIX_MQ_OPEN_MAX: u32 = 8; +pub const _POSIX_MQ_PRIO_MAX: u32 = 32; +pub const _POSIX_NAME_MAX: u32 = 14; +pub const _POSIX_NGROUPS_MAX: u32 = 8; +pub const _POSIX_OPEN_MAX: u32 = 20; +pub const _POSIX_FD_SETSIZE: u32 = 20; +pub const _POSIX_PATH_MAX: u32 = 256; +pub const _POSIX_PIPE_BUF: u32 = 512; +pub const _POSIX_RE_DUP_MAX: u32 = 255; +pub const _POSIX_RTSIG_MAX: u32 = 8; +pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; +pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; +pub const _POSIX_SIGQUEUE_MAX: u32 = 32; +pub const _POSIX_SSIZE_MAX: u32 = 32767; +pub const _POSIX_STREAM_MAX: u32 = 8; +pub const _POSIX_SYMLINK_MAX: u32 = 255; +pub const _POSIX_SYMLOOP_MAX: u32 = 8; +pub const _POSIX_TIMER_MAX: u32 = 32; +pub const _POSIX_TTY_NAME_MAX: u32 = 9; +pub const _POSIX_TZNAME_MAX: u32 = 6; +pub const _POSIX_QLIMIT: u32 = 1; +pub const _POSIX_HIWAT: u32 = 512; +pub const _POSIX_UIO_MAXIOV: u32 = 16; +pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; +pub const PTHREAD_KEYS_MAX: u32 = 1024; +pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; +pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; +pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; +pub const AIO_PRIO_DELTA_MAX: u32 = 20; +pub const PTHREAD_STACK_MIN: u32 = 16384; +pub const DELAYTIMER_MAX: u32 = 2147483647; +pub const TTY_NAME_MAX: u32 = 32; +pub const LOGIN_NAME_MAX: u32 = 256; +pub const HOST_NAME_MAX: u32 = 64; +pub const MQ_PRIO_MAX: u32 = 32768; +pub const SEM_VALUE_MAX: u32 = 2147483647; +pub const _BITS_POSIX2_LIM_H: u32 = 1; +pub const _POSIX2_BC_BASE_MAX: u32 = 99; +pub const _POSIX2_BC_DIM_MAX: u32 = 2048; +pub const _POSIX2_BC_SCALE_MAX: u32 = 99; +pub const _POSIX2_BC_STRING_MAX: u32 = 1000; +pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; +pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; +pub const _POSIX2_LINE_MAX: u32 = 2048; +pub const _POSIX2_RE_DUP_MAX: u32 = 255; +pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; +pub const BC_BASE_MAX: u32 = 99; +pub const BC_DIM_MAX: u32 = 2048; +pub const BC_SCALE_MAX: u32 = 99; +pub const BC_STRING_MAX: u32 = 1000; +pub const COLL_WEIGHTS_MAX: u32 = 255; +pub const EXPR_NEST_MAX: u32 = 32; +pub const LINE_MAX: u32 = 2048; +pub const CHARCLASS_NAME_MAX: u32 = 2048; +pub const RE_DUP_MAX: u32 = 32767; +pub const _XOPEN_LIM_H: u32 = 1; +pub const _XOPEN_IOV_MAX: u32 = 16; +pub const _BITS_UIO_LIM_H: u32 = 1; +pub const __IOV_MAX: u32 = 1024; +pub const IOV_MAX: u32 = 1024; +pub const NL_ARGMAX: u32 = 4096; +pub const NL_LANGMAX: u32 = 2048; +pub const NZERO: u32 = 20; +pub const WORD_BIT: u32 = 32; +pub const LONG_BIT: u32 = 64; +pub const _UNISTD_H: u32 = 1; +pub const _POSIX_VERSION: u32 = 200809; +pub const __POSIX2_THIS_VERSION: u32 = 200809; +pub const _POSIX2_VERSION: u32 = 200809; +pub const _POSIX2_C_VERSION: u32 = 200809; +pub const _POSIX2_C_BIND: u32 = 200809; +pub const _POSIX2_C_DEV: u32 = 200809; +pub const _POSIX2_SW_DEV: u32 = 200809; +pub const _POSIX2_LOCALEDEF: u32 = 200809; +pub const _XOPEN_VERSION: u32 = 700; +pub const _XOPEN_XCU_VERSION: u32 = 4; +pub const _XOPEN_XPG2: u32 = 1; +pub const _XOPEN_XPG3: u32 = 1; +pub const _XOPEN_XPG4: u32 = 1; +pub const _XOPEN_UNIX: u32 = 1; +pub const _XOPEN_ENH_I18N: u32 = 1; +pub const _XOPEN_LEGACY: u32 = 1; +pub const _BITS_POSIX_OPT_H: u32 = 1; +pub const _POSIX_JOB_CONTROL: u32 = 1; +pub const _POSIX_SAVED_IDS: u32 = 1; +pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; +pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; +pub const _POSIX_FSYNC: u32 = 200809; +pub const _POSIX_MAPPED_FILES: u32 = 200809; +pub const _POSIX_MEMLOCK: u32 = 200809; +pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; +pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; +pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; +pub const _POSIX_VDISABLE: u8 = 0u8; +pub const _POSIX_NO_TRUNC: u32 = 1; +pub const _XOPEN_REALTIME: u32 = 1; +pub const _XOPEN_REALTIME_THREADS: u32 = 1; +pub const _XOPEN_SHM: u32 = 1; +pub const _POSIX_THREADS: u32 = 200809; +pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; +pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; +pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; +pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; +pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; +pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; +pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; +pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; +pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; +pub const _POSIX_SEMAPHORES: u32 = 200809; +pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; +pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; +pub const _POSIX_ASYNC_IO: u32 = 1; +pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; +pub const _POSIX_PRIORITIZED_IO: u32 = 200809; +pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; +pub const _LFS_LARGEFILE: u32 = 1; +pub const _LFS64_LARGEFILE: u32 = 1; +pub const _LFS64_STDIO: u32 = 1; +pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; +pub const _POSIX_CPUTIME: u32 = 0; +pub const _POSIX_THREAD_CPUTIME: u32 = 0; +pub const _POSIX_REGEXP: u32 = 1; +pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; +pub const _POSIX_SHELL: u32 = 1; +pub const _POSIX_TIMEOUTS: u32 = 200809; +pub const _POSIX_SPIN_LOCKS: u32 = 200809; +pub const _POSIX_SPAWN: u32 = 200809; +pub const _POSIX_TIMERS: u32 = 200809; +pub const _POSIX_BARRIERS: u32 = 200809; +pub const _POSIX_MESSAGE_PASSING: u32 = 200809; +pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; +pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; +pub const _POSIX_CLOCK_SELECTION: u32 = 200809; +pub const _POSIX_ADVISORY_INFO: u32 = 200809; +pub const _POSIX_IPV6: u32 = 200809; +pub const _POSIX_RAW_SOCKETS: u32 = 200809; +pub const _POSIX2_CHAR_TERM: u32 = 200809; +pub const _POSIX_SPORADIC_SERVER: i32 = -1; +pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; +pub const _POSIX_TRACE: i32 = -1; +pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; +pub const _POSIX_TRACE_INHERIT: i32 = -1; +pub const _POSIX_TRACE_LOG: i32 = -1; +pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; +pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; +pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; +pub const _XBS5_LPBIG_OFFBIG: i32 = -1; +pub const _POSIX_V7_LP64_OFF64: u32 = 1; +pub const _POSIX_V6_LP64_OFF64: u32 = 1; +pub const _XBS5_LP64_OFF64: u32 = 1; +pub const __ILP32_OFF32_CFLAGS: &'static [u8; 5usize] = b"-m32\0"; +pub const __ILP32_OFF32_LDFLAGS: &'static [u8; 5usize] = b"-m32\0"; +pub const __ILP32_OFFBIG_CFLAGS: &'static [u8; 48usize] = + b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; +pub const __ILP32_OFFBIG_LDFLAGS: &'static [u8; 5usize] = b"-m32\0"; +pub const __LP64_OFF64_CFLAGS: &'static [u8; 5usize] = b"-m64\0"; +pub const __LP64_OFF64_LDFLAGS: &'static [u8; 5usize] = b"-m64\0"; +pub const STDIN_FILENO: u32 = 0; +pub const STDOUT_FILENO: u32 = 1; +pub const STDERR_FILENO: u32 = 2; +pub const R_OK: u32 = 4; +pub const W_OK: u32 = 2; +pub const X_OK: u32 = 1; +pub const F_OK: u32 = 0; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const L_SET: u32 = 0; +pub const L_INCR: u32 = 1; +pub const L_XTND: u32 = 2; +pub const _GETOPT_POSIX_H: u32 = 1; +pub const _GETOPT_CORE_H: u32 = 1; +pub const F_ULOCK: u32 = 0; +pub const F_LOCK: u32 = 1; +pub const F_TLOCK: u32 = 2; +pub const F_TEST: u32 = 3; +pub const _BITS_SIGNUM_H: u32 = 1; +pub const _BITS_SIGNUM_GENERIC_H: u32 = 1; +pub const SIGINT: u32 = 2; +pub const SIGILL: u32 = 4; +pub const SIGABRT: u32 = 6; +pub const SIGFPE: u32 = 8; +pub const SIGSEGV: u32 = 11; +pub const SIGTERM: u32 = 15; +pub const SIGHUP: u32 = 1; +pub const SIGQUIT: u32 = 3; +pub const SIGTRAP: u32 = 5; +pub const SIGKILL: u32 = 9; +// pub const SIGBUS: u32 = 10; +pub const SIGBUS: u32 = 7; +// pub const SIGSYS: u32 = 12; +pub const SIGSYS: u32 = 31; +pub const SIGPIPE: u32 = 13; +pub const SIGALRM: u32 = 14; +// pub const SIGURG: u32 = 16; +pub const SIGURG: u32 = 23; +// pub const SIGSTOP: u32 = 17; +pub const SIGSTOP: u32 = 19; +// pub const SIGTSTP: u32 = 18; +pub const SIGTSTP: u32 = 20; +// pub const SIGCONT: u32 = 19; +pub const SIGCONT: u32 = 18; +// pub const SIGCHLD: u32 = 20; +pub const SIGCHLD: u32 = 17; +pub const SIGTTIN: u32 = 21; +pub const SIGTTOU: u32 = 22; +pub const SIGPOLL: u32 = 23; +pub const SIGXCPU: u32 = 24; +pub const SIGXFSZ: u32 = 25; +pub const SIGVTALRM: u32 = 26; +pub const SIGPROF: u32 = 27; +// pub const SIGUSR1: u32 = 30; +pub const SIGUSR1: u32 = 10; +// pub const SIGUSR2: u32 = 31; +pub const SIGUSR2: u32 = 12; +pub const SIGWINCH: u32 = 28; +// pub const SIGIO: u32 = 23; +pub const SIGIO: u32 = 29; +pub const SIGIOT: u32 = 6; +pub const SIGCLD: u32 = 20; +pub const __SIGRTMIN: u32 = 32; +pub const __SIGRTMAX: u32 = 32; +pub const _NSIG: u32 = 33; +pub const SIGSTKFLT: u32 = 16; +pub const SIGPWR: u32 = 30; +pub const __sig_atomic_t_defined: u32 = 1; +pub const __sigset_t_defined: u32 = 1; +pub const _STRUCT_TIMESPEC: u32 = 1; +pub const __siginfo_t_defined: u32 = 1; +pub const __SI_MAX_SIZE: u32 = 128; +pub const _BITS_SIGINFO_ARCH_H: u32 = 1; +pub const __SI_ERRNO_THEN_CODE: u32 = 1; +pub const __SI_HAVE_SIGSYS: u32 = 1; +pub const _BITS_SIGINFO_CONSTS_H: u32 = 1; +pub const __SI_ASYNCIO_AFTER_SIGIO: u32 = 1; +pub const _BITS_SIGINFO_CONSTS_ARCH_H: u32 = 1; +pub const __sigevent_t_defined: u32 = 1; +pub const __SIGEV_MAX_SIZE: u32 = 64; +pub const __have_pthread_attr_t: u32 = 1; +pub const _BITS_SIGEVENT_CONSTS_H: u32 = 1; +pub const NSIG: u32 = 33; +pub const _BITS_SIGACTION_H: u32 = 1; +pub const SA_NOCLDSTOP: u32 = 1; +pub const SA_NOCLDWAIT: u32 = 2; +pub const SA_SIGINFO: u32 = 4; +pub const SA_ONSTACK: u32 = 134217728; +pub const SA_RESTART: u32 = 268435456; +pub const SA_NODEFER: u32 = 1073741824; +pub const SA_RESETHAND: u32 = 2147483648; +pub const SA_INTERRUPT: u32 = 536870912; +pub const SA_NOMASK: u32 = 1073741824; +pub const SA_ONESHOT: u32 = 2147483648; +pub const SA_STACK: u32 = 134217728; +pub const SIG_BLOCK: u32 = 0; +pub const SIG_UNBLOCK: u32 = 1; +pub const SIG_SETMASK: u32 = 2; +pub const _BITS_SIGCONTEXT_H: u32 = 1; +pub const FP_XSTATE_MAGIC1: u32 = 1179670611; +pub const FP_XSTATE_MAGIC2: u32 = 1179670597; +pub const __stack_t_defined: u32 = 1; +pub const _SYS_UCONTEXT_H: u32 = 1; +pub const __NGREG: u32 = 23; +pub const NGREG: u32 = 23; +pub const _BITS_SIGSTACK_H: u32 = 1; +pub const MINSIGSTKSZ: u32 = 2048; +pub const SIGSTKSZ: u32 = 8192; +pub const _BITS_SS_FLAGS_H: u32 = 1; +pub const __sigstack_defined: u32 = 1; +pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; +pub const _THREAD_SHARED_TYPES_H: u32 = 1; +pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; +pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; +pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; +pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; +pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; +pub const __PTHREAD_MUTEX_LOCK_ELISION: u32 = 1; +pub const __PTHREAD_MUTEX_NUSERS_AFTER_KIND: u32 = 0; +pub const __PTHREAD_MUTEX_USE_UNION: u32 = 0; +pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: u32 = 1; +pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; +pub const _BITS_SIGTHREAD_H: u32 = 1; +pub const _STDINT_H: u32 = 1; +pub const _BITS_STDINT_INTN_H: u32 = 1; +pub const _BITS_STDINT_UINTN_H: u32 = 1; +pub const INT8_MIN: i32 = -128; +pub const INT16_MIN: i32 = -32768; +pub const INT32_MIN: i32 = -2147483648; +pub const INT8_MAX: u32 = 127; +pub const INT16_MAX: u32 = 32767; +pub const INT32_MAX: u32 = 2147483647; +pub const UINT8_MAX: u32 = 255; +pub const UINT16_MAX: u32 = 65535; +pub const UINT32_MAX: u32 = 4294967295; +pub const INT_LEAST8_MIN: i32 = -128; +pub const INT_LEAST16_MIN: i32 = -32768; +pub const INT_LEAST32_MIN: i32 = -2147483648; +pub const INT_LEAST8_MAX: u32 = 127; +pub const INT_LEAST16_MAX: u32 = 32767; +pub const INT_LEAST32_MAX: u32 = 2147483647; +pub const UINT_LEAST8_MAX: u32 = 255; +pub const UINT_LEAST16_MAX: u32 = 65535; +pub const UINT_LEAST32_MAX: u32 = 4294967295; +pub const INT_FAST8_MIN: i32 = -128; +pub const INT_FAST16_MIN: i64 = -9223372036854775808; +pub const INT_FAST32_MIN: i64 = -9223372036854775808; +pub const INT_FAST8_MAX: u32 = 127; +pub const INT_FAST16_MAX: u64 = 9223372036854775807; +pub const INT_FAST32_MAX: u64 = 9223372036854775807; +pub const UINT_FAST8_MAX: u32 = 255; +pub const UINT_FAST16_MAX: i32 = -1; +pub const UINT_FAST32_MAX: i32 = -1; +pub const INTPTR_MIN: i64 = -9223372036854775808; +pub const INTPTR_MAX: u64 = 9223372036854775807; +pub const UINTPTR_MAX: i32 = -1; +pub const PTRDIFF_MIN: i64 = -9223372036854775808; +pub const PTRDIFF_MAX: u64 = 9223372036854775807; +pub const SIG_ATOMIC_MIN: i32 = -2147483648; +pub const SIG_ATOMIC_MAX: u32 = 2147483647; +pub const SIZE_MAX: i32 = -1; +pub const WINT_MIN: u32 = 0; +pub const WINT_MAX: u32 = 4294967295; +pub const INT8_WIDTH: u32 = 8; +pub const UINT8_WIDTH: u32 = 8; +pub const INT16_WIDTH: u32 = 16; +pub const UINT16_WIDTH: u32 = 16; +pub const INT32_WIDTH: u32 = 32; +pub const UINT32_WIDTH: u32 = 32; +pub const INT64_WIDTH: u32 = 64; +pub const UINT64_WIDTH: u32 = 64; +pub const INT_LEAST8_WIDTH: u32 = 8; +pub const UINT_LEAST8_WIDTH: u32 = 8; +pub const INT_LEAST16_WIDTH: u32 = 16; +pub const UINT_LEAST16_WIDTH: u32 = 16; +pub const INT_LEAST32_WIDTH: u32 = 32; +pub const UINT_LEAST32_WIDTH: u32 = 32; +pub const INT_LEAST64_WIDTH: u32 = 64; +pub const UINT_LEAST64_WIDTH: u32 = 64; +pub const INT_FAST8_WIDTH: u32 = 8; +pub const UINT_FAST8_WIDTH: u32 = 8; +pub const INT_FAST16_WIDTH: u32 = 64; +pub const UINT_FAST16_WIDTH: u32 = 64; +pub const INT_FAST32_WIDTH: u32 = 64; +pub const UINT_FAST32_WIDTH: u32 = 64; +pub const INT_FAST64_WIDTH: u32 = 64; +pub const UINT_FAST64_WIDTH: u32 = 64; +pub const INTPTR_WIDTH: u32 = 64; +pub const UINTPTR_WIDTH: u32 = 64; +pub const INTMAX_WIDTH: u32 = 64; +pub const UINTMAX_WIDTH: u32 = 64; +pub const PTRDIFF_WIDTH: u32 = 64; +pub const SIG_ATOMIC_WIDTH: u32 = 32; +pub const SIZE_WIDTH: u32 = 64; +pub const WCHAR_WIDTH: u32 = 32; +pub const WINT_WIDTH: u32 = 32; +pub const REDIR_VARASSIGN: u32 = 1; +pub const AMBIGUOUS_REDIRECT: i32 = -1; +pub const NOCLOBBER_REDIRECT: i32 = -2; +pub const RESTRICTED_REDIRECT: i32 = -3; +pub const HEREDOC_REDIRECT: i32 = -4; +pub const BADVAR_REDIRECT: i32 = -5; +pub const W_HASDOLLAR: u32 = 1; +pub const W_QUOTED: u32 = 2; +pub const W_ASSIGNMENT: u32 = 4; +pub const W_SPLITSPACE: u32 = 8; +pub const W_NOSPLIT: u32 = 16; +pub const W_NOGLOB: u32 = 32; +pub const W_NOSPLIT2: u32 = 64; +pub const W_TILDEEXP: u32 = 128; +pub const W_DOLLARAT: u32 = 256; +pub const W_DOLLARSTAR: u32 = 512; +pub const W_NOCOMSUB: u32 = 1024; +pub const W_ASSIGNRHS: u32 = 2048; +pub const W_NOTILDE: u32 = 4096; +pub const W_ITILDE: u32 = 8192; +pub const W_EXPANDRHS: u32 = 16384; +pub const W_COMPASSIGN: u32 = 32768; +pub const W_ASSNBLTIN: u32 = 65536; +pub const W_ASSIGNARG: u32 = 131072; +pub const W_HASQUOTEDNULL: u32 = 262144; +pub const W_DQUOTE: u32 = 524288; +pub const W_NOPROCSUB: u32 = 1048576; +pub const W_SAWQUOTEDNULL: u32 = 2097152; +pub const W_ASSIGNASSOC: u32 = 4194304; +pub const W_ASSIGNARRAY: u32 = 8388608; +pub const W_ARRAYIND: u32 = 16777216; +pub const W_ASSNGLOBAL: u32 = 33554432; +pub const W_NOBRACE: u32 = 67108864; +pub const W_COMPLETE: u32 = 134217728; +pub const W_CHKLOCAL: u32 = 268435456; +pub const W_NOASSNTILDE: u32 = 536870912; +pub const W_FORCELOCAL: u32 = 1073741824; +pub const PF_NOCOMSUB: u32 = 1; +pub const PF_IGNUNBOUND: u32 = 2; +pub const PF_NOSPLIT2: u32 = 4; +pub const PF_ASSIGNRHS: u32 = 8; +pub const PF_COMPLETE: u32 = 16; +pub const PF_EXPANDRHS: u32 = 32; +pub const PF_ALLINDS: u32 = 64; +pub const SUBSHELL_ASYNC: u32 = 1; +pub const SUBSHELL_PAREN: u32 = 2; +pub const SUBSHELL_COMSUB: u32 = 4; +pub const SUBSHELL_FORK: u32 = 8; +pub const SUBSHELL_PIPE: u32 = 16; +pub const SUBSHELL_PROCSUB: u32 = 32; +pub const SUBSHELL_COPROC: u32 = 64; +pub const SUBSHELL_RESETTRAP: u32 = 128; +pub const CMD_WANT_SUBSHELL: u32 = 1; +pub const CMD_FORCE_SUBSHELL: u32 = 2; +pub const CMD_INVERT_RETURN: u32 = 4; +pub const CMD_IGNORE_RETURN: u32 = 8; +pub const CMD_NO_FUNCTIONS: u32 = 16; +pub const CMD_INHIBIT_EXPANSION: u32 = 32; +pub const CMD_NO_FORK: u32 = 64; +pub const CMD_TIME_PIPELINE: u32 = 128; +pub const CMD_TIME_POSIX: u32 = 256; +pub const CMD_AMPERSAND: u32 = 512; +pub const CMD_STDIN_REDIR: u32 = 1024; +pub const CMD_COMMAND_BUILTIN: u32 = 2048; +pub const CMD_COPROC_SUBSHELL: u32 = 4096; +pub const CMD_LASTPIPE: u32 = 8192; +pub const CMD_STDPATH: u32 = 16384; +pub const CMD_TRY_OPTIMIZING: u32 = 32768; +pub const CASEPAT_FALLTHROUGH: u32 = 1; +pub const CASEPAT_TESTNEXT: u32 = 2; +pub const COND_AND: u32 = 1; +pub const COND_OR: u32 = 2; +pub const COND_UNARY: u32 = 3; +pub const COND_BINARY: u32 = 4; +pub const COND_TERM: u32 = 5; +pub const COND_EXPR: u32 = 6; +pub const COPROC_RUNNING: u32 = 1; +pub const COPROC_DEAD: u32 = 2; +pub const CMDERR_DEFAULT: u32 = 0; +pub const CMDERR_BADTYPE: u32 = 1; +pub const CMDERR_BADCONN: u32 = 2; +pub const CMDERR_BADJUMP: u32 = 3; +pub const CMDERR_LAST: u32 = 3; +pub const _SYS_TYPES_H: u32 = 1; +pub const __clock_t_defined: u32 = 1; +pub const __clockid_t_defined: u32 = 1; +pub const __time_t_defined: u32 = 1; +pub const __timer_t_defined: u32 = 1; +pub const __BIT_TYPES_DEFINED__: u32 = 1; +pub const _SYS_SELECT_H: u32 = 1; +pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\0"; +pub const __timeval_defined: u32 = 1; +pub const FD_SETSIZE: u32 = 1024; +pub const _INTTYPES_H: u32 = 1; +pub const ____gwchar_t_defined: u32 = 1; +pub const __PRI64_PREFIX: &'static [u8; 2usize] = b"l\0"; +pub const __PRIPTR_PREFIX: &'static [u8; 2usize] = b"l\0"; +pub const PRId8: &'static [u8; 2usize] = b"d\0"; +pub const PRId16: &'static [u8; 2usize] = b"d\0"; +pub const PRId32: &'static [u8; 2usize] = b"d\0"; +pub const PRId64: &'static [u8; 3usize] = b"ld\0"; +pub const PRIdLEAST8: &'static [u8; 2usize] = b"d\0"; +pub const PRIdLEAST16: &'static [u8; 2usize] = b"d\0"; +pub const PRIdLEAST32: &'static [u8; 2usize] = b"d\0"; +pub const PRIdLEAST64: &'static [u8; 3usize] = b"ld\0"; +pub const PRIdFAST8: &'static [u8; 2usize] = b"d\0"; +pub const PRIdFAST16: &'static [u8; 3usize] = b"ld\0"; +pub const PRIdFAST32: &'static [u8; 3usize] = b"ld\0"; +pub const PRIdFAST64: &'static [u8; 3usize] = b"ld\0"; +pub const PRIi8: &'static [u8; 2usize] = b"i\0"; +pub const PRIi16: &'static [u8; 2usize] = b"i\0"; +pub const PRIi32: &'static [u8; 2usize] = b"i\0"; +pub const PRIi64: &'static [u8; 3usize] = b"li\0"; +pub const PRIiLEAST8: &'static [u8; 2usize] = b"i\0"; +pub const PRIiLEAST16: &'static [u8; 2usize] = b"i\0"; +pub const PRIiLEAST32: &'static [u8; 2usize] = b"i\0"; +pub const PRIiLEAST64: &'static [u8; 3usize] = b"li\0"; +pub const PRIiFAST8: &'static [u8; 2usize] = b"i\0"; +pub const PRIiFAST16: &'static [u8; 3usize] = b"li\0"; +pub const PRIiFAST32: &'static [u8; 3usize] = b"li\0"; +pub const PRIiFAST64: &'static [u8; 3usize] = b"li\0"; +pub const PRIo8: &'static [u8; 2usize] = b"o\0"; +pub const PRIo16: &'static [u8; 2usize] = b"o\0"; +pub const PRIo32: &'static [u8; 2usize] = b"o\0"; +pub const PRIo64: &'static [u8; 3usize] = b"lo\0"; +pub const PRIoLEAST8: &'static [u8; 2usize] = b"o\0"; +pub const PRIoLEAST16: &'static [u8; 2usize] = b"o\0"; +pub const PRIoLEAST32: &'static [u8; 2usize] = b"o\0"; +pub const PRIoLEAST64: &'static [u8; 3usize] = b"lo\0"; +pub const PRIoFAST8: &'static [u8; 2usize] = b"o\0"; +pub const PRIoFAST16: &'static [u8; 3usize] = b"lo\0"; +pub const PRIoFAST32: &'static [u8; 3usize] = b"lo\0"; +pub const PRIoFAST64: &'static [u8; 3usize] = b"lo\0"; +pub const PRIu8: &'static [u8; 2usize] = b"u\0"; +pub const PRIu16: &'static [u8; 2usize] = b"u\0"; +pub const PRIu32: &'static [u8; 2usize] = b"u\0"; +pub const PRIu64: &'static [u8; 3usize] = b"lu\0"; +pub const PRIuLEAST8: &'static [u8; 2usize] = b"u\0"; +pub const PRIuLEAST16: &'static [u8; 2usize] = b"u\0"; +pub const PRIuLEAST32: &'static [u8; 2usize] = b"u\0"; +pub const PRIuLEAST64: &'static [u8; 3usize] = b"lu\0"; +pub const PRIuFAST8: &'static [u8; 2usize] = b"u\0"; +pub const PRIuFAST16: &'static [u8; 3usize] = b"lu\0"; +pub const PRIuFAST32: &'static [u8; 3usize] = b"lu\0"; +pub const PRIuFAST64: &'static [u8; 3usize] = b"lu\0"; +pub const PRIx8: &'static [u8; 2usize] = b"x\0"; +pub const PRIx16: &'static [u8; 2usize] = b"x\0"; +pub const PRIx32: &'static [u8; 2usize] = b"x\0"; +pub const PRIx64: &'static [u8; 3usize] = b"lx\0"; +pub const PRIxLEAST8: &'static [u8; 2usize] = b"x\0"; +pub const PRIxLEAST16: &'static [u8; 2usize] = b"x\0"; +pub const PRIxLEAST32: &'static [u8; 2usize] = b"x\0"; +pub const PRIxLEAST64: &'static [u8; 3usize] = b"lx\0"; +pub const PRIxFAST8: &'static [u8; 2usize] = b"x\0"; +pub const PRIxFAST16: &'static [u8; 3usize] = b"lx\0"; +pub const PRIxFAST32: &'static [u8; 3usize] = b"lx\0"; +pub const PRIxFAST64: &'static [u8; 3usize] = b"lx\0"; +pub const PRIX8: &'static [u8; 2usize] = b"X\0"; +pub const PRIX16: &'static [u8; 2usize] = b"X\0"; +pub const PRIX32: &'static [u8; 2usize] = b"X\0"; +pub const PRIX64: &'static [u8; 3usize] = b"lX\0"; +pub const PRIXLEAST8: &'static [u8; 2usize] = b"X\0"; +pub const PRIXLEAST16: &'static [u8; 2usize] = b"X\0"; +pub const PRIXLEAST32: &'static [u8; 2usize] = b"X\0"; +pub const PRIXLEAST64: &'static [u8; 3usize] = b"lX\0"; +pub const PRIXFAST8: &'static [u8; 2usize] = b"X\0"; +pub const PRIXFAST16: &'static [u8; 3usize] = b"lX\0"; +pub const PRIXFAST32: &'static [u8; 3usize] = b"lX\0"; +pub const PRIXFAST64: &'static [u8; 3usize] = b"lX\0"; +pub const PRIdMAX: &'static [u8; 3usize] = b"ld\0"; +pub const PRIiMAX: &'static [u8; 3usize] = b"li\0"; +pub const PRIoMAX: &'static [u8; 3usize] = b"lo\0"; +pub const PRIuMAX: &'static [u8; 3usize] = b"lu\0"; +pub const PRIxMAX: &'static [u8; 3usize] = b"lx\0"; +pub const PRIXMAX: &'static [u8; 3usize] = b"lX\0"; +pub const PRIdPTR: &'static [u8; 3usize] = b"ld\0"; +pub const PRIiPTR: &'static [u8; 3usize] = b"li\0"; +pub const PRIoPTR: &'static [u8; 3usize] = b"lo\0"; +pub const PRIuPTR: &'static [u8; 3usize] = b"lu\0"; +pub const PRIxPTR: &'static [u8; 3usize] = b"lx\0"; +pub const PRIXPTR: &'static [u8; 3usize] = b"lX\0"; +pub const SCNd8: &'static [u8; 4usize] = b"hhd\0"; +pub const SCNd16: &'static [u8; 3usize] = b"hd\0"; +pub const SCNd32: &'static [u8; 2usize] = b"d\0"; +pub const SCNd64: &'static [u8; 3usize] = b"ld\0"; +pub const SCNdLEAST8: &'static [u8; 4usize] = b"hhd\0"; +pub const SCNdLEAST16: &'static [u8; 3usize] = b"hd\0"; +pub const SCNdLEAST32: &'static [u8; 2usize] = b"d\0"; +pub const SCNdLEAST64: &'static [u8; 3usize] = b"ld\0"; +pub const SCNdFAST8: &'static [u8; 4usize] = b"hhd\0"; +pub const SCNdFAST16: &'static [u8; 3usize] = b"ld\0"; +pub const SCNdFAST32: &'static [u8; 3usize] = b"ld\0"; +pub const SCNdFAST64: &'static [u8; 3usize] = b"ld\0"; +pub const SCNi8: &'static [u8; 4usize] = b"hhi\0"; +pub const SCNi16: &'static [u8; 3usize] = b"hi\0"; +pub const SCNi32: &'static [u8; 2usize] = b"i\0"; +pub const SCNi64: &'static [u8; 3usize] = b"li\0"; +pub const SCNiLEAST8: &'static [u8; 4usize] = b"hhi\0"; +pub const SCNiLEAST16: &'static [u8; 3usize] = b"hi\0"; +pub const SCNiLEAST32: &'static [u8; 2usize] = b"i\0"; +pub const SCNiLEAST64: &'static [u8; 3usize] = b"li\0"; +pub const SCNiFAST8: &'static [u8; 4usize] = b"hhi\0"; +pub const SCNiFAST16: &'static [u8; 3usize] = b"li\0"; +pub const SCNiFAST32: &'static [u8; 3usize] = b"li\0"; +pub const SCNiFAST64: &'static [u8; 3usize] = b"li\0"; +pub const SCNu8: &'static [u8; 4usize] = b"hhu\0"; +pub const SCNu16: &'static [u8; 3usize] = b"hu\0"; +pub const SCNu32: &'static [u8; 2usize] = b"u\0"; +pub const SCNu64: &'static [u8; 3usize] = b"lu\0"; +pub const SCNuLEAST8: &'static [u8; 4usize] = b"hhu\0"; +pub const SCNuLEAST16: &'static [u8; 3usize] = b"hu\0"; +pub const SCNuLEAST32: &'static [u8; 2usize] = b"u\0"; +pub const SCNuLEAST64: &'static [u8; 3usize] = b"lu\0"; +pub const SCNuFAST8: &'static [u8; 4usize] = b"hhu\0"; +pub const SCNuFAST16: &'static [u8; 3usize] = b"lu\0"; +pub const SCNuFAST32: &'static [u8; 3usize] = b"lu\0"; +pub const SCNuFAST64: &'static [u8; 3usize] = b"lu\0"; +pub const SCNo8: &'static [u8; 4usize] = b"hho\0"; +pub const SCNo16: &'static [u8; 3usize] = b"ho\0"; +pub const SCNo32: &'static [u8; 2usize] = b"o\0"; +pub const SCNo64: &'static [u8; 3usize] = b"lo\0"; +pub const SCNoLEAST8: &'static [u8; 4usize] = b"hho\0"; +pub const SCNoLEAST16: &'static [u8; 3usize] = b"ho\0"; +pub const SCNoLEAST32: &'static [u8; 2usize] = b"o\0"; +pub const SCNoLEAST64: &'static [u8; 3usize] = b"lo\0"; +pub const SCNoFAST8: &'static [u8; 4usize] = b"hho\0"; +pub const SCNoFAST16: &'static [u8; 3usize] = b"lo\0"; +pub const SCNoFAST32: &'static [u8; 3usize] = b"lo\0"; +pub const SCNoFAST64: &'static [u8; 3usize] = b"lo\0"; +pub const SCNx8: &'static [u8; 4usize] = b"hhx\0"; +pub const SCNx16: &'static [u8; 3usize] = b"hx\0"; +pub const SCNx32: &'static [u8; 2usize] = b"x\0"; +pub const SCNx64: &'static [u8; 3usize] = b"lx\0"; +pub const SCNxLEAST8: &'static [u8; 4usize] = b"hhx\0"; +pub const SCNxLEAST16: &'static [u8; 3usize] = b"hx\0"; +pub const SCNxLEAST32: &'static [u8; 2usize] = b"x\0"; +pub const SCNxLEAST64: &'static [u8; 3usize] = b"lx\0"; +pub const SCNxFAST8: &'static [u8; 4usize] = b"hhx\0"; +pub const SCNxFAST16: &'static [u8; 3usize] = b"lx\0"; +pub const SCNxFAST32: &'static [u8; 3usize] = b"lx\0"; +pub const SCNxFAST64: &'static [u8; 3usize] = b"lx\0"; +pub const SCNdMAX: &'static [u8; 3usize] = b"ld\0"; +pub const SCNiMAX: &'static [u8; 3usize] = b"li\0"; +pub const SCNoMAX: &'static [u8; 3usize] = b"lo\0"; +pub const SCNuMAX: &'static [u8; 3usize] = b"lu\0"; +pub const SCNxMAX: &'static [u8; 3usize] = b"lx\0"; +pub const SCNdPTR: &'static [u8; 3usize] = b"ld\0"; +pub const SCNiPTR: &'static [u8; 3usize] = b"li\0"; +pub const SCNoPTR: &'static [u8; 3usize] = b"lo\0"; +pub const SCNuPTR: &'static [u8; 3usize] = b"lu\0"; +pub const SCNxPTR: &'static [u8; 3usize] = b"lx\0"; +pub const _CTYPE_H: u32 = 1; +pub const _SYS_TIME_H: u32 = 1; +pub const _SYS_RESOURCE_H: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const __rusage_defined: u32 = 1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const _STRING_H: u32 = 1; +pub const _STRINGS_H: u32 = 1; +pub const _STDLIB_H: u32 = 1; +pub const WNOHANG: u32 = 1; +pub const WUNTRACED: u32 = 2; +pub const WSTOPPED: u32 = 2; +pub const WEXITED: u32 = 4; +pub const WCONTINUED: u32 = 8; +pub const WNOWAIT: u32 = 16777216; +pub const __WNOTHREAD: u32 = 536870912; +pub const __WALL: u32 = 1073741824; +pub const __WCLONE: u32 = 2147483648; +pub const __ENUM_IDTYPE_T: u32 = 1; +pub const __W_CONTINUED: u32 = 65535; +pub const __WCOREFLAG: u32 = 128; +pub const __ldiv_t_defined: u32 = 1; +pub const __lldiv_t_defined: u32 = 1; +pub const RAND_MAX: u32 = 2147483647; +pub const EXIT_FAILURE: u32 = 1; +pub const EXIT_SUCCESS: u32 = 0; +pub const _ALLOCA_H: u32 = 1; +pub const FS_EXISTS: u32 = 1; +pub const FS_EXECABLE: u32 = 2; +pub const FS_EXEC_PREFERRED: u32 = 4; +pub const FS_EXEC_ONLY: u32 = 8; +pub const FS_DIRECTORY: u32 = 16; +pub const FS_NODIRS: u32 = 32; +pub const FS_READABLE: u32 = 64; +pub const HIGH_FD_MAX: u32 = 256; +pub const DIRSEP: u8 = 47u8; +pub const AS_DISPOSE: u32 = 1; +pub const NO_SIG: i32 = -1; +pub const DEBUG_TRAP: u32 = 33; +pub const ERROR_TRAP: u32 = 34; +pub const RETURN_TRAP: u32 = 35; +pub const EXIT_TRAP: u32 = 0; +pub const BASH_NSIG: u32 = 36; +pub const DSIG_SIGPREFIX: u32 = 1; +pub const DSIG_NOCASE: u32 = 2; +pub const _LIBGETTEXT_H: u32 = 1; +pub const _LIBINTL_H: u32 = 1; +pub const __USE_GNU_GETTEXT: u32 = 1; +pub const _LOCALE_H: u32 = 1; +pub const _BITS_LOCALE_H: u32 = 1; +pub const __LC_CTYPE: u32 = 0; +pub const __LC_NUMERIC: u32 = 1; +pub const __LC_TIME: u32 = 2; +pub const __LC_COLLATE: u32 = 3; +pub const __LC_MONETARY: u32 = 4; +pub const __LC_MESSAGES: u32 = 5; +pub const __LC_ALL: u32 = 6; +pub const __LC_PAPER: u32 = 7; +pub const __LC_NAME: u32 = 8; +pub const __LC_ADDRESS: u32 = 9; +pub const __LC_TELEPHONE: u32 = 10; +pub const __LC_MEASUREMENT: u32 = 11; +pub const __LC_IDENTIFICATION: u32 = 12; +pub const LC_CTYPE: u32 = 0; +pub const LC_NUMERIC: u32 = 1; +pub const LC_TIME: u32 = 2; +pub const LC_COLLATE: u32 = 3; +pub const LC_MONETARY: u32 = 4; +pub const LC_MESSAGES: u32 = 5; +pub const LC_ALL: u32 = 6; +pub const LC_PAPER: u32 = 7; +pub const LC_NAME: u32 = 8; +pub const LC_ADDRESS: u32 = 9; +pub const LC_TELEPHONE: u32 = 10; +pub const LC_MEASUREMENT: u32 = 11; +pub const LC_IDENTIFICATION: u32 = 12; +pub const LC_CTYPE_MASK: u32 = 1; +pub const LC_NUMERIC_MASK: u32 = 2; +pub const LC_TIME_MASK: u32 = 4; +pub const LC_COLLATE_MASK: u32 = 8; +pub const LC_MONETARY_MASK: u32 = 16; +pub const LC_MESSAGES_MASK: u32 = 32; +pub const LC_PAPER_MASK: u32 = 128; +pub const LC_NAME_MASK: u32 = 256; +pub const LC_ADDRESS_MASK: u32 = 512; +pub const LC_TELEPHONE_MASK: u32 = 1024; +pub const LC_MEASUREMENT_MASK: u32 = 2048; +pub const LC_IDENTIFICATION_MASK: u32 = 4096; +pub const LC_ALL_MASK: u32 = 8127; +pub const EXP_EXPANDED: u32 = 1; +pub const FUNC_MULTILINE: u32 = 1; +pub const FUNC_EXTERNAL: u32 = 2; +pub const CASE_LOWER: u32 = 1; +pub const CASE_UPPER: u32 = 2; +pub const CASE_CAPITALIZE: u32 = 4; +pub const CASE_UNCAP: u32 = 8; +pub const CASE_TOGGLE: u32 = 16; +pub const CASE_TOGGLEALL: u32 = 32; +pub const CASE_UPFIRST: u32 = 64; +pub const CASE_LOWFIRST: u32 = 128; +pub const CASE_USEWORDS: u32 = 4096; +pub const FL_PREFIX: u32 = 1; +pub const FL_ADDBASE: u32 = 2; +pub const FL_HEXUPPER: u32 = 4; +pub const FL_UNSIGNED: u32 = 8; +pub const MP_DOTILDE: u32 = 1; +pub const MP_DOCWD: u32 = 2; +pub const MP_RMDOT: u32 = 4; +pub const MP_IGNDOT: u32 = 8; +pub const PATH_CHECKDOTDOT: u32 = 1; +pub const PATH_CHECKEXISTS: u32 = 2; +pub const PATH_HARDPATH: u32 = 4; +pub const PATH_NOALLOC: u32 = 8; +pub const SHMAT_SUBEXP: u32 = 1; +pub const SHMAT_PWARN: u32 = 2; +pub const MT_USETMPDIR: u32 = 1; +pub const MT_READWRITE: u32 = 2; +pub const MT_USERANDOM: u32 = 4; +pub const MT_TEMPLATE: u32 = 8; +pub const DEFAULT_HASH_BUCKETS: u32 = 128; +pub const HASH_NOSRCH: u32 = 1; +pub const HASH_CREATE: u32 = 2; +pub const ASSOC_HASH_BUCKETS: u32 = 1024; +pub const VC_HASLOCAL: u32 = 1; +pub const VC_HASTMPVAR: u32 = 2; +pub const VC_FUNCENV: u32 = 4; +pub const VC_BLTNENV: u32 = 8; +pub const VC_TEMPENV: u32 = 16; +pub const VC_TEMPFLAGS: u32 = 28; +pub const att_exported: u32 = 1; +pub const att_readonly: u32 = 2; +pub const att_array: u32 = 4; +pub const att_function: u32 = 8; +pub const att_integer: u32 = 16; +pub const att_local: u32 = 32; +pub const att_assoc: u32 = 64; +pub const att_trace: u32 = 128; +pub const att_uppercase: u32 = 256; +pub const att_lowercase: u32 = 512; +pub const att_capcase: u32 = 1024; +pub const att_nameref: u32 = 2048; +pub const user_attrs: u32 = 4019; +pub const attmask_user: u32 = 4095; +pub const att_invisible: u32 = 4096; +pub const att_nounset: u32 = 8192; +pub const att_noassign: u32 = 16384; +pub const att_imported: u32 = 32768; +pub const att_special: u32 = 65536; +pub const att_nofree: u32 = 131072; +pub const att_regenerate: u32 = 262144; +pub const attmask_int: u32 = 1044480; +pub const att_tempvar: u32 = 1048576; +pub const att_propagate: u32 = 2097152; +pub const attmask_scope: u32 = 15728640; +pub const NAMEREF_MAX: u32 = 8; +pub const MKLOC_ASSOCOK: u32 = 1; +pub const MKLOC_ARRAYOK: u32 = 2; +pub const MKLOC_INHERIT: u32 = 4; +pub const AV_ALLOWALL: u32 = 1; +pub const AV_QUOTED: u32 = 2; +pub const AV_USEIND: u32 = 4; +pub const AV_USEVAL: u32 = 8; +pub const AV_ASSIGNRHS: u32 = 16; +pub const AV_NOEXPAND: u32 = 32; +pub const VA_NOEXPAND: u32 = 1; +pub const VA_ONEWORD: u32 = 2; +pub const RX_ACTIVE: u32 = 1; +pub const RX_UNDOABLE: u32 = 2; +pub const RX_CLEXEC: u32 = 4; +pub const RX_INTERNAL: u32 = 8; +pub const RX_USER: u32 = 16; +pub const RX_SAVCLEXEC: u32 = 32; +pub const RX_SAVEFD: u32 = 64; +pub const HC_IGNSPACE: u32 = 1; +pub const HC_IGNDUPS: u32 = 2; +pub const HC_ERASEDUPS: u32 = 4; +pub const HC_IGNBOTH: u32 = 3; +pub const CA_ALIAS: u32 = 1; +pub const CA_ARRAYVAR: u32 = 2; +pub const CA_BINDING: u32 = 4; +pub const CA_BUILTIN: u32 = 8; +pub const CA_COMMAND: u32 = 16; +pub const CA_DIRECTORY: u32 = 32; +pub const CA_DISABLED: u32 = 64; +pub const CA_ENABLED: u32 = 128; +pub const CA_EXPORT: u32 = 256; +pub const CA_FILE: u32 = 512; +pub const CA_FUNCTION: u32 = 1024; +pub const CA_GROUP: u32 = 2048; +pub const CA_HELPTOPIC: u32 = 4096; +pub const CA_HOSTNAME: u32 = 8192; +pub const CA_JOB: u32 = 16384; +pub const CA_KEYWORD: u32 = 32768; +pub const CA_RUNNING: u32 = 65536; +pub const CA_SERVICE: u32 = 131072; +pub const CA_SETOPT: u32 = 262144; +pub const CA_SHOPT: u32 = 524288; +pub const CA_SIGNAL: u32 = 1048576; +pub const CA_STOPPED: u32 = 2097152; +pub const CA_USER: u32 = 4194304; +pub const CA_VARIABLE: u32 = 8388608; +pub const COPT_RESERVED: u32 = 1; +pub const COPT_DEFAULT: u32 = 2; +pub const COPT_FILENAMES: u32 = 4; +pub const COPT_DIRNAMES: u32 = 8; +pub const COPT_NOQUOTE: u32 = 16; +pub const COPT_NOSPACE: u32 = 32; +pub const COPT_BASHDEFAULT: u32 = 64; +pub const COPT_PLUSDIRS: u32 = 128; +pub const COPT_NOSORT: u32 = 256; +pub const COPT_LASTUSER: u32 = 256; +pub const PCOMP_RETRYFAIL: u32 = 512; +pub const PCOMP_NOTFOUND: u32 = 1024; +pub const LIST_DYNAMIC: u32 = 1; +pub const LIST_DIRTY: u32 = 2; +pub const LIST_INITIALIZED: u32 = 4; +pub const LIST_MUSTSORT: u32 = 8; +pub const LIST_DONTFREE: u32 = 16; +pub const LIST_DONTFREEMEMBERS: u32 = 32; +pub const EMPTYCMD: &'static [u8; 11usize] = b"_EmptycmD_\0"; +pub const DEFAULTCMD: &'static [u8; 13usize] = b"_DefaultCmD_\0"; +pub const INITIALWORD: &'static [u8; 14usize] = b"_InitialWorD_\0"; +pub const _STDIO_H: u32 = 1; +pub const _____fpos_t_defined: u32 = 1; +pub const _____fpos64_t_defined: u32 = 1; +pub const __struct_FILE_defined: u32 = 1; +pub const _IO_EOF_SEEN: u32 = 16; +pub const _IO_ERR_SEEN: u32 = 32; +pub const _IO_USER_LOCK: u32 = 32768; +pub const __cookie_io_functions_t_defined: u32 = 1; +pub const _IOFBF: u32 = 0; +pub const _IOLBF: u32 = 1; +pub const _IONBF: u32 = 2; +pub const BUFSIZ: u32 = 8192; +pub const EOF: i32 = -1; +pub const P_tmpdir: &'static [u8; 5usize] = b"/tmp\0"; +pub const _BITS_STDIO_LIM_H: u32 = 1; +pub const L_tmpnam: u32 = 20; +pub const TMP_MAX: u32 = 238328; +pub const FILENAME_MAX: u32 = 4096; +pub const L_ctermid: u32 = 9; +pub const L_cuserid: u32 = 9; +pub const FOPEN_MAX: u32 = 16; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const DEFAULT_HOSTS_FILE: &'static [u8; 11usize] = b"/etc/hosts\0"; +pub const SYS_PROFILE: &'static [u8; 13usize] = b"/etc/profile\0"; +pub const DEBUGGER_START_FILE: &'static [u8; 46usize] = + b"/usr/local/share/utshelldb/utshelldb-main.inc\0"; +pub const FILENAME_HASH_BUCKETS: u32 = 256; +pub const HASH_RELPATH: u32 = 1; +pub const HASH_CHKDOT: u32 = 2; +pub const AL_EXPANDNEXT: u32 = 1; +pub const AL_BEINGEXPANDED: u32 = 2; +pub const QGLOB_CVTNULL: u32 = 1; +pub const QGLOB_FILENAME: u32 = 2; +pub const QGLOB_REGEXP: u32 = 4; +pub const QGLOB_CTLESC: u32 = 8; +pub const QGLOB_DEQUOTE: u32 = 16; +pub const FLAG_ON: u8 = 45u8; +pub const FLAG_OFF: u8 = 43u8; +pub const FLAG_ERROR: i32 = -1; +pub const PATCHLEVEL: u32 = 4; +pub const Q_DOUBLE_QUOTES: u32 = 1; +pub const Q_HERE_DOCUMENT: u32 = 2; +pub const Q_KEEP_BACKSLASH: u32 = 4; +pub const Q_PATQUOTE: u32 = 8; +pub const Q_QUOTED: u32 = 16; +pub const Q_ADDEDQUOTES: u32 = 32; +pub const Q_QUOTEDNULL: u32 = 64; +pub const Q_DOLBRACE: u32 = 128; +pub const Q_ARITH: u32 = 256; +pub const Q_ARRAYSUB: u32 = 512; +pub const ASS_APPEND: u32 = 1; +pub const ASS_MKLOCAL: u32 = 2; +pub const ASS_MKASSOC: u32 = 4; +pub const ASS_MKGLOBAL: u32 = 8; +pub const ASS_NAMEREF: u32 = 16; +pub const ASS_FORCE: u32 = 32; +pub const ASS_CHKLOCAL: u32 = 64; +pub const ASS_NOEXPAND: u32 = 128; +pub const ASS_NOEVAL: u32 = 256; +pub const ASS_NOLONGJMP: u32 = 512; +pub const ASS_NOINVIS: u32 = 1024; +pub const SX_NOALLOC: u32 = 1; +pub const SX_VARNAME: u32 = 2; +pub const SX_REQMATCH: u32 = 4; +pub const SX_COMMAND: u32 = 8; +pub const SX_NOCTLESC: u32 = 16; +pub const SX_NOESCCTLNUL: u32 = 32; +pub const SX_NOLONGJMP: u32 = 64; +pub const SX_ARITHSUB: u32 = 128; +pub const SX_POSIXEXP: u32 = 256; +pub const SX_WORD: u32 = 512; +pub const SX_COMPLETE: u32 = 1024; +pub const SX_STRIPDQ: u32 = 2048; +pub const SD_NOJMP: u32 = 1; +pub const SD_INVERT: u32 = 2; +pub const SD_NOQUOTEDELIM: u32 = 4; +pub const SD_NOSKIPCMD: u32 = 8; +pub const SD_EXTGLOB: u32 = 16; +pub const SD_IGNOREQUOTE: u32 = 32; +pub const SD_GLOB: u32 = 64; +pub const SD_NOPROCSUB: u32 = 128; +pub const SD_COMPLETE: u32 = 256; +pub const SD_HISTEXP: u32 = 512; +pub const SD_ARITHEXP: u32 = 1024; +pub const _SYS_WAIT_H: u32 = 1; +pub const WCOREFLAG: u32 = 128; +pub const WAIT_ANY: i32 = -1; +pub const WAIT_MYPGRP: u32 = 0; +pub const JLIST_STANDARD: u32 = 0; +pub const JLIST_LONG: u32 = 1; +pub const JLIST_PID_ONLY: u32 = 2; +pub const JLIST_CHANGED_ONLY: u32 = 3; +pub const JLIST_NONINTERACTIVE: u32 = 4; +pub const LONGEST_SIGNAL_DESC: u32 = 24; +pub const JWAIT_PERROR: u32 = 1; +pub const JWAIT_FORCE: u32 = 2; +pub const JWAIT_NOWAIT: u32 = 4; +pub const JWAIT_WAITING: u32 = 8; +pub const JWAIT_NOTERM: u32 = 256; +pub const FORKSLEEP_MAX: u32 = 16; +pub const PS_DONE: u32 = 0; +pub const PS_RUNNING: u32 = 1; +pub const PS_STOPPED: u32 = 2; +pub const PS_RECYCLED: u32 = 4; +pub const J_FOREGROUND: u32 = 1; +pub const J_NOTIFIED: u32 = 2; +pub const J_JOBCONTROL: u32 = 4; +pub const J_NOHUP: u32 = 8; +pub const J_STATSAVED: u32 = 16; +pub const J_ASYNC: u32 = 32; +pub const J_PIPEFAIL: u32 = 64; +pub const J_WAITING: u32 = 128; +pub const NO_JOB: i32 = -1; +pub const DUP_JOB: i32 = -2; +pub const BAD_JOBSPEC: i32 = -3; +pub const FORK_SYNC: u32 = 0; +pub const FORK_ASYNC: u32 = 1; +pub const FORK_NOJOB: u32 = 2; +pub const FORK_NOTERM: u32 = 4; +pub const CMDSRCH_HASH: u32 = 1; +pub const CMDSRCH_STDPATH: u32 = 2; +pub const CMDSRCH_TEMPENV: u32 = 4; +pub const _SETJMP_H: u32 = 1; +pub const _BITS_SETJMP_H: u32 = 1; +pub const NOT_JUMPED: u32 = 0; +pub const FORCE_EOF: u32 = 1; +pub const DISCARD: u32 = 2; +pub const EXITPROG: u32 = 3; +pub const ERREXIT: u32 = 4; +pub const SIGEXIT: u32 = 5; +pub const slashify_in_here_document: &'static [u8; 4usize] = b"\\`$\0"; +pub const shell_meta_chars: &'static [u8; 8usize] = b"()<>;&|\0"; +pub const shell_break_chars: &'static [u8; 13usize] = b"()<>;&| \\t\\n\0"; +pub const shell_quote_chars: &'static [u8; 4usize] = b"\"`'\0"; +pub const shell_exp_chars: &'static [u8; 4usize] = b"$<>\0"; +pub const ext_glob_chars: &'static [u8; 6usize] = b"@*+?!\0"; +pub const shell_glob_chars: &'static [u8; 6usize] = b"*?[]^\0"; +pub const CWORD: u32 = 0; +pub const CSHMETA: u32 = 1; +pub const CSHBRK: u32 = 2; +pub const CBACKQ: u32 = 4; +pub const CQUOTE: u32 = 8; +pub const CSPECL: u32 = 16; +pub const CEXP: u32 = 32; +pub const CBSDQUOTE: u32 = 64; +pub const CBSHDOC: u32 = 128; +pub const CGLOB: u32 = 256; +pub const CXGLOB: u32 = 512; +pub const CXQUOTE: u32 = 1024; +pub const CSPECVAR: u32 = 2048; +pub const CSUBSTOP: u32 = 4096; +pub const CBLANK: u32 = 8192; +pub const CTLESC: u8 = 1u8; +pub const CTLNUL: u8 = 127u8; +pub const _OCACHE_H_: u32 = 1; +pub const NO_PIPE: i32 = -1; +pub const REDIRECT_BOTH: i32 = -2; +pub const NO_VARIABLE: i32 = -1; +pub const EXECUTION_FAILURE: u32 = 1; +pub const EXECUTION_SUCCESS: u32 = 0; +pub const EX_BADUSAGE: u32 = 2; +pub const EX_MISCERROR: u32 = 2; +pub const EX_RETRYFAIL: u32 = 124; +pub const EX_WEXPCOMSUB: u32 = 125; +pub const EX_BINARY_FILE: u32 = 126; +pub const EX_NOEXEC: u32 = 126; +pub const EX_NOINPUT: u32 = 126; +pub const EX_NOTFOUND: u32 = 127; +pub const EX_SHERRBASE: u32 = 256; +pub const EX_BADSYNTAX: u32 = 257; +pub const EX_USAGE: u32 = 258; +pub const EX_REDIRFAIL: u32 = 259; +pub const EX_BADASSIGN: u32 = 260; +pub const EX_EXPFAIL: u32 = 261; +pub const EX_DISKFALLBACK: u32 = 262; +pub const MATCH_ANY: u32 = 0; +pub const MATCH_BEG: u32 = 1; +pub const MATCH_END: u32 = 2; +pub const MATCH_TYPEMASK: u32 = 3; +pub const MATCH_GLOBREP: u32 = 16; +pub const MATCH_QUOTED: u32 = 32; +pub const MATCH_ASSIGNRHS: u32 = 64; +pub const MATCH_STARSUB: u32 = 128; +pub const FD_BITMAP_SIZE: u32 = 32; +pub const HEREDOC_MAX: u32 = 16; +pub const B_EOF: u32 = 1; +pub const B_ERROR: u32 = 2; +pub const B_UNBUFF: u32 = 4; +pub const B_WASBASHINPUT: u32 = 8; +pub const B_TEXT: u32 = 16; +pub const B_SHAREDBUF: u32 = 32; +pub const BUILTIN_ENABLED: u32 = 1; +pub const BUILTIN_DELETED: u32 = 2; +pub const STATIC_BUILTIN: u32 = 4; +pub const SPECIAL_BUILTIN: u32 = 8; +pub const ASSIGNMENT_BUILTIN: u32 = 16; +pub const POSIX_BUILTIN: u32 = 32; +pub const LOCALVAR_BUILTIN: u32 = 64; +pub const REQUIRES_BUILTIN: u32 = 128; +pub const BASE_INDENT: u32 = 4; +pub const PST_CASEPAT: u32 = 1; +pub const PST_ALEXPNEXT: u32 = 2; +pub const PST_ALLOWOPNBRC: u32 = 4; +pub const PST_NEEDCLOSBRC: u32 = 8; +pub const PST_DBLPAREN: u32 = 16; +pub const PST_SUBSHELL: u32 = 32; +pub const PST_CMDSUBST: u32 = 64; +pub const PST_CASESTMT: u32 = 128; +pub const PST_CONDCMD: u32 = 256; +pub const PST_CONDEXPR: u32 = 512; +pub const PST_ARITHFOR: u32 = 1024; +pub const PST_ALEXPAND: u32 = 2048; +pub const PST_EXTPAT: u32 = 4096; +pub const PST_COMPASSIGN: u32 = 8192; +pub const PST_ASSIGNOK: u32 = 16384; +pub const PST_EOFTOKEN: u32 = 32768; +pub const PST_REGEXP: u32 = 65536; +pub const PST_HEREDOC: u32 = 131072; +pub const PST_REPARSE: u32 = 262144; +pub const PST_REDIRLIST: u32 = 524288; +pub const PST_COMMENT: u32 = 1048576; +pub const PST_ENDALIAS: u32 = 2097152; +pub const DOLBRACE_PARAM: u32 = 1; +pub const DOLBRACE_OP: u32 = 2; +pub const DOLBRACE_WORD: u32 = 4; +pub const DOLBRACE_QUOTE: u32 = 64; +pub const DOLBRACE_QUOTE2: u32 = 128; +pub const YYDEBUG: u32 = 0; +pub const IF: u32 = 258; +pub const THEN: u32 = 259; +pub const ELSE: u32 = 260; +pub const ELIF: u32 = 261; +pub const FI: u32 = 262; +pub const CASE: u32 = 263; +pub const ESAC: u32 = 264; +pub const FOR: u32 = 265; +pub const SELECT: u32 = 266; +pub const WHILE: u32 = 267; +pub const UNTIL: u32 = 268; +pub const DO: u32 = 269; +pub const DONE: u32 = 270; +pub const FUNCTION: u32 = 271; +pub const COPROC: u32 = 272; +pub const COND_START: u32 = 273; +pub const COND_END: u32 = 274; +pub const COND_ERROR: u32 = 275; +pub const IN: u32 = 276; +pub const BANG: u32 = 277; +pub const TIME: u32 = 278; +pub const TIMEOPT: u32 = 279; +pub const TIMEIGN: u32 = 280; +pub const WORD: u32 = 281; +pub const ASSIGNMENT_WORD: u32 = 282; +pub const REDIR_WORD: u32 = 283; +pub const NUMBER: u32 = 284; +pub const ARITH_CMD: u32 = 285; +pub const ARITH_FOR_EXPRS: u32 = 286; +pub const COND_CMD: u32 = 287; +pub const AND_AND: u32 = 288; +pub const OR_OR: u32 = 289; +pub const GREATER_GREATER: u32 = 290; +pub const LESS_LESS: u32 = 291; +pub const LESS_AND: u32 = 292; +pub const LESS_LESS_LESS: u32 = 293; +pub const GREATER_AND: u32 = 294; +pub const SEMI_SEMI: u32 = 295; +pub const SEMI_AND: u32 = 296; +pub const SEMI_SEMI_AND: u32 = 297; +pub const LESS_LESS_MINUS: u32 = 298; +pub const AND_GREATER: u32 = 299; +pub const AND_GREATER_GREATER: u32 = 300; +pub const LESS_GREATER: u32 = 301; +pub const GREATER_BAR: u32 = 302; +pub const BAR_AND: u32 = 303; +pub const yacc_EOF: u32 = 304; +pub const YYSTYPE_IS_TRIVIAL: u32 = 1; +pub const YYSTYPE_IS_DECLARED: u32 = 1; +pub const _FCNTL_H: u32 = 1; +pub const __O_LARGEFILE: u32 = 0; +pub const F_GETLK64: u32 = 5; +pub const F_SETLK64: u32 = 6; +pub const F_SETLKW64: u32 = 7; +pub const __iovec_defined: u32 = 1; +pub const O_ACCMODE: u32 = 3; +pub const O_RDONLY: u32 = 0; +pub const O_WRONLY: u32 = 1; +pub const O_RDWR: u32 = 2; +pub const O_CREAT: u32 = 64; +pub const O_EXCL: u32 = 128; +pub const O_NOCTTY: u32 = 256; +pub const O_TRUNC: u32 = 512; +pub const O_APPEND: u32 = 1024; +pub const O_NONBLOCK: u32 = 2048; +pub const O_NDELAY: u32 = 2048; +pub const O_SYNC: u32 = 1052672; +pub const O_FSYNC: u32 = 1052672; +pub const O_ASYNC: u32 = 8192; +pub const __O_DIRECTORY: u32 = 65536; +pub const __O_NOFOLLOW: u32 = 131072; +pub const __O_CLOEXEC: u32 = 524288; +pub const __O_DIRECT: u32 = 16384; +pub const __O_NOATIME: u32 = 262144; +pub const __O_PATH: u32 = 2097152; +pub const __O_DSYNC: u32 = 4096; +pub const __O_TMPFILE: u32 = 4259840; +pub const F_GETLK: u32 = 5; +pub const F_SETLK: u32 = 6; +pub const F_SETLKW: u32 = 7; +pub const F_OFD_GETLK: u32 = 36; +pub const F_OFD_SETLK: u32 = 37; +pub const F_OFD_SETLKW: u32 = 38; +pub const O_LARGEFILE: u32 = 0; +pub const O_DIRECTORY: u32 = 65536; +pub const O_NOFOLLOW: u32 = 131072; +pub const O_CLOEXEC: u32 = 524288; +pub const O_DIRECT: u32 = 16384; +pub const O_NOATIME: u32 = 262144; +pub const O_PATH: u32 = 2097152; +pub const O_TMPFILE: u32 = 4259840; +pub const O_DSYNC: u32 = 4096; +pub const O_RSYNC: u32 = 1052672; +pub const F_DUPFD: u32 = 0; +pub const F_GETFD: u32 = 1; +pub const F_SETFD: u32 = 2; +pub const F_GETFL: u32 = 3; +pub const F_SETFL: u32 = 4; +pub const __F_SETOWN: u32 = 8; +pub const __F_GETOWN: u32 = 9; +pub const F_SETOWN: u32 = 8; +pub const F_GETOWN: u32 = 9; +pub const __F_SETSIG: u32 = 10; +pub const __F_GETSIG: u32 = 11; +pub const __F_SETOWN_EX: u32 = 15; +pub const __F_GETOWN_EX: u32 = 16; +pub const F_SETSIG: u32 = 10; +pub const F_GETSIG: u32 = 11; +pub const F_SETOWN_EX: u32 = 15; +pub const F_GETOWN_EX: u32 = 16; +pub const F_SETLEASE: u32 = 1024; +pub const F_GETLEASE: u32 = 1025; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const FD_CLOEXEC: u32 = 1; +pub const F_RDLCK: u32 = 0; +pub const F_WRLCK: u32 = 1; +pub const F_UNLCK: u32 = 2; +pub const F_EXLCK: u32 = 4; +pub const F_SHLCK: u32 = 8; +pub const LOCK_SH: u32 = 1; +pub const LOCK_EX: u32 = 2; +pub const LOCK_NB: u32 = 4; +pub const LOCK_UN: u32 = 8; +pub const LOCK_MAND: u32 = 32; +pub const LOCK_READ: u32 = 64; +pub const LOCK_WRITE: u32 = 128; +pub const LOCK_RW: u32 = 192; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const FAPPEND: u32 = 1024; +pub const FFSYNC: u32 = 1052672; +pub const FASYNC: u32 = 8192; +pub const FNONBLOCK: u32 = 2048; +pub const FNDELAY: u32 = 2048; +pub const __POSIX_FADV_DONTNEED: u32 = 4; +pub const __POSIX_FADV_NOREUSE: u32 = 5; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SPLICE_F_MOVE: u32 = 1; +pub const SPLICE_F_NONBLOCK: u32 = 2; +pub const SPLICE_F_MORE: u32 = 4; +pub const SPLICE_F_GIFT: u32 = 8; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const MAX_HANDLE_SZ: u32 = 128; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_EACCESS: u32 = 512; +pub const _BITS_STAT_H: u32 = 1; +pub const _STAT_VER_KERNEL: u32 = 0; +pub const _STAT_VER_LINUX: u32 = 1; +pub const _MKNOD_VER_LINUX: u32 = 0; +pub const _STAT_VER: u32 = 1; +pub const __S_IFMT: u32 = 61440; +pub const __S_IFDIR: u32 = 16384; +pub const __S_IFCHR: u32 = 8192; +pub const __S_IFBLK: u32 = 24576; +pub const __S_IFREG: u32 = 32768; +pub const __S_IFIFO: u32 = 4096; +pub const __S_IFLNK: u32 = 40960; +pub const __S_IFSOCK: u32 = 49152; +pub const __S_ISUID: u32 = 2048; +pub const __S_ISGID: u32 = 1024; +pub const __S_ISVTX: u32 = 512; +pub const __S_IREAD: u32 = 256; +pub const __S_IWRITE: u32 = 128; +pub const __S_IEXEC: u32 = 64; +pub const UTIME_NOW: u32 = 1073741823; +pub const UTIME_OMIT: u32 = 1073741822; +pub const S_IFMT: u32 = 61440; +pub const S_IFDIR: u32 = 16384; +pub const S_IFCHR: u32 = 8192; +pub const S_IFBLK: u32 = 24576; +pub const S_IFREG: u32 = 32768; +pub const S_IFIFO: u32 = 4096; +pub const S_IFLNK: u32 = 40960; +pub const S_IFSOCK: u32 = 49152; +pub const S_ISUID: u32 = 2048; +pub const S_ISGID: u32 = 1024; +pub const S_ISVTX: u32 = 512; +pub const S_IRUSR: u32 = 256; +pub const S_IWUSR: u32 = 128; +pub const S_IXUSR: u32 = 64; +pub const S_IRWXU: u32 = 448; +pub const S_IRGRP: u32 = 32; +pub const S_IWGRP: u32 = 16; +pub const S_IXGRP: u32 = 8; +pub const S_IRWXG: u32 = 56; +pub const S_IROTH: u32 = 4; +pub const S_IWOTH: u32 = 2; +pub const S_IXOTH: u32 = 1; +pub const S_IRWXO: u32 = 7; +pub const FD_NCLOEXEC: u32 = 0; +pub const O_BINARY: u32 = 0; +pub const O_TEXT: u32 = 0; +pub const STAT_TIME_H: u32 = 1; +pub const _SYS_STAT_H: u32 = 1; +pub const S_IREAD: u32 = 256; +pub const S_IWRITE: u32 = 128; +pub const S_IEXEC: u32 = 64; +pub const ACCESSPERMS: u32 = 511; +pub const ALLPERMS: u32 = 4095; +pub const DEFFILEMODE: u32 = 438; +pub const S_BLKSIZE: u32 = 512; +pub const _MKNOD_VER: u32 = 0; +pub const STATX_TYPE: u32 = 1; +pub const STATX_MODE: u32 = 2; +pub const STATX_NLINK: u32 = 4; +pub const STATX_UID: u32 = 8; +pub const STATX_GID: u32 = 16; +pub const STATX_ATIME: u32 = 32; +pub const STATX_MTIME: u32 = 64; +pub const STATX_CTIME: u32 = 128; +pub const STATX_INO: u32 = 256; +pub const STATX_SIZE: u32 = 512; +pub const STATX_BLOCKS: u32 = 1024; +pub const STATX_BASIC_STATS: u32 = 2047; +pub const STATX_ALL: u32 = 4095; +pub const STATX_BTIME: u32 = 2048; +pub const STATX__RESERVED: u32 = 2147483648; +pub const STATX_ATTR_COMPRESSED: u32 = 4; +pub const STATX_ATTR_IMMUTABLE: u32 = 16; +pub const STATX_ATTR_APPEND: u32 = 32; +pub const STATX_ATTR_NODUMP: u32 = 64; +pub const STATX_ATTR_ENCRYPTED: u32 = 2048; +pub const STATX_ATTR_AUTOMOUNT: u32 = 4096; +pub const _TIME_H: u32 = 1; +pub const _BITS_TIME_H: u32 = 1; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_TAI: u32 = 11; +pub const TIMER_ABSTIME: u32 = 1; +pub const _BITS_TIMEX_H: u32 = 1; +pub const ADJ_OFFSET: u32 = 1; +pub const ADJ_FREQUENCY: u32 = 2; +pub const ADJ_MAXERROR: u32 = 4; +pub const ADJ_ESTERROR: u32 = 8; +pub const ADJ_STATUS: u32 = 16; +pub const ADJ_TIMECONST: u32 = 32; +pub const ADJ_TAI: u32 = 128; +pub const ADJ_SETOFFSET: u32 = 256; +pub const ADJ_MICRO: u32 = 4096; +pub const ADJ_NANO: u32 = 8192; +pub const ADJ_TICK: u32 = 16384; +pub const ADJ_OFFSET_SINGLESHOT: u32 = 32769; +pub const ADJ_OFFSET_SS_READ: u32 = 40961; +pub const MOD_OFFSET: u32 = 1; +pub const MOD_FREQUENCY: u32 = 2; +pub const MOD_MAXERROR: u32 = 4; +pub const MOD_ESTERROR: u32 = 8; +pub const MOD_STATUS: u32 = 16; +pub const MOD_TIMECONST: u32 = 32; +pub const MOD_CLKB: u32 = 16384; +pub const MOD_CLKA: u32 = 32769; +pub const MOD_TAI: u32 = 128; +pub const MOD_MICRO: u32 = 4096; +pub const MOD_NANO: u32 = 8192; +pub const STA_PLL: u32 = 1; +pub const STA_PPSFREQ: u32 = 2; +pub const STA_PPSTIME: u32 = 4; +pub const STA_FLL: u32 = 8; +pub const STA_INS: u32 = 16; +pub const STA_DEL: u32 = 32; +pub const STA_UNSYNC: u32 = 64; +pub const STA_FREQHOLD: u32 = 128; +pub const STA_PPSSIGNAL: u32 = 256; +pub const STA_PPSJITTER: u32 = 512; +pub const STA_PPSWANDER: u32 = 1024; +pub const STA_PPSERROR: u32 = 2048; +pub const STA_CLOCKERR: u32 = 4096; +pub const STA_NANO: u32 = 8192; +pub const STA_MODE: u32 = 16384; +pub const STA_CLK: u32 = 32768; +pub const STA_RONLY: u32 = 65280; +pub const __struct_tm_defined: u32 = 1; +pub const __itimerspec_defined: u32 = 1; +pub const TIME_UTC: u32 = 1; +pub const _BASH_SYSTIMES_H: u32 = 1; +pub const _SYS_TIMES_H: u32 = 1; +pub const _DIRENT_H: u32 = 1; +pub const _DIRENT_MATCHES_DIRENT64: u32 = 1; +pub const MAXNAMLEN: u32 = 255; +pub const D_FILENO_AVAILABLE: u32 = 1; +pub const _SHMBCHAR_H: u32 = 1; +pub const IS_BASIC_ASCII: u32 = 1; +pub const _STDLIB_H_: u32 = 1; +pub const S_IRUGO: u32 = 292; +pub const S_IWUGO: u32 = 146; +pub const S_IXUGO: u32 = 73; +pub const USEC_PER_SEC: u32 = 1000000; +pub const _TERMIOS_H: u32 = 1; +pub const NCCS: u32 = 32; +pub const _HAVE_STRUCT_TERMIOS_C_ISPEED: u32 = 1; +pub const _HAVE_STRUCT_TERMIOS_C_OSPEED: u32 = 1; +pub const VINTR: u32 = 0; +pub const VQUIT: u32 = 1; +pub const VERASE: u32 = 2; +pub const VKILL: u32 = 3; +pub const VEOF: u32 = 4; +pub const VTIME: u32 = 5; +pub const VMIN: u32 = 6; +pub const VSWTC: u32 = 7; +pub const VSTART: u32 = 8; +pub const VSTOP: u32 = 9; +pub const VSUSP: u32 = 10; +pub const VEOL: u32 = 11; +pub const VREPRINT: u32 = 12; +pub const VDISCARD: u32 = 13; +pub const VWERASE: u32 = 14; +pub const VLNEXT: u32 = 15; +pub const VEOL2: u32 = 16; +pub const IGNBRK: u32 = 1; +pub const BRKINT: u32 = 2; +pub const IGNPAR: u32 = 4; +pub const PARMRK: u32 = 8; +pub const INPCK: u32 = 16; +pub const ISTRIP: u32 = 32; +pub const INLCR: u32 = 64; +pub const IGNCR: u32 = 128; +pub const ICRNL: u32 = 256; +pub const IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +pub const OCRNL: u32 = 8; +pub const ONOCR: u32 = 16; +pub const ONLRET: u32 = 32; +pub const OFILL: u32 = 64; +pub const OFDEL: u32 = 128; +pub const NLDLY: u32 = 256; +pub const NL0: u32 = 0; +pub const NL1: u32 = 256; +pub const CRDLY: u32 = 1536; +pub const CR0: u32 = 0; +pub const CR1: u32 = 512; +pub const CR2: u32 = 1024; +pub const CR3: u32 = 1536; +pub const TABDLY: u32 = 6144; +pub const TAB0: u32 = 0; +pub const TAB1: u32 = 2048; +pub const TAB2: u32 = 4096; +pub const TAB3: u32 = 6144; +pub const BSDLY: u32 = 8192; +pub const BS0: u32 = 0; +pub const BS1: u32 = 8192; +pub const FFDLY: u32 = 32768; +pub const FF0: u32 = 0; +pub const FF1: u32 = 32768; +pub const VTDLY: u32 = 16384; +pub const VT0: u32 = 0; +pub const VT1: u32 = 16384; +pub const XTABS: u32 = 6144; +pub const CBAUD: u32 = 4111; +pub const B0: u32 = 0; +pub const B50: u32 = 1; +pub const B75: u32 = 2; +pub const B110: u32 = 3; +pub const B134: u32 = 4; +pub const B150: u32 = 5; +pub const B200: u32 = 6; +pub const B300: u32 = 7; +pub const B600: u32 = 8; +pub const B1200: u32 = 9; +pub const B1800: u32 = 10; +pub const B2400: u32 = 11; +pub const B4800: u32 = 12; +pub const B9600: u32 = 13; +pub const B19200: u32 = 14; +pub const B38400: u32 = 15; +pub const EXTA: u32 = 14; +pub const EXTB: u32 = 15; +pub const CSIZE: u32 = 48; +pub const CS5: u32 = 0; +pub const CS6: u32 = 16; +pub const CS7: u32 = 32; +pub const CS8: u32 = 48; +pub const CSTOPB: u32 = 64; +pub const CREAD: u32 = 128; +pub const PARENB: u32 = 256; +pub const PARODD: u32 = 512; +pub const HUPCL: u32 = 1024; +pub const CLOCAL: u32 = 2048; +pub const CBAUDEX: u32 = 4096; +pub const B57600: u32 = 4097; +pub const B115200: u32 = 4098; +pub const B230400: u32 = 4099; +pub const B460800: u32 = 4100; +pub const B500000: u32 = 4101; +pub const B576000: u32 = 4102; +pub const B921600: u32 = 4103; +pub const B1000000: u32 = 4104; +pub const B1152000: u32 = 4105; +pub const B1500000: u32 = 4106; +pub const B2000000: u32 = 4107; +pub const B2500000: u32 = 4108; +pub const B3000000: u32 = 4109; +pub const B3500000: u32 = 4110; +pub const B4000000: u32 = 4111; +pub const __MAX_BAUD: u32 = 4111; +pub const CIBAUD: u32 = 269418496; +pub const CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const ISIG: u32 = 1; +pub const ICANON: u32 = 2; +pub const XCASE: u32 = 4; +pub const ECHO: u32 = 8; +pub const ECHOE: u32 = 16; +pub const ECHOK: u32 = 32; +pub const ECHONL: u32 = 64; +pub const NOFLSH: u32 = 128; +pub const TOSTOP: u32 = 256; +pub const ECHOCTL: u32 = 512; +pub const ECHOPRT: u32 = 1024; +pub const ECHOKE: u32 = 2048; +pub const FLUSHO: u32 = 4096; +pub const PENDIN: u32 = 16384; +pub const IEXTEN: u32 = 32768; +pub const EXTPROC: u32 = 65536; +pub const TCOOFF: u32 = 0; +pub const TCOON: u32 = 1; +pub const TCIOFF: u32 = 2; +pub const TCION: u32 = 3; +pub const TCIFLUSH: u32 = 0; +pub const TCOFLUSH: u32 = 1; +pub const TCIOFLUSH: u32 = 2; +pub const TCSANOW: u32 = 0; +pub const TCSADRAIN: u32 = 1; +pub const TCSAFLUSH: u32 = 2; +pub const TTYDEF_IFLAG: u32 = 11554; +pub const TTYDEF_OFLAG: u32 = 6149; +pub const TTYDEF_LFLAG: u32 = 35355; +pub const TTYDEF_CFLAG: u32 = 1440; +pub const TTYDEF_SPEED: u32 = 13; +pub const CEOL: u8 = 0u8; +pub const CERASE: u32 = 127; +pub const CSTATUS: u8 = 0u8; +pub const CMIN: u32 = 1; +pub const CQUIT: u32 = 28; +pub const CTIME: u32 = 0; +pub const CBRK: u8 = 0u8; +pub const GETOPT_EOF: i32 = -1; +pub const GETOPT_HELP: i32 = -99; +pub const _SH_GETOPT_H: u32 = 1; +pub const SEVAL_NONINT: u32 = 1; +pub const SEVAL_INTERACT: u32 = 2; +pub const SEVAL_NOHIST: u32 = 4; +pub const SEVAL_NOFREE: u32 = 8; +pub const SEVAL_RESETLINE: u32 = 16; +pub const SEVAL_PARSEONLY: u32 = 32; +pub const SEVAL_NOLONGJMP: u32 = 64; +pub const SEVAL_FUNCDEF: u32 = 128; +pub const SEVAL_ONECMD: u32 = 256; +pub const SEVAL_NOHISTEXP: u32 = 512; +pub const CDESC_ALL: u32 = 1; +pub const CDESC_SHORTDESC: u32 = 2; +pub const CDESC_REUSABLE: u32 = 4; +pub const CDESC_TYPE: u32 = 8; +pub const CDESC_PATH_ONLY: u32 = 16; +pub const CDESC_FORCE_PATH: u32 = 32; +pub const CDESC_NOFUNCS: u32 = 64; +pub const CDESC_ABSPATH: u32 = 128; +pub const CDESC_STDPATH: u32 = 256; +pub const JM_PREFIX: u32 = 1; +pub const JM_SUBSTRING: u32 = 2; +pub const JM_EXACT: u32 = 4; +pub const JM_STOPPED: u32 = 8; +pub const JM_FIRSTMATCH: u32 = 16; +pub const ARGS_NONE: u32 = 0; +pub const ARGS_INVOC: u32 = 1; +pub const ARGS_FUNC: u32 = 2; +pub const ARGS_SETBLTIN: u32 = 4; +pub const MAX_ATTRIBUTES: u32 = 16; +pub const TEST_PATMATCH: u32 = 1; +pub const TEST_ARITHEXP: u32 = 2; +pub const TEST_LOCALE: u32 = 4; +pub type _Float32 = f32; +pub type _Float64 = f64; +pub type _Float32x = f64; +pub type _Float64x = f64; +pub type wchar_t = ::std::os::raw::c_int; +pub type va_list = __builtin_va_list; +pub type __gnuc_va_list = __builtin_va_list; +pub type wint_t = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __mbstate_t { + pub __count: ::std::os::raw::c_int, + pub __value: __mbstate_t__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __mbstate_t__bindgen_ty_1 { + pub __wch: ::std::os::raw::c_uint, + pub __wchb: [::std::os::raw::c_char; 4usize], + _bindgen_union_align: u32, +} +pub type mbstate_t = __mbstate_t; +pub type __FILE = _IO_FILE; +pub type FILE = _IO_FILE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __locale_struct { + pub __locales: [*mut __locale_data; 13usize], + pub __ctype_b: *const ::std::os::raw::c_ushort, + pub __ctype_tolower: *const ::std::os::raw::c_int, + pub __ctype_toupper: *const ::std::os::raw::c_int, + pub __names: [*const ::std::os::raw::c_char; 13usize], +} +pub type __locale_t = *mut __locale_struct; +pub type locale_t = __locale_t; +extern "C" { + pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; +} +extern "C" { + pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; +} +extern "C" { + pub fn wcscmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcsncmp(__s1: *const wchar_t, __s2: *const wchar_t, __n: usize) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcsncasecmp( + __s1: *const wchar_t, + __s2: *const wchar_t, + __n: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcscasecmp_l( + __s1: *const wchar_t, + __s2: *const wchar_t, + __loc: locale_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcsncasecmp_l( + __s1: *const wchar_t, + __s2: *const wchar_t, + __n: usize, + __loc: locale_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; +} +extern "C" { + pub fn wcscoll_l( + __s1: *const wchar_t, + __s2: *const wchar_t, + __loc: locale_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcsxfrm_l( + __s1: *mut wchar_t, + __s2: *const wchar_t, + __n: usize, + __loc: locale_t, + ) -> usize; +} +extern "C" { + pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn wcschr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut ::std::os::raw::c_int; +} +extern "C" { + pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn wcschrnul(__s: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; +} +extern "C" { + pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; +} +extern "C" { + pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn wcstok( + __s: *mut wchar_t, + __delim: *const wchar_t, + __ptr: *mut *mut wchar_t, + ) -> *mut wchar_t; +} +extern "C" { + pub fn wcslen(__s: *const wchar_t) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn wcswcs(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; +} +extern "C" { + pub fn wmemchr(__s: *const wchar_t, __c: wchar_t, __n: usize) -> *mut ::std::os::raw::c_int; +} +extern "C" { + pub fn wmemcmp(__s1: *const wchar_t, __s2: *const wchar_t, __n: usize) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wmemcpy(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> *mut wchar_t; +} +extern "C" { + pub fn wmemmove(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> *mut wchar_t; +} +extern "C" { + pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; +} +extern "C" { + pub fn wmempcpy(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> *mut wchar_t; +} +extern "C" { + pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; +} +extern "C" { + pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mbrtowc( + __pwc: *mut wchar_t, + __s: *const ::std::os::raw::c_char, + __n: usize, + __p: *mut mbstate_t, + ) -> usize; +} +extern "C" { + pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; +} +extern "C" { + pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; +} +extern "C" { + pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; +} +extern "C" { + pub fn mbsrtowcs( + __dst: *mut wchar_t, + __src: *mut *const ::std::os::raw::c_char, + __len: usize, + __ps: *mut mbstate_t, + ) -> usize; +} +extern "C" { + pub fn wcsrtombs( + __dst: *mut ::std::os::raw::c_char, + __src: *mut *const wchar_t, + __len: usize, + __ps: *mut mbstate_t, + ) -> usize; +} +extern "C" { + pub fn mbsnrtowcs( + __dst: *mut wchar_t, + __src: *mut *const ::std::os::raw::c_char, + __nmc: usize, + __len: usize, + __ps: *mut mbstate_t, + ) -> usize; +} +extern "C" { + pub fn wcsnrtombs( + __dst: *mut ::std::os::raw::c_char, + __src: *mut *const wchar_t, + __nwc: usize, + __len: usize, + __ps: *mut mbstate_t, + ) -> usize; +} +extern "C" { + pub fn wcwidth(__c: wchar_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcswidth(__s: *const wchar_t, __n: usize) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; +} +extern "C" { + pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; +} +extern "C" { + pub fn wcstold(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; +} +extern "C" { + pub fn wcstof32(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> _Float32; +} +extern "C" { + pub fn wcstof64(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> _Float64; +} +extern "C" { + pub fn wcstof32x(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> _Float32x; +} +extern "C" { + pub fn wcstof64x(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> _Float64x; +} +extern "C" { + pub fn wcstol( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn wcstoul( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn wcstoll( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn wcstoull( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_ulonglong; +} +extern "C" { + pub fn wcstoq( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn wcstouq( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_ulonglong; +} +extern "C" { + pub fn wcstol_l( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + __loc: locale_t, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn wcstoul_l( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + __loc: locale_t, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn wcstoll_l( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + __loc: locale_t, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn wcstoull_l( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + __loc: locale_t, + ) -> ::std::os::raw::c_ulonglong; +} +extern "C" { + pub fn wcstod_l(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t, __loc: locale_t) -> f64; +} +extern "C" { + pub fn wcstof_l(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t, __loc: locale_t) -> f32; +} +extern "C" { + pub fn wcstold_l(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t, __loc: locale_t) -> f64; +} +extern "C" { + pub fn wcstof32_l( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __loc: locale_t, + ) -> _Float32; +} +extern "C" { + pub fn wcstof64_l( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __loc: locale_t, + ) -> _Float64; +} +extern "C" { + pub fn wcstof32x_l( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __loc: locale_t, + ) -> _Float32x; +} +extern "C" { + pub fn wcstof64x_l( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __loc: locale_t, + ) -> _Float64x; +} +extern "C" { + pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; +} +extern "C" { + pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; +} +extern "C" { + pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn swprintf( + __s: *mut wchar_t, + __n: usize, + __format: *const wchar_t, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vfwprintf( + __s: *mut __FILE, + __format: *const wchar_t, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vswprintf( + __s: *mut wchar_t, + __n: usize, + __format: *const wchar_t, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vfwscanf( + __s: *mut __FILE, + __format: *const wchar_t, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vswscanf( + __s: *const wchar_t, + __format: *const wchar_t, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fgetwc(__stream: *mut __FILE) -> wint_t; +} +extern "C" { + pub fn getwc(__stream: *mut __FILE) -> wint_t; +} +extern "C" { + pub fn getwchar() -> wint_t; +} +extern "C" { + pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; +} +extern "C" { + pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; +} +extern "C" { + pub fn putwchar(__wc: wchar_t) -> wint_t; +} +extern "C" { + pub fn fgetws( + __ws: *mut wchar_t, + __n: ::std::os::raw::c_int, + __stream: *mut __FILE, + ) -> *mut wchar_t; +} +extern "C" { + pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; +} +extern "C" { + pub fn getwc_unlocked(__stream: *mut __FILE) -> wint_t; +} +extern "C" { + pub fn getwchar_unlocked() -> wint_t; +} +extern "C" { + pub fn fgetwc_unlocked(__stream: *mut __FILE) -> wint_t; +} +extern "C" { + pub fn fputwc_unlocked(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; +} +extern "C" { + pub fn putwc_unlocked(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; +} +extern "C" { + pub fn putwchar_unlocked(__wc: wchar_t) -> wint_t; +} +extern "C" { + pub fn fgetws_unlocked( + __ws: *mut wchar_t, + __n: ::std::os::raw::c_int, + __stream: *mut __FILE, + ) -> *mut wchar_t; +} +extern "C" { + pub fn fputws_unlocked(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcsftime( + __s: *mut wchar_t, + __maxsize: usize, + __format: *const wchar_t, + __tp: *const tm, + ) -> usize; +} +extern "C" { + pub fn wcsftime_l( + __s: *mut wchar_t, + __maxsize: usize, + __format: *const wchar_t, + __tp: *const tm, + __loc: locale_t, + ) -> usize; +} +pub type __u_char = ::std::os::raw::c_uchar; +pub type __u_short = ::std::os::raw::c_ushort; +pub type __u_int = ::std::os::raw::c_uint; +pub type __u_long = ::std::os::raw::c_ulong; +pub type __int8_t = ::std::os::raw::c_schar; +pub type __uint8_t = ::std::os::raw::c_uchar; +pub type __int16_t = ::std::os::raw::c_short; +pub type __uint16_t = ::std::os::raw::c_ushort; +pub type __int32_t = ::std::os::raw::c_int; +pub type __uint32_t = ::std::os::raw::c_uint; +pub type __int64_t = ::std::os::raw::c_long; +pub type __uint64_t = ::std::os::raw::c_ulong; +pub type __int_least8_t = __int8_t; +pub type __uint_least8_t = __uint8_t; +pub type __int_least16_t = __int16_t; +pub type __uint_least16_t = __uint16_t; +pub type __int_least32_t = __int32_t; +pub type __uint_least32_t = __uint32_t; +pub type __int_least64_t = __int64_t; +pub type __uint_least64_t = __uint64_t; +pub type __quad_t = ::std::os::raw::c_long; +pub type __u_quad_t = ::std::os::raw::c_ulong; +pub type __intmax_t = ::std::os::raw::c_long; +pub type __uintmax_t = ::std::os::raw::c_ulong; +pub type __dev_t = ::std::os::raw::c_ulong; +pub type __uid_t = ::std::os::raw::c_uint; +pub type __gid_t = ::std::os::raw::c_uint; +pub type __ino_t = ::std::os::raw::c_ulong; +pub type __ino64_t = ::std::os::raw::c_ulong; +pub type __mode_t = ::std::os::raw::c_uint; +pub type __nlink_t = ::std::os::raw::c_ulong; +pub type __off_t = ::std::os::raw::c_long; +pub type __off64_t = ::std::os::raw::c_long; +pub type __pid_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __fsid_t { + pub __val: [::std::os::raw::c_int; 2usize], +} +pub type __clock_t = ::std::os::raw::c_long; +pub type __rlim_t = ::std::os::raw::c_ulong; +pub type __rlim64_t = ::std::os::raw::c_ulong; +pub type __id_t = ::std::os::raw::c_uint; +pub type __time_t = ::std::os::raw::c_long; +pub type __useconds_t = ::std::os::raw::c_uint; +pub type __suseconds_t = ::std::os::raw::c_long; +pub type __daddr_t = ::std::os::raw::c_int; +pub type __key_t = ::std::os::raw::c_int; +pub type __clockid_t = ::std::os::raw::c_int; +pub type __timer_t = *mut ::std::os::raw::c_void; +pub type __blksize_t = ::std::os::raw::c_long; +pub type __blkcnt_t = ::std::os::raw::c_long; +pub type __blkcnt64_t = ::std::os::raw::c_long; +pub type __fsblkcnt_t = ::std::os::raw::c_ulong; +pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; +pub type __fsfilcnt_t = ::std::os::raw::c_ulong; +pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; +pub type __fsword_t = ::std::os::raw::c_long; +pub type __ssize_t = ::std::os::raw::c_long; +pub type __syscall_slong_t = ::std::os::raw::c_long; +pub type __syscall_ulong_t = ::std::os::raw::c_ulong; +pub type __loff_t = __off64_t; +pub type __caddr_t = *mut ::std::os::raw::c_char; +pub type __intptr_t = ::std::os::raw::c_long; +pub type __socklen_t = ::std::os::raw::c_uint; +pub type __sig_atomic_t = ::std::os::raw::c_int; +pub type wctype_t = ::std::os::raw::c_ulong; +pub const __ISwupper: _bindgen_ty_1 = 0; +pub const __ISwlower: _bindgen_ty_1 = 1; +pub const __ISwalpha: _bindgen_ty_1 = 2; +pub const __ISwdigit: _bindgen_ty_1 = 3; +pub const __ISwxdigit: _bindgen_ty_1 = 4; +pub const __ISwspace: _bindgen_ty_1 = 5; +pub const __ISwprint: _bindgen_ty_1 = 6; +pub const __ISwgraph: _bindgen_ty_1 = 7; +pub const __ISwblank: _bindgen_ty_1 = 8; +pub const __ISwcntrl: _bindgen_ty_1 = 9; +pub const __ISwpunct: _bindgen_ty_1 = 10; +pub const __ISwalnum: _bindgen_ty_1 = 11; +pub const _ISwupper: _bindgen_ty_1 = 16777216; +pub const _ISwlower: _bindgen_ty_1 = 33554432; +pub const _ISwalpha: _bindgen_ty_1 = 67108864; +pub const _ISwdigit: _bindgen_ty_1 = 134217728; +pub const _ISwxdigit: _bindgen_ty_1 = 268435456; +pub const _ISwspace: _bindgen_ty_1 = 536870912; +pub const _ISwprint: _bindgen_ty_1 = 1073741824; +pub const _ISwgraph: _bindgen_ty_1 = -2147483648; +pub const _ISwblank: _bindgen_ty_1 = 65536; +pub const _ISwcntrl: _bindgen_ty_1 = 131072; +pub const _ISwpunct: _bindgen_ty_1 = 262144; +pub const _ISwalnum: _bindgen_ty_1 = 524288; +pub type _bindgen_ty_1 = i32; +extern "C" { + pub fn iswalnum(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswalpha(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswcntrl(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswdigit(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswgraph(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswlower(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswprint(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswpunct(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswspace(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswupper(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswxdigit(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswblank(__wc: wint_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wctype(__property: *const ::std::os::raw::c_char) -> wctype_t; +} +extern "C" { + pub fn iswctype(__wc: wint_t, __desc: wctype_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn towlower(__wc: wint_t) -> wint_t; +} +extern "C" { + pub fn towupper(__wc: wint_t) -> wint_t; +} +pub type wctrans_t = *const __int32_t; +extern "C" { + pub fn wctrans(__property: *const ::std::os::raw::c_char) -> wctrans_t; +} +extern "C" { + pub fn towctrans(__wc: wint_t, __desc: wctrans_t) -> wint_t; +} +extern "C" { + pub fn iswalnum_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswalpha_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswcntrl_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswdigit_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswgraph_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswlower_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswprint_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswpunct_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswspace_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswupper_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswxdigit_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iswblank_l(__wc: wint_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wctype_l(__property: *const ::std::os::raw::c_char, __locale: locale_t) -> wctype_t; +} +extern "C" { + pub fn iswctype_l(__wc: wint_t, __desc: wctype_t, __locale: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn towlower_l(__wc: wint_t, __locale: locale_t) -> wint_t; +} +extern "C" { + pub fn towupper_l(__wc: wint_t, __locale: locale_t) -> wint_t; +} +extern "C" { + pub fn wctrans_l(__property: *const ::std::os::raw::c_char, __locale: locale_t) -> wctrans_t; +} +extern "C" { + pub fn towctrans_l(__wc: wint_t, __desc: wctrans_t, __locale: locale_t) -> wint_t; +} +pub type gid_t = __gid_t; +pub type uid_t = __uid_t; +pub type off_t = __off_t; +pub type off64_t = __off64_t; +pub type useconds_t = __useconds_t; +pub type pid_t = __pid_t; +pub type socklen_t = __socklen_t; +extern "C" { + pub fn access( + __name: *const ::std::os::raw::c_char, + __type: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn euidaccess( + __name: *const ::std::os::raw::c_char, + __type: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn eaccess( + __name: *const ::std::os::raw::c_char, + __type: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn faccessat( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __type: ::std::os::raw::c_int, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lseek( + __fd: ::std::os::raw::c_int, + __offset: __off_t, + __whence: ::std::os::raw::c_int, + ) -> __off_t; +} +extern "C" { + pub fn lseek64( + __fd: ::std::os::raw::c_int, + __offset: __off64_t, + __whence: ::std::os::raw::c_int, + ) -> __off64_t; +} +extern "C" { + pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn read( + __fd: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_void, + __nbytes: usize, + ) -> isize; +} +extern "C" { + pub fn write( + __fd: ::std::os::raw::c_int, + __buf: *const ::std::os::raw::c_void, + __n: usize, + ) -> isize; +} +extern "C" { + pub fn pread( + __fd: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_void, + __nbytes: usize, + __offset: __off_t, + ) -> isize; +} +extern "C" { + pub fn pwrite( + __fd: ::std::os::raw::c_int, + __buf: *const ::std::os::raw::c_void, + __n: usize, + __offset: __off_t, + ) -> isize; +} +extern "C" { + pub fn pread64( + __fd: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_void, + __nbytes: usize, + __offset: __off64_t, + ) -> isize; +} +extern "C" { + pub fn pwrite64( + __fd: ::std::os::raw::c_int, + __buf: *const ::std::os::raw::c_void, + __n: usize, + __offset: __off64_t, + ) -> isize; +} +extern "C" { + pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pipe2( + __pipedes: *mut ::std::os::raw::c_int, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; +} +extern "C" { + pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pause() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn chown( + __file: *const ::std::os::raw::c_char, + __owner: __uid_t, + __group: __gid_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fchown( + __fd: ::std::os::raw::c_int, + __owner: __uid_t, + __group: __gid_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lchown( + __file: *const ::std::os::raw::c_char, + __owner: __uid_t, + __group: __gid_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fchownat( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __owner: __uid_t, + __group: __gid_t, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) + -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_current_dir_name() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dup3( + __fd: ::std::os::raw::c_int, + __fd2: ::std::os::raw::c_int, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}__environ"] + pub static mut __environ: *mut *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}environ"] + pub static mut environ: *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn execve( + __path: *const ::std::os::raw::c_char, + __argv: *const *mut ::std::os::raw::c_char, + __envp: *const *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fexecve( + __fd: ::std::os::raw::c_int, + __argv: *const *mut ::std::os::raw::c_char, + __envp: *const *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn execv( + __path: *const ::std::os::raw::c_char, + __argv: *const *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn execle( + __path: *const ::std::os::raw::c_char, + __arg: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn execl( + __path: *const ::std::os::raw::c_char, + __arg: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn execvp( + __file: *const ::std::os::raw::c_char, + __argv: *const *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn execlp( + __file: *const ::std::os::raw::c_char, + __arg: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn execvpe( + __file: *const ::std::os::raw::c_char, + __argv: *const *mut ::std::os::raw::c_char, + __envp: *const *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn _exit(__status: ::std::os::raw::c_int); +} +pub const _PC_LINK_MAX: _bindgen_ty_2 = 0; +pub const _PC_MAX_CANON: _bindgen_ty_2 = 1; +pub const _PC_MAX_INPUT: _bindgen_ty_2 = 2; +pub const _PC_NAME_MAX: _bindgen_ty_2 = 3; +pub const _PC_PATH_MAX: _bindgen_ty_2 = 4; +pub const _PC_PIPE_BUF: _bindgen_ty_2 = 5; +pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_2 = 6; +pub const _PC_NO_TRUNC: _bindgen_ty_2 = 7; +pub const _PC_VDISABLE: _bindgen_ty_2 = 8; +pub const _PC_SYNC_IO: _bindgen_ty_2 = 9; +pub const _PC_ASYNC_IO: _bindgen_ty_2 = 10; +pub const _PC_PRIO_IO: _bindgen_ty_2 = 11; +pub const _PC_SOCK_MAXBUF: _bindgen_ty_2 = 12; +pub const _PC_FILESIZEBITS: _bindgen_ty_2 = 13; +pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_2 = 14; +pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_2 = 15; +pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_2 = 16; +pub const _PC_REC_XFER_ALIGN: _bindgen_ty_2 = 17; +pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_2 = 18; +pub const _PC_SYMLINK_MAX: _bindgen_ty_2 = 19; +pub const _PC_2_SYMLINKS: _bindgen_ty_2 = 20; +pub type _bindgen_ty_2 = u32; +pub const _SC_ARG_MAX: _bindgen_ty_3 = 0; +pub const _SC_CHILD_MAX: _bindgen_ty_3 = 1; +pub const _SC_CLK_TCK: _bindgen_ty_3 = 2; +pub const _SC_NGROUPS_MAX: _bindgen_ty_3 = 3; +pub const _SC_OPEN_MAX: _bindgen_ty_3 = 4; +pub const _SC_STREAM_MAX: _bindgen_ty_3 = 5; +pub const _SC_TZNAME_MAX: _bindgen_ty_3 = 6; +pub const _SC_JOB_CONTROL: _bindgen_ty_3 = 7; +pub const _SC_SAVED_IDS: _bindgen_ty_3 = 8; +pub const _SC_REALTIME_SIGNALS: _bindgen_ty_3 = 9; +pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_3 = 10; +pub const _SC_TIMERS: _bindgen_ty_3 = 11; +pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_3 = 12; +pub const _SC_PRIORITIZED_IO: _bindgen_ty_3 = 13; +pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_3 = 14; +pub const _SC_FSYNC: _bindgen_ty_3 = 15; +pub const _SC_MAPPED_FILES: _bindgen_ty_3 = 16; +pub const _SC_MEMLOCK: _bindgen_ty_3 = 17; +pub const _SC_MEMLOCK_RANGE: _bindgen_ty_3 = 18; +pub const _SC_MEMORY_PROTECTION: _bindgen_ty_3 = 19; +pub const _SC_MESSAGE_PASSING: _bindgen_ty_3 = 20; +pub const _SC_SEMAPHORES: _bindgen_ty_3 = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_3 = 22; +pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_3 = 23; +pub const _SC_AIO_MAX: _bindgen_ty_3 = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_3 = 25; +pub const _SC_DELAYTIMER_MAX: _bindgen_ty_3 = 26; +pub const _SC_MQ_OPEN_MAX: _bindgen_ty_3 = 27; +pub const _SC_MQ_PRIO_MAX: _bindgen_ty_3 = 28; +pub const _SC_VERSION: _bindgen_ty_3 = 29; +pub const _SC_PAGESIZE: _bindgen_ty_3 = 30; +pub const _SC_RTSIG_MAX: _bindgen_ty_3 = 31; +pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_3 = 32; +pub const _SC_SEM_VALUE_MAX: _bindgen_ty_3 = 33; +pub const _SC_SIGQUEUE_MAX: _bindgen_ty_3 = 34; +pub const _SC_TIMER_MAX: _bindgen_ty_3 = 35; +pub const _SC_BC_BASE_MAX: _bindgen_ty_3 = 36; +pub const _SC_BC_DIM_MAX: _bindgen_ty_3 = 37; +pub const _SC_BC_SCALE_MAX: _bindgen_ty_3 = 38; +pub const _SC_BC_STRING_MAX: _bindgen_ty_3 = 39; +pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_3 = 40; +pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_3 = 41; +pub const _SC_EXPR_NEST_MAX: _bindgen_ty_3 = 42; +pub const _SC_LINE_MAX: _bindgen_ty_3 = 43; +pub const _SC_RE_DUP_MAX: _bindgen_ty_3 = 44; +pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_3 = 45; +pub const _SC_2_VERSION: _bindgen_ty_3 = 46; +pub const _SC_2_C_BIND: _bindgen_ty_3 = 47; +pub const _SC_2_C_DEV: _bindgen_ty_3 = 48; +pub const _SC_2_FORT_DEV: _bindgen_ty_3 = 49; +pub const _SC_2_FORT_RUN: _bindgen_ty_3 = 50; +pub const _SC_2_SW_DEV: _bindgen_ty_3 = 51; +pub const _SC_2_LOCALEDEF: _bindgen_ty_3 = 52; +pub const _SC_PII: _bindgen_ty_3 = 53; +pub const _SC_PII_XTI: _bindgen_ty_3 = 54; +pub const _SC_PII_SOCKET: _bindgen_ty_3 = 55; +pub const _SC_PII_INTERNET: _bindgen_ty_3 = 56; +pub const _SC_PII_OSI: _bindgen_ty_3 = 57; +pub const _SC_POLL: _bindgen_ty_3 = 58; +pub const _SC_SELECT: _bindgen_ty_3 = 59; +pub const _SC_UIO_MAXIOV: _bindgen_ty_3 = 60; +pub const _SC_IOV_MAX: _bindgen_ty_3 = 60; +pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_3 = 61; +pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_3 = 62; +pub const _SC_PII_OSI_COTS: _bindgen_ty_3 = 63; +pub const _SC_PII_OSI_CLTS: _bindgen_ty_3 = 64; +pub const _SC_PII_OSI_M: _bindgen_ty_3 = 65; +pub const _SC_T_IOV_MAX: _bindgen_ty_3 = 66; +pub const _SC_THREADS: _bindgen_ty_3 = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_3 = 68; +pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_3 = 69; +pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_3 = 70; +pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_3 = 71; +pub const _SC_TTY_NAME_MAX: _bindgen_ty_3 = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_3 = 73; +pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_3 = 74; +pub const _SC_THREAD_STACK_MIN: _bindgen_ty_3 = 75; +pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_3 = 76; +pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_3 = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_3 = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_3 = 79; +pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_3 = 80; +pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_3 = 81; +pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_3 = 82; +pub const _SC_NPROCESSORS_CONF: _bindgen_ty_3 = 83; +pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_3 = 84; +pub const _SC_PHYS_PAGES: _bindgen_ty_3 = 85; +pub const _SC_AVPHYS_PAGES: _bindgen_ty_3 = 86; +pub const _SC_ATEXIT_MAX: _bindgen_ty_3 = 87; +pub const _SC_PASS_MAX: _bindgen_ty_3 = 88; +pub const _SC_XOPEN_VERSION: _bindgen_ty_3 = 89; +pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_3 = 90; +pub const _SC_XOPEN_UNIX: _bindgen_ty_3 = 91; +pub const _SC_XOPEN_CRYPT: _bindgen_ty_3 = 92; +pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_3 = 93; +pub const _SC_XOPEN_SHM: _bindgen_ty_3 = 94; +pub const _SC_2_CHAR_TERM: _bindgen_ty_3 = 95; +pub const _SC_2_C_VERSION: _bindgen_ty_3 = 96; +pub const _SC_2_UPE: _bindgen_ty_3 = 97; +pub const _SC_XOPEN_XPG2: _bindgen_ty_3 = 98; +pub const _SC_XOPEN_XPG3: _bindgen_ty_3 = 99; +pub const _SC_XOPEN_XPG4: _bindgen_ty_3 = 100; +pub const _SC_CHAR_BIT: _bindgen_ty_3 = 101; +pub const _SC_CHAR_MAX: _bindgen_ty_3 = 102; +pub const _SC_CHAR_MIN: _bindgen_ty_3 = 103; +pub const _SC_INT_MAX: _bindgen_ty_3 = 104; +pub const _SC_INT_MIN: _bindgen_ty_3 = 105; +pub const _SC_LONG_BIT: _bindgen_ty_3 = 106; +pub const _SC_WORD_BIT: _bindgen_ty_3 = 107; +pub const _SC_MB_LEN_MAX: _bindgen_ty_3 = 108; +pub const _SC_NZERO: _bindgen_ty_3 = 109; +pub const _SC_SSIZE_MAX: _bindgen_ty_3 = 110; +pub const _SC_SCHAR_MAX: _bindgen_ty_3 = 111; +pub const _SC_SCHAR_MIN: _bindgen_ty_3 = 112; +pub const _SC_SHRT_MAX: _bindgen_ty_3 = 113; +pub const _SC_SHRT_MIN: _bindgen_ty_3 = 114; +pub const _SC_UCHAR_MAX: _bindgen_ty_3 = 115; +pub const _SC_UINT_MAX: _bindgen_ty_3 = 116; +pub const _SC_ULONG_MAX: _bindgen_ty_3 = 117; +pub const _SC_USHRT_MAX: _bindgen_ty_3 = 118; +pub const _SC_NL_ARGMAX: _bindgen_ty_3 = 119; +pub const _SC_NL_LANGMAX: _bindgen_ty_3 = 120; +pub const _SC_NL_MSGMAX: _bindgen_ty_3 = 121; +pub const _SC_NL_NMAX: _bindgen_ty_3 = 122; +pub const _SC_NL_SETMAX: _bindgen_ty_3 = 123; +pub const _SC_NL_TEXTMAX: _bindgen_ty_3 = 124; +pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_3 = 125; +pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_3 = 126; +pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_3 = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_3 = 128; +pub const _SC_XOPEN_LEGACY: _bindgen_ty_3 = 129; +pub const _SC_XOPEN_REALTIME: _bindgen_ty_3 = 130; +pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_3 = 131; +pub const _SC_ADVISORY_INFO: _bindgen_ty_3 = 132; +pub const _SC_BARRIERS: _bindgen_ty_3 = 133; +pub const _SC_BASE: _bindgen_ty_3 = 134; +pub const _SC_C_LANG_SUPPORT: _bindgen_ty_3 = 135; +pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_3 = 136; +pub const _SC_CLOCK_SELECTION: _bindgen_ty_3 = 137; +pub const _SC_CPUTIME: _bindgen_ty_3 = 138; +pub const _SC_THREAD_CPUTIME: _bindgen_ty_3 = 139; +pub const _SC_DEVICE_IO: _bindgen_ty_3 = 140; +pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_3 = 141; +pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_3 = 142; +pub const _SC_FD_MGMT: _bindgen_ty_3 = 143; +pub const _SC_FIFO: _bindgen_ty_3 = 144; +pub const _SC_PIPE: _bindgen_ty_3 = 145; +pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_3 = 146; +pub const _SC_FILE_LOCKING: _bindgen_ty_3 = 147; +pub const _SC_FILE_SYSTEM: _bindgen_ty_3 = 148; +pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_3 = 149; +pub const _SC_MULTI_PROCESS: _bindgen_ty_3 = 150; +pub const _SC_SINGLE_PROCESS: _bindgen_ty_3 = 151; +pub const _SC_NETWORKING: _bindgen_ty_3 = 152; +pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_3 = 153; +pub const _SC_SPIN_LOCKS: _bindgen_ty_3 = 154; +pub const _SC_REGEXP: _bindgen_ty_3 = 155; +pub const _SC_REGEX_VERSION: _bindgen_ty_3 = 156; +pub const _SC_SHELL: _bindgen_ty_3 = 157; +pub const _SC_SIGNALS: _bindgen_ty_3 = 158; +pub const _SC_SPAWN: _bindgen_ty_3 = 159; +pub const _SC_SPORADIC_SERVER: _bindgen_ty_3 = 160; +pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_3 = 161; +pub const _SC_SYSTEM_DATABASE: _bindgen_ty_3 = 162; +pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_3 = 163; +pub const _SC_TIMEOUTS: _bindgen_ty_3 = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_3 = 165; +pub const _SC_USER_GROUPS: _bindgen_ty_3 = 166; +pub const _SC_USER_GROUPS_R: _bindgen_ty_3 = 167; +pub const _SC_2_PBS: _bindgen_ty_3 = 168; +pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_3 = 169; +pub const _SC_2_PBS_LOCATE: _bindgen_ty_3 = 170; +pub const _SC_2_PBS_MESSAGE: _bindgen_ty_3 = 171; +pub const _SC_2_PBS_TRACK: _bindgen_ty_3 = 172; +pub const _SC_SYMLOOP_MAX: _bindgen_ty_3 = 173; +pub const _SC_STREAMS: _bindgen_ty_3 = 174; +pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_3 = 175; +pub const _SC_V6_ILP32_OFF32: _bindgen_ty_3 = 176; +pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_3 = 177; +pub const _SC_V6_LP64_OFF64: _bindgen_ty_3 = 178; +pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_3 = 179; +pub const _SC_HOST_NAME_MAX: _bindgen_ty_3 = 180; +pub const _SC_TRACE: _bindgen_ty_3 = 181; +pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_3 = 182; +pub const _SC_TRACE_INHERIT: _bindgen_ty_3 = 183; +pub const _SC_TRACE_LOG: _bindgen_ty_3 = 184; +pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_3 = 185; +pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_3 = 186; +pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_3 = 187; +pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_3 = 188; +pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_3 = 189; +pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_3 = 190; +pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_3 = 191; +pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_3 = 192; +pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_3 = 193; +pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_3 = 194; +pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_3 = 195; +pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_3 = 196; +pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_3 = 197; +pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_3 = 198; +pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_3 = 199; +pub const _SC_IPV6: _bindgen_ty_3 = 235; +pub const _SC_RAW_SOCKETS: _bindgen_ty_3 = 236; +pub const _SC_V7_ILP32_OFF32: _bindgen_ty_3 = 237; +pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_3 = 238; +pub const _SC_V7_LP64_OFF64: _bindgen_ty_3 = 239; +pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_3 = 240; +pub const _SC_SS_REPL_MAX: _bindgen_ty_3 = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_3 = 242; +pub const _SC_TRACE_NAME_MAX: _bindgen_ty_3 = 243; +pub const _SC_TRACE_SYS_MAX: _bindgen_ty_3 = 244; +pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_3 = 245; +pub const _SC_XOPEN_STREAMS: _bindgen_ty_3 = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_3 = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_3 = 248; +pub type _bindgen_ty_3 = u32; +pub const _CS_PATH: _bindgen_ty_4 = 0; +pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_4 = 1; +pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_4 = 2; +pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_4 = 3; +pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_4 = 4; +pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_4 = 5; +pub const _CS_LFS_CFLAGS: _bindgen_ty_4 = 1000; +pub const _CS_LFS_LDFLAGS: _bindgen_ty_4 = 1001; +pub const _CS_LFS_LIBS: _bindgen_ty_4 = 1002; +pub const _CS_LFS_LINTFLAGS: _bindgen_ty_4 = 1003; +pub const _CS_LFS64_CFLAGS: _bindgen_ty_4 = 1004; +pub const _CS_LFS64_LDFLAGS: _bindgen_ty_4 = 1005; +pub const _CS_LFS64_LIBS: _bindgen_ty_4 = 1006; +pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_4 = 1007; +pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_4 = 1100; +pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_4 = 1101; +pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_4 = 1102; +pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_4 = 1103; +pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_4 = 1104; +pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1105; +pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_4 = 1106; +pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1107; +pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_4 = 1108; +pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_4 = 1109; +pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_4 = 1110; +pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_4 = 1111; +pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_4 = 1112; +pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1113; +pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_4 = 1114; +pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1115; +pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_4 = 1116; +pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_4 = 1117; +pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_4 = 1118; +pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_4 = 1119; +pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_4 = 1120; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1121; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_4 = 1122; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1123; +pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_4 = 1124; +pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_4 = 1125; +pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_4 = 1126; +pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_4 = 1127; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_4 = 1128; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1129; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_4 = 1130; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1131; +pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_4 = 1132; +pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_4 = 1133; +pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_4 = 1134; +pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_4 = 1135; +pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_4 = 1136; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1137; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_4 = 1138; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1139; +pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_4 = 1140; +pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_4 = 1141; +pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_4 = 1142; +pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_4 = 1143; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_4 = 1144; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1145; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_4 = 1146; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1147; +pub const _CS_V6_ENV: _bindgen_ty_4 = 1148; +pub const _CS_V7_ENV: _bindgen_ty_4 = 1149; +pub type _bindgen_ty_4 = u32; +extern "C" { + pub fn pathconf( + __path: *const ::std::os::raw::c_char, + __name: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn fpathconf( + __fd: ::std::os::raw::c_int, + __name: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn confstr( + __name: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __len: usize, + ) -> usize; +} +extern "C" { + pub fn getpid() -> __pid_t; +} +extern "C" { + pub fn getppid() -> __pid_t; +} +extern "C" { + pub fn getpgrp() -> __pid_t; +} +extern "C" { + pub fn __getpgid(__pid: __pid_t) -> __pid_t; +} +extern "C" { + pub fn getpgid(__pid: __pid_t) -> __pid_t; +} +extern "C" { + pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setpgrp() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setsid() -> __pid_t; +} +extern "C" { + pub fn getsid(__pid: __pid_t) -> __pid_t; +} +extern "C" { + pub fn getuid() -> __uid_t; +} +extern "C" { + pub fn geteuid() -> __uid_t; +} +extern "C" { + pub fn getgid() -> __gid_t; +} +extern "C" { + pub fn getegid() -> __gid_t; +} +extern "C" { + pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn group_member(__gid: __gid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getresuid( + __ruid: *mut __uid_t, + __euid: *mut __uid_t, + __suid: *mut __uid_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getresgid( + __rgid: *mut __gid_t, + __egid: *mut __gid_t, + __sgid: *mut __gid_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setresuid(__ruid: __uid_t, __euid: __uid_t, __suid: __uid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setresgid(__rgid: __gid_t, __egid: __gid_t, __sgid: __gid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fork() -> __pid_t; +} +extern "C" { + pub fn vfork() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ttyname_r( + __fd: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __buflen: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttyslot() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn link( + __from: *const ::std::os::raw::c_char, + __to: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn linkat( + __fromfd: ::std::os::raw::c_int, + __from: *const ::std::os::raw::c_char, + __tofd: ::std::os::raw::c_int, + __to: *const ::std::os::raw::c_char, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn symlink( + __from: *const ::std::os::raw::c_char, + __to: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn readlink( + __path: *const ::std::os::raw::c_char, + __buf: *mut ::std::os::raw::c_char, + __len: usize, + ) -> isize; +} +extern "C" { + pub fn symlinkat( + __from: *const ::std::os::raw::c_char, + __tofd: ::std::os::raw::c_int, + __to: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn readlinkat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __buf: *mut ::std::os::raw::c_char, + __len: usize, + ) -> isize; +} +extern "C" { + pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unlinkat( + __fd: ::std::os::raw::c_int, + __name: *const ::std::os::raw::c_char, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; +} +extern "C" { + pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getlogin() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn getlogin_r( + __name: *mut ::std::os::raw::c_char, + __name_len: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}optarg"] + pub static mut optarg: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}optind"] + pub static mut optind: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}opterr"] + pub static mut opterr: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}optopt"] + pub static mut optopt: ::std::os::raw::c_int; +} +extern "C" { + pub fn getopt( + ___argc: ::std::os::raw::c_int, + ___argv: *const *mut ::std::os::raw::c_char, + __shortopts: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sethostname( + __name: *const ::std::os::raw::c_char, + __len: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getdomainname( + __name: *mut ::std::os::raw::c_char, + __len: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setdomainname( + __name: *const ::std::os::raw::c_char, + __len: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vhangup() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn profil( + __sample_buffer: *mut ::std::os::raw::c_ushort, + __size: usize, + __offset: usize, + __scale: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getusershell() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn endusershell(); +} +extern "C" { + pub fn setusershell(); +} +extern "C" { + pub fn daemon( + __nochdir: ::std::os::raw::c_int, + __noclose: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn syncfs(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn gethostid() -> ::std::os::raw::c_long; +} +extern "C" { + pub fn sync(); +} +extern "C" { + pub fn getpagesize() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getdtablesize() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn truncate( + __file: *const ::std::os::raw::c_char, + __length: __off_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn truncate64( + __file: *const ::std::os::raw::c_char, + __length: __off64_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ftruncate64(__fd: ::std::os::raw::c_int, __length: __off64_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn lockf( + __fd: ::std::os::raw::c_int, + __cmd: ::std::os::raw::c_int, + __len: __off_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lockf64( + __fd: ::std::os::raw::c_int, + __cmd: ::std::os::raw::c_int, + __len: __off64_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn copy_file_range( + __infd: ::std::os::raw::c_int, + __pinoff: *mut __off64_t, + __outfd: ::std::os::raw::c_int, + __poutoff: *mut __off64_t, + __length: usize, + __flags: ::std::os::raw::c_uint, + ) -> isize; +} +extern "C" { + pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn crypt( + __key: *const ::std::os::raw::c_char, + __salt: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn swab( + __from: *const ::std::os::raw::c_void, + __to: *mut ::std::os::raw::c_void, + __n: isize, + ); +} +extern "C" { + pub fn getentropy( + __buffer: *mut ::std::os::raw::c_void, + __length: usize, + ) -> ::std::os::raw::c_int; +} +pub type sig_atomic_t = __sig_atomic_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sigset_t { + pub __val: [::std::os::raw::c_ulong; 16usize], +} +pub type sigset_t = __sigset_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { + pub tv_sec: __time_t, + pub tv_nsec: __syscall_slong_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { + pub sival_int: ::std::os::raw::c_int, + pub sival_ptr: *mut ::std::os::raw::c_void, + _bindgen_union_align: u64, +} +pub type __sigval_t = sigval; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct siginfo_t { + pub si_signo: ::std::os::raw::c_int, + pub si_errno: ::std::os::raw::c_int, + pub si_code: ::std::os::raw::c_int, + pub __pad0: ::std::os::raw::c_int, + pub _sifields: siginfo_t__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union siginfo_t__bindgen_ty_1 { + pub _pad: [::std::os::raw::c_int; 28usize], + pub _kill: siginfo_t__bindgen_ty_1__bindgen_ty_1, + pub _timer: siginfo_t__bindgen_ty_1__bindgen_ty_2, + pub _rt: siginfo_t__bindgen_ty_1__bindgen_ty_3, + pub _sigchld: siginfo_t__bindgen_ty_1__bindgen_ty_4, + pub _sigfault: siginfo_t__bindgen_ty_1__bindgen_ty_5, + pub _sigpoll: siginfo_t__bindgen_ty_1__bindgen_ty_6, + pub _sigsys: siginfo_t__bindgen_ty_1__bindgen_ty_7, + _bindgen_union_align: [u64; 14usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_1 { + pub si_pid: __pid_t, + pub si_uid: __uid_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_2 { + pub si_tid: ::std::os::raw::c_int, + pub si_overrun: ::std::os::raw::c_int, + pub si_sigval: __sigval_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_3 { + pub si_pid: __pid_t, + pub si_uid: __uid_t, + pub si_sigval: __sigval_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_4 { + pub si_pid: __pid_t, + pub si_uid: __uid_t, + pub si_status: ::std::os::raw::c_int, + pub si_utime: __clock_t, + pub si_stime: __clock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_5 { + pub si_addr: *mut ::std::os::raw::c_void, + pub si_addr_lsb: ::std::os::raw::c_short, + pub _bounds: siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 { + pub _addr_bnd: siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1, + pub _pkey: __uint32_t, + _bindgen_union_align: [u64; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 { + pub _lower: *mut ::std::os::raw::c_void, + pub _upper: *mut ::std::os::raw::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_6 { + pub si_band: ::std::os::raw::c_long, + pub si_fd: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_7 { + pub _call_addr: *mut ::std::os::raw::c_void, + pub _syscall: ::std::os::raw::c_int, + pub _arch: ::std::os::raw::c_uint, +} +pub const SI_ASYNCNL: _bindgen_ty_5 = -60; +pub const SI_TKILL: _bindgen_ty_5 = -6; +pub const SI_SIGIO: _bindgen_ty_5 = -5; +pub const SI_ASYNCIO: _bindgen_ty_5 = -4; +pub const SI_MESGQ: _bindgen_ty_5 = -3; +pub const SI_TIMER: _bindgen_ty_5 = -2; +pub const SI_QUEUE: _bindgen_ty_5 = -1; +pub const SI_USER: _bindgen_ty_5 = 0; +pub const SI_KERNEL: _bindgen_ty_5 = 128; +pub type _bindgen_ty_5 = i32; +pub const ILL_ILLOPC: _bindgen_ty_6 = 1; +pub const ILL_ILLOPN: _bindgen_ty_6 = 2; +pub const ILL_ILLADR: _bindgen_ty_6 = 3; +pub const ILL_ILLTRP: _bindgen_ty_6 = 4; +pub const ILL_PRVOPC: _bindgen_ty_6 = 5; +pub const ILL_PRVREG: _bindgen_ty_6 = 6; +pub const ILL_COPROC: _bindgen_ty_6 = 7; +pub const ILL_BADSTK: _bindgen_ty_6 = 8; +pub type _bindgen_ty_6 = u32; +pub const FPE_INTDIV: _bindgen_ty_7 = 1; +pub const FPE_INTOVF: _bindgen_ty_7 = 2; +pub const FPE_FLTDIV: _bindgen_ty_7 = 3; +pub const FPE_FLTOVF: _bindgen_ty_7 = 4; +pub const FPE_FLTUND: _bindgen_ty_7 = 5; +pub const FPE_FLTRES: _bindgen_ty_7 = 6; +pub const FPE_FLTINV: _bindgen_ty_7 = 7; +pub const FPE_FLTSUB: _bindgen_ty_7 = 8; +pub type _bindgen_ty_7 = u32; +pub const SEGV_MAPERR: _bindgen_ty_8 = 1; +pub const SEGV_ACCERR: _bindgen_ty_8 = 2; +pub const SEGV_BNDERR: _bindgen_ty_8 = 3; +pub const SEGV_PKUERR: _bindgen_ty_8 = 4; +pub type _bindgen_ty_8 = u32; +pub const BUS_ADRALN: _bindgen_ty_9 = 1; +pub const BUS_ADRERR: _bindgen_ty_9 = 2; +pub const BUS_OBJERR: _bindgen_ty_9 = 3; +pub const BUS_MCEERR_AR: _bindgen_ty_9 = 4; +pub const BUS_MCEERR_AO: _bindgen_ty_9 = 5; +pub type _bindgen_ty_9 = u32; +pub const TRAP_BRKPT: _bindgen_ty_10 = 1; +pub const TRAP_TRACE: _bindgen_ty_10 = 2; +pub type _bindgen_ty_10 = u32; +pub const CLD_EXITED: _bindgen_ty_11 = 1; +pub const CLD_KILLED: _bindgen_ty_11 = 2; +pub const CLD_DUMPED: _bindgen_ty_11 = 3; +pub const CLD_TRAPPED: _bindgen_ty_11 = 4; +pub const CLD_STOPPED: _bindgen_ty_11 = 5; +pub const CLD_CONTINUED: _bindgen_ty_11 = 6; +pub type _bindgen_ty_11 = u32; +pub const POLL_IN: _bindgen_ty_12 = 1; +pub const POLL_OUT: _bindgen_ty_12 = 2; +pub const POLL_MSG: _bindgen_ty_12 = 3; +pub const POLL_ERR: _bindgen_ty_12 = 4; +pub const POLL_PRI: _bindgen_ty_12 = 5; +pub const POLL_HUP: _bindgen_ty_12 = 6; +pub type _bindgen_ty_12 = u32; +pub type sigval_t = __sigval_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigevent { + pub sigev_value: __sigval_t, + pub sigev_signo: ::std::os::raw::c_int, + pub sigev_notify: ::std::os::raw::c_int, + pub _sigev_un: sigevent__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigevent__bindgen_ty_1 { + pub _pad: [::std::os::raw::c_int; 12usize], + pub _tid: __pid_t, + pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1, + _bindgen_union_align: [u64; 6usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { + pub _function: ::core::option::Option, + pub _attribute: *mut pthread_attr_t, +} +pub type sigevent_t = sigevent; +pub const SIGEV_SIGNAL: _bindgen_ty_13 = 0; +pub const SIGEV_NONE: _bindgen_ty_13 = 1; +pub const SIGEV_THREAD: _bindgen_ty_13 = 2; +pub const SIGEV_THREAD_ID: _bindgen_ty_13 = 4; +pub type _bindgen_ty_13 = u32; +pub type __sighandler_t = ::core::option::Option; +extern "C" { + pub fn __sysv_signal(__sig: ::std::os::raw::c_int, __handler: __sighandler_t) + -> __sighandler_t; +} +extern "C" { + pub fn sysv_signal(__sig: ::std::os::raw::c_int, __handler: __sighandler_t) -> __sighandler_t; +} +extern "C" { + pub fn signal(__sig: ::std::os::raw::c_int, __handler: __sighandler_t) -> __sighandler_t; +} +extern "C" { + pub fn kill(__pid: __pid_t, __sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn killpg(__pgrp: __pid_t, __sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn raise(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ssignal(__sig: ::std::os::raw::c_int, __handler: __sighandler_t) -> __sighandler_t; +} +extern "C" { + pub fn gsignal(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn psignal(__sig: ::std::os::raw::c_int, __s: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn psiginfo(__pinfo: *const siginfo_t, __s: *const ::std::os::raw::c_char); +} +extern "C" { + #[link_name = "\u{1}__xpg_sigpause"] + pub fn sigpause(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigblock(__mask: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigsetmask(__mask: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn siggetmask() -> ::std::os::raw::c_int; +} +pub type sighandler_t = __sighandler_t; +pub type sig_t = __sighandler_t; +extern "C" { + pub fn sigemptyset(__set: *mut sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigfillset(__set: *mut sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigaddset(__set: *mut sigset_t, __signo: ::std::os::raw::c_int) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigdelset(__set: *mut sigset_t, __signo: ::std::os::raw::c_int) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigismember( + __set: *const sigset_t, + __signo: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigisemptyset(__set: *const sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigandset( + __set: *mut sigset_t, + __left: *const sigset_t, + __right: *const sigset_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigorset( + __set: *mut sigset_t, + __left: *const sigset_t, + __right: *const sigset_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigaction { + pub __sigaction_handler: sigaction__bindgen_ty_1, + pub sa_mask: __sigset_t, + pub sa_flags: ::std::os::raw::c_int, + pub sa_restorer: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigaction__bindgen_ty_1 { + pub sa_handler: __sighandler_t, + pub sa_sigaction: ::core::option::Option< + unsafe extern "C" fn( + arg1: ::std::os::raw::c_int, + arg2: *mut siginfo_t, + arg3: *mut ::std::os::raw::c_void, + ), + >, + _bindgen_union_align: u64, +} +extern "C" { + pub fn sigprocmask( + __how: ::std::os::raw::c_int, + __set: *const sigset_t, + __oset: *mut sigset_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigsuspend(__set: *const sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigaction( + __sig: ::std::os::raw::c_int, + __act: *const sigaction, + __oact: *mut sigaction, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigpending(__set: *mut sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigwait( + __set: *const sigset_t, + __sig: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigwaitinfo(__set: *const sigset_t, __info: *mut siginfo_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigtimedwait( + __set: *const sigset_t, + __info: *mut siginfo_t, + __timeout: *const timespec, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigqueue( + __pid: __pid_t, + __sig: ::std::os::raw::c_int, + __val: sigval, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}_sys_siglist"] + pub static mut _sys_siglist: [*const ::std::os::raw::c_char; 65usize]; +} +extern "C" { + #[link_name = "\u{1}sys_siglist"] + pub static mut sys_siglist: [*const ::std::os::raw::c_char; 65usize]; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _fpx_sw_bytes { + pub magic1: __uint32_t, + pub extended_size: __uint32_t, + pub xstate_bv: __uint64_t, + pub xstate_size: __uint32_t, + pub __glibc_reserved1: [__uint32_t; 7usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _fpreg { + pub significand: [::std::os::raw::c_ushort; 4usize], + pub exponent: ::std::os::raw::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _fpxreg { + pub significand: [::std::os::raw::c_ushort; 4usize], + pub exponent: ::std::os::raw::c_ushort, + pub __glibc_reserved1: [::std::os::raw::c_ushort; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _xmmreg { + pub element: [__uint32_t; 4usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _fpstate { + pub cwd: __uint16_t, + pub swd: __uint16_t, + pub ftw: __uint16_t, + pub fop: __uint16_t, + pub rip: __uint64_t, + pub rdp: __uint64_t, + pub mxcsr: __uint32_t, + pub mxcr_mask: __uint32_t, + pub _st: [_fpxreg; 8usize], + pub _xmm: [_xmmreg; 16usize], + pub __glibc_reserved1: [__uint32_t; 24usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigcontext { + pub r8: __uint64_t, + pub r9: __uint64_t, + pub r10: __uint64_t, + pub r11: __uint64_t, + pub r12: __uint64_t, + pub r13: __uint64_t, + pub r14: __uint64_t, + pub r15: __uint64_t, + pub rdi: __uint64_t, + pub rsi: __uint64_t, + pub rbp: __uint64_t, + pub rbx: __uint64_t, + pub rdx: __uint64_t, + pub rax: __uint64_t, + pub rcx: __uint64_t, + pub rsp: __uint64_t, + pub rip: __uint64_t, + pub eflags: __uint64_t, + pub cs: ::std::os::raw::c_ushort, + pub gs: ::std::os::raw::c_ushort, + pub fs: ::std::os::raw::c_ushort, + pub __pad0: ::std::os::raw::c_ushort, + pub err: __uint64_t, + pub trapno: __uint64_t, + pub oldmask: __uint64_t, + pub cr2: __uint64_t, + pub __bindgen_anon_1: sigcontext__bindgen_ty_1, + pub __reserved1: [__uint64_t; 8usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigcontext__bindgen_ty_1 { + pub fpstate: *mut _fpstate, + pub __fpstate_word: __uint64_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _xsave_hdr { + pub xstate_bv: __uint64_t, + pub __glibc_reserved1: [__uint64_t; 2usize], + pub __glibc_reserved2: [__uint64_t; 5usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _ymmh_state { + pub ymmh_space: [__uint32_t; 64usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _xstate { + pub fpstate: _fpstate, + pub xstate_hdr: _xsave_hdr, + pub ymmh: _ymmh_state, +} +extern "C" { + pub fn sigreturn(__scp: *mut sigcontext) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct stack_t { + pub ss_sp: *mut ::std::os::raw::c_void, + pub ss_flags: ::std::os::raw::c_int, + pub ss_size: usize, +} +pub type greg_t = ::std::os::raw::c_longlong; +pub type gregset_t = [greg_t; 23usize]; +pub const REG_R8: _bindgen_ty_14 = 0; +pub const REG_R9: _bindgen_ty_14 = 1; +pub const REG_R10: _bindgen_ty_14 = 2; +pub const REG_R11: _bindgen_ty_14 = 3; +pub const REG_R12: _bindgen_ty_14 = 4; +pub const REG_R13: _bindgen_ty_14 = 5; +pub const REG_R14: _bindgen_ty_14 = 6; +pub const REG_R15: _bindgen_ty_14 = 7; +pub const REG_RDI: _bindgen_ty_14 = 8; +pub const REG_RSI: _bindgen_ty_14 = 9; +pub const REG_RBP: _bindgen_ty_14 = 10; +pub const REG_RBX: _bindgen_ty_14 = 11; +pub const REG_RDX: _bindgen_ty_14 = 12; +pub const REG_RAX: _bindgen_ty_14 = 13; +pub const REG_RCX: _bindgen_ty_14 = 14; +pub const REG_RSP: _bindgen_ty_14 = 15; +pub const REG_RIP: _bindgen_ty_14 = 16; +pub const REG_EFL: _bindgen_ty_14 = 17; +pub const REG_CSGSFS: _bindgen_ty_14 = 18; +pub const REG_ERR: _bindgen_ty_14 = 19; +pub const REG_TRAPNO: _bindgen_ty_14 = 20; +pub const REG_OLDMASK: _bindgen_ty_14 = 21; +pub const REG_CR2: _bindgen_ty_14 = 22; +pub type _bindgen_ty_14 = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _libc_fpxreg { + pub significand: [::std::os::raw::c_ushort; 4usize], + pub exponent: ::std::os::raw::c_ushort, + pub __glibc_reserved1: [::std::os::raw::c_ushort; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _libc_xmmreg { + pub element: [__uint32_t; 4usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _libc_fpstate { + pub cwd: __uint16_t, + pub swd: __uint16_t, + pub ftw: __uint16_t, + pub fop: __uint16_t, + pub rip: __uint64_t, + pub rdp: __uint64_t, + pub mxcsr: __uint32_t, + pub mxcr_mask: __uint32_t, + pub _st: [_libc_fpxreg; 8usize], + pub _xmm: [_libc_xmmreg; 16usize], + pub __glibc_reserved1: [__uint32_t; 24usize], +} +pub type fpregset_t = *mut _libc_fpstate; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mcontext_t { + pub gregs: gregset_t, + pub fpregs: fpregset_t, + pub __reserved1: [::std::os::raw::c_ulonglong; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ucontext_t { + pub uc_flags: ::std::os::raw::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: sigset_t, + pub __fpregs_mem: _libc_fpstate, + pub __ssp: [::std::os::raw::c_ulonglong; 4usize], +} +extern "C" { + pub fn siginterrupt( + __sig: ::std::os::raw::c_int, + __interrupt: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +pub const SS_ONSTACK: _bindgen_ty_15 = 1; +pub const SS_DISABLE: _bindgen_ty_15 = 2; +pub type _bindgen_ty_15 = u32; +extern "C" { + pub fn sigaltstack(__ss: *const stack_t, __oss: *mut stack_t) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigstack { + pub ss_sp: *mut ::std::os::raw::c_void, + pub ss_onstack: ::std::os::raw::c_int, +} +extern "C" { + pub fn sigstack(__ss: *mut sigstack, __oss: *mut sigstack) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sighold(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigrelse(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigignore(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigset(__sig: ::std::os::raw::c_int, __disp: __sighandler_t) -> __sighandler_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_rwlock_arch_t { + pub __readers: ::std::os::raw::c_uint, + pub __writers: ::std::os::raw::c_uint, + pub __wrphase_futex: ::std::os::raw::c_uint, + pub __writers_futex: ::std::os::raw::c_uint, + pub __pad3: ::std::os::raw::c_uint, + pub __pad4: ::std::os::raw::c_uint, + pub __cur_writer: ::std::os::raw::c_int, + pub __shared: ::std::os::raw::c_int, + pub __rwelision: ::std::os::raw::c_schar, + pub __pad1: [::std::os::raw::c_uchar; 7usize], + pub __pad2: ::std::os::raw::c_ulong, + pub __flags: ::std::os::raw::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_internal_list { + pub __prev: *mut __pthread_internal_list, + pub __next: *mut __pthread_internal_list, +} +pub type __pthread_list_t = __pthread_internal_list; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_mutex_s { + pub __lock: ::std::os::raw::c_int, + pub __count: ::std::os::raw::c_uint, + pub __owner: ::std::os::raw::c_int, + pub __nusers: ::std::os::raw::c_uint, + pub __kind: ::std::os::raw::c_int, + pub __spins: ::std::os::raw::c_short, + pub __elision: ::std::os::raw::c_short, + pub __list: __pthread_list_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_cond_s { + pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1, + pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2, + pub __g_refs: [::std::os::raw::c_uint; 2usize], + pub __g_size: [::std::os::raw::c_uint; 2usize], + pub __g1_orig_size: ::std::os::raw::c_uint, + pub __wrefs: ::std::os::raw::c_uint, + pub __g_signals: [::std::os::raw::c_uint; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __pthread_cond_s__bindgen_ty_1 { + pub __wseq: ::std::os::raw::c_ulonglong, + pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 { + pub __low: ::std::os::raw::c_uint, + pub __high: ::std::os::raw::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __pthread_cond_s__bindgen_ty_2 { + pub __g1_start: ::std::os::raw::c_ulonglong, + pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 { + pub __low: ::std::os::raw::c_uint, + pub __high: ::std::os::raw::c_uint, +} +pub type pthread_t = ::std::os::raw::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutexattr_t { + pub __size: [::std::os::raw::c_char; 4usize], + pub __align: ::std::os::raw::c_int, + _bindgen_union_align: u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_condattr_t { + pub __size: [::std::os::raw::c_char; 4usize], + pub __align: ::std::os::raw::c_int, + _bindgen_union_align: u32, +} +pub type pthread_key_t = ::std::os::raw::c_uint; +pub type pthread_once_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_attr_t { + pub __size: [::std::os::raw::c_char; 56usize], + pub __align: ::std::os::raw::c_long, + _bindgen_union_align: [u64; 7usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutex_t { + pub __data: __pthread_mutex_s, + pub __size: [::std::os::raw::c_char; 40usize], + pub __align: ::std::os::raw::c_long, + _bindgen_union_align: [u64; 5usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_cond_t { + pub __data: __pthread_cond_s, + pub __size: [::std::os::raw::c_char; 48usize], + pub __align: ::std::os::raw::c_longlong, + _bindgen_union_align: [u64; 6usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlock_t { + pub __data: __pthread_rwlock_arch_t, + pub __size: [::std::os::raw::c_char; 56usize], + pub __align: ::std::os::raw::c_long, + _bindgen_union_align: [u64; 7usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlockattr_t { + pub __size: [::std::os::raw::c_char; 8usize], + pub __align: ::std::os::raw::c_long, + _bindgen_union_align: u64, +} +pub type pthread_spinlock_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_barrier_t { + pub __size: [::std::os::raw::c_char; 32usize], + pub __align: ::std::os::raw::c_long, + _bindgen_union_align: [u64; 4usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_barrierattr_t { + pub __size: [::std::os::raw::c_char; 4usize], + pub __align: ::std::os::raw::c_int, + _bindgen_union_align: u32, +} +extern "C" { + pub fn pthread_sigmask( + __how: ::std::os::raw::c_int, + __newmask: *const __sigset_t, + __oldmask: *mut __sigset_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_kill( + __threadid: pthread_t, + __signo: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_sigqueue( + __threadid: pthread_t, + __signo: ::std::os::raw::c_int, + __value: sigval, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __libc_current_sigrtmin() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __libc_current_sigrtmax() -> ::std::os::raw::c_int; +} +pub type int_least8_t = __int_least8_t; +pub type int_least16_t = __int_least16_t; +pub type int_least32_t = __int_least32_t; +pub type int_least64_t = __int_least64_t; +pub type uint_least8_t = __uint_least8_t; +pub type uint_least16_t = __uint_least16_t; +pub type uint_least32_t = __uint_least32_t; +pub type uint_least64_t = __uint_least64_t; +pub type int_fast8_t = ::std::os::raw::c_schar; +pub type int_fast16_t = ::std::os::raw::c_long; +pub type int_fast32_t = ::std::os::raw::c_long; +pub type int_fast64_t = ::std::os::raw::c_long; +pub type uint_fast8_t = ::std::os::raw::c_uchar; +pub type uint_fast16_t = ::std::os::raw::c_ulong; +pub type uint_fast32_t = ::std::os::raw::c_ulong; +pub type uint_fast64_t = ::std::os::raw::c_ulong; +pub type intmax_t = __intmax_t; +pub type uintmax_t = __uintmax_t; +pub const r_instruction_r_output_direction: r_instruction = 0; +pub const r_instruction_r_input_direction: r_instruction = 1; +pub const r_instruction_r_inputa_direction: r_instruction = 2; +pub const r_instruction_r_appending_to: r_instruction = 3; +pub const r_instruction_r_reading_until: r_instruction = 4; +pub const r_instruction_r_reading_string: r_instruction = 5; +pub const r_instruction_r_duplicating_input: r_instruction = 6; +pub const r_instruction_r_duplicating_output: r_instruction = 7; +pub const r_instruction_r_deblank_reading_until: r_instruction = 8; +pub const r_instruction_r_close_this: r_instruction = 9; +pub const r_instruction_r_err_and_out: r_instruction = 10; +pub const r_instruction_r_input_output: r_instruction = 11; +pub const r_instruction_r_output_force: r_instruction = 12; +pub const r_instruction_r_duplicating_input_word: r_instruction = 13; +pub const r_instruction_r_duplicating_output_word: r_instruction = 14; +pub const r_instruction_r_move_input: r_instruction = 15; +pub const r_instruction_r_move_output: r_instruction = 16; +pub const r_instruction_r_move_input_word: r_instruction = 17; +pub const r_instruction_r_move_output_word: r_instruction = 18; +pub const r_instruction_r_append_err_and_out: r_instruction = 19; +pub type r_instruction = u32; +pub const command_type_cm_for: command_type = 0; +pub const command_type_cm_case: command_type = 1; +pub const command_type_cm_while: command_type = 2; +pub const command_type_cm_if: command_type = 3; +pub const command_type_cm_simple: command_type = 4; +pub const command_type_cm_select: command_type = 5; +pub const command_type_cm_connection: command_type = 6; +pub const command_type_cm_function_def: command_type = 7; +pub const command_type_cm_until: command_type = 8; +pub const command_type_cm_group: command_type = 9; +pub const command_type_cm_arith: command_type = 10; +pub const command_type_cm_cond: command_type = 11; +pub const command_type_cm_arith_for: command_type = 12; +pub const command_type_cm_subshell: command_type = 13; +pub const command_type_cm_coproc: command_type = 14; +pub type command_type = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct word_desc { + pub word: *mut ::std::os::raw::c_char, + pub flags: ::std::os::raw::c_int, +} +pub type WORD_DESC = word_desc; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct word_list { + pub next: *mut word_list, + pub word: *mut WORD_DESC, +} +pub type WORD_LIST = word_list; +#[repr(C)] +#[derive(Copy, Clone)] +pub union REDIRECTEE { + pub dest: ::std::os::raw::c_int, + pub filename: *mut WORD_DESC, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct redirect { + pub next: *mut redirect, + pub redirector: REDIRECTEE, + pub rflags: ::std::os::raw::c_int, + pub flags: ::std::os::raw::c_int, + pub instruction: r_instruction, + pub redirectee: REDIRECTEE, + pub here_doc_eof: *mut ::std::os::raw::c_char, +} +pub type REDIRECT = redirect; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct element { + pub word: *mut WORD_DESC, + pub redirect: *mut REDIRECT, +} +pub type ELEMENT = element; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct command { + pub type_: command_type, + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub redirects: *mut REDIRECT, + pub value: command__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union command__bindgen_ty_1 { + pub For: *mut for_com, + pub Case: *mut case_com, + pub While: *mut while_com, + pub If: *mut if_com, + pub Connection: *mut connection, + pub Simple: *mut simple_com, + pub Function_def: *mut function_def, + pub Group: *mut group_com, + pub Select: *mut select_com, + pub Arith: *mut arith_com, + pub Cond: *mut cond_com, + pub ArithFor: *mut arith_for_com, + pub Subshell: *mut subshell_com, + pub Coproc: *mut coproc_com, + _bindgen_union_align: u64, +} +pub type COMMAND = command; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct connection { + pub ignore: ::std::os::raw::c_int, + pub first: *mut COMMAND, + pub second: *mut COMMAND, + pub connector: ::std::os::raw::c_int, +} +pub type CONNECTION = connection; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pattern_list { + pub next: *mut pattern_list, + pub patterns: *mut WORD_LIST, + pub action: *mut COMMAND, + pub flags: ::std::os::raw::c_int, +} +pub type PATTERN_LIST = pattern_list; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct case_com { + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub word: *mut WORD_DESC, + pub clauses: *mut PATTERN_LIST, +} +pub type CASE_COM = case_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct for_com { + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub name: *mut WORD_DESC, + pub map_list: *mut WORD_LIST, + pub action: *mut COMMAND, +} +pub type FOR_COM = for_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct arith_for_com { + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub init: *mut WORD_LIST, + pub test: *mut WORD_LIST, + pub step: *mut WORD_LIST, + pub action: *mut COMMAND, +} +pub type ARITH_FOR_COM = arith_for_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct select_com { + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub name: *mut WORD_DESC, + pub map_list: *mut WORD_LIST, + pub action: *mut COMMAND, +} +pub type SELECT_COM = select_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct if_com { + pub flags: ::std::os::raw::c_int, + pub test: *mut COMMAND, + pub true_case: *mut COMMAND, + pub false_case: *mut COMMAND, +} +pub type IF_COM = if_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct while_com { + pub flags: ::std::os::raw::c_int, + pub test: *mut COMMAND, + pub action: *mut COMMAND, +} +pub type WHILE_COM = while_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct arith_com { + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub exp: *mut WORD_LIST, +} +pub type ARITH_COM = arith_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cond_com { + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub type_: ::std::os::raw::c_int, + pub op: *mut WORD_DESC, + pub left: *mut cond_com, + pub right: *mut cond_com, +} +pub type COND_COM = cond_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct simple_com { + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub words: *mut WORD_LIST, + pub redirects: *mut REDIRECT, +} +pub type SIMPLE_COM = simple_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct function_def { + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub name: *mut WORD_DESC, + pub command: *mut COMMAND, + pub source_file: *mut ::std::os::raw::c_char, +} +pub type FUNCTION_DEF = function_def; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct group_com { + pub ignore: ::std::os::raw::c_int, + pub command: *mut COMMAND, +} +pub type GROUP_COM = group_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct subshell_com { + pub flags: ::std::os::raw::c_int, + pub line: ::std::os::raw::c_int, + pub command: *mut COMMAND, +} +pub type SUBSHELL_COM = subshell_com; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct coproc { + pub c_name: *mut ::std::os::raw::c_char, + pub c_pid: pid_t, + pub c_rfd: ::std::os::raw::c_int, + pub c_wfd: ::std::os::raw::c_int, + pub c_rsave: ::std::os::raw::c_int, + pub c_wsave: ::std::os::raw::c_int, + pub c_flags: ::std::os::raw::c_int, + pub c_status: ::std::os::raw::c_int, + pub c_lock: ::std::os::raw::c_int, +} +pub type Coproc = coproc; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct coproc_com { + pub flags: ::std::os::raw::c_int, + pub name: *mut ::std::os::raw::c_char, + pub command: *mut COMMAND, +} +pub type COPROC_COM = coproc_com; +extern "C" { + #[link_name = "\u{1}global_command"] + pub static mut global_command: *mut COMMAND; +} +extern "C" { + #[link_name = "\u{1}sh_coproc"] + pub static mut sh_coproc: Coproc; +} +extern "C" { + pub fn copy_function_def_contents( + arg1: *mut FUNCTION_DEF, + arg2: *mut FUNCTION_DEF, + ) -> *mut FUNCTION_DEF; +} +extern "C" { + pub fn copy_function_def(arg1: *mut FUNCTION_DEF) -> *mut FUNCTION_DEF; +} +extern "C" { + pub fn copy_word(arg1: *mut WORD_DESC) -> *mut WORD_DESC; +} +extern "C" { + pub fn copy_word_list(arg1: *mut WORD_LIST) -> *mut WORD_LIST; +} +extern "C" { + pub fn copy_redirect(arg1: *mut REDIRECT) -> *mut REDIRECT; +} +extern "C" { + pub fn copy_redirects(arg1: *mut REDIRECT) -> *mut REDIRECT; +} +extern "C" { + pub fn copy_command(arg1: *mut COMMAND) -> *mut COMMAND; +} +pub type u_char = __u_char; +pub type u_short = __u_short; +pub type u_int = __u_int; +pub type u_long = __u_long; +pub type quad_t = __quad_t; +pub type u_quad_t = __u_quad_t; +pub type fsid_t = __fsid_t; +pub type loff_t = __loff_t; +pub type ino_t = __ino_t; +pub type ino64_t = __ino64_t; +pub type dev_t = __dev_t; +pub type mode_t = __mode_t; +pub type nlink_t = __nlink_t; +pub type id_t = __id_t; +pub type daddr_t = __daddr_t; +pub type caddr_t = __caddr_t; +pub type key_t = __key_t; +pub type clock_t = __clock_t; +pub type clockid_t = __clockid_t; +pub type time_t = __time_t; +pub type timer_t = __timer_t; +pub type suseconds_t = __suseconds_t; +pub type ulong = ::std::os::raw::c_ulong; +pub type ushort = ::std::os::raw::c_ushort; +pub type uint = ::std::os::raw::c_uint; +pub type u_int8_t = ::std::os::raw::c_uchar; +pub type u_int16_t = ::std::os::raw::c_ushort; +pub type u_int32_t = ::std::os::raw::c_uint; +pub type u_int64_t = ::std::os::raw::c_ulong; +pub type register_t = ::std::os::raw::c_long; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { + pub tv_sec: __time_t, + pub tv_usec: __suseconds_t, +} +pub type __fd_mask = ::std::os::raw::c_long; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fd_set { + pub fds_bits: [__fd_mask; 16usize], +} +pub type fd_mask = __fd_mask; +extern "C" { + pub fn select( + __nfds: ::std::os::raw::c_int, + __readfds: *mut fd_set, + __writefds: *mut fd_set, + __exceptfds: *mut fd_set, + __timeout: *mut timeval, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pselect( + __nfds: ::std::os::raw::c_int, + __readfds: *mut fd_set, + __writefds: *mut fd_set, + __exceptfds: *mut fd_set, + __timeout: *const timespec, + __sigmask: *const __sigset_t, + ) -> ::std::os::raw::c_int; +} +pub type blksize_t = __blksize_t; +pub type blkcnt_t = __blkcnt_t; +pub type fsblkcnt_t = __fsblkcnt_t; +pub type fsfilcnt_t = __fsfilcnt_t; +pub type blkcnt64_t = __blkcnt64_t; +pub type fsblkcnt64_t = __fsblkcnt64_t; +pub type fsfilcnt64_t = __fsfilcnt64_t; +pub type __gwchar_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct imaxdiv_t { + pub quot: ::std::os::raw::c_long, + pub rem: ::std::os::raw::c_long, +} +extern "C" { + pub fn imaxabs(__n: intmax_t) -> intmax_t; +} +extern "C" { + pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; +} +extern "C" { + pub fn strtoimax( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> intmax_t; +} +extern "C" { + pub fn strtoumax( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> uintmax_t; +} +extern "C" { + pub fn wcstoimax( + __nptr: *const __gwchar_t, + __endptr: *mut *mut __gwchar_t, + __base: ::std::os::raw::c_int, + ) -> intmax_t; +} +extern "C" { + pub fn wcstoumax( + __nptr: *const __gwchar_t, + __endptr: *mut *mut __gwchar_t, + __base: ::std::os::raw::c_int, + ) -> uintmax_t; +} +pub const _ISupper: _bindgen_ty_16 = 256; +pub const _ISlower: _bindgen_ty_16 = 512; +pub const _ISalpha: _bindgen_ty_16 = 1024; +pub const _ISdigit: _bindgen_ty_16 = 2048; +pub const _ISxdigit: _bindgen_ty_16 = 4096; +pub const _ISspace: _bindgen_ty_16 = 8192; +pub const _ISprint: _bindgen_ty_16 = 16384; +pub const _ISgraph: _bindgen_ty_16 = 32768; +pub const _ISblank: _bindgen_ty_16 = 1; +pub const _IScntrl: _bindgen_ty_16 = 2; +pub const _ISpunct: _bindgen_ty_16 = 4; +pub const _ISalnum: _bindgen_ty_16 = 8; +pub type _bindgen_ty_16 = u32; +extern "C" { + pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; +} +extern "C" { + pub fn __ctype_tolower_loc() -> *mut *const __int32_t; +} +extern "C" { + pub fn __ctype_toupper_loc() -> *mut *const __int32_t; +} +extern "C" { + pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isctype( + __c: ::std::os::raw::c_int, + __mask: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { + pub tz_minuteswest: ::std::os::raw::c_int, + pub tz_dsttime: ::std::os::raw::c_int, +} +pub type __timezone_ptr_t = *mut timezone; +extern "C" { + pub fn gettimeofday(__tv: *mut timeval, __tz: __timezone_ptr_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; +} +pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; +pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; +pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; +pub type __itimer_which = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { + pub it_interval: timeval, + pub it_value: timeval, +} +pub use self::__itimer_which as __itimer_which_t; +extern "C" { + pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setitimer( + __which: __itimer_which_t, + __new: *const itimerval, + __old: *mut itimerval, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn utimes( + __file: *const ::std::os::raw::c_char, + __tvp: *const timeval, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lutimes( + __file: *const ::std::os::raw::c_char, + __tvp: *const timeval, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn futimesat( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __tvp: *const timeval, + ) -> ::std::os::raw::c_int; +} +pub const __rlimit_resource_RLIMIT_CPU: __rlimit_resource = 0; +pub const __rlimit_resource_RLIMIT_FSIZE: __rlimit_resource = 1; +pub const __rlimit_resource_RLIMIT_DATA: __rlimit_resource = 2; +pub const __rlimit_resource_RLIMIT_STACK: __rlimit_resource = 3; +pub const __rlimit_resource_RLIMIT_CORE: __rlimit_resource = 4; +pub const __rlimit_resource___RLIMIT_RSS: __rlimit_resource = 5; +pub const __rlimit_resource_RLIMIT_NOFILE: __rlimit_resource = 7; +pub const __rlimit_resource___RLIMIT_OFILE: __rlimit_resource = 7; +pub const __rlimit_resource_RLIMIT_AS: __rlimit_resource = 9; +pub const __rlimit_resource___RLIMIT_NPROC: __rlimit_resource = 6; +pub const __rlimit_resource___RLIMIT_MEMLOCK: __rlimit_resource = 8; +pub const __rlimit_resource___RLIMIT_LOCKS: __rlimit_resource = 10; +pub const __rlimit_resource___RLIMIT_SIGPENDING: __rlimit_resource = 11; +pub const __rlimit_resource___RLIMIT_MSGQUEUE: __rlimit_resource = 12; +pub const __rlimit_resource___RLIMIT_NICE: __rlimit_resource = 13; +pub const __rlimit_resource___RLIMIT_RTPRIO: __rlimit_resource = 14; +pub const __rlimit_resource___RLIMIT_RTTIME: __rlimit_resource = 15; +pub const __rlimit_resource___RLIMIT_NLIMITS: __rlimit_resource = 16; +pub const __rlimit_resource___RLIM_NLIMITS: __rlimit_resource = 16; +pub type __rlimit_resource = u32; +pub type rlim_t = __rlim_t; +pub type rlim64_t = __rlim64_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { + pub rlim_cur: rlim_t, + pub rlim_max: rlim_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { + pub rlim_cur: rlim64_t, + pub rlim_max: rlim64_t, +} +pub const __rusage_who_RUSAGE_SELF: __rusage_who = 0; +pub const __rusage_who_RUSAGE_CHILDREN: __rusage_who = -1; +pub const __rusage_who_RUSAGE_THREAD: __rusage_who = 1; +pub type __rusage_who = i32; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rusage { + pub ru_utime: timeval, + pub ru_stime: timeval, + pub __bindgen_anon_1: rusage__bindgen_ty_1, + pub __bindgen_anon_2: rusage__bindgen_ty_2, + pub __bindgen_anon_3: rusage__bindgen_ty_3, + pub __bindgen_anon_4: rusage__bindgen_ty_4, + pub __bindgen_anon_5: rusage__bindgen_ty_5, + pub __bindgen_anon_6: rusage__bindgen_ty_6, + pub __bindgen_anon_7: rusage__bindgen_ty_7, + pub __bindgen_anon_8: rusage__bindgen_ty_8, + pub __bindgen_anon_9: rusage__bindgen_ty_9, + pub __bindgen_anon_10: rusage__bindgen_ty_10, + pub __bindgen_anon_11: rusage__bindgen_ty_11, + pub __bindgen_anon_12: rusage__bindgen_ty_12, + pub __bindgen_anon_13: rusage__bindgen_ty_13, + pub __bindgen_anon_14: rusage__bindgen_ty_14, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_1 { + pub ru_maxrss: ::std::os::raw::c_long, + pub __ru_maxrss_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_2 { + pub ru_ixrss: ::std::os::raw::c_long, + pub __ru_ixrss_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_3 { + pub ru_idrss: ::std::os::raw::c_long, + pub __ru_idrss_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_4 { + pub ru_isrss: ::std::os::raw::c_long, + pub __ru_isrss_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_5 { + pub ru_minflt: ::std::os::raw::c_long, + pub __ru_minflt_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_6 { + pub ru_majflt: ::std::os::raw::c_long, + pub __ru_majflt_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_7 { + pub ru_nswap: ::std::os::raw::c_long, + pub __ru_nswap_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_8 { + pub ru_inblock: ::std::os::raw::c_long, + pub __ru_inblock_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_9 { + pub ru_oublock: ::std::os::raw::c_long, + pub __ru_oublock_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_10 { + pub ru_msgsnd: ::std::os::raw::c_long, + pub __ru_msgsnd_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_11 { + pub ru_msgrcv: ::std::os::raw::c_long, + pub __ru_msgrcv_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_12 { + pub ru_nsignals: ::std::os::raw::c_long, + pub __ru_nsignals_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_13 { + pub ru_nvcsw: ::std::os::raw::c_long, + pub __ru_nvcsw_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rusage__bindgen_ty_14 { + pub ru_nivcsw: ::std::os::raw::c_long, + pub __ru_nivcsw_word: __syscall_slong_t, + _bindgen_union_align: u64, +} +pub const __priority_which_PRIO_PROCESS: __priority_which = 0; +pub const __priority_which_PRIO_PGRP: __priority_which = 1; +pub const __priority_which_PRIO_USER: __priority_which = 2; +pub type __priority_which = u32; +extern "C" { + pub fn prlimit( + __pid: __pid_t, + __resource: __rlimit_resource, + __new_limit: *const rlimit, + __old_limit: *mut rlimit, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn prlimit64( + __pid: __pid_t, + __resource: __rlimit_resource, + __new_limit: *const rlimit64, + __old_limit: *mut rlimit64, + ) -> ::std::os::raw::c_int; +} +pub use self::__priority_which as __priority_which_t; +pub use self::__rlimit_resource as __rlimit_resource_t; +pub use self::__rusage_who as __rusage_who_t; +extern "C" { + pub fn getrlimit( + __resource: __rlimit_resource_t, + __rlimits: *mut rlimit, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getrlimit64( + __resource: __rlimit_resource_t, + __rlimits: *mut rlimit64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setrlimit( + __resource: __rlimit_resource_t, + __rlimits: *const rlimit, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setrlimit64( + __resource: __rlimit_resource_t, + __rlimits: *const rlimit64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getrusage(__who: __rusage_who_t, __usage: *mut rusage) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getpriority(__which: __priority_which_t, __who: id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setpriority( + __which: __priority_which_t, + __who: id_t, + __prio: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn memcpy( + __dest: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __n: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn memmove( + __dest: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __n: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn memccpy( + __dest: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __c: ::std::os::raw::c_int, + __n: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn memset( + __s: *mut ::std::os::raw::c_void, + __c: ::std::os::raw::c_int, + __n: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn memcmp( + __s1: *const ::std::os::raw::c_void, + __s2: *const ::std::os::raw::c_void, + __n: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn memchr( + __s: *const ::std::os::raw::c_void, + __c: ::std::os::raw::c_int, + __n: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn rawmemchr( + __s: *const ::std::os::raw::c_void, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn memrchr( + __s: *const ::std::os::raw::c_void, + __c: ::std::os::raw::c_int, + __n: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn strcpy( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strncpy( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strcat( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strncat( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strcmp( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strncmp( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + __n: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strcoll( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strxfrm( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: usize, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strcoll_l( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + __l: locale_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strxfrm_l( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: usize, + __l: locale_t, + ) -> usize; +} +extern "C" { + pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strndup( + __string: *const ::std::os::raw::c_char, + __n: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strchr( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strrchr( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strchrnul( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strcspn( + __s: *const ::std::os::raw::c_char, + __reject: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strspn( + __s: *const ::std::os::raw::c_char, + __accept: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strpbrk( + __s: *const ::std::os::raw::c_char, + __accept: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strstr( + __haystack: *const ::std::os::raw::c_char, + __needle: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strtok( + __s: *mut ::std::os::raw::c_char, + __delim: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn __strtok_r( + __s: *mut ::std::os::raw::c_char, + __delim: *const ::std::os::raw::c_char, + __save_ptr: *mut *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strtok_r( + __s: *mut ::std::os::raw::c_char, + __delim: *const ::std::os::raw::c_char, + __save_ptr: *mut *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strcasestr( + __haystack: *const ::std::os::raw::c_char, + __needle: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn memmem( + __haystack: *const ::std::os::raw::c_void, + __haystacklen: usize, + __needle: *const ::std::os::raw::c_void, + __needlelen: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn __mempcpy( + __dest: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __n: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn mempcpy( + __dest: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __n: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; +} +extern "C" { + pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strerror_r( + __errnum: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __buflen: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strerror_l( + __errnum: ::std::os::raw::c_int, + __l: locale_t, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn bcmp( + __s1: *const ::std::os::raw::c_void, + __s2: *const ::std::os::raw::c_void, + __n: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bcopy( + __src: *const ::std::os::raw::c_void, + __dest: *mut ::std::os::raw::c_void, + __n: usize, + ); +} +extern "C" { + pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: usize); +} +extern "C" { + pub fn index( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn rindex( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strcasecmp( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strncasecmp( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + __n: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strcasecmp_l( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + __loc: locale_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strncasecmp_l( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + __n: usize, + __loc: locale_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); +} +extern "C" { + pub fn strsep( + __stringp: *mut *mut ::std::os::raw::c_char, + __delim: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn __stpcpy( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn stpcpy( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn __stpncpy( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn stpncpy( + __dest: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strverscmp( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strfry(__string: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn memfrob(__s: *mut ::std::os::raw::c_void, __n: usize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn basename(__filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +pub const idtype_t_P_ALL: idtype_t = 0; +pub const idtype_t_P_PID: idtype_t = 1; +pub const idtype_t_P_PGID: idtype_t = 2; +pub type idtype_t = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct div_t { + pub quot: ::std::os::raw::c_int, + pub rem: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ldiv_t { + pub quot: ::std::os::raw::c_long, + pub rem: ::std::os::raw::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lldiv_t { + pub quot: ::std::os::raw::c_longlong, + pub rem: ::std::os::raw::c_longlong, +} +extern "C" { + pub fn __ctype_get_mb_cur_max() -> usize; +} +extern "C" { + pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; +} +extern "C" { + pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn strtod( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + ) -> f64; +} +extern "C" { + pub fn strtof( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + ) -> f32; +} +extern "C" { + pub fn strtold( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + ) -> f64; +} +extern "C" { + pub fn strtof32( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + ) -> _Float32; +} +extern "C" { + pub fn strtof64( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + ) -> _Float64; +} +extern "C" { + pub fn strtof32x( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + ) -> _Float32x; +} +extern "C" { + pub fn strtof64x( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + ) -> _Float64x; +} +extern "C" { + pub fn strtol( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn strtoul( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strtoq( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn strtouq( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_ulonglong; +} +extern "C" { + pub fn strtoll( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn strtoull( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_ulonglong; +} +extern "C" { + pub fn strfromd( + __dest: *mut ::std::os::raw::c_char, + __size: usize, + __format: *const ::std::os::raw::c_char, + __f: f64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strfromf( + __dest: *mut ::std::os::raw::c_char, + __size: usize, + __format: *const ::std::os::raw::c_char, + __f: f32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strfroml( + __dest: *mut ::std::os::raw::c_char, + __size: usize, + __format: *const ::std::os::raw::c_char, + __f: f64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strfromf32( + __dest: *mut ::std::os::raw::c_char, + __size: usize, + __format: *const ::std::os::raw::c_char, + __f: _Float32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strfromf64( + __dest: *mut ::std::os::raw::c_char, + __size: usize, + __format: *const ::std::os::raw::c_char, + __f: _Float64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strfromf32x( + __dest: *mut ::std::os::raw::c_char, + __size: usize, + __format: *const ::std::os::raw::c_char, + __f: _Float32x, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strfromf64x( + __dest: *mut ::std::os::raw::c_char, + __size: usize, + __format: *const ::std::os::raw::c_char, + __f: _Float64x, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strtol_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + __loc: locale_t, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn strtoul_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + __loc: locale_t, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strtoll_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + __loc: locale_t, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn strtoull_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + __loc: locale_t, + ) -> ::std::os::raw::c_ulonglong; +} +extern "C" { + pub fn strtod_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __loc: locale_t, + ) -> f64; +} +extern "C" { + pub fn strtof_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __loc: locale_t, + ) -> f32; +} +extern "C" { + pub fn strtold_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __loc: locale_t, + ) -> f64; +} +extern "C" { + pub fn strtof32_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __loc: locale_t, + ) -> _Float32; +} +extern "C" { + pub fn strtof64_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __loc: locale_t, + ) -> _Float64; +} +extern "C" { + pub fn strtof32x_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __loc: locale_t, + ) -> _Float32x; +} +extern "C" { + pub fn strtof64x_l( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __loc: locale_t, + ) -> _Float64x; +} +extern "C" { + pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn random() -> ::std::os::raw::c_long; +} +extern "C" { + pub fn srandom(__seed: ::std::os::raw::c_uint); +} +extern "C" { + pub fn initstate( + __seed: ::std::os::raw::c_uint, + __statebuf: *mut ::std::os::raw::c_char, + __statelen: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct random_data { + pub fptr: *mut i32, + pub rptr: *mut i32, + pub state: *mut i32, + pub rand_type: ::std::os::raw::c_int, + pub rand_deg: ::std::os::raw::c_int, + pub rand_sep: ::std::os::raw::c_int, + pub end_ptr: *mut i32, +} +extern "C" { + pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn srandom_r( + __seed: ::std::os::raw::c_uint, + __buf: *mut random_data, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn initstate_r( + __seed: ::std::os::raw::c_uint, + __statebuf: *mut ::std::os::raw::c_char, + __statelen: usize, + __buf: *mut random_data, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setstate_r( + __statebuf: *mut ::std::os::raw::c_char, + __buf: *mut random_data, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn rand() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn srand(__seed: ::std::os::raw::c_uint); +} +extern "C" { + pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn drand48() -> f64; +} +extern "C" { + pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; +} +extern "C" { + pub fn lrand48() -> ::std::os::raw::c_long; +} +extern "C" { + pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn mrand48() -> ::std::os::raw::c_long; +} +extern "C" { + pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn srand48(__seedval: ::std::os::raw::c_long); +} +extern "C" { + pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; +} +extern "C" { + pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct drand48_data { + pub __x: [::std::os::raw::c_ushort; 3usize], + pub __old_x: [::std::os::raw::c_ushort; 3usize], + pub __c: ::std::os::raw::c_ushort, + pub __init: ::std::os::raw::c_ushort, + pub __a: ::std::os::raw::c_ulonglong, +} +extern "C" { + pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn erand48_r( + __xsubi: *mut ::std::os::raw::c_ushort, + __buffer: *mut drand48_data, + __result: *mut f64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lrand48_r( + __buffer: *mut drand48_data, + __result: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn nrand48_r( + __xsubi: *mut ::std::os::raw::c_ushort, + __buffer: *mut drand48_data, + __result: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mrand48_r( + __buffer: *mut drand48_data, + __result: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn jrand48_r( + __xsubi: *mut ::std::os::raw::c_ushort, + __buffer: *mut drand48_data, + __result: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn srand48_r( + __seedval: ::std::os::raw::c_long, + __buffer: *mut drand48_data, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn seed48_r( + __seed16v: *mut ::std::os::raw::c_ushort, + __buffer: *mut drand48_data, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lcong48_r( + __param: *mut ::std::os::raw::c_ushort, + __buffer: *mut drand48_data, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn malloc(__size: usize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn calloc(__nmemb: usize, __size: usize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn realloc( + __ptr: *mut ::std::os::raw::c_void, + __size: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn reallocarray( + __ptr: *mut ::std::os::raw::c_void, + __nmemb: usize, + __size: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn free(__ptr: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn alloca(__size: usize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn posix_memalign( + __memptr: *mut *mut ::std::os::raw::c_void, + __alignment: usize, + __size: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn aligned_alloc(__alignment: usize, __size: usize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn abort(); +} +extern "C" { + pub fn atexit(__func: ::core::option::Option) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn at_quick_exit( + __func: ::core::option::Option, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn on_exit( + __func: ::core::option::Option< + unsafe extern "C" fn( + __status: ::std::os::raw::c_int, + __arg: *mut ::std::os::raw::c_void, + ), + >, + __arg: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn exit(__status: ::std::os::raw::c_int); +} +extern "C" { + pub fn quick_exit(__status: ::std::os::raw::c_int); +} +extern "C" { + pub fn _Exit(__status: ::std::os::raw::c_int); +} +extern "C" { + pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn secure_getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setenv( + __name: *const ::std::os::raw::c_char, + __value: *const ::std::os::raw::c_char, + __replace: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clearenv() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkstemp64(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkstemps( + __template: *mut ::std::os::raw::c_char, + __suffixlen: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkstemps64( + __template: *mut ::std::os::raw::c_char, + __suffixlen: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn mkostemp( + __template: *mut ::std::os::raw::c_char, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkostemp64( + __template: *mut ::std::os::raw::c_char, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkostemps( + __template: *mut ::std::os::raw::c_char, + __suffixlen: ::std::os::raw::c_int, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkostemps64( + __template: *mut ::std::os::raw::c_char, + __suffixlen: ::std::os::raw::c_int, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn canonicalize_file_name( + __name: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn realpath( + __name: *const ::std::os::raw::c_char, + __resolved: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +pub type __compar_fn_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +pub type comparison_fn_t = __compar_fn_t; +pub type __compar_d_fn_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + arg3: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +extern "C" { + pub fn bsearch( + __key: *const ::std::os::raw::c_void, + __base: *const ::std::os::raw::c_void, + __nmemb: usize, + __size: usize, + __compar: __compar_fn_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn qsort( + __base: *mut ::std::os::raw::c_void, + __nmemb: usize, + __size: usize, + __compar: __compar_fn_t, + ); +} +extern "C" { + pub fn qsort_r( + __base: *mut ::std::os::raw::c_void, + __nmemb: usize, + __size: usize, + __compar: __compar_d_fn_t, + __arg: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; +} +extern "C" { + pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; +} +extern "C" { + pub fn lldiv( + __numer: ::std::os::raw::c_longlong, + __denom: ::std::os::raw::c_longlong, + ) -> lldiv_t; +} +extern "C" { + pub fn ecvt( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __decpt: *mut ::std::os::raw::c_int, + __sign: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fcvt( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __decpt: *mut ::std::os::raw::c_int, + __sign: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn gcvt( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn qecvt( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __decpt: *mut ::std::os::raw::c_int, + __sign: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn qfcvt( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __decpt: *mut ::std::os::raw::c_int, + __sign: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn qgcvt( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ecvt_r( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __decpt: *mut ::std::os::raw::c_int, + __sign: *mut ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __len: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fcvt_r( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __decpt: *mut ::std::os::raw::c_int, + __sign: *mut ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __len: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn qecvt_r( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __decpt: *mut ::std::os::raw::c_int, + __sign: *mut ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __len: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn qfcvt_r( + __value: f64, + __ndigit: ::std::os::raw::c_int, + __decpt: *mut ::std::os::raw::c_int, + __sign: *mut ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __len: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mbtowc( + __pwc: *mut wchar_t, + __s: *const ::std::os::raw::c_char, + __n: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; +} +extern "C" { + pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; +} +extern "C" { + pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getsubopt( + __optionp: *mut *mut ::std::os::raw::c_char, + __tokens: *const *mut ::std::os::raw::c_char, + __valuep: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn posix_openpt(__oflag: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn grantpt(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unlockpt(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ptsname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ptsname_r( + __fd: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __buflen: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getpt() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn xmalloc(arg1: usize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn xrealloc(arg1: *mut ::std::os::raw::c_void, arg2: usize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn xfree(arg1: *mut ::std::os::raw::c_void); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct g_list { + pub next: *mut g_list, +} +pub type GENERIC_LIST = g_list; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct STRING_INT_ALIST { + pub word: *mut ::std::os::raw::c_char, + pub token: ::std::os::raw::c_int, +} +pub type Function = ::core::option::Option ::std::os::raw::c_int>; +pub type VFunction = ::core::option::Option; +pub type CPFunction = ::core::option::Option *mut ::std::os::raw::c_char>; +pub type CPPFunction = + ::core::option::Option *mut *mut ::std::os::raw::c_char>; +pub type sh_intfunc_t = ::core::option::Option< + unsafe extern "C" fn(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int, +>; +pub type sh_ivoidfunc_t = ::core::option::Option ::std::os::raw::c_int>; +pub type sh_icpfunc_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int, +>; +pub type sh_icppfunc_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int, +>; +pub type sh_iptrfunc_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, +>; +pub type sh_voidfunc_t = ::core::option::Option; +pub type sh_vintfunc_t = ::core::option::Option; +pub type sh_vcpfunc_t = + ::core::option::Option; +pub type sh_vcppfunc_t = + ::core::option::Option; +pub type sh_vptrfunc_t = + ::core::option::Option; +pub type sh_wdesc_func_t = + ::core::option::Option ::std::os::raw::c_int>; +pub type sh_wlist_func_t = + ::core::option::Option ::std::os::raw::c_int>; +pub type sh_glist_func_t = + ::core::option::Option ::std::os::raw::c_int>; +pub type sh_string_func_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char, +>; +pub type sh_msg_func_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int, +>; +pub type sh_vmsg_func_t = + ::core::option::Option; +pub type sh_sv_func_t = + ::core::option::Option; +pub type sh_free_func_t = + ::core::option::Option; +pub type sh_resetsig_func_t = + ::core::option::Option; +pub type sh_ignore_func_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int, +>; +pub type sh_assign_func_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int, +>; +pub type sh_wassign_func_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut WORD_DESC, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, +>; +pub type sh_load_func_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int, +>; +pub type sh_unload_func_t = + ::core::option::Option; +pub type sh_builtin_func_t = + ::core::option::Option ::std::os::raw::c_int>; +pub type QSFUNC = ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +extern "C" { + pub fn posix_initialize(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn num_posix_options() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn get_posix_options(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn set_posix_options(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn save_posix_options(); +} +extern "C" { + pub fn string_to_rlimtype(arg1: *mut ::std::os::raw::c_char) -> rlim_t; +} +extern "C" { + pub fn print_rlimtype(arg1: rlim_t, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn all_digits(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn legal_number( + arg1: *const ::std::os::raw::c_char, + arg2: *mut intmax_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn legal_identifier(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn importable_function_name( + arg1: *const ::std::os::raw::c_char, + arg2: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn exportable_function_name(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn check_identifier( + arg1: *mut WORD_DESC, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn valid_nameref_value( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn check_selfref( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn legal_alias_name( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn line_isblank(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn assignment( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_unset_nodelay_mode(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_setclexec(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_validfd(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fd_ispipe(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn check_dev_tty(); +} +extern "C" { + pub fn move_to_high_fd( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn check_binary_file( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_openpipe(arg1: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_closepipe(arg1: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn file_exists(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn file_isdir(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn file_iswdir(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn path_dot_or_dotdot(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn absolute_pathname(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn absolute_program(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn make_absolute( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn base_pathname(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn full_pathname(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn polite_directory_format( + arg1: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn trim_pathname( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn printable_filename( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn extract_colon_unit( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tilde_initialize(); +} +extern "C" { + pub fn bash_tilde_find_word( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn bash_tilde_expand( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_group_list(arg1: *mut ::std::os::raw::c_int) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_group_array(arg1: *mut ::std::os::raw::c_int) -> *mut ::std::os::raw::c_int; +} +extern "C" { + pub fn conf_standard_path() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn default_columns() -> ::std::os::raw::c_int; +} +pub type arrayind_t = intmax_t; +pub const atype_array_indexed: atype = 0; +pub const atype_array_assoc: atype = 1; +pub type atype = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct array { + pub type_: atype, + pub max_index: arrayind_t, + pub num_elements: ::std::os::raw::c_int, + pub head: *mut array_element, + pub lastref: *mut array_element, +} +pub type ARRAY = array; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct array_element { + pub ind: arrayind_t, + pub value: *mut ::std::os::raw::c_char, + pub next: *mut array_element, + pub prev: *mut array_element, +} +pub type ARRAY_ELEMENT = array_element; +pub type sh_ae_map_func_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ARRAY_ELEMENT, + arg2: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +extern "C" { + pub fn array_create() -> *mut ARRAY; +} +extern "C" { + pub fn array_flush(arg1: *mut ARRAY); +} +extern "C" { + pub fn array_dispose(arg1: *mut ARRAY); +} +extern "C" { + pub fn array_copy(arg1: *mut ARRAY) -> *mut ARRAY; +} +extern "C" { + pub fn array_slice( + arg1: *mut ARRAY, + arg2: *mut ARRAY_ELEMENT, + arg3: *mut ARRAY_ELEMENT, + ) -> *mut ARRAY; +} +extern "C" { + pub fn array_walk(arg1: *mut ARRAY, arg2: sh_ae_map_func_t, arg3: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn array_shift( + arg1: *mut ARRAY, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut ARRAY_ELEMENT; +} +extern "C" { + pub fn array_rshift( + arg1: *mut ARRAY, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn array_unshift_element(arg1: *mut ARRAY) -> *mut ARRAY_ELEMENT; +} +extern "C" { + pub fn array_shift_element( + arg1: *mut ARRAY, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn array_quote(arg1: *mut ARRAY) -> *mut ARRAY; +} +extern "C" { + pub fn array_quote_escapes(arg1: *mut ARRAY) -> *mut ARRAY; +} +extern "C" { + pub fn array_dequote(arg1: *mut ARRAY) -> *mut ARRAY; +} +extern "C" { + pub fn array_dequote_escapes(arg1: *mut ARRAY) -> *mut ARRAY; +} +extern "C" { + pub fn array_remove_quoted_nulls(arg1: *mut ARRAY) -> *mut ARRAY; +} +extern "C" { + pub fn array_subrange( + arg1: *mut ARRAY, + arg2: arrayind_t, + arg3: arrayind_t, + arg4: ::std::os::raw::c_int, + arg5: ::std::os::raw::c_int, + arg6: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_patsub( + arg1: *mut ARRAY, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_modcase( + arg1: *mut ARRAY, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_create_element( + arg1: arrayind_t, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ARRAY_ELEMENT; +} +extern "C" { + pub fn array_copy_element(arg1: *mut ARRAY_ELEMENT) -> *mut ARRAY_ELEMENT; +} +extern "C" { + pub fn array_dispose_element(arg1: *mut ARRAY_ELEMENT); +} +extern "C" { + pub fn array_insert( + arg1: *mut ARRAY, + arg2: arrayind_t, + arg3: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn array_remove(arg1: *mut ARRAY, arg2: arrayind_t) -> *mut ARRAY_ELEMENT; +} +extern "C" { + pub fn array_reference(arg1: *mut ARRAY, arg2: arrayind_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_to_word_list(arg1: *mut ARRAY) -> *mut WORD_LIST; +} +extern "C" { + pub fn array_from_word_list(arg1: *mut WORD_LIST) -> *mut ARRAY; +} +extern "C" { + pub fn array_keys_to_word_list(arg1: *mut ARRAY) -> *mut WORD_LIST; +} +extern "C" { + pub fn array_assign_list(arg1: *mut ARRAY, arg2: *mut WORD_LIST) -> *mut ARRAY; +} +extern "C" { + pub fn array_to_argv( + arg1: *mut ARRAY, + arg2: *mut ::std::os::raw::c_int, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_to_kvpair( + arg1: *mut ARRAY, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_to_assign( + arg1: *mut ARRAY, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_to_string( + arg1: *mut ARRAY, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_from_string( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ARRAY; +} +extern "C" { + pub fn execute_array_command( + arg1: *mut ARRAY, + arg2: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}trap_list"] + pub static mut trap_list: [*mut ::std::os::raw::c_char; 0usize]; +} +extern "C" { + #[link_name = "\u{1}trapped_signal_received"] + pub static mut trapped_signal_received: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}wait_signal_received"] + pub static mut wait_signal_received: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}running_trap"] + pub static mut running_trap: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}trap_saved_exit_value"] + pub static mut trap_saved_exit_value: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}suppress_debug_trap_verbose"] + pub static mut suppress_debug_trap_verbose: ::std::os::raw::c_int; +} +extern "C" { + pub fn initialize_traps(); +} +extern "C" { + pub fn run_pending_traps(); +} +extern "C" { + pub fn queue_sigchld_trap(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn maybe_set_sigchld_trap(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn set_impossible_sigchld_trap(); +} +extern "C" { + pub fn set_sigchld_trap(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn set_debug_trap(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn set_error_trap(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn set_return_trap(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn maybe_set_debug_trap(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn maybe_set_error_trap(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn maybe_set_return_trap(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn set_sigint_trap(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn set_signal(arg1: ::std::os::raw::c_int, arg2: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn restore_default_signal(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn ignore_signal(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn run_exit_trap() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn run_trap_cleanup(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn run_debug_trap() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn run_error_trap(); +} +extern "C" { + pub fn run_return_trap(); +} +extern "C" { + pub fn free_trap_strings(); +} +extern "C" { + pub fn reset_signal_handlers(); +} +extern "C" { + pub fn restore_original_signals(); +} +extern "C" { + pub fn get_original_signal(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn get_all_original_signals(); +} +extern "C" { + pub fn signal_name(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn decode_signal( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn run_interrupt_trap(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn maybe_call_trap_handler(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn signal_is_special(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn signal_is_trapped(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn signal_is_pending(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn signal_is_ignored(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn signal_is_hard_ignored(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_signal_hard_ignored(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn set_signal_ignored(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn signal_in_progress(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_trap_state(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn next_pending_trap(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn first_pending_trap() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clear_pending_traps(); +} +extern "C" { + pub fn any_signals_trapped() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn check_signals(); +} +extern "C" { + pub fn check_signals_and_traps(); +} +pub type SigHandler = ::std::option::Option; +extern "C" { + pub fn set_signal_handler(arg1: libc::c_int, arg2: *mut SigHandler) -> *mut SigHandler; +} +extern "C" { + #[link_name = "\u{1}sigwinch_received"] + pub static mut sigwinch_received: sig_atomic_t; +} +extern "C" { + #[link_name = "\u{1}sigterm_received"] + pub static mut sigterm_received: sig_atomic_t; +} +extern "C" { + #[link_name = "\u{1}interrupt_immediately"] + pub static mut interrupt_immediately: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}terminate_immediately"] + pub static mut terminate_immediately: ::std::os::raw::c_int; +} +extern "C" { + pub fn termsig_sighandler(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn termsig_handler(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn sigint_sighandler(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn initialize_signals(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn initialize_terminating_signals(); +} +extern "C" { + pub fn reset_terminating_signals(); +} +extern "C" { + pub fn top_level_cleanup(); +} +extern "C" { + pub fn throw_to_top_level(); +} +extern "C" { + pub fn jump_to_top_level(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn restore_sigmask(); +} +extern "C" { + pub fn sigwinch_sighandler(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn set_sigwinch_handler(); +} +extern "C" { + pub fn unset_sigwinch_handler(); +} +extern "C" { + pub fn sigterm_sighandler(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn set_sigint_handler() -> SigHandler; +} +extern "C" { + pub fn trap_to_sighandler(arg1: ::std::os::raw::c_int) -> SigHandler; +} +extern "C" { + pub fn trap_handler(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn block_trapped_signals(arg1: *mut sigset_t, arg2: *mut sigset_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unblock_trapped_signals(arg1: *mut sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}interrupt_state"] + pub static mut interrupt_state: sig_atomic_t; +} +extern "C" { + #[link_name = "\u{1}terminating_signal"] + pub static mut terminating_signal: sig_atomic_t; +} +extern "C" { + pub fn gettext(__msgid: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn dgettext( + __domainname: *const ::std::os::raw::c_char, + __msgid: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn __dgettext( + __domainname: *const ::std::os::raw::c_char, + __msgid: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn dcgettext( + __domainname: *const ::std::os::raw::c_char, + __msgid: *const ::std::os::raw::c_char, + __category: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn __dcgettext( + __domainname: *const ::std::os::raw::c_char, + __msgid: *const ::std::os::raw::c_char, + __category: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ngettext( + __msgid1: *const ::std::os::raw::c_char, + __msgid2: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn dngettext( + __domainname: *const ::std::os::raw::c_char, + __msgid1: *const ::std::os::raw::c_char, + __msgid2: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn dcngettext( + __domainname: *const ::std::os::raw::c_char, + __msgid1: *const ::std::os::raw::c_char, + __msgid2: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + __category: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn textdomain(__domainname: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn bindtextdomain( + __domainname: *const ::std::os::raw::c_char, + __dirname: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn bind_textdomain_codeset( + __domainname: *const ::std::os::raw::c_char, + __codeset: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lconv { + pub decimal_point: *mut ::std::os::raw::c_char, + pub thousands_sep: *mut ::std::os::raw::c_char, + pub grouping: *mut ::std::os::raw::c_char, + pub int_curr_symbol: *mut ::std::os::raw::c_char, + pub currency_symbol: *mut ::std::os::raw::c_char, + pub mon_decimal_point: *mut ::std::os::raw::c_char, + pub mon_thousands_sep: *mut ::std::os::raw::c_char, + pub mon_grouping: *mut ::std::os::raw::c_char, + pub positive_sign: *mut ::std::os::raw::c_char, + pub negative_sign: *mut ::std::os::raw::c_char, + pub int_frac_digits: ::std::os::raw::c_char, + pub frac_digits: ::std::os::raw::c_char, + pub p_cs_precedes: ::std::os::raw::c_char, + pub p_sep_by_space: ::std::os::raw::c_char, + pub n_cs_precedes: ::std::os::raw::c_char, + pub n_sep_by_space: ::std::os::raw::c_char, + pub p_sign_posn: ::std::os::raw::c_char, + pub n_sign_posn: ::std::os::raw::c_char, + pub int_p_cs_precedes: ::std::os::raw::c_char, + pub int_p_sep_by_space: ::std::os::raw::c_char, + pub int_n_cs_precedes: ::std::os::raw::c_char, + pub int_n_sep_by_space: ::std::os::raw::c_char, + pub int_p_sign_posn: ::std::os::raw::c_char, + pub int_n_sign_posn: ::std::os::raw::c_char, +} +extern "C" { + pub fn setlocale( + __category: ::std::os::raw::c_int, + __locale: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn localeconv() -> *mut lconv; +} +extern "C" { + pub fn newlocale( + __category_mask: ::std::os::raw::c_int, + __locale: *const ::std::os::raw::c_char, + __base: locale_t, + ) -> locale_t; +} +extern "C" { + pub fn duplocale(__dataset: locale_t) -> locale_t; +} +extern "C" { + pub fn freelocale(__dataset: locale_t); +} +extern "C" { + pub fn uselocale(__dataset: locale_t) -> locale_t; +} +extern "C" { + pub fn evalexp( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + ) -> intmax_t; +} +extern "C" { + pub fn make_command_string(arg1: *mut COMMAND) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn named_function_string( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut COMMAND, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn print_command(arg1: *mut COMMAND); +} +extern "C" { + pub fn print_simple_command(arg1: *mut SIMPLE_COM); +} +extern "C" { + pub fn print_word_list(arg1: *mut WORD_LIST, arg2: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn print_for_command_head(arg1: *mut FOR_COM); +} +extern "C" { + pub fn print_select_command_head(arg1: *mut SELECT_COM); +} +extern "C" { + pub fn print_case_command_head(arg1: *mut CASE_COM); +} +extern "C" { + pub fn print_arith_command(arg1: *mut WORD_LIST); +} +extern "C" { + pub fn print_cond_command(arg1: *mut COND_COM); +} +extern "C" { + pub fn xtrace_init(); +} +extern "C" { + pub fn xtrace_fdchk(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn xtrace_reset(); +} +extern "C" { + pub fn indirection_level_string() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn xtrace_print_assignment( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn xtrace_print_word_list(arg1: *mut WORD_LIST, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn xtrace_print_for_command_head(arg1: *mut FOR_COM); +} +extern "C" { + pub fn xtrace_print_select_command_head(arg1: *mut SELECT_COM); +} +extern "C" { + pub fn xtrace_print_case_command_head(arg1: *mut CASE_COM); +} +extern "C" { + pub fn xtrace_print_arith_cmd(arg1: *mut WORD_LIST); +} +extern "C" { + pub fn xtrace_print_cond_term( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + arg3: *mut WORD_DESC, + arg4: *mut ::std::os::raw::c_char, + arg5: *mut ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn exit_shell(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn sh_exit(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn subshell_exit(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn set_exit_status(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn disable_priv_mode(); +} +extern "C" { + pub fn unbind_args(); +} +extern "C" { + pub fn shell_is_restricted(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn maybe_make_restricted(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unset_bash_input(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn get_current_user_info(); +} +extern "C" { + pub fn reader_loop() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pretty_print_loop() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn parse_command() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn read_command() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn brace_expand(arg1: *mut ::std::os::raw::c_char) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn yyparse() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn return_EOF() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn push_token(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn xparse_dolparen( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn reset_parser(); +} +extern "C" { + pub fn reset_readahead_token(); +} +extern "C" { + pub fn parse_string_to_word_list( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *const ::std::os::raw::c_char, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn parser_will_prompt() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn parser_in_command_position() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn free_pushed_string_input(); +} +extern "C" { + pub fn parser_expanding_alias() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn parser_save_alias(); +} +extern "C" { + pub fn parser_restore_alias(); +} +extern "C" { + pub fn clear_shell_input_line(); +} +extern "C" { + pub fn decode_prompt_string(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_current_prompt_level() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_current_prompt_level(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn history_delimiting_chars( + arg1: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn set_default_locale(); +} +extern "C" { + pub fn set_default_locale_vars(); +} +extern "C" { + pub fn set_locale_var( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_lang( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_default_lang(); +} +extern "C" { + pub fn get_locale_var(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn localetrans( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn mk_msgstr( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn localeexpand( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + arg5: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn locale_decpoint() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn list_walk(arg1: *mut GENERIC_LIST, arg2: sh_glist_func_t); +} +extern "C" { + pub fn wlist_walk(arg1: *mut WORD_LIST, arg2: sh_icpfunc_t); +} +extern "C" { + pub fn list_reverse() -> *mut GENERIC_LIST; +} +extern "C" { + pub fn list_length() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn list_append() -> *mut GENERIC_LIST; +} +extern "C" { + pub fn list_remove() -> *mut GENERIC_LIST; +} +extern "C" { + pub fn find_string_in_alist( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut STRING_INT_ALIST, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn find_token_in_alist( + arg1: ::std::os::raw::c_int, + arg2: *mut STRING_INT_ALIST, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn find_index_in_alist( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut STRING_INT_ALIST, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn substring( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strsub( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strcreplace( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *const ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strip_leading(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn strip_trailing( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn xbcopy( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn shell_version_string() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn show_shell_version(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn sh_modcase( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_clk_tck() -> ::std::os::raw::c_long; +} +extern "C" { + pub fn clock_t_to_secs(); +} +extern "C" { + pub fn print_clock_t(); +} +extern "C" { + pub fn fmtulong( + arg1: ::std::os::raw::c_ulong, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + arg4: usize, + arg5: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fmtullong( + arg1: ::std::os::raw::c_ulonglong, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + arg4: usize, + arg5: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fmtumax( + arg1: uintmax_t, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + arg4: usize, + arg5: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fnx_fromfs( + arg1: *mut ::std::os::raw::c_char, + arg2: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fnx_tofs(arg1: *mut ::std::os::raw::c_char, arg2: usize) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn input_avail(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn inttostr( + arg1: intmax_t, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn itos(arg1: intmax_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn mitos(arg1: intmax_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn uinttostr( + arg1: uintmax_t, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn uitos(arg1: uintmax_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_makepath( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn mbscasecmp( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn mbschr( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn mbscmp( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn isnetconn(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn netopen(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getmaxgroups() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getmaxchild() -> ::std::os::raw::c_long; +} +extern "C" { + pub fn sh_canonpath( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_physpath( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_realpath( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn brand() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sbrand(arg1: ::std::os::raw::c_ulong); +} +extern "C" { + pub fn seedrand(); +} +extern "C" { + pub fn seedrand32(); +} +extern "C" { + pub fn get_urandom32() -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn sh_eaccess( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_regmatch( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mbstrlen(arg1: *const ::std::os::raw::c_char) -> usize; +} +extern "C" { + pub fn mbsmbchar(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_mbsnlen( + arg1: *const ::std::os::raw::c_char, + arg2: usize, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_single_quote(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_double_quote(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_mkdoublequoted( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_un_double_quote(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_backslash_quote( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_backslash_quote_for_double_quotes( + arg1: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_quote_reusable( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_contains_shell_metas(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_contains_quotes(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn spname( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dirspell(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _list_of_strings { + pub list: *mut *mut ::std::os::raw::c_char, + pub list_size: ::std::os::raw::c_int, + pub list_len: ::std::os::raw::c_int, +} +pub type STRINGLIST = _list_of_strings; +pub type sh_strlist_map_func_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int, +>; +extern "C" { + pub fn strlist_create(arg1: ::std::os::raw::c_int) -> *mut STRINGLIST; +} +extern "C" { + pub fn strlist_resize(arg1: *mut STRINGLIST, arg2: ::std::os::raw::c_int) -> *mut STRINGLIST; +} +extern "C" { + pub fn strlist_flush(arg1: *mut STRINGLIST); +} +extern "C" { + pub fn strlist_dispose(arg1: *mut STRINGLIST); +} +extern "C" { + pub fn strlist_remove( + arg1: *mut STRINGLIST, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strlist_copy(arg1: *mut STRINGLIST) -> *mut STRINGLIST; +} +extern "C" { + pub fn strlist_merge(arg1: *mut STRINGLIST, arg2: *mut STRINGLIST) -> *mut STRINGLIST; +} +extern "C" { + pub fn strlist_append(arg1: *mut STRINGLIST, arg2: *mut STRINGLIST) -> *mut STRINGLIST; +} +extern "C" { + pub fn strlist_prefix_suffix( + arg1: *mut STRINGLIST, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + ) -> *mut STRINGLIST; +} +extern "C" { + pub fn strlist_print(arg1: *mut STRINGLIST, arg2: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn strlist_walk(arg1: *mut STRINGLIST, arg2: sh_strlist_map_func_t); +} +extern "C" { + pub fn strlist_sort(arg1: *mut STRINGLIST); +} +extern "C" { + pub fn strvec_create(arg1: ::std::os::raw::c_int) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strvec_resize( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strvec_mcreate(arg1: ::std::os::raw::c_int) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strvec_mresize( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strvec_flush(arg1: *mut *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn strvec_dispose(arg1: *mut *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn strvec_remove( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strvec_len(arg1: *mut *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strvec_search( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strvec_copy(arg1: *mut *mut ::std::os::raw::c_char) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strvec_posixcmp( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strvec_strcmp( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strvec_sort(arg1: *mut *mut ::std::os::raw::c_char, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn strvec_from_word_list( + arg1: *mut WORD_LIST, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: *mut ::std::os::raw::c_int, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strvec_to_word_list( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn ansicstr( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: *mut ::std::os::raw::c_int, + arg5: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ansic_quote( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ansic_shouldquote(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ansiexpand( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn timeval_to_secs(); +} +extern "C" { + pub fn print_timeval(); +} +extern "C" { + pub fn sh_mktmpname( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_mktmpfd( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_mktmpdir( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn uconvert( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_long, + arg3: *mut ::std::os::raw::c_long, + arg4: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn falarm( + arg1: ::std::os::raw::c_uint, + arg2: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn fsleep( + arg1: ::std::os::raw::c_uint, + arg2: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn u32cconv( + arg1: ::std::os::raw::c_ulong, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn u32reset(); +} +extern "C" { + pub fn utf8_mbschr( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn utf8_mbscmp( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn utf8_mbsmbchar(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn utf8_mbsnlen( + arg1: *const ::std::os::raw::c_char, + arg2: usize, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn utf8_mblen(arg1: *const ::std::os::raw::c_char, arg2: usize) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn utf8_mbstrlen(arg1: *const ::std::os::raw::c_char) -> usize; +} +extern "C" { + pub fn wcsnwidth( + arg1: *const wchar_t, + arg2: usize, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn get_new_window_size( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn zcatfd( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn zgetline( + arg1: ::std::os::raw::c_int, + arg2: *mut *mut ::std::os::raw::c_char, + arg3: *mut usize, + arg4: ::std::os::raw::c_int, + arg5: ::std::os::raw::c_int, + ) -> isize; +} +extern "C" { + pub fn zmapfd( + arg1: ::std::os::raw::c_int, + arg2: *mut *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn zread( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> isize; +} +extern "C" { + pub fn zreadretry( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> isize; +} +extern "C" { + pub fn zreadintr( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> isize; +} +extern "C" { + pub fn zreadc(arg1: ::std::os::raw::c_int, arg2: *mut ::std::os::raw::c_char) -> isize; +} +extern "C" { + pub fn zreadcintr(arg1: ::std::os::raw::c_int, arg2: *mut ::std::os::raw::c_char) -> isize; +} +extern "C" { + pub fn zreadn( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> isize; +} +extern "C" { + pub fn zreset(); +} +extern "C" { + pub fn zsyncfd(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn zwrite( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn match_pattern_char( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn umatchlen(arg1: *mut ::std::os::raw::c_char, arg2: usize) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn match_pattern_wchar( + arg1: *mut wchar_t, + arg2: *mut wchar_t, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wmatchlen(arg1: *mut wchar_t, arg2: usize) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bucket_contents { + pub next: *mut bucket_contents, + pub key: *mut ::std::os::raw::c_char, + pub data: *mut ::std::os::raw::c_void, + pub khash: ::std::os::raw::c_uint, + pub times_found: ::std::os::raw::c_int, +} +pub type BUCKET_CONTENTS = bucket_contents; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hash_table { + pub bucket_array: *mut *mut BUCKET_CONTENTS, + pub nbuckets: ::std::os::raw::c_int, + pub nentries: ::std::os::raw::c_int, +} +pub type HASH_TABLE = hash_table; +pub type hash_wfunc = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut BUCKET_CONTENTS) -> ::std::os::raw::c_int, +>; +extern "C" { + pub fn hash_create(arg1: ::std::os::raw::c_int) -> *mut HASH_TABLE; +} +extern "C" { + pub fn hash_copy(arg1: *mut HASH_TABLE, arg2: sh_string_func_t) -> *mut HASH_TABLE; +} +extern "C" { + pub fn hash_flush(arg1: *mut HASH_TABLE, arg2: sh_free_func_t); +} +extern "C" { + pub fn hash_dispose(arg1: *mut HASH_TABLE); +} +extern "C" { + pub fn hash_walk(arg1: *mut HASH_TABLE, arg2: hash_wfunc); +} +extern "C" { + pub fn hash_bucket( + arg1: *const ::std::os::raw::c_char, + arg2: *mut HASH_TABLE, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn hash_size(arg1: *mut HASH_TABLE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn hash_search( + arg1: *const ::std::os::raw::c_char, + arg2: *mut HASH_TABLE, + arg3: ::std::os::raw::c_int, + ) -> *mut BUCKET_CONTENTS; +} +extern "C" { + pub fn hash_insert( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut HASH_TABLE, + arg3: ::std::os::raw::c_int, + ) -> *mut BUCKET_CONTENTS; +} +extern "C" { + pub fn hash_remove( + arg1: *const ::std::os::raw::c_char, + arg2: *mut HASH_TABLE, + arg3: ::std::os::raw::c_int, + ) -> *mut BUCKET_CONTENTS; +} +extern "C" { + pub fn assoc_dispose(arg1: *mut HASH_TABLE); +} +extern "C" { + pub fn assoc_flush(arg1: *mut HASH_TABLE); +} +extern "C" { + pub fn assoc_insert( + arg1: *mut HASH_TABLE, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn assoc_replace( + arg1: *mut HASH_TABLE, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn assoc_remove(arg1: *mut HASH_TABLE, arg2: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn assoc_reference( + arg1: *mut HASH_TABLE, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn assoc_subrange( + arg1: *mut HASH_TABLE, + arg2: arrayind_t, + arg3: arrayind_t, + arg4: ::std::os::raw::c_int, + arg5: ::std::os::raw::c_int, + arg6: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn assoc_patsub( + arg1: *mut HASH_TABLE, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn assoc_modcase( + arg1: *mut HASH_TABLE, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn assoc_quote(arg1: *mut HASH_TABLE) -> *mut HASH_TABLE; +} +extern "C" { + pub fn assoc_quote_escapes(arg1: *mut HASH_TABLE) -> *mut HASH_TABLE; +} +extern "C" { + pub fn assoc_dequote(arg1: *mut HASH_TABLE) -> *mut HASH_TABLE; +} +extern "C" { + pub fn assoc_dequote_escapes(arg1: *mut HASH_TABLE) -> *mut HASH_TABLE; +} +extern "C" { + pub fn assoc_remove_quoted_nulls(arg1: *mut HASH_TABLE) -> *mut HASH_TABLE; +} +extern "C" { + pub fn assoc_to_kvpair( + arg1: *mut HASH_TABLE, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn assoc_to_assign( + arg1: *mut HASH_TABLE, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn assoc_to_word_list(arg1: *mut HASH_TABLE) -> *mut WORD_LIST; +} +extern "C" { + pub fn assoc_keys_to_word_list(arg1: *mut HASH_TABLE) -> *mut WORD_LIST; +} +extern "C" { + pub fn assoc_to_string( + arg1: *mut HASH_TABLE, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct var_context { + pub name: *mut ::std::os::raw::c_char, + pub scope: ::std::os::raw::c_int, + pub flags: ::std::os::raw::c_int, + pub up: *mut var_context, + pub down: *mut var_context, + pub table: *mut HASH_TABLE, +} +pub type VAR_CONTEXT = var_context; +pub type sh_var_value_func_t = + ::core::option::Option *mut variable>; +pub type sh_var_assign_func_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut variable, + arg2: *mut ::std::os::raw::c_char, + arg3: arrayind_t, + arg4: *mut ::std::os::raw::c_char, + ) -> *mut variable, +>; +#[repr(C)] +#[derive(Copy, Clone)] +pub union _value { + pub s: *mut ::std::os::raw::c_char, + pub i: intmax_t, + pub f: *mut COMMAND, + pub a: *mut ARRAY, + pub h: *mut HASH_TABLE, + pub d: f64, + pub ld: f64, + pub v: *mut variable, + pub opaque: *mut ::std::os::raw::c_void, + _bindgen_union_align: [u8; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct variable { + pub name: *mut ::std::os::raw::c_char, + pub value: *mut ::std::os::raw::c_char, + pub exportstr: *mut ::std::os::raw::c_char, + pub dynamic_value: sh_var_value_func_t, + pub assign_func: sh_var_assign_func_t, + pub attributes: ::std::os::raw::c_int, + pub context: ::std::os::raw::c_int, +} +pub type SHELL_VAR = variable; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _vlist { + pub list: *mut *mut SHELL_VAR, + pub list_size: usize, + pub list_len: usize, +} +pub type VARLIST = _vlist; +extern "C" { + #[link_name = "\u{1}nameref_invalid_value"] + pub static mut nameref_invalid_value: SHELL_VAR; +} +pub type sh_var_map_func_t = + ::core::option::Option ::std::os::raw::c_int>; +extern "C" { + #[link_name = "\u{1}global_variables"] + pub static mut global_variables: *mut VAR_CONTEXT; +} +extern "C" { + #[link_name = "\u{1}shell_variables"] + pub static mut shell_variables: *mut VAR_CONTEXT; +} +extern "C" { + #[link_name = "\u{1}shell_functions"] + pub static mut shell_functions: *mut HASH_TABLE; +} +extern "C" { + #[link_name = "\u{1}temporary_env"] + pub static mut temporary_env: *mut HASH_TABLE; +} +extern "C" { + #[link_name = "\u{1}variable_context"] + pub static mut variable_context: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}dollar_vars"] + pub static mut dollar_vars: [*mut ::std::os::raw::c_char; 0usize]; +} +extern "C" { + #[link_name = "\u{1}export_env"] + pub static mut export_env: *mut *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}tempenv_assign_error"] + pub static mut tempenv_assign_error: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}array_needs_making"] + pub static mut array_needs_making: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}shell_level"] + pub static mut shell_level: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}rest_of_args"] + pub static mut rest_of_args: *mut WORD_LIST; +} +extern "C" { + #[link_name = "\u{1}posparam_count"] + pub static mut posparam_count: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}dollar_dollar_pid"] + pub static mut dollar_dollar_pid: pid_t; +} +extern "C" { + #[link_name = "\u{1}localvar_inherit"] + pub static mut localvar_inherit: ::std::os::raw::c_int; +} +extern "C" { + pub fn initialize_shell_variables( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn validate_inherited_value( + arg1: *mut SHELL_VAR, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_if_not( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn sh_set_lines_and_columns(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn set_pwd(); +} +extern "C" { + pub fn set_ppid(); +} +extern "C" { + pub fn make_funcname_visible(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn var_lookup( + arg1: *const ::std::os::raw::c_char, + arg2: *mut VAR_CONTEXT, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_function(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_function_def(arg1: *const ::std::os::raw::c_char) -> *mut FUNCTION_DEF; +} +extern "C" { + pub fn find_variable(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_variable_noref(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_variable_last_nameref( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_global_variable_last_nameref( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_variable_nameref(arg1: *mut SHELL_VAR) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_variable_nameref_for_create( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_variable_nameref_for_assignment( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_variable_tempenv(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_variable_notempenv(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_global_variable(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_global_variable_noref(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_shell_variable(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_tempenv_variable(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_variable_no_invisible(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_variable_for_assignment(arg1: *const ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn nameref_transform_name( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn copy_variable(arg1: *mut SHELL_VAR) -> *mut SHELL_VAR; +} +extern "C" { + pub fn make_local_variable( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn bind_variable( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn bind_global_variable( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn bind_function(arg1: *const ::std::os::raw::c_char, arg2: *mut COMMAND) + -> *mut SHELL_VAR; +} +extern "C" { + pub fn bind_function_def( + arg1: *const ::std::os::raw::c_char, + arg2: *mut FUNCTION_DEF, + arg3: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn map_over(arg1: sh_var_map_func_t, arg2: *mut VAR_CONTEXT) -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn map_over_funcs(arg1: sh_var_map_func_t) -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn all_shell_variables() -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn all_shell_functions() -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn all_visible_variables() -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn all_visible_functions() -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn all_exported_variables() -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn local_exported_variables() -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn all_local_variables(arg1: ::std::os::raw::c_int) -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn all_array_variables() -> *mut *mut SHELL_VAR; +} +extern "C" { + pub fn all_variables_matching_prefix( + arg1: *const ::std::os::raw::c_char, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn make_var_array(arg1: *mut HASH_TABLE) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn add_or_supercede_exported_var( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_variable_value(arg1: *mut SHELL_VAR) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_string_value(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sh_get_env_value(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn make_variable_value( + arg1: *mut SHELL_VAR, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn bind_variable_value( + arg1: *mut SHELL_VAR, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn bind_int_variable( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn bind_var_to_int(arg1: *mut ::std::os::raw::c_char, arg2: intmax_t) -> *mut SHELL_VAR; +} +extern "C" { + pub fn assign_in_env( + arg1: *mut WORD_DESC, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unbind_variable(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn check_unbind_variable(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unbind_nameref(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unbind_variable_noref(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unbind_func(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unbind_function_def(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn delete_var( + arg1: *const ::std::os::raw::c_char, + arg2: *mut VAR_CONTEXT, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn makunbound( + arg1: *const ::std::os::raw::c_char, + arg2: *mut VAR_CONTEXT, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn kill_local_variable(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn delete_all_variables(arg1: *mut HASH_TABLE); +} +extern "C" { + pub fn delete_all_contexts(arg1: *mut VAR_CONTEXT); +} +extern "C" { + pub fn new_var_context( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut VAR_CONTEXT; +} +extern "C" { + pub fn dispose_var_context(arg1: *mut VAR_CONTEXT); +} +extern "C" { + pub fn push_var_context( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut HASH_TABLE, + ) -> *mut VAR_CONTEXT; +} +extern "C" { + pub fn pop_var_context(); +} +extern "C" { + pub fn push_scope(arg1: ::std::os::raw::c_int, arg2: *mut HASH_TABLE) -> *mut VAR_CONTEXT; +} +extern "C" { + pub fn pop_scope(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn clear_dollar_vars(); +} +extern "C" { + pub fn push_context( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut HASH_TABLE, + ); +} +extern "C" { + pub fn pop_context(); +} +extern "C" { + pub fn push_dollar_vars(); +} +extern "C" { + pub fn pop_dollar_vars(); +} +extern "C" { + pub fn dispose_saved_dollar_vars(); +} +extern "C" { + pub fn init_bash_argv(); +} +extern "C" { + pub fn save_bash_argv(); +} +extern "C" { + pub fn push_args(arg1: *mut WORD_LIST); +} +extern "C" { + pub fn pop_args(); +} +extern "C" { + pub fn adjust_shell_level(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn non_unsettable(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn dispose_variable(arg1: *mut SHELL_VAR); +} +extern "C" { + pub fn dispose_used_env_vars(); +} +extern "C" { + pub fn dispose_function_env(); +} +extern "C" { + pub fn dispose_builtin_env(); +} +extern "C" { + pub fn merge_temporary_env(); +} +extern "C" { + pub fn flush_temporary_env(); +} +extern "C" { + pub fn merge_builtin_env(); +} +extern "C" { + pub fn kill_all_local_variables(); +} +extern "C" { + pub fn set_var_read_only(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn set_func_read_only(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn set_var_auto_export(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn set_func_auto_export(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn sort_variables(arg1: *mut *mut SHELL_VAR); +} +extern "C" { + pub fn chkexport(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn maybe_make_export_env(); +} +extern "C" { + pub fn update_export_env_inplace( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn put_command_name_into_env(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn put_gnu_argv_flags_into_env(arg1: intmax_t, arg2: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn print_var_list(arg1: *mut *mut SHELL_VAR); +} +extern "C" { + pub fn print_func_list(arg1: *mut *mut SHELL_VAR); +} +extern "C" { + pub fn print_assignment(arg1: *mut SHELL_VAR); +} +extern "C" { + pub fn print_var_value(arg1: *mut SHELL_VAR, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn print_var_function(arg1: *mut SHELL_VAR); +} +extern "C" { + pub fn make_new_array_variable(arg1: *mut ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn make_local_array_variable( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn make_new_assoc_variable(arg1: *mut ::std::os::raw::c_char) -> *mut SHELL_VAR; +} +extern "C" { + pub fn make_local_assoc_variable( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn set_pipestatus_array(arg1: *mut ::std::os::raw::c_int, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn save_pipestatus_array() -> *mut ARRAY; +} +extern "C" { + pub fn restore_pipestatus_array(arg1: *mut ARRAY); +} +extern "C" { + pub fn set_pipestatus_from_exit(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn stupidly_hack_special_variables(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn reinit_special_variables(); +} +extern "C" { + pub fn get_random_number() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sv_ifs(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_path(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_mail(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_funcnest(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_execignore(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_globignore(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_ignoreeof(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_strict_posix(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_optind(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_opterr(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_locale(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_xtracefd(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_shcompat(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_comp_wordbreaks(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_terminal(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_hostfile(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_winsize(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_histsize(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_histignore(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_history_control(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_histchars(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_histtimefmt(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_tz(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sv_childmax(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + #[link_name = "\u{1}assoc_expand_once"] + pub static mut assoc_expand_once: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}array_expand_once"] + pub static mut array_expand_once: ::std::os::raw::c_int; +} +extern "C" { + pub fn convert_var_to_array(arg1: *mut SHELL_VAR) -> *mut SHELL_VAR; +} +extern "C" { + pub fn convert_var_to_assoc(arg1: *mut SHELL_VAR) -> *mut SHELL_VAR; +} +extern "C" { + pub fn make_array_variable_value( + arg1: *mut SHELL_VAR, + arg2: arrayind_t, + arg3: *mut ::std::os::raw::c_char, + arg4: *mut ::std::os::raw::c_char, + arg5: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn bind_array_variable( + arg1: *mut ::std::os::raw::c_char, + arg2: arrayind_t, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn bind_array_element( + arg1: *mut SHELL_VAR, + arg2: arrayind_t, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn assign_array_element( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn bind_assoc_variable( + arg1: *mut SHELL_VAR, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + arg4: *mut ::std::os::raw::c_char, + arg5: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn find_or_make_array_variable( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn assign_array_from_string( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn assign_array_var_from_word_list( + arg1: *mut SHELL_VAR, + arg2: *mut WORD_LIST, + arg3: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn expand_compound_array_assignment( + arg1: *mut SHELL_VAR, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn assign_compound_array_list( + arg1: *mut SHELL_VAR, + arg2: *mut WORD_LIST, + arg3: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn assign_array_var_from_string( + arg1: *mut SHELL_VAR, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn expand_and_quote_assoc_word( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn quote_compound_array_list(arg1: *mut WORD_LIST, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn kvpair_assignment_p(arg1: *mut WORD_LIST) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn expand_and_quote_kvpair_word( + arg1: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn unbind_array_element( + arg1: *mut SHELL_VAR, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn skipsubscript( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn print_array_assignment(arg1: *mut SHELL_VAR, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn print_assoc_assignment(arg1: *mut SHELL_VAR, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn array_expand_index( + arg1: *mut SHELL_VAR, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ) -> arrayind_t; +} +extern "C" { + pub fn valid_array_reference( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn array_value( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: *mut ::std::os::raw::c_int, + arg5: *mut arrayind_t, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_array_value( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + arg4: *mut arrayind_t, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_keys( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_variable_name( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut *mut ::std::os::raw::c_char, + arg4: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn array_variable_part( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut *mut ::std::os::raw::c_char, + arg4: *mut ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn redirection_error( + arg1: *mut REDIRECT, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn do_redirections( + arg1: *mut REDIRECT, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn redirection_expand(arg1: *mut WORD_DESC) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn stdin_redirects(arg1: *mut REDIRECT) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}remember_on_history"] + pub static mut remember_on_history: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}enable_history_list"] + pub static mut enable_history_list: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}literal_history"] + pub static mut literal_history: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}force_append_history"] + pub static mut force_append_history: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}history_lines_this_session"] + pub static mut history_lines_this_session: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}history_lines_in_file"] + pub static mut history_lines_in_file: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}history_expansion"] + pub static mut history_expansion: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}history_control"] + pub static mut history_control: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}command_oriented_history"] + pub static mut command_oriented_history: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}current_command_first_line_saved"] + pub static mut current_command_first_line_saved: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}current_command_first_line_comment"] + pub static mut current_command_first_line_comment: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}hist_last_line_added"] + pub static mut hist_last_line_added: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}hist_last_line_pushed"] + pub static mut hist_last_line_pushed: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}dont_save_function_defs"] + pub static mut dont_save_function_defs: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}hist_verify"] + pub static mut hist_verify: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}history_expansion_inhibited"] + pub static mut history_expansion_inhibited: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}double_quotes_inhibit_history_expansion"] + pub static mut double_quotes_inhibit_history_expansion: ::std::os::raw::c_int; +} +extern "C" { + pub fn bash_initialize_history(); +} +extern "C" { + pub fn bash_history_reinit(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn bash_history_disable(); +} +extern "C" { + pub fn bash_history_enable(); +} +extern "C" { + pub fn bash_clear_history(); +} +extern "C" { + pub fn bash_delete_histent(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bash_delete_history_range( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bash_delete_last_history() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn load_history(); +} +extern "C" { + pub fn save_history(); +} +extern "C" { + pub fn maybe_append_history(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn maybe_save_shell_history() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pre_process_line( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn maybe_add_history(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn bash_add_history(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn check_add_history( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn history_number() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setup_history_ignore(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn last_history_line() -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct compspec { + pub refcount: ::std::os::raw::c_int, + pub actions: ::std::os::raw::c_ulong, + pub options: ::std::os::raw::c_ulong, + pub globpat: *mut ::std::os::raw::c_char, + pub words: *mut ::std::os::raw::c_char, + pub prefix: *mut ::std::os::raw::c_char, + pub suffix: *mut ::std::os::raw::c_char, + pub funcname: *mut ::std::os::raw::c_char, + pub command: *mut ::std::os::raw::c_char, + pub lcommand: *mut ::std::os::raw::c_char, + pub filterpat: *mut ::std::os::raw::c_char, +} +pub type COMPSPEC = compspec; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _list_of_items { + pub flags: ::std::os::raw::c_int, + pub list_getter: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut _list_of_items) -> ::std::os::raw::c_int, + >, + pub slist: *mut STRINGLIST, + pub genlist: *mut STRINGLIST, + pub genindex: ::std::os::raw::c_int, +} +pub type ITEMLIST = _list_of_items; +extern "C" { + #[link_name = "\u{1}prog_completes"] + pub static mut prog_completes: *mut HASH_TABLE; +} +extern "C" { + #[link_name = "\u{1}pcomp_line"] + pub static mut pcomp_line: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}pcomp_ind"] + pub static mut pcomp_ind: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}prog_completion_enabled"] + pub static mut prog_completion_enabled: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}progcomp_alias"] + pub static mut progcomp_alias: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}it_aliases"] + pub static mut it_aliases: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_arrayvars"] + pub static mut it_arrayvars: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_bindings"] + pub static mut it_bindings: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_builtins"] + pub static mut it_builtins: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_commands"] + pub static mut it_commands: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_directories"] + pub static mut it_directories: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_disabled"] + pub static mut it_disabled: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_enabled"] + pub static mut it_enabled: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_exports"] + pub static mut it_exports: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_files"] + pub static mut it_files: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_functions"] + pub static mut it_functions: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_groups"] + pub static mut it_groups: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_helptopics"] + pub static mut it_helptopics: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_hostnames"] + pub static mut it_hostnames: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_jobs"] + pub static mut it_jobs: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_keywords"] + pub static mut it_keywords: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_running"] + pub static mut it_running: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_services"] + pub static mut it_services: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_setopts"] + pub static mut it_setopts: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_shopts"] + pub static mut it_shopts: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_signals"] + pub static mut it_signals: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_stopped"] + pub static mut it_stopped: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_users"] + pub static mut it_users: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}it_variables"] + pub static mut it_variables: ITEMLIST; +} +extern "C" { + #[link_name = "\u{1}pcomp_curcs"] + pub static mut pcomp_curcs: *mut COMPSPEC; +} +extern "C" { + #[link_name = "\u{1}pcomp_curcmd"] + pub static mut pcomp_curcmd: *const ::std::os::raw::c_char; +} +extern "C" { + pub fn compspec_create() -> *mut COMPSPEC; +} +extern "C" { + pub fn compspec_dispose(arg1: *mut COMPSPEC); +} +extern "C" { + pub fn compspec_copy(arg1: *mut COMPSPEC) -> *mut COMPSPEC; +} +extern "C" { + pub fn progcomp_create(); +} +extern "C" { + pub fn progcomp_flush(); +} +extern "C" { + pub fn progcomp_dispose(); +} +extern "C" { + pub fn progcomp_size() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn progcomp_insert( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut COMPSPEC, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn progcomp_remove(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn progcomp_search(arg1: *const ::std::os::raw::c_char) -> *mut COMPSPEC; +} +extern "C" { + pub fn progcomp_walk(arg1: hash_wfunc); +} +extern "C" { + pub fn set_itemlist_dirty(arg1: *mut ITEMLIST); +} +extern "C" { + pub fn completions_to_stringlist(arg1: *mut *mut ::std::os::raw::c_char) -> *mut STRINGLIST; +} +extern "C" { + pub fn gen_compspec_completions( + arg1: *mut COMPSPEC, + arg2: *const ::std::os::raw::c_char, + arg3: *const ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + arg5: ::std::os::raw::c_int, + arg6: *mut ::std::os::raw::c_int, + ) -> *mut STRINGLIST; +} +extern "C" { + pub fn programmable_completions( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + arg5: *mut ::std::os::raw::c_int, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn pcomp_set_readline_variables(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn pcomp_set_compspec_options( + arg1: *mut COMPSPEC, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _G_fpos_t { + pub __pos: __off_t, + pub __state: __mbstate_t, +} +pub type __fpos_t = _G_fpos_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _G_fpos64_t { + pub __pos: __off64_t, + pub __state: __mbstate_t, +} +pub type __fpos64_t = _G_fpos64_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_marker { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_codecvt { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_wide_data { + _unused: [u8; 0], +} +pub type _IO_lock_t = ::std::os::raw::c_void; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_FILE { + pub _flags: ::std::os::raw::c_int, + pub _IO_read_ptr: *mut ::std::os::raw::c_char, + pub _IO_read_end: *mut ::std::os::raw::c_char, + pub _IO_read_base: *mut ::std::os::raw::c_char, + pub _IO_write_base: *mut ::std::os::raw::c_char, + pub _IO_write_ptr: *mut ::std::os::raw::c_char, + pub _IO_write_end: *mut ::std::os::raw::c_char, + pub _IO_buf_base: *mut ::std::os::raw::c_char, + pub _IO_buf_end: *mut ::std::os::raw::c_char, + pub _IO_save_base: *mut ::std::os::raw::c_char, + pub _IO_backup_base: *mut ::std::os::raw::c_char, + pub _IO_save_end: *mut ::std::os::raw::c_char, + pub _markers: *mut _IO_marker, + pub _chain: *mut _IO_FILE, + pub _fileno: ::std::os::raw::c_int, + pub _flags2: ::std::os::raw::c_int, + pub _old_offset: __off_t, + pub _cur_column: ::std::os::raw::c_ushort, + pub _vtable_offset: ::std::os::raw::c_schar, + pub _shortbuf: [::std::os::raw::c_char; 1usize], + pub _lock: *mut _IO_lock_t, + pub _offset: __off64_t, + pub _codecvt: *mut _IO_codecvt, + pub _wide_data: *mut _IO_wide_data, + pub _freeres_list: *mut _IO_FILE, + pub _freeres_buf: *mut ::std::os::raw::c_void, + pub __pad5: usize, + pub _mode: ::std::os::raw::c_int, + pub _unused2: [::std::os::raw::c_char; 20usize], +} +pub type cookie_read_function_t = ::core::option::Option< + unsafe extern "C" fn( + __cookie: *mut ::std::os::raw::c_void, + __buf: *mut ::std::os::raw::c_char, + __nbytes: usize, + ) -> __ssize_t, +>; +pub type cookie_write_function_t = ::core::option::Option< + unsafe extern "C" fn( + __cookie: *mut ::std::os::raw::c_void, + __buf: *const ::std::os::raw::c_char, + __nbytes: usize, + ) -> __ssize_t, +>; +pub type cookie_seek_function_t = ::core::option::Option< + unsafe extern "C" fn( + __cookie: *mut ::std::os::raw::c_void, + __pos: *mut __off64_t, + __w: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, +>; +pub type cookie_close_function_t = ::core::option::Option< + unsafe extern "C" fn(__cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_cookie_io_functions_t { + pub read: cookie_read_function_t, + pub write: cookie_write_function_t, + pub seek: cookie_seek_function_t, + pub close: cookie_close_function_t, +} +pub type cookie_io_functions_t = _IO_cookie_io_functions_t; +pub type fpos_t = __fpos_t; +pub type fpos64_t = __fpos64_t; +extern "C" { + #[link_name = "\u{1}stdin"] + pub static mut stdin: *mut FILE; +} +extern "C" { + #[link_name = "\u{1}stdout"] + pub static mut stdout: *mut FILE; +} +extern "C" { + #[link_name = "\u{1}stderr"] + pub static mut stderr: *mut FILE; +} +extern "C" { + pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn rename( + __old: *const ::std::os::raw::c_char, + __new: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn renameat( + __oldfd: ::std::os::raw::c_int, + __old: *const ::std::os::raw::c_char, + __newfd: ::std::os::raw::c_int, + __new: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn renameat2( + __oldfd: ::std::os::raw::c_int, + __old: *const ::std::os::raw::c_char, + __newfd: ::std::os::raw::c_int, + __new: *const ::std::os::raw::c_char, + __flags: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tmpfile() -> *mut FILE; +} +extern "C" { + pub fn tmpfile64() -> *mut FILE; +} +extern "C" { + pub fn tmpnam(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tempnam( + __dir: *const ::std::os::raw::c_char, + __pfx: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fcloseall() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fopen( + __filename: *const ::std::os::raw::c_char, + __modes: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +extern "C" { + pub fn freopen( + __filename: *const ::std::os::raw::c_char, + __modes: *const ::std::os::raw::c_char, + __stream: *mut FILE, + ) -> *mut FILE; +} +extern "C" { + pub fn fopen64( + __filename: *const ::std::os::raw::c_char, + __modes: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +extern "C" { + pub fn freopen64( + __filename: *const ::std::os::raw::c_char, + __modes: *const ::std::os::raw::c_char, + __stream: *mut FILE, + ) -> *mut FILE; +} +extern "C" { + pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) + -> *mut FILE; +} +extern "C" { + pub fn fopencookie( + __magic_cookie: *mut ::std::os::raw::c_void, + __modes: *const ::std::os::raw::c_char, + __io_funcs: cookie_io_functions_t, + ) -> *mut FILE; +} +extern "C" { + pub fn fmemopen( + __s: *mut ::std::os::raw::c_void, + __len: usize, + __modes: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +extern "C" { + pub fn open_memstream( + __bufloc: *mut *mut ::std::os::raw::c_char, + __sizeloc: *mut usize, + ) -> *mut FILE; +} +extern "C" { + pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn setvbuf( + __stream: *mut FILE, + __buf: *mut ::std::os::raw::c_char, + __modes: ::std::os::raw::c_int, + __n: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); +} +extern "C" { + pub fn setlinebuf(__stream: *mut FILE); +} +extern "C" { + pub fn fprintf( + __stream: *mut FILE, + __format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sprintf( + __s: *mut ::std::os::raw::c_char, + __format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vfprintf( + __s: *mut FILE, + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vprintf( + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vsprintf( + __s: *mut ::std::os::raw::c_char, + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snprintf( + __s: *mut ::std::os::raw::c_char, + __maxlen: usize, + __format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vsnprintf( + __s: *mut ::std::os::raw::c_char, + __maxlen: usize, + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vasprintf( + __ptr: *mut *mut ::std::os::raw::c_char, + __f: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __asprintf( + __ptr: *mut *mut ::std::os::raw::c_char, + __fmt: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn asprintf( + __ptr: *mut *mut ::std::os::raw::c_char, + __fmt: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vdprintf( + __fd: ::std::os::raw::c_int, + __fmt: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dprintf( + __fd: ::std::os::raw::c_int, + __fmt: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fscanf( + __stream: *mut FILE, + __format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sscanf( + __s: *const ::std::os::raw::c_char, + __format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vfscanf( + __s: *mut FILE, + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vscanf( + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vsscanf( + __s: *const ::std::os::raw::c_char, + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getchar() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getchar_unlocked() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fgets( + __s: *mut ::std::os::raw::c_char, + __n: ::std::os::raw::c_int, + __stream: *mut FILE, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fgets_unlocked( + __s: *mut ::std::os::raw::c_char, + __n: ::std::os::raw::c_int, + __stream: *mut FILE, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn __getdelim( + __lineptr: *mut *mut ::std::os::raw::c_char, + __n: *mut usize, + __delimiter: ::std::os::raw::c_int, + __stream: *mut FILE, + ) -> __ssize_t; +} +extern "C" { + pub fn getdelim( + __lineptr: *mut *mut ::std::os::raw::c_char, + __n: *mut usize, + __delimiter: ::std::os::raw::c_int, + __stream: *mut FILE, + ) -> __ssize_t; +} +extern "C" { + pub fn getline( + __lineptr: *mut *mut ::std::os::raw::c_char, + __n: *mut usize, + __stream: *mut FILE, + ) -> __ssize_t; +} +extern "C" { + pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fread( + __ptr: *mut ::std::os::raw::c_void, + __size: usize, + __n: usize, + __stream: *mut FILE, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn fwrite( + __ptr: *const ::std::os::raw::c_void, + __size: usize, + __n: usize, + __s: *mut FILE, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn fputs_unlocked( + __s: *const ::std::os::raw::c_char, + __stream: *mut FILE, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fread_unlocked( + __ptr: *mut ::std::os::raw::c_void, + __size: usize, + __n: usize, + __stream: *mut FILE, + ) -> usize; +} +extern "C" { + pub fn fwrite_unlocked( + __ptr: *const ::std::os::raw::c_void, + __size: usize, + __n: usize, + __stream: *mut FILE, + ) -> usize; +} +extern "C" { + pub fn fseek( + __stream: *mut FILE, + __off: ::std::os::raw::c_long, + __whence: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn rewind(__stream: *mut FILE); +} +extern "C" { + pub fn fseeko( + __stream: *mut FILE, + __off: __off_t, + __whence: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ftello(__stream: *mut FILE) -> __off_t; +} +extern "C" { + pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fseeko64( + __stream: *mut FILE, + __off: __off64_t, + __whence: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ftello64(__stream: *mut FILE) -> __off64_t; +} +extern "C" { + pub fn fgetpos64(__stream: *mut FILE, __pos: *mut fpos64_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fsetpos64(__stream: *mut FILE, __pos: *const fpos64_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clearerr(__stream: *mut FILE); +} +extern "C" { + pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clearerr_unlocked(__stream: *mut FILE); +} +extern "C" { + pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn perror(__s: *const ::std::os::raw::c_char); +} +extern "C" { + #[link_name = "\u{1}sys_nerr"] + pub static mut sys_nerr: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}sys_errlist"] + pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize]; +} +extern "C" { + #[link_name = "\u{1}_sys_nerr"] + pub static mut _sys_nerr: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}_sys_errlist"] + pub static mut _sys_errlist: [*const ::std::os::raw::c_char; 0usize]; +} +extern "C" { + pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn popen( + __command: *const ::std::os::raw::c_char, + __modes: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +extern "C" { + pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn cuserid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct obstack { + _unused: [u8; 0], +} +extern "C" { + pub fn obstack_printf( + __obstack: *mut obstack, + __format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn obstack_vprintf( + __obstack: *mut obstack, + __format: *const ::std::os::raw::c_char, + __args: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn flockfile(__stream: *mut FILE); +} +extern "C" { + pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn funlockfile(__stream: *mut FILE); +} +extern "C" { + pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn r_execute_cmd() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn r_execute_cmd2(l: *mut WORD_LIST) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}hashed_filenames"] + pub static mut hashed_filenames: *mut HASH_TABLE; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _pathdata { + pub path: *mut ::std::os::raw::c_char, + pub flags: ::std::os::raw::c_int, +} +pub type PATH_DATA = _pathdata; +extern "C" { + pub fn phash_create(); +} +extern "C" { + pub fn phash_flush(); +} +extern "C" { + pub fn phash_insert( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn phash_remove(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn phash_search(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct alias { + pub name: *mut ::std::os::raw::c_char, + pub value: *mut ::std::os::raw::c_char, + pub flags: ::std::os::raw::c_char, +} +pub type alias_t = alias; +extern "C" { + #[link_name = "\u{1}aliases"] + pub static mut aliases: *mut HASH_TABLE; +} +extern "C" { + pub fn initialize_aliases(); +} +extern "C" { + pub fn find_alias(arg1: *mut ::std::os::raw::c_char) -> *mut alias_t; +} +extern "C" { + pub fn get_alias_value(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn add_alias(arg1: *mut ::std::os::raw::c_char, arg2: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn remove_alias(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn delete_all_aliases(); +} +extern "C" { + pub fn all_aliases() -> *mut *mut alias_t; +} +extern "C" { + pub fn alias_expand_word(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn alias_expand(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn clear_string_list_expander(arg1: *mut alias_t); +} +extern "C" { + #[link_name = "\u{1}noglob_dot_filenames"] + pub static mut noglob_dot_filenames: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}glob_error_return"] + pub static mut glob_error_return: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}glob_dot_filenames"] + pub static mut glob_dot_filenames: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}extended_glob"] + pub static mut extended_glob: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}glob_star"] + pub static mut glob_star: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}match_ignore_case"] + pub static mut match_ignore_case: ::std::os::raw::c_int; +} +extern "C" { + pub fn unquoted_glob_pattern_p(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn quote_string_for_globbing( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn glob_char_p(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn quote_globbing_chars(arg1: *const ::std::os::raw::c_char) + -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn shell_glob_filename( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ign { + pub val: *mut ::std::os::raw::c_char, + pub len: ::std::os::raw::c_int, + pub flags: ::std::os::raw::c_int, +} +pub type sh_iv_item_func_t = + ::core::option::Option ::std::os::raw::c_int>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ignorevar { + pub varname: *mut ::std::os::raw::c_char, + pub ignores: *mut ign, + pub num_ignores: ::std::os::raw::c_int, + pub last_ignoreval: *mut ::std::os::raw::c_char, + pub item_func: sh_iv_item_func_t, +} +extern "C" { + pub fn setup_ignore_patterns(arg1: *mut ignorevar); +} +extern "C" { + pub fn setup_glob_ignore(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn should_ignore_glob_matches() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ignore_glob_matches(arg1: *mut *mut ::std::os::raw::c_char); +} +extern "C" { + #[link_name = "\u{1}bash_readline_initialized"] + pub static mut bash_readline_initialized: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}hostname_list_initialized"] + pub static mut hostname_list_initialized: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}perform_hostname_completion"] + pub static mut perform_hostname_completion: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}no_empty_command_completion"] + pub static mut no_empty_command_completion: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}force_fignore"] + pub static mut force_fignore: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}dircomplete_spelling"] + pub static mut dircomplete_spelling: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}dircomplete_expand"] + pub static mut dircomplete_expand: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}dircomplete_expand_relpath"] + pub static mut dircomplete_expand_relpath: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}complete_fullquote"] + pub static mut complete_fullquote: ::std::os::raw::c_int; +} +extern "C" { + pub fn posix_readline_initialize(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn reset_completer_word_break_chars(); +} +extern "C" { + pub fn enable_hostname_completion(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn initialize_readline(); +} +extern "C" { + pub fn bashline_reset(); +} +extern "C" { + pub fn bashline_reinitialize(); +} +extern "C" { + pub fn bash_re_edit(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bashline_set_event_hook(); +} +extern "C" { + pub fn bashline_reset_event_hook(); +} +extern "C" { + pub fn bind_keyseq_to_unix_command(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bash_execute_unix_command( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn print_unix_command_map() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unbind_unix_command(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bash_default_completion( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + arg5: ::std::os::raw::c_int, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn set_directory_hook(); +} +extern "C" { + pub fn command_word_completion_function( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn bash_groupname_completion_function( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn bash_servicename_completion_function( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_hostname_list() -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn clear_hostname_list(); +} +extern "C" { + pub fn bash_directory_completion_matches( + arg1: *const ::std::os::raw::c_char, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn bash_dequote_text(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +pub type tilde_hook_func_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char, +>; +extern "C" { + #[link_name = "\u{1}tilde_expansion_preexpansion_hook"] + pub static mut tilde_expansion_preexpansion_hook: tilde_hook_func_t; +} +extern "C" { + #[link_name = "\u{1}tilde_expansion_failure_hook"] + pub static mut tilde_expansion_failure_hook: tilde_hook_func_t; +} +extern "C" { + #[link_name = "\u{1}tilde_additional_prefixes"] + pub static mut tilde_additional_prefixes: *mut *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}tilde_additional_suffixes"] + pub static mut tilde_additional_suffixes: *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tilde_expand(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tilde_expand_word(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tilde_find_word( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flags_alist { + pub name: ::std::os::raw::c_char, + pub value: *mut ::std::os::raw::c_int, +} +extern "C" { + #[link_name = "\u{1}shell_flags"] + pub static mut shell_flags: [flags_alist; 0usize]; +} +extern "C" { + #[link_name = "\u{1}optflags"] + pub static mut optflags: [::std::os::raw::c_char; 0usize]; +} +extern "C" { + #[link_name = "\u{1}mark_modified_vars"] + pub static mut mark_modified_vars: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}errexit_flag"] + pub static mut errexit_flag: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}exit_immediately_on_error"] + pub static mut exit_immediately_on_error: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}disallow_filename_globbing"] + pub static mut disallow_filename_globbing: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}place_keywords_in_env"] + pub static mut place_keywords_in_env: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}read_but_dont_execute"] + pub static mut read_but_dont_execute: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}just_one_command"] + pub static mut just_one_command: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}unbound_vars_is_error"] + pub static mut unbound_vars_is_error: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}echo_input_at_read"] + pub static mut echo_input_at_read: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}verbose_flag"] + pub static mut verbose_flag: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}echo_command_at_execute"] + pub static mut echo_command_at_execute: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}noclobber"] + pub static mut noclobber: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}hashing_enabled"] + pub static mut hashing_enabled: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}forced_interactive"] + pub static mut forced_interactive: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}privileged_mode"] + pub static mut privileged_mode: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}jobs_m_flag"] + pub static mut jobs_m_flag: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}asynchronous_notification"] + pub static mut asynchronous_notification: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}interactive_comments"] + pub static mut interactive_comments: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}no_symbolic_links"] + pub static mut no_symbolic_links: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}function_trace_mode"] + pub static mut function_trace_mode: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}error_trace_mode"] + pub static mut error_trace_mode: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}pipefail_opt"] + pub static mut pipefail_opt: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}want_pending_command"] + pub static mut want_pending_command: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}read_from_stdin"] + pub static mut read_from_stdin: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}brace_expansion"] + pub static mut brace_expansion: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}histexp_flag"] + pub static mut histexp_flag: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}restricted"] + pub static mut restricted: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}restricted_shell"] + pub static mut restricted_shell: ::std::os::raw::c_int; +} +extern "C" { + pub fn find_flag(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_int; +} +extern "C" { + pub fn change_flag( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn which_set_flags() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn reset_shell_flags(); +} +extern "C" { + pub fn get_current_flags() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn set_current_flags(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn initialize_flags(); +} +extern "C" { + pub fn de_backslash(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn unquote_bang(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn extract_command_subst( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn extract_arithmetic_subst( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn extract_process_subst( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn assignment_name(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn string_list_internal( + arg1: *mut WORD_LIST, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn string_list(arg1: *mut WORD_LIST) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn string_list_dollar_star( + arg1: *mut WORD_LIST, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn string_list_dollar_at( + arg1: *mut WORD_LIST, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn string_list_pos_params( + arg1: ::std::os::raw::c_int, + arg2: *mut WORD_LIST, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn word_list_remove_quoted_nulls(arg1: *mut WORD_LIST); +} +extern "C" { + pub fn list_string( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn ifs_firstchar(arg1: *mut ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_word_from_string( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strip_trailing_ifs_whitespace( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn do_assignment(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn do_assignment_no_expand(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn do_word_assignment( + arg1: *mut WORD_DESC, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sub_append_string( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_int, + arg4: *mut usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn sub_append_number( + arg1: intmax_t, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_int, + arg4: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn list_rest_of_args() -> *mut WORD_LIST; +} +extern "C" { + pub fn string_rest_of_args(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn expand_string_unsplit( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_string_assignment( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_prompt_string( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_string( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_string_to_string( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn expand_string_unsplit_to_string( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn expand_assignment_string_to_string( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn expand_arith_string( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn dequote_string(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn dequote_escapes(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn dequote_word(arg1: *mut WORD_DESC) -> *mut WORD_DESC; +} +extern "C" { + pub fn dequote_list(arg1: *mut WORD_LIST) -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_word(arg1: *mut WORD_DESC, arg2: ::std::os::raw::c_int) -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_word_unsplit(arg1: *mut WORD_DESC, arg2: ::std::os::raw::c_int) + -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_word_leave_quoted( + arg1: *mut WORD_DESC, + arg2: ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn get_dollar_var_value(arg1: intmax_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn quote_string(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn quote_escapes(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn remove_quoted_escapes(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn remove_quoted_nulls(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn string_quote_removal( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn word_quote_removal(arg1: *mut WORD_DESC, arg2: ::std::os::raw::c_int) -> *mut WORD_DESC; +} +extern "C" { + pub fn word_list_quote_removal( + arg1: *mut WORD_LIST, + arg2: ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + pub fn setifs(arg1: *mut SHELL_VAR); +} +extern "C" { + pub fn getifs() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn word_split(arg1: *mut WORD_DESC, arg2: *mut ::std::os::raw::c_char) -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_words(arg1: *mut WORD_LIST) -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_words_no_vars(arg1: *mut WORD_LIST) -> *mut WORD_LIST; +} +extern "C" { + pub fn expand_words_shellexp(arg1: *mut WORD_LIST) -> *mut WORD_LIST; +} +extern "C" { + pub fn command_substitute( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut WORD_DESC; +} +extern "C" { + pub fn pat_subst( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fifos_pending() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn num_fifos() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unlink_fifo_list(); +} +extern "C" { + pub fn unlink_all_fifos(); +} +extern "C" { + pub fn unlink_fifo(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn copy_fifo_list(arg1: *mut ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn close_new_fifos(arg1: *mut ::std::os::raw::c_void, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn clear_fifo_list(); +} +extern "C" { + pub fn find_procsub_child(arg1: pid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_procsub_status( + arg1: ::std::os::raw::c_int, + arg2: pid_t, + arg3: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn wait_procsubs(); +} +extern "C" { + pub fn reap_procsubs(); +} +extern "C" { + pub fn list_string_with_quotes(arg1: *mut ::std::os::raw::c_char) -> *mut WORD_LIST; +} +extern "C" { + pub fn extract_array_assignment_list( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn remove_backslashes(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn cond_expand_word( + arg1: *mut WORD_DESC, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn skip_to_delim( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn skip_to_histexp( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn char_is_quoted( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unclosed_pair( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn split_at_delims( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + arg5: ::std::os::raw::c_int, + arg6: *mut ::std::os::raw::c_int, + arg7: *mut ::std::os::raw::c_int, + ) -> *mut WORD_LIST; +} +extern "C" { + #[link_name = "\u{1}ifs_var"] + pub static mut ifs_var: *mut SHELL_VAR; +} +extern "C" { + #[link_name = "\u{1}ifs_value"] + pub static mut ifs_value: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}ifs_cmap"] + pub static mut ifs_cmap: [::std::os::raw::c_uchar; 0usize]; +} +extern "C" { + #[link_name = "\u{1}ifs_is_set"] + pub static mut ifs_is_set: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}ifs_is_null"] + pub static mut ifs_is_null: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}ifs_firstc"] + pub static mut ifs_firstc: [::std::os::raw::c_uchar; 0usize]; +} +extern "C" { + #[link_name = "\u{1}ifs_firstc_len"] + pub static mut ifs_firstc_len: usize; +} +extern "C" { + #[link_name = "\u{1}assigning_in_environment"] + pub static mut assigning_in_environment: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}expanding_redir"] + pub static mut expanding_redir: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}inherit_errexit"] + pub static mut inherit_errexit: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}last_command_subst_pid"] + pub static mut last_command_subst_pid: pid_t; +} +extern "C" { + pub fn invalidate_cached_quoted_dollar_at(); +} +extern "C" { + pub fn time_to_check_mail() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn reset_mail_timer(); +} +extern "C" { + pub fn reset_mail_files(); +} +extern "C" { + pub fn free_mail_files(); +} +extern "C" { + pub fn make_default_mailpath() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn remember_mail_dates(); +} +extern "C" { + pub fn init_mail_dates(); +} +extern "C" { + pub fn check_mail(); +} +extern "C" { + pub fn wait(__stat_loc: *mut ::std::os::raw::c_int) -> __pid_t; +} +extern "C" { + pub fn waitpid( + __pid: __pid_t, + __stat_loc: *mut ::std::os::raw::c_int, + __options: ::std::os::raw::c_int, + ) -> __pid_t; +} +extern "C" { + pub fn waitid( + __idtype: idtype_t, + __id: __id_t, + __infop: *mut siginfo_t, + __options: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wait3( + __stat_loc: *mut ::std::os::raw::c_int, + __options: ::std::os::raw::c_int, + __usage: *mut rusage, + ) -> __pid_t; +} +extern "C" { + pub fn wait4( + __pid: __pid_t, + __stat_loc: *mut ::std::os::raw::c_int, + __options: ::std::os::raw::c_int, + __usage: *mut rusage, + ) -> __pid_t; +} +pub type WAIT = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct process { + pub next: *mut process, + pub pid: pid_t, + pub status: WAIT, + pub running: ::std::os::raw::c_int, + pub command: *mut ::std::os::raw::c_char, +} +pub type PROCESS = process; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pipeline_saver { + pub pipeline: *mut process, + pub next: *mut pipeline_saver, +} +#[no_mangle] +pub static mut wait_intr_flag: ::std::os::raw::c_int = 0; +pub const JOB_STATE_JNONE: JOB_STATE = -1; +pub const JOB_STATE_JRUNNING: JOB_STATE = 1; +pub const JOB_STATE_JSTOPPED: JOB_STATE = 2; +pub const JOB_STATE_JDEAD: JOB_STATE = 4; +pub const JOB_STATE_JMIXED: JOB_STATE = 8; +pub type JOB_STATE = i32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct job { + pub wd: *mut ::std::os::raw::c_char, + pub pipe: *mut PROCESS, + pub pgrp: pid_t, + pub state: JOB_STATE, + pub flags: ::std::os::raw::c_int, + pub deferred: *mut COMMAND, + pub j_cleanup: sh_vptrfunc_t, + pub cleanarg: *mut ::std::os::raw::c_void, +} +pub type JOB = job; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct jobstats { + pub c_childmax: ::std::os::raw::c_long, + pub c_living: ::std::os::raw::c_int, + pub c_reaped: ::std::os::raw::c_int, + pub c_injobs: ::std::os::raw::c_int, + pub c_totforked: ::std::os::raw::c_int, + pub c_totreaped: ::std::os::raw::c_int, + pub j_jobslots: ::std::os::raw::c_int, + pub j_lastj: ::std::os::raw::c_int, + pub j_firstj: ::std::os::raw::c_int, + pub j_njobs: ::std::os::raw::c_int, + pub j_ndead: ::std::os::raw::c_int, + pub j_current: ::std::os::raw::c_int, + pub j_previous: ::std::os::raw::c_int, + pub j_lastmade: *mut JOB, + pub j_lastasync: *mut JOB, +} +pub type ps_index_t = pid_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pidstat { + pub bucket_next: ps_index_t, + pub bucket_prev: ps_index_t, + pub pid: pid_t, + pub status: ::std::os::raw::c_short, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bgpids { + pub storage: *mut pidstat, + pub head: ps_index_t, + pub nalloc: ps_index_t, + pub npid: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct procstat { + pub pid: pid_t, + pub status: ::std::os::raw::c_short, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct procchain { + pub head: *mut PROCESS, + pub end: *mut PROCESS, + pub nproc: ::std::os::raw::c_int, +} +extern "C" { + #[link_name = "\u{1}js"] + pub static mut js: jobstats; +} +extern "C" { + #[link_name = "\u{1}original_pgrp"] + pub static mut original_pgrp: pid_t; +} +extern "C" { + #[link_name = "\u{1}shell_pgrp"] + pub static mut shell_pgrp: pid_t; +} +extern "C" { + #[link_name = "\u{1}pipeline_pgrp"] + pub static mut pipeline_pgrp: pid_t; +} +extern "C" { + #[link_name = "\u{1}last_made_pid"] + pub static mut last_made_pid: pid_t; +} +extern "C" { + #[link_name = "\u{1}last_asynchronous_pid"] + pub static mut last_asynchronous_pid: pid_t; +} +extern "C" { + #[link_name = "\u{1}already_making_children"] + pub static mut already_making_children: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}running_in_background"] + pub static mut running_in_background: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}last_procsub_child"] + pub static mut last_procsub_child: *mut PROCESS; +} +extern "C" { + #[link_name = "\u{1}jobs"] + pub static mut jobs: *mut *mut JOB; +} +extern "C" { + pub fn making_children(); +} +extern "C" { + pub fn stop_making_children(); +} +extern "C" { + pub fn cleanup_the_pipeline(); +} +extern "C" { + pub fn discard_last_procsub_child(); +} +extern "C" { + pub fn save_pipeline(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn restore_pipeline(arg1: ::std::os::raw::c_int) -> *mut PROCESS; +} +extern "C" { + pub fn start_pipeline(); +} +extern "C" { + pub fn stop_pipeline(arg1: ::std::os::raw::c_int, arg2: *mut COMMAND) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn discard_pipeline(arg1: *mut PROCESS) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn append_process( + arg1: *mut ::std::os::raw::c_char, + arg2: pid_t, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn save_proc_status(arg1: pid_t, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn procsub_add(arg1: *mut PROCESS) -> *mut PROCESS; +} +extern "C" { + pub fn procsub_search(arg1: pid_t) -> *mut PROCESS; +} +extern "C" { + pub fn procsub_delete(arg1: pid_t) -> *mut PROCESS; +} +extern "C" { + pub fn procsub_waitpid(arg1: pid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn procsub_waitall(); +} +extern "C" { + pub fn procsub_clear(); +} +extern "C" { + pub fn procsub_prune(); +} +extern "C" { + pub fn delete_job(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn nohup_job(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn delete_all_jobs(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn nohup_all_jobs(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn count_all_jobs() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn terminate_current_pipeline(); +} +extern "C" { + pub fn terminate_stopped_jobs(); +} +extern "C" { + pub fn hangup_all_jobs(); +} +extern "C" { + pub fn kill_current_pipeline(); +} +extern "C" { + pub fn get_job_by_pid( + arg1: pid_t, + arg2: ::std::os::raw::c_int, + arg3: *mut *mut PROCESS, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn describe_pid(arg1: pid_t); +} +extern "C" { + pub fn list_one_job( + arg1: *mut JOB, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn list_all_jobs(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn list_stopped_jobs(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn list_running_jobs(arg1: ::std::os::raw::c_int); +} +// extern "C" { +// pub fn make_child(arg1: *mut ::std::os::raw::c_char, arg2: ::std::os::raw::c_int) -> pid_t; +// } +extern "C" { + pub fn get_tty_state() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_tty_state() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn job_exit_status(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn job_exit_signal(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wait_for_single_pid(arg1: pid_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wait_for_background_pids(arg1: *mut procstat); +} +extern "C" { + pub fn wait_for(arg1: pid_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wait_for_job( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + arg3: *mut procstat, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wait_for_any_job( + arg1: ::std::os::raw::c_int, + arg2: *mut procstat, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wait_sigint_cleanup(); +} +extern "C" { + pub fn notify_and_cleanup(); +} +extern "C" { + pub fn reap_dead_jobs(); +} +extern "C" { + pub fn start_job( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn kill_pid( + arg1: pid_t, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn initialize_job_control(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn initialize_job_signals(); +} +extern "C" { + pub fn give_terminal_to(arg1: pid_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn run_sigchld_trap(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn freeze_jobs_list() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unfreeze_jobs_list(); +} +extern "C" { + pub fn set_jobs_list_frozen(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn set_job_control(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn without_job_control(); +} +extern "C" { + pub fn end_job_control(); +} +extern "C" { + pub fn restart_job_control(); +} +extern "C" { + pub fn set_sigchld_handler(); +} +extern "C" { + pub fn ignore_tty_job_signals(); +} +extern "C" { + pub fn default_tty_job_signals(); +} +extern "C" { + pub fn get_original_tty_job_signals(); +} +extern "C" { + pub fn init_job_stats(); +} +extern "C" { + pub fn close_pgrp_pipe(); +} +extern "C" { + pub fn save_pgrp_pipe(arg1: *mut ::std::os::raw::c_int, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn restore_pgrp_pipe(arg1: *mut ::std::os::raw::c_int); +} +extern "C" { + pub fn set_maxchild(arg1: ::std::os::raw::c_int); +} +extern "C" { + #[link_name = "\u{1}job_control"] + pub static mut job_control: ::std::os::raw::c_int; +} +extern "C" { + pub fn file_status(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn executable_file(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn is_directory(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn executable_or_directory(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn find_user_command(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn find_in_path( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn find_path_file(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn search_for_command( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn user_command_matches( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn setup_exec_ignore(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + #[link_name = "\u{1}dot_found_in_search"] + pub static mut dot_found_in_search: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}check_hashed_filenames"] + pub static mut check_hashed_filenames: ::std::os::raw::c_int; +} +pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __jmp_buf_tag { + pub __jmpbuf: __jmp_buf, + pub __mask_was_saved: ::std::os::raw::c_int, + pub __saved_mask: __sigset_t, +} +pub type jmp_buf = [__jmp_buf_tag; 1usize]; +extern "C" { + pub fn setjmp(__env: *mut __jmp_buf_tag) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __sigsetjmp( + __env: *mut __jmp_buf_tag, + __savemask: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn _setjmp(__env: *mut __jmp_buf_tag) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn longjmp(__env: *mut __jmp_buf_tag, __val: ::std::os::raw::c_int); +} +extern "C" { + pub fn _longjmp(__env: *mut __jmp_buf_tag, __val: ::std::os::raw::c_int); +} +pub type sigjmp_buf = [__jmp_buf_tag; 1usize]; +extern "C" { + pub fn siglongjmp(__env: *mut __jmp_buf_tag, __val: ::std::os::raw::c_int); +} +extern "C" { + #[link_name = "\u{1}top_level"] + pub static mut top_level: sigjmp_buf; +} +extern "C" { + #[link_name = "\u{1}subshell_top_level"] + pub static mut subshell_top_level: sigjmp_buf; +} +extern "C" { + #[link_name = "\u{1}return_catch"] + pub static mut return_catch: sigjmp_buf; +} +extern "C" { + #[link_name = "\u{1}wait_intr_buf"] + pub static mut wait_intr_buf: sigjmp_buf; +} +extern "C" { + #[link_name = "\u{1}no_longjmp_on_fatal_error"] + pub static mut no_longjmp_on_fatal_error: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}sh_syntaxtab"] + pub static mut sh_syntaxtab: [::std::os::raw::c_int; 0usize]; +} +extern "C" { + #[link_name = "\u{1}sh_syntabsiz"] + pub static mut sh_syntabsiz: ::std::os::raw::c_int; +} +extern "C" { + pub fn get_name_for_error() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn file_error(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn programming_error(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn report_error(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn parser_error(arg1: ::std::os::raw::c_int, arg2: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn fatal_error(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn sys_error(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn internal_error(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn internal_warning(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn internal_inform(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn strescape(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn itrace(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn trace(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn command_error( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn command_errstr(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn err_badarraysub(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn err_unboundvar(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn err_readonly(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn uwp_init(); +} +extern "C" { + pub fn begin_unwind_frame(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn discard_unwind_frame(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn run_unwind_frame(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn add_unwind_protect(); +} +extern "C" { + pub fn remove_unwind_protect(); +} +extern "C" { + pub fn run_unwind_protects(); +} +extern "C" { + pub fn clear_unwind_protect_list(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn have_unwind_protects() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unwind_protect_tag_on_stack( + arg1: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unwind_protect_mem(arg1: *mut ::std::os::raw::c_char, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn dispose_command(arg1: *mut COMMAND); +} +extern "C" { + pub fn dispose_word_desc(arg1: *mut WORD_DESC); +} +extern "C" { + pub fn dispose_word(arg1: *mut WORD_DESC); +} +extern "C" { + pub fn dispose_words(arg1: *mut WORD_LIST); +} +extern "C" { + pub fn dispose_word_array(arg1: *mut *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn dispose_redirects(arg1: *mut REDIRECT); +} +extern "C" { + pub fn dispose_cond_node(arg1: *mut COND_COM); +} +extern "C" { + pub fn dispose_function_def_contents(arg1: *mut FUNCTION_DEF); +} +extern "C" { + pub fn dispose_function_def(arg1: *mut FUNCTION_DEF); +} +extern "C" { + #[link_name = "\u{1}here_doc_first_line"] + pub static mut here_doc_first_line: ::std::os::raw::c_int; +} +extern "C" { + pub fn cmd_init(); +} +extern "C" { + pub fn alloc_word_desc() -> *mut WORD_DESC; +} +extern "C" { + pub fn make_bare_word(arg1: *const ::std::os::raw::c_char) -> *mut WORD_DESC; +} +extern "C" { + pub fn make_word_flags( + arg1: *mut WORD_DESC, + arg2: *const ::std::os::raw::c_char, + ) -> *mut WORD_DESC; +} +extern "C" { + pub fn make_word(arg1: *const ::std::os::raw::c_char) -> *mut WORD_DESC; +} +extern "C" { + pub fn make_word_from_token(arg1: ::std::os::raw::c_int) -> *mut WORD_DESC; +} +extern "C" { + pub fn make_word_list(arg1: *mut WORD_DESC, arg2: *mut WORD_LIST) -> *mut WORD_LIST; +} +extern "C" { + pub fn make_command(arg1: command_type, arg2: *mut SIMPLE_COM) -> *mut COMMAND; +} +extern "C" { + pub fn command_connect( + arg1: *mut COMMAND, + arg2: *mut COMMAND, + arg3: ::std::os::raw::c_int, + ) -> *mut COMMAND; +} +extern "C" { + pub fn make_for_command( + arg1: *mut WORD_DESC, + arg2: *mut WORD_LIST, + arg3: *mut COMMAND, + arg4: ::std::os::raw::c_int, + ) -> *mut COMMAND; +} +extern "C" { + pub fn make_group_command(arg1: *mut COMMAND) -> *mut COMMAND; +} +extern "C" { + pub fn make_case_command( + arg1: *mut WORD_DESC, + arg2: *mut PATTERN_LIST, + arg3: ::std::os::raw::c_int, + ) -> *mut COMMAND; +} +extern "C" { + pub fn make_pattern_list(arg1: *mut WORD_LIST, arg2: *mut COMMAND) -> *mut PATTERN_LIST; +} +extern "C" { + pub fn make_if_command( + arg1: *mut COMMAND, + arg2: *mut COMMAND, + arg3: *mut COMMAND, + ) -> *mut COMMAND; +} +extern "C" { + pub fn make_while_command(arg1: *mut COMMAND, arg2: *mut COMMAND) -> *mut COMMAND; +} +extern "C" { + pub fn make_until_command(arg1: *mut COMMAND, arg2: *mut COMMAND) -> *mut COMMAND; +} +extern "C" { + pub fn make_bare_simple_command() -> *mut COMMAND; +} +extern "C" { + pub fn make_simple_command(arg1: ELEMENT, arg2: *mut COMMAND) -> *mut COMMAND; +} +extern "C" { + pub fn make_here_document(arg1: *mut REDIRECT, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn make_redirection( + arg1: REDIRECTEE, + arg2: r_instruction, + arg3: REDIRECTEE, + arg4: ::std::os::raw::c_int, + ) -> *mut REDIRECT; +} +extern "C" { + pub fn make_function_def( + arg1: *mut WORD_DESC, + arg2: *mut COMMAND, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ) -> *mut COMMAND; +} +extern "C" { + pub fn clean_simple_command(arg1: *mut COMMAND) -> *mut COMMAND; +} +extern "C" { + pub fn make_arith_command(arg1: *mut WORD_LIST) -> *mut COMMAND; +} +extern "C" { + pub fn make_select_command( + arg1: *mut WORD_DESC, + arg2: *mut WORD_LIST, + arg3: *mut COMMAND, + arg4: ::std::os::raw::c_int, + ) -> *mut COMMAND; +} +extern "C" { + pub fn make_cond_node( + arg1: ::std::os::raw::c_int, + arg2: *mut WORD_DESC, + arg3: *mut COND_COM, + arg4: *mut COND_COM, + ) -> *mut COND_COM; +} +extern "C" { + pub fn make_cond_command(arg1: *mut COND_COM) -> *mut COMMAND; +} +extern "C" { + pub fn make_arith_for_command( + arg1: *mut WORD_LIST, + arg2: *mut COMMAND, + arg3: ::std::os::raw::c_int, + ) -> *mut COMMAND; +} +extern "C" { + pub fn make_subshell_command(arg1: *mut COMMAND) -> *mut COMMAND; +} +extern "C" { + pub fn make_coproc_command( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut COMMAND, + ) -> *mut COMMAND; +} +extern "C" { + pub fn connect_async_list( + arg1: *mut COMMAND, + arg2: *mut COMMAND, + arg3: ::std::os::raw::c_int, + ) -> *mut COMMAND; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct objcache { + pub data: *mut ::std::os::raw::c_void, + pub cs: ::std::os::raw::c_int, + pub nc: ::std::os::raw::c_int, +} +pub type sh_obj_cache_t = objcache; +extern "C" { + #[link_name = "\u{1}EOF_Reached"] + pub static mut EOF_Reached: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}shell_environment"] + pub static mut shell_environment: *mut *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}command_execution_string"] + pub static mut command_execution_string: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}debugging_mode"] + pub static mut debugging_mode: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}executing"] + pub static mut executing: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}login_shell"] + pub static mut login_shell: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}interactive"] + pub static mut interactive: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}interactive_shell"] + pub static mut interactive_shell: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}startup_state"] + pub static mut startup_state: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}reading_shell_script"] + pub static mut reading_shell_script: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}shell_initialized"] + pub static mut shell_initialized: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}rpm_requires"] + pub static mut rpm_requires: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}bash_argv_initialized"] + pub static mut bash_argv_initialized: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}subshell_environment"] + pub static mut subshell_environment: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}current_command_number"] + pub static mut current_command_number: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}indirection_level"] + pub static mut indirection_level: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}shell_compatibility_level"] + pub static mut shell_compatibility_level: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}running_under_emacs"] + pub static mut running_under_emacs: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}posixly_correct"] + pub static mut posixly_correct: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}no_line_editing"] + pub static mut no_line_editing: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}shell_name"] + pub static mut shell_name: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}current_host_name"] + pub static mut current_host_name: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}subshell_argc"] + pub static mut subshell_argc: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}subshell_argv"] + pub static mut subshell_argv: *mut *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}subshell_envp"] + pub static mut subshell_envp: *mut *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}hup_on_exit"] + pub static mut hup_on_exit: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}check_jobs_at_exit"] + pub static mut check_jobs_at_exit: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}autocd"] + pub static mut autocd: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}check_window_size"] + pub static mut check_window_size: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}build_version"] + pub static mut build_version: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}patch_level"] + pub static mut patch_level: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}dist_version"] + pub static mut dist_version: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}release_status"] + pub static mut release_status: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}locale_mb_cur_max"] + pub static mut locale_mb_cur_max: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}locale_utf8locale"] + pub static mut locale_utf8locale: ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fd_bitmap { + pub size: ::std::os::raw::c_int, + pub bitmap: *mut ::std::os::raw::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct user_info { + pub uid: uid_t, + pub euid: uid_t, + pub gid: gid_t, + pub egid: gid_t, + pub user_name: *mut ::std::os::raw::c_char, + pub shell: *mut ::std::os::raw::c_char, + pub home_dir: *mut ::std::os::raw::c_char, +} +extern "C" { + #[link_name = "\u{1}current_user"] + pub static mut current_user: user_info; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _sh_parser_state_t { + pub parser_state: ::std::os::raw::c_int, + pub token_state: *mut ::std::os::raw::c_int, + pub token: *mut ::std::os::raw::c_char, + pub token_buffer_size: ::std::os::raw::c_int, + pub input_line_terminator: ::std::os::raw::c_int, + pub eof_encountered: ::std::os::raw::c_int, + pub prompt_string_pointer: *mut *mut ::std::os::raw::c_char, + pub current_command_line_count: ::std::os::raw::c_int, + pub remember_on_history: ::std::os::raw::c_int, + pub history_expansion_inhibited: ::std::os::raw::c_int, + pub last_command_exit_value: ::std::os::raw::c_int, + pub pipestatus: *mut ARRAY, + pub last_shell_builtin: sh_builtin_func_t, + pub this_shell_builtin: sh_builtin_func_t, + pub expand_aliases: ::std::os::raw::c_int, + pub echo_input_at_read: ::std::os::raw::c_int, + pub need_here_doc: ::std::os::raw::c_int, + pub here_doc_first_line: ::std::os::raw::c_int, + pub redir_stack: [*mut REDIRECT; 16usize], +} +pub type sh_parser_state_t = _sh_parser_state_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _sh_input_line_state_t { + pub input_line: *mut ::std::os::raw::c_char, + pub input_line_index: usize, + pub input_line_size: usize, + pub input_line_len: usize, + pub input_property: *mut ::std::os::raw::c_char, + pub input_propsize: usize, +} +pub type sh_input_line_state_t = _sh_input_line_state_t; +extern "C" { + pub fn parser_remaining_input() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn save_parser_state(arg1: *mut sh_parser_state_t) -> *mut sh_parser_state_t; +} +extern "C" { + pub fn restore_parser_state(arg1: *mut sh_parser_state_t); +} +extern "C" { + pub fn save_input_line_state(arg1: *mut sh_input_line_state_t) -> *mut sh_input_line_state_t; +} +extern "C" { + pub fn restore_input_line_state(arg1: *mut sh_input_line_state_t); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct func_array_state { + pub funcname_a: *mut ARRAY, + pub funcname_v: *mut SHELL_VAR, + pub source_a: *mut ARRAY, + pub source_v: *mut SHELL_VAR, + pub lineno_a: *mut ARRAY, + pub lineno_v: *mut SHELL_VAR, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct execstate { + pub pid: pid_t, + pub subshell_env: ::std::os::raw::c_int, +} +extern "C" { + #[link_name = "\u{1}return_catch_flag"] + pub static mut return_catch_flag: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}return_catch_value"] + pub static mut return_catch_value: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}last_command_exit_value"] + pub static mut last_command_exit_value: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}last_command_exit_signal"] + pub static mut last_command_exit_signal: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}builtin_ignoring_errexit"] + pub static mut builtin_ignoring_errexit: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}executing_builtin"] + pub static mut executing_builtin: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}executing_list"] + pub static mut executing_list: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}comsub_ignore_return"] + pub static mut comsub_ignore_return: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}subshell_level"] + pub static mut subshell_level: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}executing_command_builtin"] + pub static mut executing_command_builtin: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}funcnest"] + pub static mut funcnest: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}funcnest_max"] + pub static mut funcnest_max: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}evalnest"] + pub static mut evalnest: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}evalnest_max"] + pub static mut evalnest_max: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}sourcenest"] + pub static mut sourcenest: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}sourcenest_max"] + pub static mut sourcenest_max: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}stdin_redir"] + pub static mut stdin_redir: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}line_number_for_err_trap"] + pub static mut line_number_for_err_trap: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}the_printed_command_except_trap"] + pub static mut the_printed_command_except_trap: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}this_command_name"] + pub static mut this_command_name: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}this_shell_function"] + pub static mut this_shell_function: *mut SHELL_VAR; +} +extern "C" { + pub fn new_fd_bitmap(arg1: ::std::os::raw::c_int) -> *mut fd_bitmap; +} +extern "C" { + pub fn dispose_fd_bitmap(arg1: *mut fd_bitmap); +} +extern "C" { + pub fn close_fd_bitmap(arg1: *mut fd_bitmap); +} +extern "C" { + pub fn executing_line_number() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn execute_command(arg1: *mut COMMAND) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn execute_command_internal( + arg1: *mut COMMAND, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + arg5: *mut fd_bitmap, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn shell_execve( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + arg3: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setup_async_signals(); +} +extern "C" { + pub fn async_redirect_stdin(); +} +extern "C" { + pub fn undo_partial_redirects(); +} +extern "C" { + pub fn dispose_partial_redirects(); +} +extern "C" { + pub fn dispose_exec_redirects(); +} +extern "C" { + pub fn execute_shell_function( + arg1: *mut SHELL_VAR, + arg2: *mut WORD_LIST, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getcoprocbypid(arg1: pid_t) -> *mut coproc; +} +extern "C" { + pub fn getcoprocbyname(arg1: *const ::std::os::raw::c_char) -> *mut coproc; +} +extern "C" { + pub fn coproc_init(arg1: *mut coproc); +} +extern "C" { + pub fn coproc_alloc(arg1: *mut ::std::os::raw::c_char, arg2: pid_t) -> *mut coproc; +} +extern "C" { + pub fn coproc_dispose(arg1: *mut coproc); +} +extern "C" { + pub fn coproc_flush(); +} +extern "C" { + pub fn coproc_close(arg1: *mut coproc); +} +extern "C" { + pub fn coproc_closeall(); +} +extern "C" { + pub fn coproc_reap(); +} +extern "C" { + pub fn coproc_active() -> pid_t; +} +extern "C" { + pub fn coproc_rclose(arg1: *mut coproc, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn coproc_wclose(arg1: *mut coproc, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn coproc_fdclose(arg1: *mut coproc, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn coproc_checkfd(arg1: *mut coproc, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn coproc_fdchk(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn coproc_pidchk(arg1: pid_t, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn coproc_fdsave(arg1: *mut coproc); +} +extern "C" { + pub fn coproc_fdrestore(arg1: *mut coproc); +} +extern "C" { + pub fn coproc_setvars(arg1: *mut coproc); +} +extern "C" { + pub fn coproc_unsetvars(arg1: *mut coproc); +} +extern "C" { + pub fn close_all_files(); +} +extern "C" { + pub fn restore_funcarray_state(arg1: *mut func_array_state); +} +pub type sh_cget_func_t = ::core::option::Option ::std::os::raw::c_int>; +pub type sh_cunget_func_t = ::core::option::Option< + unsafe extern "C" fn(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int, +>; +pub const stream_type_st_none: stream_type = 0; +pub const stream_type_st_stdin: stream_type = 1; +pub const stream_type_st_stream: stream_type = 2; +pub const stream_type_st_string: stream_type = 3; +pub const stream_type_st_bstream: stream_type = 4; +pub type stream_type = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BSTREAM { + pub b_fd: ::std::os::raw::c_int, + pub b_buffer: *mut ::std::os::raw::c_char, + pub b_size: usize, + pub b_used: usize, + pub b_flag: ::std::os::raw::c_int, + pub b_inputp: usize, +} +pub type BUFFERED_STREAM = BSTREAM; +extern "C" { + #[link_name = "\u{1}default_buffered_input"] + pub static mut default_buffered_input: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}bash_input_fd_changed"] + pub static mut bash_input_fd_changed: ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union INPUT_STREAM { + pub file: *mut FILE, + pub string: *mut ::std::os::raw::c_char, + pub buffered_fd: ::std::os::raw::c_int, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct BASH_INPUT { + pub type_: stream_type, + pub name: *mut ::std::os::raw::c_char, + pub location: INPUT_STREAM, + pub getter: sh_cget_func_t, + pub ungetter: sh_cunget_func_t, +} +extern "C" { + #[link_name = "\u{1}bash_input"] + pub static mut bash_input: BASH_INPUT; +} +extern "C" { + pub fn initialize_bash_input(); +} +extern "C" { + pub fn init_yy_io( + arg1: sh_cget_func_t, + arg2: sh_cunget_func_t, + arg3: stream_type, + arg4: *const ::std::os::raw::c_char, + arg5: INPUT_STREAM, + ); +} +extern "C" { + pub fn yy_input_name() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn with_input_from_stdin(); +} +extern "C" { + pub fn with_input_from_string( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn with_input_from_stream(arg1: *mut FILE, arg2: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn push_stream(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn pop_stream(); +} +extern "C" { + pub fn stream_on_stack(arg1: stream_type) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn read_secondary_line(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn find_reserved_word(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn gather_here_documents(); +} +extern "C" { + pub fn execute_variable_command( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn save_token_state() -> *mut ::std::os::raw::c_int; +} +extern "C" { + pub fn restore_token_state(arg1: *mut ::std::os::raw::c_int); +} +extern "C" { + pub fn getc_with_restart(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ungetc_with_restart( + arg1: ::std::os::raw::c_int, + arg2: *mut FILE, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fd_is_bash_input(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_bash_input_fd(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn save_bash_input( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn check_bash_input(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn duplicate_buffered_stream( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fd_to_buffered_stream(arg1: ::std::os::raw::c_int) -> *mut BUFFERED_STREAM; +} +extern "C" { + pub fn set_buffered_stream( + arg1: ::std::os::raw::c_int, + arg2: *mut BUFFERED_STREAM, + ) -> *mut BUFFERED_STREAM; +} +extern "C" { + pub fn open_buffered_stream(arg1: *mut ::std::os::raw::c_char) -> *mut BUFFERED_STREAM; +} +extern "C" { + pub fn free_buffered_stream(arg1: *mut BUFFERED_STREAM); +} +extern "C" { + pub fn close_buffered_stream(arg1: *mut BUFFERED_STREAM) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn close_buffered_fd(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sync_buffered_stream(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn buffered_getchar() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn buffered_ungetchar(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn with_input_from_buffered_stream( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct builtin { + pub name: *mut ::std::os::raw::c_char, + pub function: sh_builtin_func_t, + pub flags: ::std::os::raw::c_int, + pub long_doc: *const *mut ::std::os::raw::c_char, + pub short_doc: *const ::std::os::raw::c_char, + pub handle: *mut ::std::os::raw::c_char, +} +extern "C" { + #[link_name = "\u{1}num_shell_builtins"] + pub static mut num_shell_builtins: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}static_shell_builtins"] + pub static mut static_shell_builtins: [builtin; 0usize]; +} +extern "C" { + #[link_name = "\u{1}shell_builtins"] + pub static mut shell_builtins: *mut builtin; +} +extern "C" { + #[link_name = "\u{1}current_builtin"] + pub static mut current_builtin: *mut builtin; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dstack { + pub delimiters: *mut ::std::os::raw::c_char, + pub delimiter_depth: ::std::os::raw::c_int, + pub delimiter_space: ::std::os::raw::c_int, +} +extern "C" { + #[link_name = "\u{1}dstack"] + pub static mut dstack: dstack; +} +extern "C" { + #[link_name = "\u{1}primary_prompt"] + pub static mut primary_prompt: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}secondary_prompt"] + pub static mut secondary_prompt: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}current_prompt_string"] + pub static mut current_prompt_string: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}ps1_prompt"] + pub static mut ps1_prompt: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}ps2_prompt"] + pub static mut ps2_prompt: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}ps0_prompt"] + pub static mut ps0_prompt: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}expand_aliases"] + pub static mut expand_aliases: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}current_command_line_count"] + pub static mut current_command_line_count: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}saved_command_line_count"] + pub static mut saved_command_line_count: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}shell_eof_token"] + pub static mut shell_eof_token: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}current_token"] + pub static mut current_token: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}parser_state"] + pub static mut parser_state: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}need_here_doc"] + pub static mut need_here_doc: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}ignoreeof"] + pub static mut ignoreeof: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}eof_encountered"] + pub static mut eof_encountered: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}eof_encountered_limit"] + pub static mut eof_encountered_limit: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}line_number"] + pub static mut line_number: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}line_number_base"] + pub static mut line_number_base: ::std::os::raw::c_int; +} +pub const yytokentype_IF: yytokentype = 258; +pub const yytokentype_THEN: yytokentype = 259; +pub const yytokentype_ELSE: yytokentype = 260; +pub const yytokentype_ELIF: yytokentype = 261; +pub const yytokentype_FI: yytokentype = 262; +pub const yytokentype_CASE: yytokentype = 263; +pub const yytokentype_ESAC: yytokentype = 264; +pub const yytokentype_FOR: yytokentype = 265; +pub const yytokentype_SELECT: yytokentype = 266; +pub const yytokentype_WHILE: yytokentype = 267; +pub const yytokentype_UNTIL: yytokentype = 268; +pub const yytokentype_DO: yytokentype = 269; +pub const yytokentype_DONE: yytokentype = 270; +pub const yytokentype_FUNCTION: yytokentype = 271; +pub const yytokentype_COPROC: yytokentype = 272; +pub const yytokentype_COND_START: yytokentype = 273; +pub const yytokentype_COND_END: yytokentype = 274; +pub const yytokentype_COND_ERROR: yytokentype = 275; +pub const yytokentype_IN: yytokentype = 276; +pub const yytokentype_BANG: yytokentype = 277; +pub const yytokentype_TIME: yytokentype = 278; +pub const yytokentype_TIMEOPT: yytokentype = 279; +pub const yytokentype_TIMEIGN: yytokentype = 280; +pub const yytokentype_WORD: yytokentype = 281; +pub const yytokentype_ASSIGNMENT_WORD: yytokentype = 282; +pub const yytokentype_REDIR_WORD: yytokentype = 283; +pub const yytokentype_NUMBER: yytokentype = 284; +pub const yytokentype_ARITH_CMD: yytokentype = 285; +pub const yytokentype_ARITH_FOR_EXPRS: yytokentype = 286; +pub const yytokentype_COND_CMD: yytokentype = 287; +pub const yytokentype_AND_AND: yytokentype = 288; +pub const yytokentype_OR_OR: yytokentype = 289; +pub const yytokentype_GREATER_GREATER: yytokentype = 290; +pub const yytokentype_LESS_LESS: yytokentype = 291; +pub const yytokentype_LESS_AND: yytokentype = 292; +pub const yytokentype_LESS_LESS_LESS: yytokentype = 293; +pub const yytokentype_GREATER_AND: yytokentype = 294; +pub const yytokentype_SEMI_SEMI: yytokentype = 295; +pub const yytokentype_SEMI_AND: yytokentype = 296; +pub const yytokentype_SEMI_SEMI_AND: yytokentype = 297; +pub const yytokentype_LESS_LESS_MINUS: yytokentype = 298; +pub const yytokentype_AND_GREATER: yytokentype = 299; +pub const yytokentype_AND_GREATER_GREATER: yytokentype = 300; +pub const yytokentype_LESS_GREATER: yytokentype = 301; +pub const yytokentype_GREATER_BAR: yytokentype = 302; +pub const yytokentype_BAR_AND: yytokentype = 303; +pub const yytokentype_yacc_EOF: yytokentype = 304; +pub type yytokentype = u32; +#[repr(C)] +#[derive(Copy, Clone)] +pub union YYSTYPE { + pub word: *mut WORD_DESC, + pub number: ::std::os::raw::c_int, + pub word_list: *mut WORD_LIST, + pub command: *mut COMMAND, + pub redirect: *mut REDIRECT, + pub element: ELEMENT, + pub pattern: *mut PATTERN_LIST, + _bindgen_union_align: [u64; 2usize], +} +extern "C" { + #[link_name = "\u{1}yylval"] + pub static mut yylval: YYSTYPE; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { + pub l_type: ::std::os::raw::c_short, + pub l_whence: ::std::os::raw::c_short, + pub l_start: __off_t, + pub l_len: __off_t, + pub l_pid: __pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { + pub l_type: ::std::os::raw::c_short, + pub l_whence: ::std::os::raw::c_short, + pub l_start: __off64_t, + pub l_len: __off64_t, + pub l_pid: __pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iovec { + pub iov_base: *mut ::std::os::raw::c_void, + pub iov_len: usize, +} +pub const __pid_type_F_OWNER_TID: __pid_type = 0; +pub const __pid_type_F_OWNER_PID: __pid_type = 1; +pub const __pid_type_F_OWNER_PGRP: __pid_type = 2; +pub const __pid_type_F_OWNER_GID: __pid_type = 2; +pub type __pid_type = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct f_owner_ex { + pub type_: __pid_type, + pub pid: __pid_t, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_handle { + pub handle_bytes: ::std::os::raw::c_uint, + pub handle_type: ::std::os::raw::c_int, + pub f_handle: __IncompleteArrayField<::std::os::raw::c_uchar>, +} +extern "C" { + pub fn readahead(__fd: ::std::os::raw::c_int, __offset: __off64_t, __count: usize) + -> __ssize_t; +} +extern "C" { + pub fn sync_file_range( + __fd: ::std::os::raw::c_int, + __offset: __off64_t, + __count: __off64_t, + __flags: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vmsplice( + __fdout: ::std::os::raw::c_int, + __iov: *const iovec, + __count: usize, + __flags: ::std::os::raw::c_uint, + ) -> __ssize_t; +} +extern "C" { + pub fn splice( + __fdin: ::std::os::raw::c_int, + __offin: *mut __off64_t, + __fdout: ::std::os::raw::c_int, + __offout: *mut __off64_t, + __len: usize, + __flags: ::std::os::raw::c_uint, + ) -> __ssize_t; +} +extern "C" { + pub fn tee( + __fdin: ::std::os::raw::c_int, + __fdout: ::std::os::raw::c_int, + __len: usize, + __flags: ::std::os::raw::c_uint, + ) -> __ssize_t; +} +extern "C" { + pub fn fallocate( + __fd: ::std::os::raw::c_int, + __mode: ::std::os::raw::c_int, + __offset: __off_t, + __len: __off_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fallocate64( + __fd: ::std::os::raw::c_int, + __mode: ::std::os::raw::c_int, + __offset: __off64_t, + __len: __off64_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn name_to_handle_at( + __dfd: ::std::os::raw::c_int, + __name: *const ::std::os::raw::c_char, + __handle: *mut file_handle, + __mnt_id: *mut ::std::os::raw::c_int, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn open_by_handle_at( + __mountdirfd: ::std::os::raw::c_int, + __handle: *mut file_handle, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct stat { + pub st_dev: __dev_t, + pub st_ino: __ino_t, + pub st_nlink: __nlink_t, + pub st_mode: __mode_t, + pub st_uid: __uid_t, + pub st_gid: __gid_t, + pub __pad0: ::std::os::raw::c_int, + pub st_rdev: __dev_t, + pub st_size: __off_t, + pub st_blksize: __blksize_t, + pub st_blocks: __blkcnt_t, + pub st_atim: timespec, + pub st_mtim: timespec, + pub st_ctim: timespec, + pub __glibc_reserved: [__syscall_slong_t; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct stat64 { + pub st_dev: __dev_t, + pub st_ino: __ino64_t, + pub st_nlink: __nlink_t, + pub st_mode: __mode_t, + pub st_uid: __uid_t, + pub st_gid: __gid_t, + pub __pad0: ::std::os::raw::c_int, + pub st_rdev: __dev_t, + pub st_size: __off_t, + pub st_blksize: __blksize_t, + pub st_blocks: __blkcnt64_t, + pub st_atim: timespec, + pub st_mtim: timespec, + pub st_ctim: timespec, + pub __glibc_reserved: [__syscall_slong_t; 3usize], +} +extern "C" { + pub fn fcntl( + __fd: ::std::os::raw::c_int, + __cmd: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fcntl64( + __fd: ::std::os::raw::c_int, + __cmd: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn open( + __file: *const ::std::os::raw::c_char, + __oflag: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn open64( + __file: *const ::std::os::raw::c_char, + __oflag: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn openat( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __oflag: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn openat64( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __oflag: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn creat(__file: *const ::std::os::raw::c_char, __mode: mode_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn creat64(__file: *const ::std::os::raw::c_char, __mode: mode_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn posix_fadvise( + __fd: ::std::os::raw::c_int, + __offset: off_t, + __len: off_t, + __advise: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn posix_fadvise64( + __fd: ::std::os::raw::c_int, + __offset: off64_t, + __len: off64_t, + __advise: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn posix_fallocate( + __fd: ::std::os::raw::c_int, + __offset: off_t, + __len: off_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn posix_fallocate64( + __fd: ::std::os::raw::c_int, + __offset: off64_t, + __len: off64_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn stat64( + __file: *const ::std::os::raw::c_char, + __buf: *mut stat64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fstat64(__fd: ::std::os::raw::c_int, __buf: *mut stat64) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fstatat( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __buf: *mut stat, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fstatat64( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __buf: *mut stat64, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lstat64( + __file: *const ::std::os::raw::c_char, + __buf: *mut stat64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fchmodat( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __mode: __mode_t, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn umask(__mask: __mode_t) -> __mode_t; +} +extern "C" { + pub fn getumask() -> __mode_t; +} +extern "C" { + pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkdirat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mknod( + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + __dev: __dev_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mknodat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + __dev: __dev_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkfifoat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn utimensat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __times: *const timespec, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __fxstat( + __ver: ::std::os::raw::c_int, + __fildes: ::std::os::raw::c_int, + __stat_buf: *mut stat, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __xstat( + __ver: ::std::os::raw::c_int, + __filename: *const ::std::os::raw::c_char, + __stat_buf: *mut stat, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __lxstat( + __ver: ::std::os::raw::c_int, + __filename: *const ::std::os::raw::c_char, + __stat_buf: *mut stat, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __fxstatat( + __ver: ::std::os::raw::c_int, + __fildes: ::std::os::raw::c_int, + __filename: *const ::std::os::raw::c_char, + __stat_buf: *mut stat, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __fxstat64( + __ver: ::std::os::raw::c_int, + __fildes: ::std::os::raw::c_int, + __stat_buf: *mut stat64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __xstat64( + __ver: ::std::os::raw::c_int, + __filename: *const ::std::os::raw::c_char, + __stat_buf: *mut stat64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __lxstat64( + __ver: ::std::os::raw::c_int, + __filename: *const ::std::os::raw::c_char, + __stat_buf: *mut stat64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __fxstatat64( + __ver: ::std::os::raw::c_int, + __fildes: ::std::os::raw::c_int, + __filename: *const ::std::os::raw::c_char, + __stat_buf: *mut stat64, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __xmknod( + __ver: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + __dev: *mut __dev_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __xmknodat( + __ver: ::std::os::raw::c_int, + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + __dev: *mut __dev_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct statx_timestamp { + pub tv_sec: __int64_t, + pub tv_nsec: __uint32_t, + pub __statx_timestamp_pad1: [__int32_t; 1usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct statx { + pub stx_mask: __uint32_t, + pub stx_blksize: __uint32_t, + pub stx_attributes: __uint64_t, + pub stx_nlink: __uint32_t, + pub stx_uid: __uint32_t, + pub stx_gid: __uint32_t, + pub stx_mode: __uint16_t, + pub __statx_pad1: [__uint16_t; 1usize], + pub stx_ino: __uint64_t, + pub stx_size: __uint64_t, + pub stx_blocks: __uint64_t, + pub stx_attributes_mask: __uint64_t, + pub stx_atime: statx_timestamp, + pub stx_btime: statx_timestamp, + pub stx_ctime: statx_timestamp, + pub stx_mtime: statx_timestamp, + pub stx_rdev_major: __uint32_t, + pub stx_rdev_minor: __uint32_t, + pub stx_dev_major: __uint32_t, + pub stx_dev_minor: __uint32_t, + pub __statx_pad2: [__uint64_t; 14usize], +} +extern "C" { + pub fn statx( + __dirfd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __flags: ::std::os::raw::c_int, + __mask: ::std::os::raw::c_uint, + __buf: *mut statx, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timex { + pub modes: ::std::os::raw::c_uint, + pub offset: __syscall_slong_t, + pub freq: __syscall_slong_t, + pub maxerror: __syscall_slong_t, + pub esterror: __syscall_slong_t, + pub status: ::std::os::raw::c_int, + pub constant: __syscall_slong_t, + pub precision: __syscall_slong_t, + pub tolerance: __syscall_slong_t, + pub time: timeval, + pub tick: __syscall_slong_t, + pub ppsfreq: __syscall_slong_t, + pub jitter: __syscall_slong_t, + pub shift: ::std::os::raw::c_int, + pub stabil: __syscall_slong_t, + pub jitcnt: __syscall_slong_t, + pub calcnt: __syscall_slong_t, + pub errcnt: __syscall_slong_t, + pub stbcnt: __syscall_slong_t, + pub tai: ::std::os::raw::c_int, + pub _bitfield_1: [i32;11], +} +// impl timex { +// #[inline] +// pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 44usize], u8> { +// let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 44usize], u8> = [0; 44]; +// // Default::default(); +// __bindgen_bitfield_unit +// } +// } +extern "C" { + pub fn clock_adjtime(__clock_id: __clockid_t, __utx: *mut timex) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tm { + pub tm_sec: ::std::os::raw::c_int, + pub tm_min: ::std::os::raw::c_int, + pub tm_hour: ::std::os::raw::c_int, + pub tm_mday: ::std::os::raw::c_int, + pub tm_mon: ::std::os::raw::c_int, + pub tm_year: ::std::os::raw::c_int, + pub tm_wday: ::std::os::raw::c_int, + pub tm_yday: ::std::os::raw::c_int, + pub tm_isdst: ::std::os::raw::c_int, + pub tm_gmtoff: ::std::os::raw::c_long, + pub tm_zone: *const ::std::os::raw::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { + pub it_interval: timespec, + pub it_value: timespec, +} +extern "C" { + pub fn clock() -> clock_t; +} +extern "C" { + pub fn time(__timer: *mut time_t) -> time_t; +} +extern "C" { + pub fn difftime(__time1: time_t, __time0: time_t) -> f64; +} +extern "C" { + pub fn mktime(__tp: *mut tm) -> time_t; +} +extern "C" { + pub fn strftime( + __s: *mut ::std::os::raw::c_char, + __maxsize: usize, + __format: *const ::std::os::raw::c_char, + __tp: *const tm, + ) -> usize; +} +extern "C" { + pub fn strptime( + __s: *const ::std::os::raw::c_char, + __fmt: *const ::std::os::raw::c_char, + __tp: *mut tm, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strftime_l( + __s: *mut ::std::os::raw::c_char, + __maxsize: usize, + __format: *const ::std::os::raw::c_char, + __tp: *const tm, + __loc: locale_t, + ) -> usize; +} +extern "C" { + pub fn strptime_l( + __s: *const ::std::os::raw::c_char, + __fmt: *const ::std::os::raw::c_char, + __tp: *mut tm, + __loc: locale_t, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn gmtime(__timer: *const time_t) -> *mut tm; +} +extern "C" { + pub fn localtime(__timer: *const time_t) -> *mut tm; +} +extern "C" { + pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; +} +extern "C" { + pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; +} +extern "C" { + pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn asctime_r( + __tp: *const tm, + __buf: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ctime_r( + __timer: *const time_t, + __buf: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}__tzname"] + pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; +} +extern "C" { + #[link_name = "\u{1}__daylight"] + pub static mut __daylight: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}__timezone"] + pub static mut __timezone: ::std::os::raw::c_long; +} +extern "C" { + #[link_name = "\u{1}tzname"] + pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; +} +extern "C" { + pub fn tzset(); +} +extern "C" { + #[link_name = "\u{1}daylight"] + pub static mut daylight: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}timezone"] + pub static mut timezone: ::std::os::raw::c_long; +} +extern "C" { + pub fn stime(__when: *const time_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn timegm(__tp: *mut tm) -> time_t; +} +extern "C" { + pub fn timelocal(__tp: *mut tm) -> time_t; +} +extern "C" { + pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn nanosleep( + __requested_time: *const timespec, + __remaining: *mut timespec, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clock_nanosleep( + __clock_id: clockid_t, + __flags: ::std::os::raw::c_int, + __req: *const timespec, + __rem: *mut timespec, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn timer_create( + __clock_id: clockid_t, + __evp: *mut sigevent, + __timerid: *mut timer_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn timer_settime( + __timerid: timer_t, + __flags: ::std::os::raw::c_int, + __value: *const itimerspec, + __ovalue: *mut itimerspec, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn timespec_get( + __ts: *mut timespec, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}getdate_err"] + pub static mut getdate_err: ::std::os::raw::c_int; +} +extern "C" { + pub fn getdate(__string: *const ::std::os::raw::c_char) -> *mut tm; +} +extern "C" { + pub fn getdate_r( + __string: *const ::std::os::raw::c_char, + __resbufp: *mut tm, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tms { + pub tms_utime: clock_t, + pub tms_stime: clock_t, + pub tms_cutime: clock_t, + pub tms_cstime: clock_t, +} +extern "C" { + pub fn times(__buffer: *mut tms) -> clock_t; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dirent { + pub d_ino: __ino_t, + pub d_off: __off_t, + pub d_reclen: ::std::os::raw::c_ushort, + pub d_type: ::std::os::raw::c_uchar, + pub d_name: [::std::os::raw::c_char; 256usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dirent64 { + pub d_ino: __ino64_t, + pub d_off: __off64_t, + pub d_reclen: ::std::os::raw::c_ushort, + pub d_type: ::std::os::raw::c_uchar, + pub d_name: [::std::os::raw::c_char; 256usize], +} +pub const DT_UNKNOWN: _bindgen_ty_17 = 0; +pub const DT_FIFO: _bindgen_ty_17 = 1; +pub const DT_CHR: _bindgen_ty_17 = 2; +pub const DT_DIR: _bindgen_ty_17 = 4; +pub const DT_BLK: _bindgen_ty_17 = 6; +pub const DT_REG: _bindgen_ty_17 = 8; +pub const DT_LNK: _bindgen_ty_17 = 10; +pub const DT_SOCK: _bindgen_ty_17 = 12; +pub const DT_WHT: _bindgen_ty_17 = 14; +pub type _bindgen_ty_17 = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __dirstream { + _unused: [u8; 0], +} +pub type DIR = __dirstream; +extern "C" { + pub fn opendir(__name: *const ::std::os::raw::c_char) -> *mut DIR; +} +extern "C" { + pub fn fdopendir(__fd: ::std::os::raw::c_int) -> *mut DIR; +} +extern "C" { + pub fn closedir(__dirp: *mut DIR) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn readdir(__dirp: *mut DIR) -> *mut dirent; +} +extern "C" { + pub fn readdir64(__dirp: *mut DIR) -> *mut dirent64; +} +extern "C" { + pub fn readdir_r( + __dirp: *mut DIR, + __entry: *mut dirent, + __result: *mut *mut dirent, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn readdir64_r( + __dirp: *mut DIR, + __entry: *mut dirent64, + __result: *mut *mut dirent64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn rewinddir(__dirp: *mut DIR); +} +extern "C" { + pub fn seekdir(__dirp: *mut DIR, __pos: ::std::os::raw::c_long); +} +extern "C" { + pub fn telldir(__dirp: *mut DIR) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn dirfd(__dirp: *mut DIR) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn scandir( + __dir: *const ::std::os::raw::c_char, + __namelist: *mut *mut *mut dirent, + __selector: ::core::option::Option< + unsafe extern "C" fn(arg1: *const dirent) -> ::std::os::raw::c_int, + >, + __cmp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut *const dirent, + arg2: *mut *const dirent, + ) -> ::std::os::raw::c_int, + >, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn scandir64( + __dir: *const ::std::os::raw::c_char, + __namelist: *mut *mut *mut dirent64, + __selector: ::core::option::Option< + unsafe extern "C" fn(arg1: *const dirent64) -> ::std::os::raw::c_int, + >, + __cmp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut *const dirent64, + arg2: *mut *const dirent64, + ) -> ::std::os::raw::c_int, + >, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn scandirat( + __dfd: ::std::os::raw::c_int, + __dir: *const ::std::os::raw::c_char, + __namelist: *mut *mut *mut dirent, + __selector: ::core::option::Option< + unsafe extern "C" fn(arg1: *const dirent) -> ::std::os::raw::c_int, + >, + __cmp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut *const dirent, + arg2: *mut *const dirent, + ) -> ::std::os::raw::c_int, + >, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn scandirat64( + __dfd: ::std::os::raw::c_int, + __dir: *const ::std::os::raw::c_char, + __namelist: *mut *mut *mut dirent64, + __selector: ::core::option::Option< + unsafe extern "C" fn(arg1: *const dirent64) -> ::std::os::raw::c_int, + >, + __cmp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut *const dirent64, + arg2: *mut *const dirent64, + ) -> ::std::os::raw::c_int, + >, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn alphasort(__e1: *mut *const dirent, __e2: *mut *const dirent) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn alphasort64( + __e1: *mut *const dirent64, + __e2: *mut *const dirent64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getdirentries( + __fd: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __nbytes: usize, + __basep: *mut __off_t, + ) -> __ssize_t; +} +extern "C" { + pub fn getdirentries64( + __fd: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_char, + __nbytes: usize, + __basep: *mut __off64_t, + ) -> __ssize_t; +} +extern "C" { + pub fn versionsort(__e1: *mut *const dirent, __e2: *mut *const dirent) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn versionsort64( + __e1: *mut *const dirent64, + __e2: *mut *const dirent64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}is_basic_table"] + pub static mut is_basic_table: [::std::os::raw::c_uint; 0usize]; +} +pub type cc_t = ::std::os::raw::c_uchar; +pub type speed_t = ::std::os::raw::c_uint; +pub type tcflag_t = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct termios { + pub c_iflag: tcflag_t, + pub c_oflag: tcflag_t, + pub c_cflag: tcflag_t, + pub c_lflag: tcflag_t, + pub c_line: cc_t, + pub c_cc: [cc_t; 32usize], + pub c_ispeed: speed_t, + pub c_ospeed: speed_t, +} +extern "C" { + pub fn cfgetospeed(__termios_p: *const termios) -> speed_t; +} +extern "C" { + pub fn cfgetispeed(__termios_p: *const termios) -> speed_t; +} +extern "C" { + pub fn cfsetospeed(__termios_p: *mut termios, __speed: speed_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cfsetispeed(__termios_p: *mut termios, __speed: speed_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cfsetspeed(__termios_p: *mut termios, __speed: speed_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tcgetattr( + __fd: ::std::os::raw::c_int, + __termios_p: *mut termios, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tcsetattr( + __fd: ::std::os::raw::c_int, + __optional_actions: ::std::os::raw::c_int, + __termios_p: *const termios, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cfmakeraw(__termios_p: *mut termios); +} +extern "C" { + pub fn tcsendbreak( + __fd: ::std::os::raw::c_int, + __duration: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tcdrain(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tcflush( + __fd: ::std::os::raw::c_int, + __queue_selector: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tcflow( + __fd: ::std::os::raw::c_int, + __action: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tcgetsid(__fd: ::std::os::raw::c_int) -> __pid_t; +} +extern "C" { + pub fn ttgetattr(arg1: ::std::os::raw::c_int, arg2: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttsetattr(arg1: ::std::os::raw::c_int, arg2: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttsave(); +} +extern "C" { + pub fn ttrestore(); +} +extern "C" { + pub fn ttattr(arg1: ::std::os::raw::c_int) -> *mut termios; +} +extern "C" { + pub fn tt_setonechar(arg1: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tt_setnoecho(arg1: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tt_seteightbit(arg1: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tt_setnocanon(arg1: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tt_setcbreak(arg1: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttfd_onechar(arg1: ::std::os::raw::c_int, arg2: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttfd_noecho(arg1: ::std::os::raw::c_int, arg2: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttfd_eightbit(arg1: ::std::os::raw::c_int, arg2: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttfd_nocanon(arg1: ::std::os::raw::c_int, arg2: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttfd_cbreak(arg1: ::std::os::raw::c_int, arg2: *mut termios) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttonechar() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttnoecho() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tteightbit() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttnocanon() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ttcbreak() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn xwcsrtombs( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut *const wchar_t, + arg3: usize, + arg4: *mut mbstate_t, + ) -> usize; +} +extern "C" { + pub fn xmbsrtowcs( + arg1: *mut wchar_t, + arg2: *mut *const ::std::os::raw::c_char, + arg3: usize, + arg4: *mut mbstate_t, + ) -> usize; +} +extern "C" { + pub fn xdupmbstowcs( + arg1: *mut *mut wchar_t, + arg2: *mut *mut *mut ::std::os::raw::c_char, + arg3: *const ::std::os::raw::c_char, + ) -> usize; +} +extern "C" { + pub fn xstrchr( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union wait { + pub w_status: ::std::os::raw::c_int, + pub w_T: wait__bindgen_ty_1, + pub w_S: wait__bindgen_ty_2, + _bindgen_union_align: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wait__bindgen_ty_1 { + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>, + pub __bindgen_align: [u16; 0usize], +} +impl wait__bindgen_ty_1 { + #[inline] + pub fn w_Termsig(&self) -> ::std::os::raw::c_ushort { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 7u8) as u16) } + } + #[inline] + pub fn set_w_Termsig(&mut self, val: ::std::os::raw::c_ushort) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 7u8, val as u64) + } + } + #[inline] + pub fn w_Coredump(&self) -> ::std::os::raw::c_ushort { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u16) } + } + #[inline] + pub fn set_w_Coredump(&mut self, val: ::std::os::raw::c_ushort) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn w_Retcode(&self) -> ::std::os::raw::c_ushort { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u16) } + } + #[inline] + pub fn set_w_Retcode(&mut self, val: ::std::os::raw::c_ushort) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 8u8, val as u64) + } + } + #[inline] + pub fn w_Fill1(&self) -> ::std::os::raw::c_ushort { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u16) } + } + #[inline] + pub fn set_w_Fill1(&mut self, val: ::std::os::raw::c_ushort) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + w_Termsig: ::std::os::raw::c_ushort, + w_Coredump: ::std::os::raw::c_ushort, + w_Retcode: ::std::os::raw::c_ushort, + w_Fill1: ::std::os::raw::c_ushort, + ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> = + Default::default(); + __bindgen_bitfield_unit.set(0usize, 7u8, { + let w_Termsig: u16 = unsafe { ::core::mem::transmute(w_Termsig) }; + w_Termsig as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let w_Coredump: u16 = unsafe { ::core::mem::transmute(w_Coredump) }; + w_Coredump as u64 + }); + __bindgen_bitfield_unit.set(8usize, 8u8, { + let w_Retcode: u16 = unsafe { ::core::mem::transmute(w_Retcode) }; + w_Retcode as u64 + }); + __bindgen_bitfield_unit.set(16usize, 16u8, { + let w_Fill1: u16 = unsafe { ::core::mem::transmute(w_Fill1) }; + w_Fill1 as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wait__bindgen_ty_2 { + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>, + pub __bindgen_align: [u16; 0usize], +} +impl wait__bindgen_ty_2 { + #[inline] + pub fn w_Stopval(&self) -> ::std::os::raw::c_ushort { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u16) } + } + #[inline] + pub fn set_w_Stopval(&mut self, val: ::std::os::raw::c_ushort) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub fn w_Stopsig(&self) -> ::std::os::raw::c_ushort { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u16) } + } + #[inline] + pub fn set_w_Stopsig(&mut self, val: ::std::os::raw::c_ushort) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 8u8, val as u64) + } + } + #[inline] + pub fn w_Fill2(&self) -> ::std::os::raw::c_ushort { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u16) } + } + #[inline] + pub fn set_w_Fill2(&mut self, val: ::std::os::raw::c_ushort) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + w_Stopval: ::std::os::raw::c_ushort, + w_Stopsig: ::std::os::raw::c_ushort, + w_Fill2: ::std::os::raw::c_ushort, + ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> = + Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let w_Stopval: u16 = unsafe { ::core::mem::transmute(w_Stopval) }; + w_Stopval as u64 + }); + __bindgen_bitfield_unit.set(8usize, 8u8, { + let w_Stopsig: u16 = unsafe { ::core::mem::transmute(w_Stopsig) }; + w_Stopsig as u64 + }); + __bindgen_bitfield_unit.set(16usize, 16u8, { + let w_Fill2: u16 = unsafe { ::core::mem::transmute(w_Fill2) }; + w_Fill2 as u64 + }); + __bindgen_bitfield_unit + } +} +extern "C" { + #[link_name = "\u{1}list_optarg"] + pub static mut list_optarg: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}list_optopt"] + pub static mut list_optopt: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}list_opttype"] + pub static mut list_opttype: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}lcurrent"] + pub static mut lcurrent: *mut WORD_LIST; +} +extern "C" { + #[link_name = "\u{1}loptend"] + pub static mut loptend: *mut WORD_LIST; +} +extern "C" { + pub fn internal_getopt( + arg1: *mut WORD_LIST, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn reset_internal_getopt(); +} +extern "C" { + #[link_name = "\u{1}sh_optarg"] + pub static mut sh_optarg: *mut ::std::os::raw::c_char; +} +extern "C" { + #[link_name = "\u{1}sh_optind"] + pub static mut sh_optind: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}sh_opterr"] + pub static mut sh_opterr: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}sh_optopt"] + pub static mut sh_optopt: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}sh_badopt"] + pub static mut sh_badopt: ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_getopt( + arg1: ::std::os::raw::c_int, + arg2: *const *mut ::std::os::raw::c_char, + arg3: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sh_getopt_state { + pub gs_optarg: *mut ::std::os::raw::c_char, + pub gs_optind: ::std::os::raw::c_int, + pub gs_curopt: ::std::os::raw::c_int, + pub gs_nextchar: *mut ::std::os::raw::c_char, + pub gs_charindex: ::std::os::raw::c_int, + pub gs_flags: ::std::os::raw::c_int, +} +pub type sh_getopt_state_t = sh_getopt_state; +extern "C" { + pub fn sh_getopt_restore_state(arg1: *mut *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_getopt_alloc_istate() -> *mut sh_getopt_state_t; +} +extern "C" { + pub fn sh_getopt_dispose_istate(arg1: *mut sh_getopt_state_t); +} +extern "C" { + pub fn sh_getopt_save_istate() -> *mut sh_getopt_state_t; +} +extern "C" { + pub fn sh_getopt_restore_istate(arg1: *mut sh_getopt_state_t); +} +extern "C" { + pub fn builtin_error(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn builtin_warning(arg1: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn builtin_usage(); +} +extern "C" { + pub fn no_args(arg1: *mut WORD_LIST); +} +extern "C" { + pub fn no_options(arg1: *mut WORD_LIST) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sh_needarg(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_neednumarg(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_notfound(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_invalidopt(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_invalidoptname(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_invalidid(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_invalidnum(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_invalidsig(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_erange(arg1: *mut ::std::os::raw::c_char, arg2: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_badpid(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_badjob(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_readonly(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_nojobs(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_restricted(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_notbuiltin(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn sh_wrerror(); +} +extern "C" { + pub fn sh_ttyerror(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn sh_chkwrite(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn make_builtin_argv( + arg1: *mut WORD_LIST, + arg2: *mut ::std::os::raw::c_int, + ) -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn remember_args(arg1: *mut WORD_LIST, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn shift_args(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn number_of_args() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dollar_vars_changed() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_dollar_vars_unchanged(); +} +extern "C" { + pub fn set_dollar_vars_changed(); +} +extern "C" { + pub fn get_numeric_arg( + arg1: *mut WORD_LIST, + arg2: ::std::os::raw::c_int, + arg3: *mut intmax_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn get_exitstat(arg1: *mut WORD_LIST) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn read_octal(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}the_current_working_directory"] + pub static mut the_current_working_directory: *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_working_directory(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn set_working_directory(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn get_job_by_name( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn get_job_spec(arg1: *mut WORD_LIST) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn display_signal_list( + arg1: *mut WORD_LIST, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn builtin_address_internal( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut builtin; +} +extern "C" { + pub fn find_shell_builtin(arg1: *mut ::std::os::raw::c_char) -> sh_builtin_func_t; +} +extern "C" { + pub fn builtin_address(arg1: *mut ::std::os::raw::c_char) -> sh_builtin_func_t; +} +extern "C" { + pub fn find_special_builtin(arg1: *mut ::std::os::raw::c_char) -> sh_builtin_func_t; +} +extern "C" { + pub fn initialize_shell_builtins(); +} +extern "C" { + pub fn bash_logout(); +} +extern "C" { + pub fn getopts_reset(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn builtin_help(); +} +extern "C" { + pub fn read_tty_cleanup(); +} +extern "C" { + pub fn read_tty_modified() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn minus_o_option_value(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn list_minus_o_opts(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn get_minus_o_opts() -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn set_minus_o_option( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_shellopts(); +} +extern "C" { + pub fn parse_shellopts(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn initialize_shell_options(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn reset_shell_options(); +} +extern "C" { + pub fn get_current_options() -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn set_current_options(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn reset_shopt_options(); +} +extern "C" { + pub fn get_shopt_options() -> *mut *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn shopt_setopt( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn shopt_listopt( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_login_shell( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_bashopts(); +} +extern "C" { + pub fn parse_bashopts(arg1: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn initialize_bashopts(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn set_compatibility_opts(); +} +extern "C" { + pub fn describe_command( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_or_show_attributes( + arg1: *mut WORD_LIST, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn show_all_var_attributes( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn show_local_var_attributes( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn show_var_attributes( + arg1: *mut SHELL_VAR, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn show_name_attributes( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn show_localname_attributes( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn show_func_attributes( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn set_var_attribute( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn var_attribute_string( + arg1: *mut SHELL_VAR, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn get_dirstack_from_string( + arg1: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_dirstack_element( + arg1: intmax_t, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn set_dirstack_element( + arg1: intmax_t, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn get_directory_stack(arg1: ::std::os::raw::c_int) -> *mut WORD_LIST; +} +extern "C" { + pub fn parse_and_execute( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn evalstring( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn parse_and_execute_cleanup(arg1: ::std::os::raw::c_int); +} +extern "C" { + pub fn parse_string( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn should_suppress_fork(arg1: *mut COMMAND) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn can_optimize_connection(arg1: *mut COMMAND) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn optimize_fork(arg1: *mut COMMAND); +} +extern "C" { + pub fn optimize_subshell_command(arg1: *mut COMMAND); +} +extern "C" { + pub fn optimize_shell_function(arg1: *mut COMMAND); +} +extern "C" { + pub fn maybe_execute_file( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn force_execute_file( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn source_file( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fc_execute_file(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}this_shell_builtin"] + pub static mut this_shell_builtin: sh_builtin_func_t; +} +extern "C" { + #[link_name = "\u{1}last_shell_builtin"] + pub static mut last_shell_builtin: sh_builtin_func_t; +} +extern "C" { + pub fn builtin_bind_variable( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut SHELL_VAR; +} +extern "C" { + pub fn builtin_unbind_variable(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}sourcelevel"] + pub static mut sourcelevel: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}parse_and_execute_level"] + pub static mut parse_and_execute_level: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}breaking"] + pub static mut breaking: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}continuing"] + pub static mut continuing: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}loop_level"] + pub static mut loop_level: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}sigalrm_seen"] + pub static mut sigalrm_seen: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}print_shift_error"] + pub static mut print_shift_error: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}source_searches_cwd"] + pub static mut source_searches_cwd: ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}source_uses_path"] + pub static mut source_uses_path: ::std::os::raw::c_int; +} +extern "C" { + pub fn test_unop(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn test_binop(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unary_test( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn binary_test( + arg1: *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + arg4: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn test_command( + arg1: ::std::os::raw::c_int, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +pub type __builtin_va_list = [__va_list_tag; 1usize]; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __va_list_tag { + pub gp_offset: ::std::os::raw::c_uint, + pub fp_offset: ::std::os::raw::c_uint, + pub overflow_arg_area: *mut ::std::os::raw::c_void, + pub reg_save_area: *mut ::std::os::raw::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __locale_data { + pub _address: u8, +} diff --git a/bash-5.1/vendor/stdext/.cargo-checksum.json b/bash-5.1/vendor/stdext/.cargo-checksum.json new file mode 100644 index 0000000000000000000000000000000000000000..c7a25fe727c5b94524a7a6a0fe89852c04e2efa2 --- /dev/null +++ b/bash-5.1/vendor/stdext/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"CHANGELOG.md":"25083d6f00a303ea6b34e65ca809ecd2cd7a5e5dfea94456a38d70b6d6833f74","CONTRIBUTING.md":"97e85621fe7efff96aa56aa192da23c89d711278d1fe8ff6c9c9d8cc1c8ec40a","Cargo.toml":"41242d887268b6fc6c76f28b9327a343f8770f1d44a2c95234c80248374619f3","LICENSE":"f5d516121794c24b7facaa236364eab0b639694e2d69f78ec2de5deccadcf9d3","README.md":"027c4918296fd85df8f9e4a5bab47e3444ee136a4018eaefa0c40bf16bb1a913","src/duration.rs":"9b66cdca0320bc0d9d27589f76badbb3295e8f10aa9637e68983a11894c0bce9","src/lib.rs":"1949754206e205b9d98b9515daa403c837448dcba8fa6164cee44ebd07316e5a","src/macros.rs":"fbe37d37d74abfd417b768f2b34383651b2bd47ad7f9096badb37aa17ea6181e","src/num/float_convert.rs":"0d9ff64a84836707861622c876dceae277c279c5633d372929d6db0f329f02aa","src/num/integer.rs":"366e80cffeb0de5e1524ce74e9452e76fba0d0c30688d215028edc4f6fb23c66","src/num/mod.rs":"b4c8297ab8556a8c9b30e79b1866fcc7194120415d042b1457908d894266e2f8","src/option.rs":"689a7f2975f1606809d5e266504b95c32891cc6e54eb822b38d80b25360fa99a","src/result.rs":"1ec5f7344794094faf80e5f8e8fe2a4c402e3f6848aae66131f0a3c78d800bd3","src/str.rs":"1141ff3c39df22a6a507453e4e3e4adc574fb74e636c422775e085b18ead048a","src/sync/mod.rs":"cb5591f32593f3f105dbbc1c4b4ca3093712650f30950f2f97aaeebb841489ec","src/sync/mutex.rs":"51de035e1723ecd27e3c9933d56275f144fe7d3837287780ceb481551f04153c","src/sync/rw_lock.rs":"be5f0b1816fb56fb1e28eceda08e4fa585f400a962896394e06ad61f746bbdce","src/vec.rs":"89e54411b6857e30d04ac278535477070641f53769210e66a5bc946051480259"},"package":"6f3b6b32ae82412fb897ef134867d53a294f57ba5b758f06d71e865352c3e207"} \ No newline at end of file diff --git a/bash-5.1/vendor/stdext/CHANGELOG.md b/bash-5.1/vendor/stdext/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..74ccc087c2acc9ce91e5b2d0ad978b6eba4f5fe6 --- /dev/null +++ b/bash-5.1/vendor/stdext/CHANGELOG.md @@ -0,0 +1,27 @@ +# `stdext` changelog + +## [[Unreleased]] + +## 0.3.0 (18.06.2021) + +- BREAKING: MSRV got bumped to 1.53. + +- `try_match` and `unwrap_match` macros to get a certain variant from an enum [#11]. +- `return_ok` and `return_some` macros for early return of successful calculation [#11]. +- `Integer` trait that unifies all the built-in integer types under a single interface [#12]. +- `FloatConvert` trait that adds an interface for converting floating point numbers into integers [#12]. + +[#11]: https://github.com/popzxc/stdext-rs/pull/11 +[#12]: https://github.com/popzxc/stdext-rs/pull/12 + +## 0.2.1 (09.07.2020) + +- `VecExt::remove_item` method was added [#9]. + +[#9]: https://github.com/popzxc/stdext-rs/pull/9 + +## 0.2.0 (02.07.2020) + +- `compile_warning` and `function_name` macros were added [#4]. + +[#4]: https://github.com/popzxc/stdext-rs/pull/4 diff --git a/bash-5.1/vendor/stdext/CONTRIBUTING.md b/bash-5.1/vendor/stdext/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..5d571e2c790c35392c454f29e03ca1e3764d7919 --- /dev/null +++ b/bash-5.1/vendor/stdext/CONTRIBUTING.md @@ -0,0 +1,29 @@ +# Contributing guide + +Thanks for considering contributing to the `stdext`! Here's a banana for you: 🍌 + +If you are missing some functionality in the Rust standard library, but don't want +to bother yourself with all the associated routines (writing RFC, defending it, implementing, +waiting for it to be stabilized...), feel free to create a pull request to this repo. + +## Adding new functionality + +The ideal pull request will satisfy the following criteria: + +- Does not contain any hate (any form of discrimination, politics, offence, etc). +- Has an explanation why this functionality is useful for a generic audience. +- Covers the introduced code with tests and documentation. +- Does not rely on external dependencies (for any kind of complex functionality consider creating your + own library, this crate is for minor improvements only). + +All the rules (except for the first one) are discussible if you can provide a heavy reasoning for it. + +## Requesting the functionality + +If you don't want to implement the feature, but still feel that is missing in `std`, feel free to open +a feature request issue. I'll try to implement it myself once I have the time. + +## Other contributions + +Refactoring, improving documentation, adding tests and other kinds of improvements are really appreciated +as well. diff --git a/bash-5.1/vendor/stdext/Cargo.toml b/bash-5.1/vendor/stdext/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..939fcae9b16f5e3043cacb799dbe07e14ec2c779 --- /dev/null +++ b/bash-5.1/vendor/stdext/Cargo.toml @@ -0,0 +1,26 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies +# +# If you believe there's an error in this file please file an +# issue against the rust-lang/cargo repository. If you're +# editing this file be aware that the upstream Cargo.toml +# will likely look very different (and much more reasonable) + +[package] +edition = "2018" +name = "stdext" +version = "0.3.1" +authors = ["Igor Aleksanov "] +description = "Extensions for the Rust standard library structures." +documentation = "https://docs.rs/stdext" +readme = "README.md" +keywords = ["std", "extensions", "helpers", "utils"] +categories = ["rust-patterns"] +license = "MIT" +repository = "https://github.com/popzxc/stdext-rs" + +[dependencies] diff --git a/bash-5.1/vendor/stdext/LICENSE b/bash-5.1/vendor/stdext/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..15fab14bbbb85d5ff81c1a9414efbbaa43feb08f --- /dev/null +++ b/bash-5.1/vendor/stdext/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2020 Igor Aleksanov + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/bash-5.1/vendor/stdext/README.md b/bash-5.1/vendor/stdext/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8616b85d08eece7ba7b00be21fa56252f6867dbf --- /dev/null +++ b/bash-5.1/vendor/stdext/README.md @@ -0,0 +1,129 @@ +# `std` extensions + +**Status:** +[![CI](https://github.com/popzxc/stdext-rs/workflows/CI/badge.svg)](https://github.com/popzxc/stdext-rs/actions) + +**Project info:** +[![Docs.rs](https://docs.rs/stdext/badge.svg)](https://docs.rs/stdext) +[![Latest Version](https://img.shields.io/crates/v/stdext.svg)](https://crates.io/crates/stdext) +[![License](https://img.shields.io/github/license/popzxc/stdext-rs.svg)](https://github.com/popzxc/stdext-rs) +![Rust 1.53+ required](https://img.shields.io/badge/rust-1.53+-blue.svg?label=Rust) + +Additional features for the Rust standard library. + +## Description + +This crate contains enhancements to the Rust standard library structures, useful for +broad audience, but not yet implemented (or stabilized) in `std`. + +Crate is designed to be lightweight (no external dependencies!) and provide essential +functionality which possible can get to the `std` some day. + +The minimal supported Rust version for release 0.3 is 1.53. However, if you need to use +this crate with an older version of the compiler, check out release 0.2; there is a good +chance that it will suit your needs. + +## Highlights + +- `Integer` super-trait that is implemented for all the built-in integers + and reflects the common part of their interfaces. + + ```rust + use stdext::prelude::*; + + fn accepts_any_integer(a: I, b: I) { + println!("{}", (a + b).count_ones()); + } + ``` + +- Safe conversions from floating numbers to integers. + + ```rust + use stdext::prelude::FloatConvert; + + let valid: Option = 10.5f32.checked_floor(); + let too_big: Option = 256f32.checked_floor(); + let nan: Option = f32::NAN.checked_floor(); + + assert_eq!(valid, Some(10u8)); + assert_eq!(too_big, None); + assert_eq!(nan, None); + ``` + +- Convenient builder methods for **`Duration`**: + + ```rust + use std::time::Duration; + use stdext::prelude::*; + + let duration = Duration::from_minutes(1).add_secs(5).add_micros(100); + assert_eq!(duration, Duration::new(65, 100_000)); + ``` + +- Panicking version for **`RwLock::read`**, **`RwLock::write`** and **`Mutex::lock`** (for + fellows who don't really handle the lock poisoning): + + ```rust + use std::sync::{Arc, RwLock}; + use stdext::prelude::*; + + let lock = Arc::new(RwLock::new(1)); + { + let mut n = lock.force_write(); // Instead of `.write().unwrap()`. + *n = 2; + } + let n = lock.force_read(); + assert_eq!(*n, 2); + ``` + +- **`Result::combine`** and **`Option::combine`** to zip pairs of objects: + + ```rust + use stdext::prelude::*; + + let x = Some(1); + let y = Some("hi"); + let z = None::; + + assert_eq!(x.combine(y), Some((1, "hi"))); + assert_eq!(x.combine(z), None); + + let x = Ok(1); + let y = Ok("hi"); + let z: Result = Err("error"); + let z2: Result = Err("other_error"); + + assert_eq!(x.combine(y), Ok((1, "hi"))); + assert_eq!(x.combine(z), Err("error")); + assert_eq!(z.combine(z2), Err("error")); + ``` + +- New handy macros (mostly for development purposes): + + ```rust + use stdext::{compile_warning, function_name}; + + fn sample_function() { + println!("This function is called {}", function_name!()); + + compile_warning!("This function must do something else..."); + } + ``` + +...and other features. For a full list, check out the [crate documentation](https://docs.rs/stdext/). + +## Motivation + +Standard library is great, and it becomes even better through time. However, a time gap between proposing +a new feature and getting it stabilized is way too big. + +This crate, however, can be updated quickly and the feature will be usable on the stable Rust soon after +implementation. + +## Contributing + +If you want to contribute to this project, please read the [contributing guide](CONTRIBUTING.md). + +## LICENSE + +`stdext` library is licensed under the MIT License. See [LICENSE](LICENSE) for details. diff --git a/bash-5.1/vendor/stdext/src/duration.rs b/bash-5.1/vendor/stdext/src/duration.rs new file mode 100644 index 0000000000000000000000000000000000000000..5d3782de4db40232de88491a31b4a73345dc0185 --- /dev/null +++ b/bash-5.1/vendor/stdext/src/duration.rs @@ -0,0 +1,326 @@ +//! Extension traits for `std::time::Duration`. + +use std::time::Duration; + +const SECS_IN_MIN: u64 = 60; +const SECS_IN_HOUR: u64 = 3600; +const SECS_IN_DAY: u64 = 3600 * 24; + +/// Extension trait with useful methods for [`std::time::Duration`]. +/// +/// [`std::time::Duration`]: https://doc.rust-lang.org/std/time/struct.Duration.html +pub trait DurationExt { + /// Creates a new `Duration` from the specified number of minutes. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::from_minutes(1); + /// + /// assert_eq!(duration, Duration::from_secs(60)); + /// ``` + /// + /// # Panics + /// + /// Panics if the total amount of seconds exceeds the `u64` type range. + fn from_minutes(minutes: u64) -> Duration; + + /// Creates a new `Duration` from the specified number of hours. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::from_hours(1); + /// + /// assert_eq!(duration, Duration::from_secs(3600)); + /// ``` + /// + /// # Panics + /// + /// Panics if the total amount of seconds exceeds the `u64` type range. + fn from_hours(hours: u64) -> Duration; + + /// Creates a new `Duration` from the specified number of hours. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::from_days(1); + /// + /// assert_eq!(duration, Duration::from_secs(3600 * 24)); + /// ``` + /// + /// # Panics + /// + /// Panics if the total amount of seconds exceeds the `u64` type range. + fn from_days(days: u64) -> Duration; + + /// Adds the specified amount of nanoseconds to the `Duration` object. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::default().add_nanos(1); + /// + /// assert_eq!(duration, Duration::default() + Duration::from_nanos(1)); + /// ``` + fn add_nanos(self, nanos: u64) -> Duration; + + /// Adds the specified amount of microseconds to the `Duration` object. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::default().add_micros(1); + /// + /// assert_eq!(duration, Duration::default() + Duration::from_micros(1)); + /// ``` + fn add_micros(self, micros: u64) -> Duration; + + /// Adds the specified amount of milliseconds to the `Duration` object. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::default().add_millis(1); + /// + /// assert_eq!(duration, Duration::default() + Duration::from_millis(1)); + /// ``` + fn add_millis(self, millis: u64) -> Duration; + + /// Adds the specified amount of seconds to the `Duration` object. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::default().add_secs(1); + /// + /// assert_eq!(duration, Duration::default() + Duration::from_secs(1)); + /// ``` + fn add_secs(self, seconds: u64) -> Duration; + + /// Adds the specified amount of minutes to the `Duration` object. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::default().add_minutes(1); + /// + /// assert_eq!(duration, Duration::default() + Duration::from_minutes(1)); + /// ``` + fn add_minutes(self, minutes: u64) -> Duration; + + /// Adds the specified amount of hours to the `Duration` object. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::default().add_hours(1); + /// + /// assert_eq!(duration, Duration::default() + Duration::from_hours(1)); + /// ``` + fn add_hours(self, hours: u64) -> Duration; + + /// Adds the specified amount of days to the `Duration` object. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::default().add_days(1); + /// + /// assert_eq!(duration, Duration::default() + Duration::from_days(1)); + /// ``` + fn add_days(self, days: u64) -> Duration; + + /// Returns the number of _whole_ minutes contained by this `Duration`. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::new(61, 730023852); + /// assert_eq!(duration.as_minutes(), 1); + /// ``` + fn as_minutes(&self) -> u64; + + /// Returns the number of _whole_ hours contained by this `Duration`. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::new(3601, 730023852); + /// assert_eq!(duration.as_hours(), 1); + /// ``` + fn as_hours(&self) -> u64; + + /// Returns the number of _whole_ hours contained by this `Duration`. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// use stdext::prelude::*; + /// + /// let duration = Duration::new(61, 730023852).add_days(1); + /// assert_eq!(duration.as_days(), 1); + /// ``` + fn as_days(&self) -> u64; +} + +impl DurationExt for Duration { + fn from_minutes(minutes: u64) -> Self { + let seconds = minutes * SECS_IN_MIN; + Self::from_secs(seconds) + } + + fn from_hours(hours: u64) -> Self { + let seconds: u64 = hours * SECS_IN_HOUR; + Self::from_secs(seconds) + } + + fn from_days(days: u64) -> Self { + let seconds = days * SECS_IN_DAY; + Self::from_secs(seconds) + } + + fn add_nanos(self, nanos: u64) -> Self { + self + Self::from_nanos(nanos) + } + + fn add_micros(self, micros: u64) -> Self { + self + Self::from_micros(micros) + } + + fn add_millis(self, millis: u64) -> Self { + self + Self::from_millis(millis) + } + + fn add_secs(self, seconds: u64) -> Self { + self + Self::from_secs(seconds) + } + + fn add_minutes(self, minutes: u64) -> Self { + self + Self::from_minutes(minutes) + } + + fn add_hours(self, hours: u64) -> Self { + self + Self::from_hours(hours) + } + + fn add_days(self, days: u64) -> Self { + self + Self::from_days(days) + } + + fn as_minutes(&self) -> u64 { + self.as_secs() / SECS_IN_MIN + } + + fn as_hours(&self) -> u64 { + self.as_secs() / SECS_IN_HOUR + } + + fn as_days(&self) -> u64 { + self.as_secs() / SECS_IN_DAY + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn from_methods() { + // Check `from_minutes` + let test_vector = vec![0, 1, u64::max_value() / SECS_IN_MIN]; + for minutes in test_vector { + let seconds = minutes * SECS_IN_MIN; + assert_eq!( + Duration::from_minutes(minutes), + Duration::from_secs(seconds) + ); + } + + // Check `from_hours` + let test_vector = vec![0, 1, u64::max_value() / SECS_IN_HOUR]; + for hours in test_vector { + let seconds = hours * SECS_IN_HOUR; + assert_eq!(Duration::from_hours(hours), Duration::from_secs(seconds)); + } + + // Check `from_days` + let test_vector = vec![0, 1, u64::max_value() / SECS_IN_DAY]; + for days in test_vector { + let seconds = days * SECS_IN_DAY; + assert_eq!(Duration::from_days(days), Duration::from_secs(seconds)); + } + } + + #[test] + fn add_methods() { + let duration = Duration::default() + .add_nanos(1) + .add_micros(1) + .add_millis(1) + .add_secs(1) + .add_minutes(1) + .add_hours(1) + .add_days(1); + + let expected_duration = Duration::new( + SECS_IN_DAY + SECS_IN_HOUR + SECS_IN_MIN + 1, + 1_000_000 + 1_000 + 1, + ); + + assert_eq!(duration, expected_duration); + } + + #[test] + fn as_methods() { + let test_vector = vec![0, SECS_IN_MIN, SECS_IN_HOUR, SECS_IN_DAY]; + + for seconds in test_vector { + for seconds in &[seconds, seconds + 1, seconds * 2, seconds * 2 + 1] { + let duration = Duration::from_secs(*seconds); + + assert_eq!(duration.as_minutes(), duration.as_secs() / SECS_IN_MIN); + assert_eq!(duration.as_hours(), duration.as_secs() / SECS_IN_HOUR); + assert_eq!(duration.as_days(), duration.as_secs() / SECS_IN_DAY); + } + } + } +} diff --git a/bash-5.1/vendor/stdext/src/lib.rs b/bash-5.1/vendor/stdext/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..12f8619b85a8598a086952cfaf661d1bb69c044b --- /dev/null +++ b/bash-5.1/vendor/stdext/src/lib.rs @@ -0,0 +1,150 @@ +//! Additional features for the Rust standard library. +//! +//! ## Description +//! +//! This crate contains enhancements to the Rust standard library types, useful for +//! broad audience, but not yet implemented (or stabilized) in `std`. +//! +//! Crate is designed to be lightweight (no external dependencies!) and provide essential +//! functionality which possible can get to the `std` some day. +//! +//! ## Extension traits +//! +//! All the new functionality the stanard library is added using extension traits. +//! +//! Below you can find the table of all the extension traits introduced by this crate: +//! +//! | `std` structure | extension traits +//! | --- | --- +//! | [`Vec`] | [`VecExt`] and [`VecExtClone`] +//! | [`&str`] | [`StrExt`] +//! | [`Option`] | [`OptionExt`] +//! | [`Result`] | [`ResultExt`] +//! | [`Duration`] | [`DurationExt`] +//! | [`RwLock`] | [`RwLockExt`] +//! | [`Mutex`] | [`MutexExt`] +//! | [`f32`] and [`f64`] | [`FloatConvert`] +//! +//! [`Vec`]: https://doc.rust-lang.org/std/vec/struct.Vec.html +//! [`&str`]: https://doc.rust-lang.org/std/primitive.str.html +//! [`Option`]: https://doc.rust-lang.org/std/option/enum.Option.html +//! [`Result`]: https://doc.rust-lang.org/std/result/enum.Result.html +//! [`Duration`]: https://doc.rust-lang.org/std/time/struct.Duration.html +//! [`RwLock`]: https://doc.rust-lang.org/std/sync/struct.RwLock.html +//! [`Mutex`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html +//! +//! [`VecExt`]: vec/trait.VecExt.html +//! [`VecExtClone`]: vec/trait.VecExtClone.html +//! [`StrExt`]: str/trait.StrExt.html +//! [`OptionExt`]: option/trait.OptionExt.html +//! [`ResultExt`]: result/trait.ResultExt.html +//! [`DurationExt`]: duration/trait.DurationExt.html +//! [`RwLockExt`]: sync/rw_lock/trait.RwLockExt.html +//! [`MutexExt`]: sync/mutex/trait.MutexExt.html +//! [`FloatConvert`]: num/float_convert/trait.FloatConvert.html +//! +//! ## Integer super-trait +//! +//! While all built-in integer types have mostly the same interface, it's not backed by any trait, +//! which makes it impossible to write a function that will accept any built-in integer. +//! +//! [`Integer`] trait solves that problem by reflecting the common interface of all the built-in integers. +//! +//! [`Integer`]: num/integer/trait.Integer.html +//! +//! ## Macros +//! +//! Another group of extensions in `stdext` is new macros: +//! +//! - [`compile_warning`] for spawning a user-defined compilation warnings. +//! - [`function_name`] for getting an enclosing function name. +//! +//! [`compile_warning`]: ./macro.compile_warning.html +//! [`function_name`]: ./macro.function_name.html +//! +//! ## Highlights +//! +//! - Convenient builder methods for **`Duration`**: +//! +//! ```rust +//! use std::time::Duration; +//! use stdext::prelude::*; +//! +//! let duration = Duration::from_minutes(1).add_secs(5).add_micros(100); +//! assert_eq!(duration, Duration::new(65, 100_000)); +//! ``` +//! +//! - Panicking version for **`RwLock::read`**, **`RwLock::write`** and **`Mutex::lock`** (for +//! fellows who don't really handle the lock poisoning): +//! +//! ```rust +//! use std::sync::{Arc, RwLock}; +//! use stdext::prelude::*; +//! +//! let lock = Arc::new(RwLock::new(1)); +//! { +//! let mut n = lock.force_write(); // Instead of `.write().unwrap()`. +//! *n = 2; +//! } +//! let n = lock.force_read(); +//! assert_eq!(*n, 2); +//! ``` +//! +//! - **`Result::combine`** and **`Option::combine`** to zip pairs of objects: +//! +//! ```rust +//! use stdext::prelude::*; +//! +//! let x = Some(1); +//! let y = Some("hi"); +//! let z = None::; +//! +//! assert_eq!(x.combine(y), Some((1, "hi"))); +//! assert_eq!(x.combine(z), None); +//! +//! let x = Ok(1); +//! let y = Ok("hi"); +//! let z: Result = Err("error"); +//! let z2: Result = Err("other_error"); +//! +//! assert_eq!(x.combine(y), Ok((1, "hi"))); +//! assert_eq!(x.combine(z), Err("error")); +//! assert_eq!(z.combine(z2), Err("error")); +//! ``` +//! +//! - New handy macros (mostly for development purposes): +//! +//! ```rust +//! use stdext::{compile_warning, function_name}; +//! +//! fn sample_function() { +//! println!("This function is called {}", function_name!()); +//! +//! compile_warning!("This function must do something else..."); +//! } +//! ``` + +#![warn(missing_docs, unreachable_pub)] + +pub mod duration; +#[macro_use] +pub mod macros; +pub mod num; +pub mod option; +pub mod result; +pub mod str; +pub mod sync; +pub mod vec; + +/// A "prelude" module which re-exports all the extension traits for the simple library usage. +pub mod prelude { + pub use crate::{ + duration::*, + num::{float_convert::*, integer::*}, + option::*, + result::*, + str::*, + sync::{mutex::*, rw_lock::*}, + vec::*, + }; +} diff --git a/bash-5.1/vendor/stdext/src/macros.rs b/bash-5.1/vendor/stdext/src/macros.rs new file mode 100644 index 0000000000000000000000000000000000000000..1202a0aa0c1c7e9b85e836c578c2812a5b4dbabe --- /dev/null +++ b/bash-5.1/vendor/stdext/src/macros.rs @@ -0,0 +1,233 @@ +//! Various helper macros. + +/// `compile_warning` macro is a brother of [`std::compile_error`], +/// which emits a compile-time warning with a provided message. +/// +/// This implemented through an existing `dead_code` warning, thus the +/// output for the following example: +/// +/// ```rust +/// # use stdext::compile_warning; +/// compile_warning!("Sample user-defined warning!"); +/// ``` +/// +/// may look as follows: +/// +/// ```text +/// warning: constant item is never used: `WARNING` +/// --> src/lib.rs:7:9 +/// | +/// 7 | const WARNING: &str = $expr; +/// | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +/// ... +/// 11 | compile_warning!("Sample user-defined warning!"); +/// | ------------------------------------------------- in this macro invocation +/// ``` +/// +/// Once [`proc_macro_diagnostics`] feature is stabilized, this macro will be replaced +/// with a proper proc-macro-based implementation. +/// +/// This macro is intended to be used in the development process, as an alternative to the +/// [`unimplemented`] macro which doesn't cause code to panic. +/// +/// [`std::compile_error`]: https://doc.rust-lang.org/std/macro.compile_error.html +/// [`proc_macro_diagnostics`]: https://github.com/rust-lang/rust/issues/54140 +/// [`unimplemented`]: https://doc.rust-lang.org/std/macro.unimplemented.html +#[macro_export] +macro_rules! compile_warning { + ($expr:expr) => { + #[warn(dead_code)] + const WARNING: &str = $expr; + }; +} + +/// This macro returns the name of the enclosing function. +/// As the internal implementation is based on the [`std::any::type_name`], this macro derives +/// all the limitations of this function. +/// +/// ## Examples +/// +/// ```rust +/// mod bar { +/// pub fn sample_function() { +/// use stdext::function_name; +/// assert!(function_name!().ends_with("bar::sample_function")); +/// } +/// } +/// +/// bar::sample_function(); +/// ``` +/// +/// [`std::any::type_name`]: https://doc.rust-lang.org/std/any/fn.type_name.html +#[macro_export] +macro_rules! function_name { + () => {{ + // Okay, this is ugly, I get it. However, this is the best we can get on a stable rust. + fn f() {} + fn type_name_of(_: T) -> &'static str { + std::any::type_name::() + } + let name = type_name_of(f); + // `3` is the length of the `::f`. + &name[..name.len() - 3] + }}; +} + +/// Attempts to get variant from the enum variable. +/// +/// ## Examples +/// +/// ```rust +/// # use stdext::try_match; +/// +/// #[derive(Debug, PartialEq)] +/// enum Foo { +/// Left(u16), +/// Right(&'static str), +/// } +/// +/// assert_eq!(try_match!(Foo::Left(18), Foo::Left), Ok(18)); +/// assert_eq!( +/// try_match!(Foo::Right("nope"), Foo::Left), +/// Err(Foo::Right("nope")) +/// ); +/// ``` +#[macro_export] +macro_rules! try_match { + ($var:expr, $variant:path) => { + if let $variant(x) = $var { + Ok(x) + } else { + Err($var) + } + }; +} + +/// Similar to [`try_match`] but additionally unwraps the result. +/// +/// ## Panics +/// +/// Panics if expression didn't match the provided path. +/// +/// ## Examples +/// +/// ```rust +/// # use stdext::unwrap_match; +/// +/// #[derive(Debug, PartialEq)] +/// enum Foo { +/// Left(u16), +/// Right(&'static str), +/// } +/// +/// assert_eq!(unwrap_match!(Foo::Left(18), Foo::Left), 18); +/// ``` +/// +/// The following example will panic: +/// +/// ```should_panic +/// # use stdext::unwrap_match; +/// # #[derive(Debug, PartialEq)] +/// # enum Foo { +/// # Left(u16), +/// # Right(&'static str), +/// # } +/// assert_eq!(unwrap_match!(Foo::Right("nope"), Foo::Left), 18); +/// ``` +#[macro_export] +macro_rules! unwrap_match { + ($var:expr, $variant:path) => { + $crate::try_match!($var, $variant).unwrap() + }; +} + +/// Checks whether supplied [`Result`] variable is `Ok` +/// and if so, returns it. +/// +/// If variant is an `Err`, macro evaluates to the contents of the `Err` +/// variant. +/// +/// This macro supports two forms: +/// - `return_ok!(Ok(42));` - will return `Ok(42)`. +/// - `return_ok!(inner Ok(42));` - will return just `42`. +/// +/// ## Examples +/// +/// ```rust +/// # use stdext::return_ok; +/// +/// fn choose_one(left: Result, right: Result) -> Result { +/// return_ok!(left); +/// return_ok!(right); +/// Err(()) +/// } +/// +/// fn choose_one_inner(left: Result, right: Result) -> u8 { +/// return_ok!(inner left); +/// return_ok!(inner right); +/// panic!("Both variables are bad") +/// } +/// +/// assert_eq!(choose_one(Err(()), Ok(10)), Ok(10)); +/// assert_eq!(choose_one_inner(Ok(1), Err(())), 1); +/// ``` +#[macro_export] +macro_rules! return_ok { + ($var:expr) => { + match $var { + Ok(val) => return Ok(val), + Err(err) => err, + } + }; + (inner $var:expr) => { + match $var { + Ok(val) => return val, + Err(err) => err, + } + }; +} + +/// Checks whether supplied [`Option`] variable is `Some` +/// and if so, returns it. +/// +/// If variant is an `None`, nothing happens. +/// +/// This macro supports two forms: +/// - `return_some!(Some(42));` - will return `Some(42)`. +/// - `return_some!(inner Some(42));` - will return just `42`. +/// +/// ## Examples +/// +/// ```rust +/// # use stdext::return_some; +/// +/// fn choose_one(left: Option, right: Option) -> Option { +/// return_some!(left); +/// return_some!(right); +/// None +/// } +/// +/// fn choose_one_inner(left: Option, right: Option) -> u8 { +/// return_some!(inner left); +/// return_some!(inner right); +/// panic!("Both variables are bad") +/// } +/// +/// assert_eq!(choose_one(None, Some(10)), Some(10)); +/// assert_eq!(choose_one_inner(Some(1), None), 1); +/// ``` +#[macro_export] +macro_rules! return_some { + ($var:expr) => { + match $var { + Some(val) => return Some(val), + None => {} + } + }; + (inner $var:expr) => { + match $var { + Some(val) => return val, + None => {} + } + }; +} diff --git a/bash-5.1/vendor/stdext/src/num/float_convert.rs b/bash-5.1/vendor/stdext/src/num/float_convert.rs new file mode 100644 index 0000000000000000000000000000000000000000..ed96431632e37f7fd893c0b38aa32ceb0d4ca972 --- /dev/null +++ b/bash-5.1/vendor/stdext/src/num/float_convert.rs @@ -0,0 +1,158 @@ +//! Extensions for the built-in floating point types. + +/// Set of methods to safely convert floating number into an integer. +/// +/// Currently, the main way to do so is to use [`as`][as_convert] conversion. +/// However, such an approach may not be suitable if saturating conversion is +/// not desired. +/// +/// However, saturating conversion is also provided as an expicit alternative +/// to `as` conversion (e.g. to avoid warnings when [`clippy::as_conversions`][clippy_as] +/// lint is enabled). +/// +/// [as_convert]: https://doc.rust-lang.org/nomicon/casts.html +/// [clippy_as]: https://rust-lang.github.io/rust-clippy/master/index.html#as_conversions +/// +/// ## Implementors +/// +/// This trait is implemented for both [`f32`] and [`f64`]. +pub trait FloatConvert: Sized { + /// Floors the floating number and attempts to convert it into an integer. + /// See [`f32::floor`] for description of flooring logic. + /// + /// Returns `None` if the value will not fit into the integer range or value + /// is not a number. + /// + /// ## Examples + /// + /// ```rust + /// # use stdext::prelude::FloatConvert; + /// + /// let valid: Option = 10.5f32.checked_floor(); + /// let too_big: Option = 256f32.checked_floor(); + /// let nan: Option = f32::NAN.checked_floor(); + /// + /// assert_eq!(valid, Some(10u8)); + /// assert_eq!(too_big, None); + /// assert_eq!(nan, None); + /// ``` + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_floor(self) -> Option; + + /// Ceils the floating number and attempts to convert it into an integer. + /// See [`f32::ceil`] for description of ceiling logic. + /// + /// Returns `None` if the value will not fit into the integer range or value + /// is not a number. + /// + /// ## Examples + /// + /// ```rust + /// # use stdext::prelude::FloatConvert; + /// + /// let valid: Option = 10.5f32.checked_ceil(); + /// let too_big: Option = 256f32.checked_ceil(); + /// let nan: Option = f32::NAN.checked_ceil(); + /// + /// assert_eq!(valid, Some(11u8)); + /// assert_eq!(too_big, None); + /// assert_eq!(nan, None); + /// ``` + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_ceil(self) -> Option; + + /// Rounds the floating number and attempts to convert it into an integer. + /// See [`f32::round`] for description of rounding logic. + /// + /// Returns `None` if the value will not fit into the integer range or value + /// is not a number. + /// + /// ## Examples + /// + /// ```rust + /// # use stdext::prelude::FloatConvert; + /// + /// let valid: Option = 10.51f32.checked_round(); // Will be rounded up. + /// let too_big: Option = 256f32.checked_round(); + /// let nan: Option = f32::NAN.checked_round(); + /// + /// assert_eq!(valid, Some(11u8)); + /// assert_eq!(too_big, None); + /// assert_eq!(nan, None); + /// ``` + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_round(self) -> Option; + + /// Behaves the same as `number.floor() as `. + /// See [`f32::floor`] for description of flooring logic. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn saturated_floor(self) -> Int; + + /// Behaves the same as `number.ceil() as `. + /// See [`f32::ceil`] for description of flooring logic. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn saturated_ceil(self) -> Int; + + /// Behaves the same as `number.round() as `. + /// See [`f32::round`] for description of flooring logic. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn saturated_round(self) -> Int; +} + +macro_rules! checked_impl { + ($val:ident.$fn:ident(), $int:ty) => {{ + if $val.is_nan() || $val.is_infinite() { + return None; + } + let converted = $val.$fn(); + if <$int>::MIN as Self <= converted && converted <= <$int>::MAX as Self { + Some(converted as $int) + } else { + None + } + }}; +} + +macro_rules! saturated_impl { + ($val:ident.$fn:ident(), $int:ty) => {{ + $val.$fn() as $int + }}; +} + +macro_rules! impl_float_convert { + ($float:ty, $($int:ty),+) => { + $(impl FloatConvert<$int> for $float { + fn checked_floor(self) -> Option<$int> { + checked_impl!(self.floor(), $int) + } + + fn checked_ceil(self) -> Option<$int> { + checked_impl!(self.ceil(), $int) + } + + fn checked_round(self) -> Option<$int> { + checked_impl!(self.round(), $int) + } + + fn saturated_floor(self) -> $int { + saturated_impl!(self.floor(), $int) + } + + fn saturated_ceil(self) -> $int { + saturated_impl!(self.ceil(), $int) + } + + fn saturated_round(self) -> $int { + saturated_impl!(self.round(), $int) + } + })+ + }; +} + +impl_float_convert!(f32, u8, u16, u32, u64, u128); +impl_float_convert!(f32, i8, i16, i32, i64, i128); +impl_float_convert!(f32, usize, isize); + +impl_float_convert!(f64, u8, u16, u32, u64, u128); +impl_float_convert!(f64, i8, i16, i32, i64, i128); +impl_float_convert!(f64, usize, isize); diff --git a/bash-5.1/vendor/stdext/src/num/integer.rs b/bash-5.1/vendor/stdext/src/num/integer.rs new file mode 100644 index 0000000000000000000000000000000000000000..8798c65ac7bb6a2352f939623f613bc7b91c9d77 --- /dev/null +++ b/bash-5.1/vendor/stdext/src/num/integer.rs @@ -0,0 +1,469 @@ +// This interface copies `std` one, thus we must discard clippy complains. +#![allow(clippy::wrong_self_convention)] + +//! Extensions for built-in integer traits. + +use std::num::ParseIntError; +use std::ops::{ + Add, AddAssign, BitAnd, BitAndAssign, BitOr, BitOrAssign, BitXor, BitXorAssign, Div, DivAssign, + Mul, MulAssign, Shl, ShlAssign, Shr, ShrAssign, Sub, SubAssign, +}; + +/// Built-in integers interface exposed as a trait. +/// +/// This trait is implemented for all the built-in integer types and copies their interface completely, +/// so it's possible to write generic code that accepts any integer number. +/// +/// Interface includes all the trait implementations as well, such as [`Copy`], [`Add`] or [`BitXorAssign`]. +/// +/// ## Caveats +/// +/// - `__bytes` are not implemented, as the return type (array of generic const length that +/// depends on the trait itself) cannot in be expressed in stable rust. +/// +/// - `is_power_of_two` / `next_power_of_two` / `checked_next_power_of_two` methods are not implemented, +/// as they exist for the unsigned numbers only. +pub trait Integer: + Sized + + Add + + AddAssign + + Sub + + SubAssign + + Shr + + ShrAssign + + Shl + + ShlAssign + + BitAnd + + BitAndAssign + + BitOr + + BitOrAssign + + BitXor + + BitXorAssign + + Div + + DivAssign + + Mul + + MulAssign + + Copy +{ + /// The smallest value that can be represented by this integer type. + const MIN: Self; + /// The largest value that can be represented by this integer type. + const MAX: Self; + /// The size of this integer type in bits. + const BITS: u32; + + /// See [`u128::from_str_radix`]. + fn from_str_radix(src: &str, radix: u32) -> Result; + + /// See [`u128::count_ones`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn count_ones(self) -> u32; + + /// See [`u128::count_zeros`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn count_zeros(self) -> u32; + + /// See [`u128::leading_zeros`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn leading_zeros(self) -> u32; + + /// See [`u128::trailing_zeros`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn trailing_zeros(self) -> u32; + + /// See [`u128::leading_ones`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn leading_ones(self) -> u32; + + /// See [`u128::trailing_ones`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn trailing_ones(self) -> u32; + + /// See [`u128::rotate_left`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn rotate_left(self, n: u32) -> Self; + + /// See [`u128::rotate_right`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn rotate_right(self, n: u32) -> Self; + + /// See [`u128::swap_bytes`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn swap_bytes(self) -> Self; + + /// See [`u128::reverse_bits`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn reverse_bits(self) -> Self; + + /// See [`u128::from_be`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn from_be(x: Self) -> Self; + + /// See [`u128::from_le`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn from_le(x: Self) -> Self; + + /// See [`u128::to_be`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn to_be(self) -> Self; + + /// See [`u128::to_le`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn to_le(self) -> Self; + + /// See [`u128::checked_add`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_add(self, rhs: Self) -> Option; + + /// See [`u128::checked_sub`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_sub(self, rhs: Self) -> Option; + + /// See [`u128::checked_mul`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_mul(self, rhs: Self) -> Option; + + /// See [`u128::checked_div`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_div(self, rhs: Self) -> Option; + + /// See [`u128::checked_div_euclid`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_div_euclid(self, rhs: Self) -> Option; + + /// See [`u128::checked_rem`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_rem(self, rhs: Self) -> Option; + + /// See [`u128::checked_rem_euclid`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_rem_euclid(self, rhs: Self) -> Option; + + /// See [`u128::checked_neg`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_neg(self) -> Option; + + /// See [`u128::checked_shl`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_shl(self, rhs: u32) -> Option; + + /// See [`u128::checked_shr`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_shr(self, rhs: u32) -> Option; + + /// See [`u128::checked_pow`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn checked_pow(self, exp: u32) -> Option; + + /// See [`u128::saturating_add`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn saturating_add(self, rhs: Self) -> Self; + + /// See [`u128::saturating_sub`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn saturating_sub(self, rhs: Self) -> Self; + + /// See [`u128::saturating_mul`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn saturating_mul(self, rhs: Self) -> Self; + + /// See [`u128::saturating_pow`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn saturating_pow(self, exp: u32) -> Self; + + /// See [`u128::wrapping_add`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_add(self, rhs: Self) -> Self; + + /// See [`u128::wrapping_sub`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_sub(self, rhs: Self) -> Self; + + /// See [`u128::wrapping_mul`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_mul(self, rhs: Self) -> Self; + + /// See [`u128::wrapping_div`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_div(self, rhs: Self) -> Self; + + /// See [`u128::wrapping_div_euclid`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_div_euclid(self, rhs: Self) -> Self; + + /// See [`u128::wrapping_rem`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_rem(self, rhs: Self) -> Self; + + /// See [`u128::wrapping_rem_euclid`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_rem_euclid(self, rhs: Self) -> Self; + + /// See [`u128::wrapping_neg`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_neg(self) -> Self; + + /// See [`u128::wrapping_shl`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_shl(self, rhs: u32) -> Self; + + /// See [`u128::wrapping_shr`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_shr(self, rhs: u32) -> Self; + + /// See [`u128::wrapping_pow`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn wrapping_pow(self, exp: u32) -> Self; + + /// See [`u128::overflowing_add`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_add(self, rhs: Self) -> (Self, bool); + + /// See [`u128::overflowing_sub`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_sub(self, rhs: Self) -> (Self, bool); + + /// See [`u128::overflowing_mul`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_mul(self, rhs: Self) -> (Self, bool); + + /// See [`u128::overflowing_div`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_div(self, rhs: Self) -> (Self, bool); + + /// See [`u128::overflowing_div_euclid`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_div_euclid(self, rhs: Self) -> (Self, bool); + + /// See [`u128::overflowing_rem`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_rem(self, rhs: Self) -> (Self, bool); + + /// See [`u128::overflowing_rem_euclid`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_rem_euclid(self, rhs: Self) -> (Self, bool); + + /// See [`u128::overflowing_neg`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_neg(self) -> (Self, bool); + + /// See [`u128::overflowing_shr`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_shr(self, rhs: u32) -> (Self, bool); + + /// See [`u128::overflowing_pow`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn overflowing_pow(self, exp: u32) -> (Self, bool); + + /// See [`u128::pow`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn pow(self, exp: u32) -> Self; + + /// See [`u128::div_euclid`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn div_euclid(self, rhs: Self) -> Self; + + /// See [`u128::rem_euclid`]. + #[must_use = "this returns the result of the operation, without modifying the original"] + fn rem_euclid(self, rhs: Self) -> Self; +} + +macro_rules! impl_integer { + ($($int:ty),+) => { + $( + impl Integer for $int { + const MIN: Self = Self::MIN; + const MAX: Self = Self::MAX; + const BITS: u32 = Self::BITS; + fn from_str_radix(src: &str, radix: u32) -> Result { + <$int>::from_str_radix(src, radix) + } + fn count_ones(self) -> u32 { + <$int>::count_ones(self) + } + fn count_zeros(self) -> u32 { + <$int>::count_zeros(self) + } + fn leading_zeros(self) -> u32 { + <$int>::leading_zeros(self) + } + fn trailing_zeros(self) -> u32 { + <$int>::trailing_zeros(self) + } + fn leading_ones(self) -> u32 { + <$int>::leading_ones(self) + } + fn trailing_ones(self) -> u32 { + <$int>::trailing_ones(self) + } + fn rotate_left(self, n: u32) -> Self { + <$int>::rotate_left(self, n) + } + fn rotate_right(self, n: u32) -> Self { + <$int>::rotate_right(self, n) + } + fn swap_bytes(self) -> Self { + <$int>::swap_bytes(self) + } + fn reverse_bits(self) -> Self { + <$int>::reverse_bits(self) + } + fn from_be(x: Self) -> Self { + <$int>::from_be(x) + } + fn from_le(x: Self) -> Self { + <$int>::from_le(x) + } + fn to_be(self) -> Self { + <$int>::to_be(self) + } + fn to_le(self) -> Self { + <$int>::to_le(self) + } + fn checked_add(self, rhs: Self) -> Option { + <$int>::checked_add(self, rhs) + } + fn checked_sub(self, rhs: Self) -> Option { + <$int>::checked_sub(self, rhs) + } + fn checked_mul(self, rhs: Self) -> Option { + <$int>::checked_mul(self, rhs) + } + fn checked_div(self, rhs: Self) -> Option { + <$int>::checked_div(self, rhs) + } + fn checked_div_euclid(self, rhs: Self) -> Option { + <$int>::checked_div_euclid(self, rhs) + } + fn checked_rem(self, rhs: Self) -> Option { + <$int>::checked_rem(self, rhs) + } + fn checked_rem_euclid(self, rhs: Self) -> Option { + <$int>::checked_rem_euclid(self, rhs) + } + fn checked_neg(self) -> Option { + <$int>::checked_neg(self) + } + fn checked_shl(self, rhs: u32) -> Option { + <$int>::checked_shl(self, rhs) + } + fn checked_shr(self, rhs: u32) -> Option { + <$int>::checked_shr(self, rhs) + } + fn checked_pow(self, exp: u32) -> Option { + <$int>::checked_pow(self, exp) + } + fn saturating_add(self, rhs: Self) -> Self { + <$int>::saturating_add(self, rhs) + } + fn saturating_sub(self, rhs: Self) -> Self { + <$int>::saturating_sub(self, rhs) + } + fn saturating_mul(self, rhs: Self) -> Self { + <$int>::saturating_mul(self, rhs) + } + fn saturating_pow(self, exp: u32) -> Self { + <$int>::saturating_pow(self, exp) + } + fn wrapping_add(self, rhs: Self) -> Self { + <$int>::wrapping_add(self, rhs) + } + fn wrapping_sub(self, rhs: Self) -> Self { + <$int>::wrapping_sub(self, rhs) + } + fn wrapping_mul(self, rhs: Self) -> Self { + <$int>::wrapping_mul(self, rhs) + } + fn wrapping_div(self, rhs: Self) -> Self { + <$int>::wrapping_div(self, rhs) + } + fn wrapping_div_euclid(self, rhs: Self) -> Self { + <$int>::wrapping_div_euclid(self, rhs) + } + fn wrapping_rem(self, rhs: Self) -> Self { + <$int>::wrapping_rem(self, rhs) + } + fn wrapping_rem_euclid(self, rhs: Self) -> Self { + <$int>::wrapping_rem_euclid(self, rhs) + } + fn wrapping_neg(self) -> Self { + <$int>::wrapping_neg(self) + } + fn wrapping_shl(self, rhs: u32) -> Self { + <$int>::wrapping_shl(self, rhs) + } + fn wrapping_shr(self, rhs: u32) -> Self { + <$int>::wrapping_shr(self, rhs) + } + fn wrapping_pow(self, exp: u32) -> Self { + <$int>::wrapping_pow(self, exp) + } + fn overflowing_add(self, rhs: Self) -> (Self, bool) { + <$int>::overflowing_add(self, rhs) + } + fn overflowing_sub(self, rhs: Self) -> (Self, bool) { + <$int>::overflowing_sub(self, rhs) + } + fn overflowing_mul(self, rhs: Self) -> (Self, bool) { + <$int>::overflowing_mul(self, rhs) + } + fn overflowing_div(self, rhs: Self) -> (Self, bool) { + <$int>::overflowing_div(self, rhs) + } + fn overflowing_div_euclid(self, rhs: Self) -> (Self, bool) { + <$int>::overflowing_div_euclid(self, rhs) + } + fn overflowing_rem(self, rhs: Self) -> (Self, bool) { + <$int>::overflowing_rem(self, rhs) + } + fn overflowing_rem_euclid(self, rhs: Self) -> (Self, bool) { + <$int>::overflowing_rem_euclid(self, rhs) + } + fn overflowing_neg(self) -> (Self, bool) { + <$int>::overflowing_neg(self) + } + fn overflowing_shr(self, rhs: u32) -> (Self, bool) { + <$int>::overflowing_shr(self, rhs) + } + fn overflowing_pow(self, exp: u32) -> (Self, bool) { + <$int>::overflowing_pow(self, exp) + } + fn pow(self, exp: u32) -> Self { + <$int>::pow(self, exp) + } + fn div_euclid(self, rhs: Self) -> Self { + <$int>::div_euclid(self, rhs) + } + fn rem_euclid(self, rhs: Self) -> Self { + <$int>::rem_euclid(self, rhs) + } + } + )+ + }; +} + +impl_integer!(u8, u16, u32, u64, u128); +impl_integer!(i8, i16, i32, i64, i128); +impl_integer!(usize, isize); + +#[cfg(test)] +mod tests { + #[test] + fn basic() { + assert_eq!(::BITS, u8::BITS); + assert_eq!( + ::trailing_ones(10u32), + 10u32.trailing_ones() + ); + } + + fn accepts_any_integer(a: I, b: I) -> u32 { + (a + b).count_ones() + } + + #[test] + fn composite() { + assert_eq!(accepts_any_integer(0u8, 0u8), 0); + assert_eq!(accepts_any_integer(1i128, 0i128), 1); + } +} diff --git a/bash-5.1/vendor/stdext/src/num/mod.rs b/bash-5.1/vendor/stdext/src/num/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..bcf46f8c7a2faf57fb143bc51574b0ceac749737 --- /dev/null +++ b/bash-5.1/vendor/stdext/src/num/mod.rs @@ -0,0 +1,4 @@ +//! Extensions for the built-in numeric types. + +pub mod float_convert; +pub mod integer; diff --git a/bash-5.1/vendor/stdext/src/option.rs b/bash-5.1/vendor/stdext/src/option.rs new file mode 100644 index 0000000000000000000000000000000000000000..88b8c4aa1afb7c481f7a680c58f0803a5bae8d17 --- /dev/null +++ b/bash-5.1/vendor/stdext/src/option.rs @@ -0,0 +1,124 @@ +//! Extension traits for `std::Option`. + +/// Extension trait with useful methods for [`std::option::Option`]. +/// +/// [`std::time::Option`]: https://doc.rust-lang.org/std/option/enum.Option.html +pub trait OptionExt { + /// Combines `self` and another `Option`. + /// + /// If `self` is `Some(s)` and `other` is `Some(o)`, this method returns `Some((s, o))`. + /// Otherwise, `None` is returned. + /// + /// **Note:** `std::Option` already provides a [`zip`] method which serves exact same purpose, + /// but currently it's unstable. Once it's stabilized, this method will be marked as deprecated + /// with a prompt to use the stanard method instead. + /// + /// # Examples + /// + /// ``` + /// use stdext::prelude::*; + /// + /// let x = Some(1); + /// let y = Some("hi"); + /// let z = None::; + /// + /// assert_eq!(x.combine(y), Some((1, "hi"))); + /// assert_eq!(x.combine(z), None); + /// ``` + /// + /// [`zip`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.zip + fn combine(self, other: Option) -> Option<(T, U)>; + + /// Combines `self` and another `Option` with function `f`. + /// + /// If `self` is `Some(s)` and `other` is `Some(o)`, this method returns `Some(f(s, o))`. + /// Otherwise, `None` is returned. + /// + /// **Note:** `std::Option` already provides a [`zip_with`] method which serves exact same purpose, + /// but currently it's unstable. Once it's stabilized, this method will be marked as deprecated + /// with a prompt to use the stanard method instead. + /// + /// # Examples + /// + /// ``` + /// use stdext::prelude::*; + /// + /// #[derive(Debug, PartialEq)] + /// struct Point { + /// x: f64, + /// y: f64, + /// } + /// + /// impl Point { + /// fn new(x: f64, y: f64) -> Self { + /// Self { x, y } + /// } + /// } + /// + /// let x = Some(17.5); + /// let y = Some(42.7); + /// + /// assert_eq!(x.combine_with(y, Point::new), Some(Point { x: 17.5, y: 42.7 })); + /// assert_eq!(x.combine_with(None, Point::new), None); + /// ``` + /// + /// [`zip_with`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.zip_with + fn combine_with(self, other: Option, f: F) -> Option + where + F: FnOnce(T, U) -> R; +} + +impl OptionExt for Option { + fn combine(self, other: Option) -> Option<(T, U)> { + match (self, other) { + (Some(left), Some(right)) => Some((left, right)), + _ => None, + } + } + + fn combine_with(self, other: Option, f: F) -> Option + where + F: FnOnce(T, U) -> R, + { + self.combine(other).map(|(l, r)| f(l, r)) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn combine() { + // Test vector of (left, right, expected) values. + let test_vector = vec![ + (Some(1), Some(2), Some((1, 2))), + (Some(1), None, None), + (None, Some(2), None), + (None, None, None), + ]; + + for (left, right, expected) in test_vector { + assert_eq!(left.combine(right), expected); + } + } + + #[test] + fn combine_with() { + fn f(l: i32, r: i32) -> i32 { + l + r + } + + // Test vector of (left, right, expected) values. + let test_vector = vec![ + (Some(1), Some(2), Some(3)), + (Some(1), None, None), + (None, Some(2), None), + (None, None, None), + ]; + + for (left, right, expected) in test_vector { + assert_eq!(left.combine_with(right, f), expected); + } + } +} diff --git a/bash-5.1/vendor/stdext/src/result.rs b/bash-5.1/vendor/stdext/src/result.rs new file mode 100644 index 0000000000000000000000000000000000000000..bf56acb6d6d3d8a62fb448aeb71f88efd7ad24b7 --- /dev/null +++ b/bash-5.1/vendor/stdext/src/result.rs @@ -0,0 +1,112 @@ +//! Extension traits for `std::Result`. + +/// Extension trait with useful methods for [`std::result::Result`]. +/// +/// [`std::result::Result`]: https://doc.rust-lang.org/std/result/enum.Result.html +pub trait ResultExt { + /// Combines `self` and another `Result`. + /// + /// If `self` is `Ok(s)` and `other` is `Ok(o)`, this method returns `Ok((s, o))`. + /// Otherwise, if the `self` is `Ok(s)` and `other` is `Err(e)`, this method returns `Err(e)`. + /// Otherwise, `self` is `Err(e)` and this method returns `Err(e)` (`other` is not taken into + /// account, as in short circuit calculations). + /// + /// # Examples + /// + /// ``` + /// use stdext::prelude::*; + /// + /// let x = Ok(1); + /// let y = Ok("hi"); + /// let z: Result = Err("error"); + /// let z2: Result = Err("other_error"); + /// + /// assert_eq!(x.combine(y), Ok((1, "hi"))); + /// assert_eq!(x.combine(z), Err("error")); + /// assert_eq!(z.combine(z2), Err("error")); + /// ``` + fn combine(self, other: Result) -> Result<(T, U), E>; + + /// Combines `self` and another `Result` with function `f`. + /// + /// If `self` is `Ok(s)` and `other` is `Ok(o)`, this method returns `Ok(f(s, o))`. + /// Otherwise, if the `self` is `Ok(s)` and `other` is `Err(e)`, this method returns `Err(e)`. + /// Otherwise, `self` is `Err(e)` and this method returns `Err(e)` (`other` is not taken into + /// account, as in short circuit calculations). + /// + /// # Examples + /// + /// ``` + /// use stdext::prelude::*; + /// + /// let x = Ok(1); + /// let y = Ok(2); + /// let z: Result = Err("error"); + /// let z2: Result = Err("other_error"); + /// + /// assert_eq!(x.combine_with(y, |l, r| l + r), Ok(3)); + /// assert_eq!(x.combine_with(z, |l, r| l + r), Err("error")); + /// assert_eq!(z.combine_with(z2, |l, r| l + r), Err("error")); + /// ``` + /// + /// [`zip_with`]: https://doc.rust-lang.org/std/Result/enum.Result.html#method.zip_with + fn combine_with(self, other: Result, f: F) -> Result + where + F: FnOnce(T, U) -> R; +} + +impl ResultExt for Result { + fn combine(self, other: Result) -> Result<(T, U), E> { + match (self, other) { + (Ok(left), Ok(right)) => Ok((left, right)), + (Ok(_), Err(err)) => Err(err), + (Err(err), _) => Err(err), + } + } + + fn combine_with(self, other: Result, f: F) -> Result + where + F: FnOnce(T, U) -> R, + { + self.combine(other).map(|(l, r)| f(l, r)) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn combine() { + // Test vector of (left, right, expected) values. + let test_vector = vec![ + (Ok(1), Ok(2), Ok((1, 2))), + (Ok(1), Err("right"), Err("right")), + (Err("left"), Ok(2), Err("left")), + (Err("left"), Err("right"), Err("left")), + ]; + + for (left, right, expected) in test_vector { + assert_eq!(left.combine(right), expected); + } + } + + #[test] + fn combine_with() { + fn f(l: i32, r: i32) -> i32 { + l + r + } + + // Test vector of (left, right, expected) values. + let test_vector = vec![ + (Ok(1), Ok(2), Ok(3)), + (Ok(1), Err("right"), Err("right")), + (Err("left"), Ok(2), Err("left")), + (Err("left"), Err("right"), Err("left")), + ]; + + for (left, right, expected) in test_vector { + assert_eq!(left.combine_with(right, f), expected); + } + } +} diff --git a/bash-5.1/vendor/stdext/src/str.rs b/bash-5.1/vendor/stdext/src/str.rs new file mode 100644 index 0000000000000000000000000000000000000000..b7b62f2175cea63c6a3933af136757915be3096a --- /dev/null +++ b/bash-5.1/vendor/stdext/src/str.rs @@ -0,0 +1,76 @@ +//! Extension traits for `str` primitive type. + +/// Alternative for `std::str::pattern::Pattern` that does not require +/// nightly Rust (as `Pattern` is unstable yet). +#[doc(hidden)] +pub enum AltPattern<'a> { + Str(&'a str), + Char(char), +} + +impl<'a> From<&'a str> for AltPattern<'a> { + fn from(data: &'a str) -> Self { + Self::Str(data) + } +} + +impl<'a> From for AltPattern<'a> { + fn from(data: char) -> Self { + Self::Char(data) + } +} + +/// Extension trait with useful methods for primitive type [`str`]. +/// +/// [`str`]: https://doc.rust-lang.org/std/primitive.str.html +pub trait StrExt { + /// Version of [`str::splitn`] which expects the **exact** + /// amount of entries obtained after splitting. This method + /// returns `Vec`, as [`SplitN`] iterator depends on the unstable + /// type [`Pattern`] and cannot be returned on the stable Rust. + /// + /// # Examples + /// + /// ``` + /// use stdext::prelude::*; + /// + /// let data = "Hello world"; + /// let splitted = data.splitn_exact(2, " ").unwrap(); + /// assert_eq!(&splitted, &["Hello", "world"]); + /// + /// let splitted = data.splitn_exact(5, '-'); + /// assert!(splitted.is_none()); + /// ``` + /// + /// [`str::splitn`]: https://doc.rust-lang.org/std/primitive.str.html#method.splitn + /// [`SplitN`]: https://doc.rust-lang.org/std/str/struct.SplitN.html + /// [`Pattern`]: https://doc.rust-lang.org/std/str/pattern/trait.Pattern.html + fn splitn_exact<'a, P: Into>>( + &'a self, + n: usize, + pat: P, + ) -> Option>; +} + +impl StrExt for &str { + fn splitn_exact<'a, P: Into>>( + &'a self, + n: usize, + pat: P, + ) -> Option> { + let pat = pat.into(); + // Overcome for `&str` splitting API: it accepts generic arguments as separators, + // but the `Pattern` trait is unstable, thus it's impossible to just forward arguments + // inside on stable Rust. + let splitted: Vec<_> = match pat { + AltPattern::Str(sep) => self.splitn(n, sep).collect(), + AltPattern::Char(sep) => self.splitn(n, sep).collect(), + }; + + if splitted.len() == n { + Some(splitted) + } else { + None + } + } +} diff --git a/bash-5.1/vendor/stdext/src/sync/mod.rs b/bash-5.1/vendor/stdext/src/sync/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..1050b60e772eff8294c36eaddb0a443756ccb2ca --- /dev/null +++ b/bash-5.1/vendor/stdext/src/sync/mod.rs @@ -0,0 +1,4 @@ +//! Extension traits for the standard synchronization primitives. + +pub mod mutex; +pub mod rw_lock; diff --git a/bash-5.1/vendor/stdext/src/sync/mutex.rs b/bash-5.1/vendor/stdext/src/sync/mutex.rs new file mode 100644 index 0000000000000000000000000000000000000000..091d152071efdae139445eb32d217a2a2098f404 --- /dev/null +++ b/bash-5.1/vendor/stdext/src/sync/mutex.rs @@ -0,0 +1,33 @@ +//! Extension traits for `std::sync::Mutex`. + +use std::sync::{Mutex, MutexGuard}; + +/// Extension trait with useful methods for [`std::sync::Mutex`]. +/// +/// [`std::sync::Mutex`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html +pub trait MutexExt { + /// Shorthand for `mutex.lock().unwrap()` with a better panic message. + /// + /// This method is intended to be used in situations where poisoned locks are + /// considered an exceptional situation and should always result in panic. + /// + /// # Examples + /// + /// ``` + /// use std::sync::Mutex; + /// use stdext::prelude::*; + /// + /// let lock = Mutex::new(1); + /// + /// let n = lock.force_lock(); + /// assert_eq!(*n, 1); + /// ``` + fn force_lock(&self) -> MutexGuard; +} + +impl MutexExt for Mutex { + fn force_lock(&self) -> MutexGuard { + self.lock() + .expect("Unable to obtain lock: Mutex is poisoned") + } +} diff --git a/bash-5.1/vendor/stdext/src/sync/rw_lock.rs b/bash-5.1/vendor/stdext/src/sync/rw_lock.rs new file mode 100644 index 0000000000000000000000000000000000000000..c05419d65c6d8cdcad9009cc0d86447e54900994 --- /dev/null +++ b/bash-5.1/vendor/stdext/src/sync/rw_lock.rs @@ -0,0 +1,60 @@ +//! Extension traits for `std::sync::RwLock`. + +use std::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}; + +/// Extension trait with useful methods for [`std::sync::RwLock`]. +/// +/// [`std::sync::RwLock`]: https://doc.rust-lang.org/std/sync/struct.RwLock.html +pub trait RwLockExt { + /// Shorthand for `lock.read().unwrap()` with a better panic message. + /// + /// This method is intended to be used in situations where poisoned locks are + /// considered an exceptional situation and should always result in panic. + /// + /// # Examples + /// + /// ``` + /// use std::sync::{Arc, RwLock}; + /// use stdext::prelude::*; + /// + /// let lock = Arc::new(RwLock::new(1)); + /// + /// let n = lock.force_read(); + /// assert_eq!(*n, 1); + /// ``` + fn force_read(&self) -> RwLockReadGuard; + + /// Shorthand for `lock.write().unwrap()` with a better panic message. + /// + /// This method is intended to be used in situations where poisoned locks are + /// considered an exceptional situation and should always result in panic. + /// + /// # Examples + /// + /// ``` + /// use std::sync::{Arc, RwLock}; + /// use stdext::prelude::*; + /// + /// let lock = Arc::new(RwLock::new(1)); + /// + /// { + /// let mut n = lock.force_write(); + /// *n = 2; + /// } + /// + /// let n = lock.force_read(); + /// assert_eq!(*n, 2); + /// ``` + fn force_write(&self) -> RwLockWriteGuard; +} + +impl RwLockExt for RwLock { + fn force_read(&self) -> RwLockReadGuard { + self.read() + .expect("Unable to obtain read lock: RwLock is poisoned") + } + fn force_write(&self) -> RwLockWriteGuard { + self.write() + .expect("Unable to obtain write lock: RwLock is poisoned") + } +} diff --git a/bash-5.1/vendor/stdext/src/vec.rs b/bash-5.1/vendor/stdext/src/vec.rs new file mode 100644 index 0000000000000000000000000000000000000000..d06afd0db63acf3cc37fb7297f0445546fdd693c --- /dev/null +++ b/bash-5.1/vendor/stdext/src/vec.rs @@ -0,0 +1,128 @@ +//! Extension traits for `std::Vec`. + +/// Extension trait with useful methods for [`std::vec::Vec`]. +/// +/// [`std::vec::Vec`]: https://doc.rust-lang.org/std/vec/struct.Vec.html +pub trait VecExt { + /// Resizes the `Vec` in-place if the provided `new_len` is **greater** than + /// the current `Vec` length. + /// + /// In simple words, this method only make vector bigger, but not smaller. + /// Calling this method with a length smaller or equal to the current length will + /// do nothing. + /// + /// This method uses a closure to create new values on every push. If + /// you'd rather [`Clone`] a given value, use [`resize_up`]. If you want + /// to use the [`Default`] trait to generate values, you can pass + /// [`Default::default()`] as the second argument. + /// + /// # Examples + /// + /// ``` + /// use stdext::prelude::*; + /// + /// let mut vec = vec![1, 2, 3]; + /// vec.resize_up_with(5, Default::default); + /// assert_eq!(vec, [1, 2, 3, 0, 0]); + /// + /// let mut vec = vec![]; + /// let mut p = 1; + /// vec.resize_up_with(4, || { p *= 2; p }); + /// assert_eq!(vec, [2, 4, 8, 16]); + /// + /// let mut vec = vec![1, 2, 3]; + /// vec.resize_up_with(1, Default::default); + /// assert_eq!(vec, [1, 2, 3]); // Resizing to smaller size does nothing. + /// ``` + /// + /// [`Clone`]: https://doc.rust-lang.org/std/clone/trait.Clone.html + /// [`Default`]: https://doc.rust-lang.org/std/default/trait.Default.html + /// [`Default::default()`]: https://doc.rust-lang.org/std/default/trait.Default.html#tymethod.default + /// [`resize_up`]: ./trait.VecExtClone.html#tymethod.resize_up + fn resize_up_with(&mut self, new_len: usize, f: F) + where + F: FnMut() -> T; + + /// Removes the first instance of `item` from the vector if the item exists. + /// + /// Based on the unstable vec_remove_item feature, which has been deprecated and will be removed. + /// + /// # Examples + /// + /// ``` + /// use stdext::prelude::*; + /// let mut vec = vec![1, 2, 3, 1]; + /// + /// vec.remove_item(&1); + /// + /// assert_eq!(vec, vec![2, 3, 1]); + /// ``` + fn remove_item(&mut self, item: &V) -> Option + where + T: PartialEq; +} + +/// Extension trait with useful methods for [`std::vec::Vec`]. +/// +/// This trait contains functions that require `T` to implement `Clone` trait. +/// +/// [`std::vec::Vec`]: https://doc.rust-lang.org/std/vec/struct.Vec.html +pub trait VecExtClone { + /// Resizes the `Vec` in-place if the provided `new_len` is **greater** than + /// the current `Vec` length. + /// + /// In simple words, this method only make vector bigger, but not smaller. + /// Calling this method with a length smaller or equal to the current length will + /// do nothing. + /// + /// This method requires `T` to implement [`Clone`], + /// in order to be able to clone the passed value. + /// If you need more flexibility (or want to rely on [`Default`] instead of + /// [`Clone`]), use [`resize_up_with`]. + /// + /// # Examples + /// + /// ``` + /// use stdext::prelude::*; + /// + /// let mut vec = vec!["hello"]; + /// vec.resize_up(3, "world"); + /// assert_eq!(vec, ["hello", "world", "world"]); + /// + /// let mut vec = vec![1, 2, 3, 4]; + /// vec.resize_up(2, 0); + /// assert_eq!(vec, [1, 2, 3, 4]); // Resizing to smaller size does nothing. + /// ``` + /// + /// [`Clone`]: https://doc.rust-lang.org/std/clone/trait.Clone.html + /// [`Default`]: https://doc.rust-lang.org/std/default/trait.Default.html + /// [`resize_up_with`]: ./trait.VecExt.html#tymethod.resize_up_with + fn resize_up(&mut self, new_len: usize, value: T); +} + +impl VecExt for Vec { + fn resize_up_with(&mut self, new_len: usize, f: F) + where + F: FnMut() -> T, + { + if self.len() < new_len { + self.resize_with(new_len, f); + } + } + + fn remove_item(&mut self, item: &V) -> Option + where + T: PartialEq, + { + let pos = self.iter().position(|x| *x == *item)?; + Some(self.remove(pos)) + } +} + +impl VecExtClone for Vec { + fn resize_up(&mut self, new_len: usize, value: T) { + if self.len() < new_len { + self.resize(new_len, value); + } + } +} diff --git a/record.txt b/record.txt index 32a0bed965207290990c53fc0529a0d3f4327e46..bfbadc63f3a2f714be333f881f9bb3894e2d07c5 100644 --- a/record.txt +++ b/record.txt @@ -126,3 +126,4 @@ 125 126 127 +128