limit alias characters to what POSIX requires
This commit is contained in:
parent
bcde17a8fc
commit
e00f693cba
10
funcs.c
10
funcs.c
|
@ -38,7 +38,7 @@
|
|||
#endif
|
||||
#endif
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.334 2017/04/02 16:47:41 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.335 2017/04/06 00:53:33 tg Exp $");
|
||||
|
||||
#if HAVE_KILLPG
|
||||
/*
|
||||
|
@ -839,6 +839,14 @@ c_alias(const char **wp)
|
|||
strndupx(xalias, alias, val++ - alias, ATEMP);
|
||||
alias = xalias;
|
||||
}
|
||||
newval = alias;
|
||||
while (*newval)
|
||||
if (!ksh_isalias(*newval)) {
|
||||
bi_errorf(Tinvname, alias, Talias);
|
||||
afree(xalias, ATEMP);
|
||||
return (1);
|
||||
} else
|
||||
++newval;
|
||||
h = hash(alias);
|
||||
if (val == NULL && !tflag && !xflag) {
|
||||
ap = ktsearch(t, alias, h);
|
||||
|
|
6
mksh.1
6
mksh.1
|
@ -1,4 +1,4 @@
|
|||
.\" $MirOS: src/bin/mksh/mksh.1,v 1.437 2017/04/03 02:10:49 tg Exp $
|
||||
.\" $MirOS: src/bin/mksh/mksh.1,v 1.438 2017/04/06 00:53:33 tg Exp $
|
||||
.\" $OpenBSD: ksh.1,v 1.160 2015/07/04 13:27:04 feinerer Exp $
|
||||
.\"-
|
||||
.\" Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
||||
|
@ -76,7 +76,7 @@
|
|||
.\" with -mandoc, it might implement .Mx itself, but we want to
|
||||
.\" use our own definition. And .Dd must come *first*, always.
|
||||
.\"
|
||||
.Dd $Mdocdate: April 3 2017 $
|
||||
.Dd $Mdocdate: April 6 2017 $
|
||||
.\"
|
||||
.\" Check which macro package we use, and do other -mdoc setup.
|
||||
.\"
|
||||
|
@ -3063,6 +3063,8 @@ For any name without a value, the existing alias is listed.
|
|||
Any name with a value defines an alias (see
|
||||
.Sx Aliases
|
||||
above).
|
||||
.Li \&[A\-Za\-z0\-9_!%,@]
|
||||
are valid in names.
|
||||
.Pp
|
||||
When listing aliases, one of two formats is used.
|
||||
Normally, aliases are listed as
|
||||
|
|
4
sh.h
4
sh.h
|
@ -175,7 +175,7 @@
|
|||
#endif
|
||||
|
||||
#ifdef EXTERN
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.803 2017/04/06 00:41:42 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.804 2017/04/06 00:53:35 tg Exp $");
|
||||
#endif
|
||||
#define MKSH_VERSION "R54 2017/04/02"
|
||||
|
||||
|
@ -1276,6 +1276,8 @@ extern unsigned char chtypes[];
|
|||
#define ctype(c, t) tobool(chtypes[(unsigned char)(c)] & (t))
|
||||
#define ord(c) ((int)(unsigned char)(c))
|
||||
#define ksh_issubop2(c) tobool((c) == ord('#') || (c) == ord('%'))
|
||||
#define ksh_isalias(c) (ctype((c), C_ALPHX | C_DIGIT) || (c) == ord('!') || \
|
||||
(c) == ord('%') || (c) == ord(',') || (c) == ord('@'))
|
||||
#define ksh_isalpha(c) (ctype((c), C_ALPHX) && (c) != ord('_'))
|
||||
#define ksh_isalphx(c) ctype((c), C_ALPHX)
|
||||
#define ksh_isalnux(c) ctype((c), C_ALPHX | C_DIGIT)
|
||||
|
|
Loading…
Reference in New Issue