Bash-5.3-alpha release

This commit is contained in:
Chet Ramey
2024-04-22 10:33:38 -04:00
parent f3b6bd1945
commit 622d318652
700 changed files with 136534 additions and 96420 deletions
+46 -46
View File
@@ -1,7 +1,7 @@
/* array.h -- definitions for the interface exported by array.c that allows
the rest of the shell to manipulate array variables. */
/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
/* Copyright (C) 1997-2022 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -50,70 +50,70 @@ typedef struct array_element {
#define ARRAY_DEFAULT_SIZE 1024
typedef int sh_ae_map_func_t PARAMS((ARRAY_ELEMENT *, void *));
typedef int sh_ae_map_func_t (ARRAY_ELEMENT *, void *);
/* Basic operations on entire arrays */
#ifdef ALT_ARRAY_IMPLEMENTATION
extern void array_alloc PARAMS((ARRAY *, arrayind_t));
extern void array_resize PARAMS((ARRAY *, arrayind_t));
extern void array_expand PARAMS((ARRAY *, arrayind_t));
extern void array_dispose_elements PARAMS((ARRAY_ELEMENT **));
extern void array_alloc (ARRAY *, arrayind_t);
extern void array_resize (ARRAY *, arrayind_t);
extern void array_expand (ARRAY *, arrayind_t);
extern void array_dispose_elements (ARRAY_ELEMENT **);
#endif
extern ARRAY *array_create PARAMS((void));
extern void array_flush PARAMS((ARRAY *));
extern void array_dispose PARAMS((ARRAY *));
extern ARRAY *array_copy PARAMS((ARRAY *));
extern ARRAY *array_create (void);
extern void array_flush (ARRAY *);
extern void array_dispose (ARRAY *);
extern ARRAY *array_copy (ARRAY *);
#ifndef ALT_ARRAY_IMPLEMENTATION
extern ARRAY *array_slice PARAMS((ARRAY *, ARRAY_ELEMENT *, ARRAY_ELEMENT *));
extern ARRAY *array_slice (ARRAY *, ARRAY_ELEMENT *, ARRAY_ELEMENT *);
#else
extern ARRAY *array_slice PARAMS((ARRAY *, arrayind_t, arrayind_t));
extern ARRAY *array_slice (ARRAY *, arrayind_t, arrayind_t);
#endif
extern void array_walk PARAMS((ARRAY *, sh_ae_map_func_t *, void *));
extern void array_walk (ARRAY *, sh_ae_map_func_t *, void *);
#ifndef ALT_ARRAY_IMPLEMENTATION
extern ARRAY_ELEMENT *array_shift PARAMS((ARRAY *, int, int));
extern ARRAY_ELEMENT *array_shift (ARRAY *, int, int);
#else
extern ARRAY_ELEMENT **array_shift PARAMS((ARRAY *, int, int));
extern ARRAY_ELEMENT **array_shift (ARRAY *, int, int);
#endif
extern int array_rshift PARAMS((ARRAY *, int, char *));
extern ARRAY_ELEMENT *array_unshift_element PARAMS((ARRAY *));
extern int array_shift_element PARAMS((ARRAY *, char *));
extern int array_rshift (ARRAY *, int, char *);
extern ARRAY_ELEMENT *array_unshift_element (ARRAY *);
extern int array_shift_element (ARRAY *, char *);
extern ARRAY *array_quote PARAMS((ARRAY *));
extern ARRAY *array_quote_escapes PARAMS((ARRAY *));
extern ARRAY *array_dequote PARAMS((ARRAY *));
extern ARRAY *array_dequote_escapes PARAMS((ARRAY *));
extern ARRAY *array_remove_quoted_nulls PARAMS((ARRAY *));
extern ARRAY *array_quote (ARRAY *);
extern ARRAY *array_quote_escapes (ARRAY *);
extern ARRAY *array_dequote (ARRAY *);
extern ARRAY *array_dequote_escapes (ARRAY *);
extern ARRAY *array_remove_quoted_nulls (ARRAY *);
extern char *array_subrange PARAMS((ARRAY *, arrayind_t, arrayind_t, int, int, int));
extern char *array_patsub PARAMS((ARRAY *, char *, char *, int));
extern char *array_modcase PARAMS((ARRAY *, char *, int, int));
extern char *array_subrange (ARRAY *, arrayind_t, arrayind_t, int, int, int);
extern char *array_patsub (ARRAY *, char *, char *, int);
extern char *array_modcase (ARRAY *, char *, int, int);
/* Basic operations on array elements. */
extern ARRAY_ELEMENT *array_create_element PARAMS((arrayind_t, char *));
extern ARRAY_ELEMENT *array_copy_element PARAMS((ARRAY_ELEMENT *));
extern void array_dispose_element PARAMS((ARRAY_ELEMENT *));
extern ARRAY_ELEMENT *array_create_element (arrayind_t, char *);
extern ARRAY_ELEMENT *array_copy_element (ARRAY_ELEMENT *);
extern void array_dispose_element (ARRAY_ELEMENT *);
extern int array_insert PARAMS((ARRAY *, arrayind_t, char *));
extern ARRAY_ELEMENT *array_remove PARAMS((ARRAY *, arrayind_t));
extern char *array_reference PARAMS((ARRAY *, arrayind_t));
extern int array_insert (ARRAY *, arrayind_t, char *);
extern ARRAY_ELEMENT *array_remove (ARRAY *, arrayind_t);
extern char *array_reference (ARRAY *, arrayind_t);
/* Converting to and from arrays */
extern WORD_LIST *array_to_word_list PARAMS((ARRAY *));
extern ARRAY *array_from_word_list PARAMS((WORD_LIST *));
extern WORD_LIST *array_keys_to_word_list PARAMS((ARRAY *));
extern WORD_LIST *array_to_kvpair_list PARAMS((ARRAY *));
extern WORD_LIST *array_to_word_list (ARRAY *);
extern ARRAY *array_from_word_list (WORD_LIST *);
extern WORD_LIST *array_keys_to_word_list (ARRAY *);
extern WORD_LIST *array_to_kvpair_list (ARRAY *);
extern ARRAY *array_assign_list PARAMS((ARRAY *, WORD_LIST *));
extern ARRAY *array_assign_list (ARRAY *, WORD_LIST *);
extern char **array_to_argv PARAMS((ARRAY *, int *));
extern ARRAY *array_from_argv PARAMS((ARRAY *, char **, int));
extern char **array_to_argv (ARRAY *, int *);
extern ARRAY *array_from_argv (ARRAY *, char **, int);
extern char *array_to_kvpair PARAMS((ARRAY *, int));
extern char *array_to_assign PARAMS((ARRAY *, int));
extern char *array_to_string PARAMS((ARRAY *, char *, int));
extern ARRAY *array_from_string PARAMS((char *, char *));
extern char *array_to_kvpair (ARRAY *, int);
extern char *array_to_assign (ARRAY *, int);
extern char *array_to_string (ARRAY *, char *, int);
extern ARRAY *array_from_string (char *, char *);
/* Flags for array_shift */
#define AS_DISPOSE 0x01
@@ -137,8 +137,8 @@ extern ARRAY *array_from_string PARAMS((char *, char *));
#define element_forw(ae) ((ae)->next)
#define element_back(ae) ((ae)->prev)
#else
extern arrayind_t element_forw PARAMS((ARRAY *, arrayind_t));
extern arrayind_t element_back PARAMS((ARRAY *, arrayind_t));
extern arrayind_t element_forw (ARRAY *, arrayind_t);
extern arrayind_t element_back (ARRAY *, arrayind_t);
#endif
@@ -177,6 +177,6 @@ extern arrayind_t element_back PARAMS((ARRAY *, arrayind_t));
#define ALL_ELEMENT_SUB(c) ((c) == '@' || (c) == '*')
/* In eval.c, but uses ARRAY * */
extern int execute_array_command PARAMS((ARRAY *, void *));
extern int execute_array_command (ARRAY *, void *);
#endif /* _ARRAY_H_ */