that we use IS_ASYNC to determine whether to give the terminal
back to the shell's process group.
From a report by Grisha Levit <grishalevit@gmail.com>
+
+bashline.c
+ - command_word_completion_function: if we have a glob pattern that
+ expands to multiple words, dispose of the list before returning NULL.
+ From a report by Grisha Levit <grishalevit@gmail.com>
+
+variables.c
+ - makunbound: if we're unsetting a local variable, preserve the export
+ attribute even if the variable's not in the temporary environment
+ Tentative fix, compatible with other POSIX shells (except the BSD
+ variants of ash)
+
+ 7/12
+ ----
+lib/sh/unicode.c
+ - include <langinfo.h> if HAVE_LANGINFO_CODESET is defined, use
+ nl_langinfo (CODESET) if HAVE_LANGINFO_CODESET is define, since
+ we no longer check for nl_langinfo. This is what locale.c does.
+
tests/assoc17.sub f
tests/assoc18.sub f
tests/assoc19.sub f
-`tests/attr.tests f
+tests/attr.tests f
tests/attr.right f
tests/attr1.sub f
tests/attr2.sub f
local_index = 0;
if (glob_matches[1] && rl_completion_type == TAB) /* multiple matches are bad */
- return ((char *)NULL);
+ {
+ strvec_dispose (glob_matches);
+ glob_matches = (char **)NULL;
+ return ((char *)NULL);
+ }
}
while (val = glob_matches[local_index++])
# include <iconv.h>
#endif
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+
#include <xmalloc.h>
#ifndef USHORT_MAX
{
#if HAVE_LOCALE_CHARSET
charset = locale_charset ();
-#elif HAVE_NL_LANGINFO
+#elif HAVE_LANGINFO_CODESET
charset = nl_langinfo (CODESET);
#else
charset = stub_charset ();
FREE (nameref_cell (old_var));
else
FREE (value_cell (old_var));
+#if 0
/* Reset the attributes. Preserve the export attribute if the variable
came from a temporary environment. Make sure it stays local, and
make it invisible. */
old_var->attributes = (exported_p (old_var) && tempvar_p (old_var)) ? att_exported : 0;
+#else /* TAG:bash-5.3 look at this again */
+ /* Reset the attributes, but preserve the export attribute.
+ Make sure it stays local, and make it invisible. */
+ old_var->attributes = exported_p (old_var) ? att_exported : 0;
+#endif
VSETATTR (old_var, att_local);
VSETATTR (old_var, att_invisible);
var_setvalue (old_var, (char *)NULL);