BEGIN { # parameter variables section = get_param_string("section") key = get_param_string("key") delimiter = get_param_string("delimiter") value = get_param_string("value") comment = get_param_string("comment") indentation = get_param_string("indentation") get_param_array("comment-sign", comment_signs) comment_sign = comment_signs[0] } function trim(var) { sub(/^[ \t]*/, "", var) sub(/[ \t]*$/, "", var) return var } function check_spaces(part) { return match(part, /^[ \t]*$/) == 1 } function get_param_string(name) { _paramfile = (ENVIRON["__object"] "/parameter/" name) if((getline tmp < _paramfile) > 0) { close(_paramfile) return tmp } else return "" } function get_param_array(name, arr) { _paramfile = (ENVIRON["__object"] "/parameter/" name) i=0 split("", arr) # portable clear, like `delete arr` while((getline tmp < _paramfile) > 0) { arr[i++] = tmp } close(_paramfile) } # print value function v_print() { spaces = "" for(i = 0; i < indentation; i++) spaces = (spaces " ") printf "%s%s%s%s%s", spaces, key, delimiter, value, ORS } # print commented value function v_print_commented() { spaces = "" for(i = 0; i < indentation; i++) spaces = (spaces " ") printf "%s%s%s%s%s%s", spaces, comment_sign, key, delimiter, value, ORS } # print comment function c_print() { spaces = "" for(i = 0; i < indentation; i++) spaces = (spaces " ") printf "%s%s%s%s%s", spaces, comment_sign, " ", comment, ORS }