summaryrefslogtreecommitdiff
path: root/docs/special_vars.txt
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2000-04-26 08:11:21 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2000-04-26 08:11:21 +0000
commit94b37a898bd306c66ef3cc7b98832f983532cbac (patch)
tree76205495b9ee0e88431f5819b9258655d035fa02 /docs/special_vars.txt
parentd29ca0b107a5b6abb4eadd036f37acd33bb72ed0 (diff)
downloadirssi-94b37a898bd306c66ef3cc7b98832f983532cbac.zip
and the docs
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@173 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'docs/special_vars.txt')
-rw-r--r--docs/special_vars.txt99
1 files changed, 99 insertions, 0 deletions
diff --git a/docs/special_vars.txt b/docs/special_vars.txt
new file mode 100644
index 00000000..4890b55a
--- /dev/null
+++ b/docs/special_vars.txt
@@ -0,0 +1,99 @@
+NOTE: This is just a slightly modified file taken from EPIC's help.
+'!' at start of the line means that the feature doesn't work yet..
+
+Special Variables and Expandos
+
+Irssi supports a number of reserved, dynamic variables, sometimes
+referred to as expandos. They are special in that the client is
+constantly updating their values automatically. There are also
+numerous variable modifiers available.
+
+ Modifier Description
+ $variable A normal variable, expanding to the first match of:
+ | 1) an internal SET variable
+ | 2) an environment variable
+ $[num]variable Expands to the variables value, with 'num' width. If
+ | the number is negative, the value is right-aligned.
+ | The value is padded to meet the width with the
+ | character given after number (default is space).
+ | The value is truncated to specified width unless
+ | '!' character precedes the number.
+ $#variable Expands to the number of words in $variable. If $variable
+ | is omitted, it assumes $*
+ $@variable Expands to the number of characters in $variable. if
+ | $variable is omitted, it assumes $*
+ $($subvariable) This is somewhat similar to a pointer, in that the
+ | value of $subvar is taken as the name of the
+ | variable to expand to. Nesting is allowed.
+ ${expression} Permits the value to be embedded in another string
+ | unambiguously.
+ $!history! Expands to a matching entry in the client's command
+ | history, wildcards allowed.
+
+Whenever an alias is called, these expandos are set to the arguments passed
+to it. If none of these expandos are used in the alias, or the $() form
+shown above, any arguments passed will automatically be appended to the last
+command in the alias.
+
+ Expando Description
+ $* expands to all arguments passed to an alias
+ $n expands to argument 'n' passed to an alias (counting from zero)
+ $n-m expands to arguments 'n' through 'm' passed to an alias
+ $n- expands to all arguments from 'n' on passed to an alias
+ $-m expands to all arguments up to 'm' passed to an alias
+ $~ expands to the last argument passed to an alias
+
+These variables are set and updated dynamically by the client. The case of
+$A .. $Z is important.
+
+ Variable Description
+ $, last person who sent you a MSG
+ $. last person to whom you sent a MSG
+ $: last person to join a channel you are on
+ $; last person to send a public message to a channel you are on
+ $A text of your AWAY message, if any
+ $B body of last MSG you sent
+ $C current channel
+ $D last person that NOTIFY detected a signon for
+ $E idle time
+ $F time client was started, $time() format
+ $H current server numeric being processed
+ $I channel you were last INVITEd to
+ $J client version text string
+ $K current value of CMDCHARS
+ $L current contents of the input line
+ $M modes of current channel, if any
+ $N current nickname
+ $O value of STATUS_OPER if you are an irc operator
+ $P if you are a channel operator in $C, expands to a '@'
+ $Q nickname of whomever you are QUERYing
+ $R version of current server
+ $S current server name
+ $T target of current input (channel or QUERY nickname)
+! $U value of cutbuffer
+ $V client release date (numeric version string)
+ $W current working directory
+ $X your /userhost $N address (user@host)
+ $Y value of REALNAME
+ $Z time of day (hh:mm)
+ $$ a literal '$'
+
+For example, assume you have the following alias:
+
+ alias blah msg $D Hi there!
+
+If /blah is passed any arguments, they will automatically be appended to the
+MSG text. For example:
+
+ /blah oops /* command as entered */
+ "Hi there! oops" /* text sent to $D */
+
+Another useful form is ${}. In general, variables can be embedded inside
+strings without problems, assuming the surrounding text could not be
+misinterpreted as part of the variable name. This form guarantees that
+surrounding text will not affect the expression's return value.
+
+ /eval echo foo$Nfoo /* breaks, looks for $nfoo */
+ /eval echo foo${N}foo /* ${N} returns current nickname */
+ fooYourNickfoo /* returned by above command */
+