diff options
author | Dmitry Chagin <dchagin@FreeBSD.org> | 2023-01-29 20:46:19 +0000 |
---|---|---|
committer | Dmitry Chagin <dchagin@FreeBSD.org> | 2023-01-29 20:46:19 +0000 |
commit | 143ef44f06822f82a8358d4c02f07102d963fe5f (patch) | |
tree | f9080b8a265dd926053ee7ae187e8fa46f3fb5e0 /sh.set.c | |
parent | 174d8b60324d7e8754709f7155e13ca95220b48c (diff) |
Diffstat (limited to 'sh.set.c')
-rw-r--r-- | sh.set.c | 25 |
1 files changed, 23 insertions, 2 deletions
@@ -726,8 +726,11 @@ setq(const Char *name, Char **vec, struct varent *p, int flags) while ((c = p->v_link[f]) != 0) { if ((f = *name - *c->v_name) == 0 && (f = Strcmp(name, c->v_name)) == 0) { - if (c->v_flags & VAR_READONLY) + if (c->v_flags & VAR_READONLY) { + if (flags & VAR_NOERROR) + return; stderror(ERR_READONLY|ERR_NAME, c->v_name); + } blkfree(c->vec); c->v_flags = flags; trim(c->vec = vec); @@ -1123,7 +1126,7 @@ x: cleanup_until(&old_pintr_disabled); } len = blklen(p->vec); - xprintf("%S\t", p->v_name); + xprintf("%" TCSH_S "\t", p->v_name); if (len != 1) xputchar('('); blkpr(p->vec); @@ -1350,3 +1353,21 @@ update_wordchars(void) word_chars = (VImode ? STR_WORD_CHARS_VI : STR_WORD_CHARS); } } + +void +setstrstatus(Char *str) +{ + setv(STRstatus, str, VAR_READWRITE|VAR_NOERROR); +} + +void +setstatus(int n) +{ + setcopy(STRstatus, n ? STR1 : STR0, VAR_READWRITE|VAR_NOERROR); +} + +int +getstatus(void) +{ + return getn(varval(STRstatus)); +} |