mirror of
https://github.com/irssi/irssi.git
synced 2024-11-03 04:27:19 -05:00
Improve docs of special_vars wrt. to escaping rules in /alias
This commit is contained in:
parent
2e6f16c0fa
commit
70e49f673e
@ -114,3 +114,19 @@ surrounding text will not affect the expression's return value.
|
||||
/eval echo foo${N}foo /* ${N} returns current nickname */
|
||||
fooYourNickfoo /* returned by above command */
|
||||
|
||||
When writing an alias containing a /script exec, special consideration has to be
|
||||
taken to $vars and statement delimiters, ie. ;
|
||||
/alias tries to evaluate all $vars as expandos, which would mean that what you
|
||||
pass on to /script exec isn't necessarily what you intended.
|
||||
Compare:
|
||||
|
||||
1. /alias al1 script exec my $var = "Hello"; print $var;
|
||||
2. /alias al2 script exec my $$var = "Hello"\; print $$var;
|
||||
3. /alias al3 script exec my \$var = "Hello"\; print \$var; (Same as nr 2)
|
||||
|
||||
In example nr 1 $var would be expanded to an empty string and ; would end
|
||||
the /script exec command, leaving print $var as a separate command to be run by
|
||||
irssi. In example 2 $$ is evaluated to a literal $ leaving a literal $var to be
|
||||
passed on to /script exec. The same goes for \; which is turned into a
|
||||
literal ; and thus is passed on to /script exec as a statement delimiter.
|
||||
This would mean print $$var is part of the /script exec being evaluated.
|
||||
|
Loading…
Reference in New Issue
Block a user