allow : and [ in alias names (but forbid [[ explicitly)
to make 'enable' completely work again
This commit is contained in:
parent
8db6d22188
commit
9db3cb57b9
4
funcs.c
4
funcs.c
@ -38,7 +38,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.346 2017/04/27 23:18:05 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.347 2017/04/27 23:33:18 tg Exp $");
|
||||
|
||||
#if HAVE_KILLPG
|
||||
/*
|
||||
@ -747,6 +747,8 @@ valid_alias_name(const char *cp)
|
||||
{
|
||||
if (ord(*cp) == ord('-'))
|
||||
return (false);
|
||||
if (ord(cp[0]) == ord('[') && ord(cp[1]) == ord('[') && !cp[2])
|
||||
return (false);
|
||||
while (*cp)
|
||||
if (ctype(*cp, C_ALIAS))
|
||||
++cp;
|
||||
|
10
mksh.1
10
mksh.1
@ -1,4 +1,4 @@
|
||||
.\" $MirOS: src/bin/mksh/mksh.1,v 1.444 2017/04/21 19:08:18 tg Exp $
|
||||
.\" $MirOS: src/bin/mksh/mksh.1,v 1.445 2017/04/27 23:33:19 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 21 2017 $
|
||||
.Dd $Mdocdate: April 27 2017 $
|
||||
.\"
|
||||
.\" Check which macro package we use, and do other -mdoc setup.
|
||||
.\"
|
||||
@ -3069,8 +3069,10 @@ 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 except they may not begin with a hyphen-minus.
|
||||
.Li \&[][A\-Za\-z0\-9_!%,.@:\-]
|
||||
are valid in names, except they may not begin with a hyphen-minus, and
|
||||
.Ic \&[[
|
||||
is not a valid alias name.
|
||||
.Pp
|
||||
When listing aliases, one of two formats is used.
|
||||
Normally, aliases are listed as
|
||||
|
14
sh.h
14
sh.h
@ -175,7 +175,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef EXTERN
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.818 2017/04/27 23:12:48 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.819 2017/04/27 23:33:20 tg Exp $");
|
||||
#endif
|
||||
#define MKSH_VERSION "R55 2017/04/27"
|
||||
|
||||
@ -1319,7 +1319,7 @@ EXTERN bool really_exit;
|
||||
#define CiCOLON BIT(26) /* : */
|
||||
#define CiEQUAL BIT(27) /* = */
|
||||
#define CiQUEST BIT(28) /* ? */
|
||||
#define CiCBRK BIT(29) /* ] */
|
||||
#define CiBRACK BIT(29) /* ] */
|
||||
#define CiUNDER BIT(30) /* _ */
|
||||
#define CiGRAVE BIT(31) /* ` */
|
||||
|
||||
@ -1332,8 +1332,8 @@ EXTERN char ifs0;
|
||||
|
||||
/* external types */
|
||||
|
||||
/* !%,-.0‥9@A‥Z_a‥z valid characters in alias name */
|
||||
#define C_ALIAS (CiALIAS | CiDIGIT | CiLOWER | CiMINUS | CiOCTAL | CiPERCT | CiUNDER | CiUPPER)
|
||||
/* !%,-.0‥9:@A‥Z[]_a‥z valid characters in alias names */
|
||||
#define C_ALIAS (CiALIAS | CiBRACK | CiCOLON | CiDIGIT | CiLOWER | CiMINUS | CiOCTAL | CiPERCT | CiUNDER | CiUPPER)
|
||||
/* 0‥9A‥Za‥z alphanumerical */
|
||||
#define C_ALNUM (CiDIGIT | CiLOWER | CiOCTAL | CiUPPER)
|
||||
/* 0‥9A‥Z_a‥z alphanumerical plus underscore (“word character”) */
|
||||
@ -1369,7 +1369,7 @@ EXTERN char ifs0;
|
||||
/* a‥z lowercase letters */
|
||||
#define C_LOWER CiLOWER
|
||||
/* not alnux or dollar separator for motion */
|
||||
#define C_MFS (CiALIAS | CiANGLE | CiCBRK | CiCNTRL | CiCOLON | CiCR | CiCURLY | CiEQUAL | CiGRAVE | CiHASH | CiMINUS | CiNL | CiNUL | CiPERCT | CiPLUS | CiQC | CiQCL | CiQCM | CiQCX | CiQUEST | CiSP | CiSPX | CiTAB)
|
||||
#define C_MFS (CiALIAS | CiANGLE | CiBRACK | CiCNTRL | CiCOLON | CiCR | CiCURLY | CiEQUAL | CiGRAVE | CiHASH | CiMINUS | CiNL | CiNUL | CiPERCT | CiPLUS | CiQC | CiQCL | CiQCM | CiQCX | CiQUEST | CiSP | CiSPX | CiTAB)
|
||||
/* 0‥7 octal digit */
|
||||
#define C_OCTAL CiOCTAL
|
||||
/* \x20!*+?@ pattern magical operator */
|
||||
@ -1377,9 +1377,9 @@ EXTERN char ifs0;
|
||||
/* \x20‥~ POSIX printable characters (graph plus space) */
|
||||
#define C_PRINT (C_GRAPH | CiSP)
|
||||
/* !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ POSIX punctuation */
|
||||
#define C_PUNCT (CiALIAS | CiANGLE | CiCBRK | CiCOLON | CiCURLY | CiEQUAL | CiGRAVE | CiHASH | CiMINUS | CiPERCT | CiPLUS | CiQC | CiQCL | CiQCM | CiQCX | CiQUEST | CiSS | CiUNDER)
|
||||
#define C_PUNCT (CiALIAS | CiANGLE | CiBRACK | CiCOLON | CiCURLY | CiEQUAL | CiGRAVE | CiHASH | CiMINUS | CiPERCT | CiPLUS | CiQC | CiQCL | CiQCM | CiQCX | CiQUEST | CiSS | CiUNDER)
|
||||
/* \x09\x0A"#$&'()*;<=>?[\\]`| characters requiring quoting, minus space */
|
||||
#define C_QUOTE (CiANGLE | CiCBRK | CiEQUAL | CiGRAVE | CiHASH | CiNL | CiQC | CiQCL | CiQCX | CiQUEST | CiSS | CiTAB)
|
||||
#define C_QUOTE (CiANGLE | CiBRACK | CiEQUAL | CiGRAVE | CiHASH | CiNL | CiQC | CiQCL | CiQCX | CiQUEST | CiSS | CiTAB)
|
||||
/* 0‥9A‥Fa‥f hexadecimal digit */
|
||||
#define C_SEDEC (CiDIGIT | CiHEXLT | CiOCTAL)
|
||||
/* \x09‥\x0D\x20 POSIX space class */
|
||||
|
6
shf.c
6
shf.c
@ -25,7 +25,7 @@
|
||||
|
||||
#include "sh.h"
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/shf.c,v 1.83 2017/04/27 23:12:49 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/shf.c,v 1.84 2017/04/27 23:33:22 tg Exp $");
|
||||
|
||||
/* flags to shf_emptybuf() */
|
||||
#define EB_READSW 0x01 /* about to switch to reading */
|
||||
@ -1191,8 +1191,8 @@ const uint32_t tpl_ctypes[128] = {
|
||||
/* 0x50 */
|
||||
CiUPPER, CiUPPER, CiUPPER, CiUPPER,
|
||||
CiUPPER, CiUPPER, CiUPPER, CiUPPER,
|
||||
CiUPPER, CiUPPER, CiUPPER, CiQCX,
|
||||
CiQCX, CiCBRK, CiQCM, CiUNDER,
|
||||
CiUPPER, CiUPPER, CiUPPER, CiQCX | CiBRACK,
|
||||
CiQCX, CiBRACK, CiQCM, CiUNDER,
|
||||
/* 0x60 */
|
||||
CiGRAVE, CiLOWER | CiHEXLT,
|
||||
CiLOWER | CiHEXLT, CiLOWER | CiHEXLT,
|
||||
|
Loading…
x
Reference in New Issue
Block a user