mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-27 15:43:18 +02:00
Bash-5.3-alpha release
This commit is contained in:
@@ -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_ */
|
||||
|
||||
Reference in New Issue
Block a user