commit bash-20051123 snapshot
[platform/upstream/bash.git] / variables.c.diff
1 *** ../bash-3.0/variables.c     Sun Jul  4 13:57:26 2004
2 --- variables.c Wed Aug  4 15:28:04 2004
3 ***************
4 *** 1420,1428 ****
5   
6   #  if defined (DEBUGGER)
7 !   v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, (att_invisible|att_noassign));
8 !   v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, (att_invisible|att_noassign));
9   #  endif /* DEBUGGER */
10 !   v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, (att_invisible|att_noassign));
11 !   v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, (att_invisible|att_noassign));
12   #endif
13   
14 --- 1420,1428 ----
15   
16   #  if defined (DEBUGGER)
17 !   v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, att_noassign);
18 !   v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, att_noassign);
19   #  endif /* DEBUGGER */
20 !   v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, att_noassign);
21 !   v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign);
22   #endif
23   
24 ***************
25 *** 1600,1604 ****
26     old_var = find_variable (name);
27     if (old_var && local_p (old_var) && old_var->context == variable_context)
28 !     return (old_var);
29   
30     was_tmpvar = old_var && tempvar_p (old_var);
31 --- 1600,1607 ----
32     old_var = find_variable (name);
33     if (old_var && local_p (old_var) && old_var->context == variable_context)
34 !     {
35 !       VUNSETATTR (old_var, att_invisible);
36 !       return (old_var);
37 !     }
38   
39     was_tmpvar = old_var && tempvar_p (old_var);
40 ***************
41 *** 2303,2306 ****
42 --- 2306,2315 ----
43     if (old_var && local_p (old_var) && variable_context == old_var->context)
44       {
45 + #if defined (ARRAY_VARS)
46 +       if (array_p (old_var))
47 +       array_dispose (array_cell (old_var));
48 +       else
49 + #endif
50 +       FREE (value_cell (old_var));
51         /* Reset the attributes.  Preserve the export attribute if the variable
52            came from a temporary environment.  Make sure it stays local, and
53 ***************
54 *** 2309,2313 ****
55         VSETATTR (old_var, att_local);
56         VSETATTR (old_var, att_invisible);
57 -       FREE (value_cell (old_var));
58         var_setvalue (old_var, (char *)NULL);
59         INVALIDATE_EXPORTSTR (old_var);
60 --- 2318,2321 ----
61 ***************
62 *** 3647,3650 ****
63 --- 3655,3659 ----
64     { "LC_MESSAGES", sv_locale },
65     { "LC_NUMERIC", sv_locale },
66 +   { "LC_TIME", sv_locale },
67   
68     { "MAIL", sv_mail },