#define Q_DOLBRACE 0x80
/* Flag values controlling how assignment statements are treated. */
-#define ASS_APPEND 0x01
-#define ASS_MKLOCAL 0x02
-#define ASS_MKASSOC 0x04
+#define ASS_APPEND 0x0001
+#define ASS_MKLOCAL 0x0002
+#define ASS_MKASSOC 0x0004
+#define ASS_MKGLOBAL 0x0008 /* force global assignment */
+#define ASS_NAMEREF 0x0010 /* assigning to nameref variable */
/* Flags for the string extraction functions. */
#define SX_NOALLOC 0x0001 /* just skip; don't return substring */
/* Extract the <( or >( construct in STRING, and return a new string.
Start extracting at (SINDEX) as if we had just seen "<(".
Make (SINDEX) get the position just after the matching ")". */
-extern char *extract_process_subst __P((char *, char *, int *));
+extern char *extract_process_subst __P((char *, char *, int *, int));
#endif /* PROCESS_SUBSTITUTION */
/* Extract the name of the variable to bind to from the assignment string. */
#define SD_NOQUOTEDELIM 0x04 /* don't let single or double quotes act as delimiters */
#define SD_NOSKIPCMD 0x08 /* don't skip over $(, <(, or >( command/process substitution */
#define SD_EXTGLOB 0x10 /* skip over extended globbing patterns if appropriate */
+#define SD_IGNOREQUOTE 0x20 /* single and double quotes are not special */
+#define SD_GLOB 0x40 /* skip over glob patterns like bracket expressions */
extern int skip_to_delim __P((char *, int, char *, int));