From 2529c59c44b27dbf48f639af71827c866c2cbb8a Mon Sep 17 00:00:00 2001 From: "docelic@crystallabs.io" Date: Wed, 8 May 2019 18:45:04 +0000 Subject: [PATCH] Improve defining aliases with = or ' ' FossilOrigin-Name: 4f4679531775a27e628d632735bd14150df79ae48654646499313d1caf75cefb --- shelldap | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/shelldap b/shelldap index 16453c9..ed81928 100755 --- a/shelldap +++ b/shelldap @@ -1596,18 +1596,19 @@ sub run_alias unless( $cmd_args) { print "alias: $alias: not found\n"; } else { - print "alias $alias=${\( join ', ', map {\"'$_'\"} @{$cmd_args})}\n"; + print "alias $alias=${\( join ' ', map { $_=~ /\s/ ? \"'$_'\" : $_} @{$cmd_args})}\n"; } return # There is argument with =, so the line is a new alias definition } else { - my($alias, $command) = ($cmd_alias =~ m/^(\S+?)[=\s]?(.*)$/); + my($alias, $alias2, $command) = ($cmd_alias =~ m/^([a-zA-Z0-9_-]+)$|^(\S+?)[\=\s]+(.+)$/); + $alias = $alias2 if $alias2; unless( $alias) { print "Invalid syntax.\n"; return } - $command = $cmd_map{$command}[0] if $cmd_map{$command} and $cmd_map{$command}[0]; + $command = $cmd_map{$command}[0] if $command and $cmd_map{$command} and $cmd_map{$command}[0]; $conf->{alias}{$alias} = [ $command ? $command : (), @_ ]; } }