Lines Matching refs:var

61 convert_var_to_array (var)
62 SHELL_VAR *var;
67 oldval = value_cell (var);
72 FREE (value_cell (var));
73 var_setarray (var, array);
76 var->dynamic_value = (sh_var_value_func_t *)NULL;
77 var->assign_func = (sh_var_assign_func_t *)NULL;
79 INVALIDATE_EXPORTSTR (var);
80 if (exported_p (var))
83 VSETATTR (var, att_array);
84 VUNSETATTR (var, att_invisible);
86 return var;
92 convert_var_to_assoc (var)
93 SHELL_VAR *var;
98 oldval = value_cell (var);
103 FREE (value_cell (var));
104 var_setassoc (var, hash);
107 var->dynamic_value = (sh_var_value_func_t *)NULL;
108 var->assign_func = (sh_var_assign_func_t *)NULL;
110 INVALIDATE_EXPORTSTR (var);
111 if (exported_p (var))
114 VSETATTR (var, att_assoc);
115 VUNSETATTR (var, att_invisible);
117 return var;
299 SHELL_VAR *var;
301 var = find_variable (name);
303 if (var == 0)
304 var = (flags & 2) ? make_new_assoc_variable (name) : make_new_array_variable (name);
305 else if ((flags & 1) && (readonly_p (var) || noassign_p (var)))
307 if (readonly_p (var))
311 else if ((flags & 2) && array_p (var))
316 else if (array_p (var) == 0 && assoc_p (var) == 0)
317 var = convert_var_to_array (var);
319 return (var);
329 SHELL_VAR *var;
336 var = find_or_make_array_variable (name, vflags);
337 if (var == 0)
340 return (assign_array_var_from_string (var, value, flags));
346 assign_array_var_from_word_list (var, list, flags)
347 SHELL_VAR *var;
355 a = array_cell (var);
359 if (var->assign_func)
360 (*var->assign_func) (var, l->word->word, i, 0);
363 return var;
367 expand_compound_array_assignment (var, value, flags)
368 SHELL_VAR *var;
411 assign_compound_array_list (var, nlist, flags)
412 SHELL_VAR *var;
424 a = (var && array_p (var)) ? array_cell (var) : (ARRAY *)0;
425 h = (var && assoc_p (var)) ? assoc_cell (var) : (HASH_TABLE *)0;
434 if (array_p (var) && a)
436 else if (assoc_p (var) && h)
455 if (assoc_p (var))
460 nval = make_variable_value (var, w, flags);
461 if (var->assign_func)
462 (*var->assign_func) (var, nval, last_ind, 0);
478 if (assoc_p (var))
485 if (array_p (var))
496 else if (assoc_p (var))
515 else if (assoc_p (var))
517 report_error (_("%s: %s: must use subscript when assigning associative array"), var->name, w);
526 if (integer_p (var))
528 bind_array_var_internal (var, ind, akey, val, iflags);
536 assign_array_var_from_string (var, value, flags)
537 SHELL_VAR *var;
544 return var;
546 nlist = expand_compound_array_assignment (var, value, flags);
547 assign_compound_array_list (var, nlist, flags);
551 return (var);
613 unbind_array_element (var, sub)
614 SHELL_VAR *var;
625 builtin_error ("%s[%s: %s", var->name, sub, _(bash_badsub_errmsg));
632 unbind_variable (var->name);
636 if (assoc_p (var))
644 assoc_remove (assoc_cell (var), akey);
654 ae = array_remove (array_cell (var), ind);
665 print_array_assignment (var, quoted)
666 SHELL_VAR *var;
671 vstr = array_to_assign (array_cell (var), quoted);
674 printf ("%s=%s\n", var->name, quoted ? "'()'" : "()");
677 printf ("%s=%s\n", var->name, vstr);
685 print_assoc_assignment (var, quoted)
686 SHELL_VAR *var;
691 vstr = assoc_to_assign (assoc_cell (var), quoted);
694 printf ("%s=%s\n", var->name, quoted ? "'()'" : "()");
697 printf ("%s=%s\n", var->name, vstr);
818 SHELL_VAR *var;
823 var = find_variable (t);
826 return (var == 0 || invisible_p (var)) ? (SHELL_VAR *)0 : var;
844 SHELL_VAR *var;
846 var = array_variable_part (s, &t, &len);
851 if (var == 0)
868 else if (var == 0 || value_cell (var) == 0)
870 else if (array_p (var) == 0 && assoc_p (var) == 0)
871 l = add_string_to_list (value_cell (var), (WORD_LIST *)NULL);
872 else if (assoc_p (var))
874 l = assoc_to_word_list (assoc_cell (var));
880 l = array_to_word_list (array_cell (var));
900 if (var == 0 || array_p (var) || assoc_p (var) == 0)
906 if (var)
907 err_badarraysub (var->name);
917 else if (assoc_p (var))
926 if (var == 0)
928 if (array_p (var) == 0 && assoc_p (var) == 0)
929 return (ind == 0 ? value_cell (var) : (char *)NULL);
930 else if (assoc_p (var))
931 retval = assoc_reference (assoc_cell (var), akey);
933 retval = array_reference (array_cell (var), ind);
969 SHELL_VAR *var;
971 var = array_variable_part (s, &t, &len);
974 if (var == 0 || ALL_ELEMENT_SUB (t[0]) == 0 || t[1] != ']')
977 if (array_p (var) == 0 && assoc_p (var) == 0)
979 else if (assoc_p (var))
980 l = assoc_keys_to_word_list (assoc_cell (var));
982 l = array_keys_to_word_list (array_cell (var));