diff options
author | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2012-04-01 17:07:45 -0400 |
---|---|---|
committer | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2012-04-01 17:07:45 -0400 |
commit | 3438b2129cd933e430349a6bd66a1933071c92c2 (patch) | |
tree | 13846c11f27fd037e4e3025cfbd9601c4ba8f975 /eval.c | |
parent | 4d26f7436c0acf8617c4736f110f06e2f4531bbd (diff) | |
download | egawk-3438b2129cd933e430349a6bd66a1933071c92c2.tar.gz egawk-3438b2129cd933e430349a6bd66a1933071c92c2.tar.bz2 egawk-3438b2129cd933e430349a6bd66a1933071c92c2.zip |
Update ERRNO API.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 22 |
1 files changed, 17 insertions, 5 deletions
@@ -988,10 +988,10 @@ set_TEXTDOMAIN() */ } -/* update_ERRNO_saved --- update the value of ERRNO based on argument */ +/* update_ERRNO_int --- update the value of ERRNO based on argument */ void -update_ERRNO_saved(int errcode) +update_ERRNO_int(int errcode) { char *cp; @@ -1004,12 +1004,24 @@ update_ERRNO_saved(int errcode) ERRNO_node->var_value = make_string(cp, strlen(cp)); } -/* update_ERRNO --- update the value of ERRNO based on errno */ +/* update_ERRNO_string --- update ERRNO with optionally translated string */ void -update_ERRNO() +update_ERRNO_string(const char *string, enum errno_translate translate) { - update_ERRNO_saved(errno); + if (translate == TRANSLATE) + string = gettext(string); + unref(ERRNO_node->var_value); + ERRNO_node->var_value = make_string(string, strlen(string)); +} + +/* unset_ERRNO --- eliminate the value of ERRNO */ + +void +unset_ERRNO(void) +{ + unref(ERRNO_node->var_value); + ERRNO_node->var_value = Nnull_string; } /* update_NR --- update the value of NR */ |