diff --git a/share/doc/perl.md b/share/doc/perl.md
index b139c5bb..de253e6b 100644
--- a/share/doc/perl.md
+++ b/share/doc/perl.md
@@ -1,126 +1,88 @@
# HexChat Perl Interface
-(This file is currently not converted properly to Markdown format.)
-
Introduction
-This is the new Perl interface for X-Chat 2. However, due to changes in
-xchat's plugin code you will need xchat 2.0.8 or above to load this. Scripts
-written using the old interface will continue to work. If there are any
-problems, questions, comments or suggestions please email them to the address
-on the bottom of this page.
-
-
-Constants
-
-
-Priorities
-
-Xchat::PRI_HIGHEST
-
-Xchat::PRI_HIGH
-
-Xchat::PRI_NORM
-
-Xchat::PRI_LOW
-
-Xchat::PRI_LOWEST
-
-
-
-
-Return values
-
-Xchat::EAT_NONE
- pass the event along
-
-Xchat::EAT_XCHAT
- don't let xchat see this event
-
-Xchat::EAT_PLUGIN
- don't let other scripts and plugins see this event but xchat will still see it
-
-Xchat::EAT_ALL
- don't let anything else see this event
-
-
-
-
-Timer and fd hooks
-
-Xchat::KEEP
- keep the timer going or hook watching the handle
-
-Xchat::REMOVE
- remove the timer or hook watching the handle
-
-
-
-
-hook_fd flags
-
-Xchat::FD_READ
- invoke the callback when the handle is ready for reading
-
-Xchat::FD_WRITE
- invoke the callback when the handle is ready for writing
-
-Xchat::FD_EXCEPTION
- invoke the callback if an exception occurs
-
-Xchat::FD_NOTSOCKET
- indicate that the handle being hooked is not a socket
-
-
-
-
-Functions
-
-
-Xchat::register( $name, $version, [$description,[$callback]] )
-
-$name
- The name of this script
-
-$version
- This script's version
-
-$description
- A description for this script
-
-$callback
- This is a function that will be called when the is script
+## Introduction
+
+This is the Perl interface for HexChat. If there are any problems, questions, comments or
+suggestions please email them to the address on the bottom of this page.
+
+
+## Constants
+
+
+###Priorities
+
+ * **`Xchat::PRI_HIGHEST`**
+ * **`Xchat::PRI_HIGH`**
+ * **`Xchat::PRI_NORM`**
+ * **`Xchat::PRI_LOW`**
+ * **`Xchat::PRI_LOWEST`**
+
+
+### Return values
+
+ * **`Xchat::EAT_NONE`** - pass the event along
+ * **`Xchat::EAT_XCHAT`** - don't let HexChat see this event
+ * **`Xchat::EAT_PLUGIN`** - don't let other scripts and plugins see this event but xchat will still see it
+ * **`Xchat::EAT_ALL`** - don't let anything else see this event
+
+
+#### Timer and fd hooks
+
+ * **`Xchat::KEEP`** - keep the timer going or hook watching the handle
+ * **`Xchat::REMOVE`** - remove the timer or hook watching the handle
+
+
+### hook\_fd flags
+
+ * **`Xchat::FD_READ`** - invoke the callback when the handle is ready for reading
+ * **`Xchat::FD_WRITE`** - invoke the callback when the handle is ready for writing
+ * **`Xchat::FD_EXCEPTION`** - invoke the callback if an exception occurs
+ * **`Xchat::FD_NOTSOCKET`** - indicate that the handle being hooked is not a socket
+
+## Functions
+
+### `Xchat::register( $name, $version, [$description,[$callback]] )`
+
+ * `$name` - The name of this script
+ * `$version` - This script's version
+ * `$description` - A description for this script
+ * `$callback` - This is a function that will be called when the is script
unloaded. This can be either a reference to a
- function or an anonymous sub reference.
-
-
-This is the first thing to call in every script.
-
-
-Xchat::hook_server( $message, $callback, [\%options] )
-
-
-Xchat::hook_command( $command, $callback, [\%options] )
-
-
-Xchat::hook_print( $event,$callback, [\%options] )
-
-
-Xchat::hook_timer( $timeout,$callback, [\%options | $data] )
-
-
-Xchat::hook_fd( $handle, $callback, [ \%options ] )
-These functions can be to intercept various events.
-hook_server can be used to intercept any incoming message from the IRC server.
-hook_command can be used to intercept any command, if the command doesn't currently exist then a new one is created.
-hook_print can be used to intercept any of the events listed in Setttings->Advanced->Text Events
-hook_timer can be used to create a new timer
-
-$message
- server message to hook such as PRIVMSG
-
-$command
- command to intercept, without the leading /
-
-$event
- one of the events listed in Settings->Advanced->Text Events
-
-$timeout
- timeout in milliseconds
-
-$handle
- the I/O handle you want to monitor with hook_fd. This must be something that has a fileno. See perldoc -f fileno or fileno
-
-$callback
- callback function, this is called whenever
+ function or an anonymous sub reference.
+
+This is the first thing to call in every script.
+
+### `Xchat::hook_server( $message, $callback, [\%options] )`
+
+### `Xchat::hook_command( $command, $callback, [\%options] )`
+
+### `Xchat::hook_print( $event,$callback, [\%options] )`
+
+### `Xchat::hook_timer( $timeout,$callback, [\%options | $data] )`
+
+### `Xchat::hook_fd( $handle, $callback, [ \%options ] )`
+
+These functions can be to intercept various events.
+hook\_server can be used to intercept any incoming message from the IRC server.
+hook\_command can be used to intercept any command, if the command doesn't currently exist then a new one is created.
+hook\_print can be used to intercept any of the events listed in _Setttings_ `->` _Text Events_.
+hook\_timer can be used to create a new timer
+
+ * **`$message`** - server message to hook such as PRIVMSG
+ * **`$command`** - command to intercept, without the leading /
+ * **`$event`** - one of the events listed in _Settings_ `->` _Text Events_
+ * **`$timeout`** - timeout in milliseconds
+ * **`$handle`** - the I/O handle you want to monitor with hook\_fd. This must be something that has a fileno. See perldoc -f fileno or [fileno](http://perldoc.perl.org/functions/fileno.html)
+ * **`$callback`** - callback function, this is called whenever
the hooked event is trigged, the following are
the conditions that will trigger the different hooks.
This can be either a reference to a
- function or an anonymous sub reference.
-
-- \%options - a hash reference containing addional options for the hooks
-
-
-Valid keys for \%options:
+ function or an anonymous sub reference.
+ * **`\%options`** - a hash reference containing addional options for the hooks
+
+Valid keys for \%options:
+
data | Additional data that is to be associated with the
hook. For timer hooks this value can be provided either as
@@ -166,10 +128,13 @@ hook_timer can be used to create a new timer
Default is Xchat::FD_READ
|
-
-When callbacks are invoked
-Each of the hooks will be triggered at different times depending on the type
-of hook.
+
+
+#### When callbacks are invoked
+
+Each of the hooks will be triggered at different times depending on the type
+of hook.
+
Hook Type | When the callback will be invoked |
@@ -196,65 +161,65 @@ of hook.
See hook_fd flags section.
-
The value return from these hook functions can be passed to Xchat::unhook
-to remove the hook.
-
-
-Callback Arguments
-All callback functions will receive their arguments in @_
like every
-other Perl subroutine.
-
-Server and command callbacks
-
-$_[0]
- array reference containing the IRC message or command and
-arguments broken into words
-example:
-/command arg1 arg2 arg3
-$_[0][0]
- command
-$_[0][1]
- arg1
-$_[0][2]
- arg2
-$_[0][3]
- arg3
-
-$_[1]
- array reference containing the Nth word to the last word
-example:
-/command arg1 arg2 arg3
-$_[1][0]
- command arg1 arg2 arg3
-$_[1][1]
- arg1 arg2 arg3
-$_[1][2]
- arg2 arg3
-$_[1][3]
- arg3
-
-$_[2]
- the data that was passed to the hook function
-
-Print callbacks
-
-$_[0]
- array reference containing the values for the
- text event see Settings->Advanced->Text Events
-$_[1]
- the data that was passed to the hook function
-
-Timer callbacks
-
-$_[0]
- the data that was passed to the hook function
-
fd callbacks
-
-$_[0]
- the handle that was passed to hook_fd
-$_[1]
- flags indicating why the callback was called
-$_[2]
- the data that was passed to the hook function
-
-
-Callback return values
-All server, command and print callbacks should return one of
-the Xchat::EAT_*
constants.
-Timer callbacks can return Xchat::REMOVE to remove
-the timer or Xchat::KEEP to keep it going
-
-
-Miscellaneous Hook Related Information
-For server hooks, if $message
is "RAW LINE" then $cb
will be called for
-every IRC message than X-Chat receives.
-For command hooks if $command
is "" then $cb
will be called for
-messages entered by the user that is not a command.
-For print hooks besides those events listed in
-Settings->Advanced->Text Events, these additional events can be used.
+
+
+The value return from these hook functions can be passed to `Xchat::unhook` to remove the hook.
+
+
+#### Callback Arguments
+
+All callback functions will receive their arguments in `@_` like every other Perl subroutine.
+
+Server and command callbacks
+
+`$_[0]` - array reference containing the IRC message or command and arguments broken into words
+example:
+/command arg1 arg2 arg3
+`$_[0][0]` - command
+`$_[0][1]` - arg1
+`$_[0][2]` - arg2
+`$_[0][3]` - arg3
+
+`$_[1]` - array reference containing the Nth word to the last word
+example:
+/command arg1 arg2 arg3
+`$_[1][0]` - command arg1 arg2 arg3
+`$_[1][1]` - arg1 arg2 arg3
+`$_[1][2]` - arg2 arg3
+`$_[1][3]` - arg3
+
+`$_[2]` - the data that was passed to the hook function
+
+Print callbacks
+
+`$_[0]` - array reference containing the values for the text event, see _Settings_ `->` _Text Events_
+`$_[1]` - the data that was passed to the hook function
+
+Timer callbacks
+
+`$_[0]` - the data that was passed to the hook function
+
+fd callbacks
+
+`$_[0]` - the handle that was passed to hook\_fd
+`$_[1]` - flags indicating why the callback was called
+`$_[2]` - the data that was passed to the hook function
+
+
+#### Callback return values
+
+All server, command and print callbacks should return one of the `Xchat::EAT_*` constants.
+Timer callbacks can return `Xchat::REMOVE` to remove the timer or `Xchat::KEEP` to keep it going.
+
+
+#### Miscellaneous Hook Related Information
+
+For server hooks, if `$message` is "RAW LINE" then `$cb`> will be called for every IRC message that HexChat receives.
+
+For command hooks if `$command` is "" then `$cb` will be called for messages entered by the user that is not a command.
+
+For print hooks besides those events listed in _Settings_ `->` _Text Events_, these additional events can be used.
+
Event | Description |
@@ -284,126 +249,103 @@ Settings->Advanced->Text Events, these additional events can be used.
$_[0][3] - length of the string in $_[0][2]
-
-
-Xchat::unhook( $hook )
-
-$hook
- the hook that was previously returned by one of the Xchat::hook_*
functions
-
-
-This function is used to removed a hook previously added with one of
-the Xchat::hook_*
functions
-It returns the data that was passed to the Xchat::hook_*
function when
-the hook was added
-
-
-Xchat::print( $text | \@lines, [$channel,[$server]] )
-
-$text
- the text to print
-
-\@lines
- array reference containing lines of text to be printed
- all the elements will be joined together before printing
-
-$channel
- channel or tab with the given name where $text
- will be printed
-
-$server
- specifies that the text will be printed in a channel or tab
- that is associated with $server
-
-
-The first argument can either be a string or an array reference of strings.
-Either or both of $channel
and $server
can be undef.
-If called as Xchat::print( $text )
, it will always return true.
+
+
+
+### `Xchat::unhook( $hook )`
+
+
+ * **`$hook` - the hook that was previously returned by one of the `Xchat::hook_*` functions**
+
+This function is used to removed a hook previously added with one of the `Xchat::hook_*` functions.
+
+It returns the data that was passed to the `Xchat::hook_*` function when the hook was added.
+
+
+### `Xchat::print( $text | \@lines, [$channel,[$server]] )`
+
+ * **`$text` - the text to print**
+ * **`\@lines` - array reference containing lines of text to be printed all the elements will be joined together before printing**
+ * **`$channel` - channel or tab with the given name where `$text` will be printed**
+ * **`$server` - specifies that the text will be printed in a channel or tab that is associated with `$server`**
+
+The first argument can either be a string or an array reference of strings.
+Either or both of `$channel` and `$server` can be undef.
+
+If called as `Xchat::print( $text )`, it will always return true.
If called with either the channel or the channel and the server
specified then it will return true if a context is found and
false otherwise. The text will not be printed if the context
-is not found. The meaning of setting $channel
or $server
to
-undef is the same as
-find_context.
-
-
-Xchat::printf( $format, LIST )
-
-$format
- a format string, see "perldoc -f sprintf" for further detail
-
-- LIST - list of values for the format fields
-
-
-
-
-Xchat::command( $command | \@commands, [$channel,[$server]] )
-
-$command
- the command to execute, without the leading /
-
-\@commands
- array reference containing a list of commands to execute
-
-$channel
- channel or tab with the given name where $command
will be executed
-
-$server
- specifies that the command will be executed in a channel or tab that is associated with $server
-
-
-The first argument can either be a string or an array reference of strings.
-Either or both of $channel
and $server
can be undef.
-If called as Xchat::command( $command )
, it will always return true.
+is not found. The meaning of setting `$channel` or `$server` to
+undef is the same as find\_context.
+
+
+### `Xchat::printf( $format, LIST )`
+
+ * **`$format` - a format string, see "perldoc -f [sprintf](http://perldoc.perl.org/functions/sprintf.html)" for further details**
+ * **`LIST` - list of values for the format fields**
+
+
+### `Xchat::command( $command | \@commands, [$channel,[$server]] )`
+
+ * **`$command` - the command to execute, without the leading /**
+ * **`\@commands` - array reference containing a list of commands to execute**
+ * **`$channel` - channel or tab with the given name where `$command` will be executed**
+ * **`$server` - specifies that the command will be executed in a channel or tab that is associated with `$server`**
+
+The first argument can either be a string or an array reference of strings.
+Either or both of `$channel` and `$server` can be undef.
+
+If called as `Xchat::command( $command )`, it will always return true.
If called with either the channel or the channel and the server
specified then it will return true if a context is found and false
otherwise. The command will not be executed if the context is not found.
-The meaning of setting $channel
or $server
to undef is the same
-as find_context.
-
-
-Xchat::commandf( $format, LIST )
-
-$format
- a format string, see "perldoc -f sprintf" for further detail
-
-- LIST - list of values for the format fields
-
-
-
-
-Xchat::find_context( [$channel, [$server]] )
-
-$channel
- name of a channel
-
-$server
- name of a server
-
-
-Either or both of $channel
and $server can be undef. Calling
-Xchat::find_context()
is the same as calling
-Xchat::find_context( undef, undef)
and
-Xchat::find_context( $channel )
is
-the same as Xchat::find_context( $channel, undef )
.
-If $server
is undef, find any channel named $channel.
-If $channel
is undef, find the front most window
-or tab named $server
.If both $channel and
-$server
are undef, find the currently focused tab or window.
-Return the context found for one of the above situations or undef if such
-a context cannot be found.
-
-
-Xchat::get_context()
-Returns the current context.
-
-
-Xchat::set_context( $context | $channel,[$server] )
-
-$context
- context value as returned from get_context,find_context or one
- of the fields in the list of hashrefs returned by list_get
-
-$channel
- name of a channel you want to switch context to
-
-$server
- name of a server you want to switch context to
-
-
-See find_context for more details on $channel
and $server
.
-Returns true on success, false on failure
-
-
-Xchat::get_info( $id )
-
-$id
- one of the following case sensitive values
-
-
+The meaning of setting `$channel` or `$server` to undef is the same as find\_context.
+
+
+### `Xchat::commandf( $format, LIST )`
+
+ * **`$format` - a format string, see "perldoc -f [sprintf](http://perldoc.perl.org/functions/sprintf.html)" for further details**
+ * **`LIST` - list of values for the format fields**
+
+
+### `Xchat::find_context( [$channel, [$server]] )`
+
+ * **`$channel` - name of a channel**
+ * **`$server` - name of a server**
+
+Either or both of `$channel` and `$server` can be undef. Calling
+`Xchat::find_context()` is the same as calling `Xchat::find_context( undef, undef)` and
+`Xchat::find_context( $channel )` is the same as `Xchat::find_context( $channel, undef )`.
+
+If `$server` is undef, find any channel named `$channel`. If `$channel` is undef, find the front most window
+or tab named `$server`.If both `$channel` and `$server` are undef, find the currently focused tab or window.
+
+Return the context found for one of the above situations or undef if such
+a context cannot be found.
+
+
+### `Xchat::get_context()`
+
+Returns the current context.
+
+
+### `Xchat::set_context( $context | $channel,[$server] )`
+
+ * **`$context` - context value as returned from `get_context`, `find_context` or one
+ of the fields in the list of hashrefs returned by `list_get`**
+ * **`$channel` - name of a channel you want to switch context to**
+ * **`$server` - name of a server you want to switch context to**
+
+See `find_context` for more details on `$channel` and `$server`.
+
+Returns true on success, false on failure.
+
+
+### `Xchat::get_info( $id )`
+
+ * **`$id` - one of the following case sensitive values**
+
ID |
Return value |
@@ -421,7 +363,7 @@ a context cannot be found.
character-set used in the current context |
CHARSET |
- event_text <Event Name> | text event format string for <Event name>
+ | event\_text <Event Name> | text event format string for <Event name>
Example:
1
@@ -471,7 +413,7 @@ a context cannot be found.
|
|
- state_cursor |
+ state\_cursor |
current inputbox cursor position in characters |
SETCURSOR |
@@ -488,10 +430,10 @@ a context cannot be found.
and "normal"
GUI |
- win_ptr | native window pointer, GtkWindow * on Unix, HWND on Win32.
- On Unix if you have the Glib module installed you can use my $window = Glib::Object->new_from_pointer( Xchat::get_info( "win_ptr" ) ); to get a Gtk2::Window object.
- Additionally when you have detached tabs, each of the windows will return a different win_ptr for the different Gtk2::Window objects.
- See char_count.pl for a longer example of a script that uses this to show how many characters you currently have in your input box.
+ | win\_ptr | native window pointer, GtkWindow * on Unix, HWND on Win32.
+ On Unix if you have the Glib module installed you can use my $window = Glib::Object->new\_from\_pointer( Xchat::get_info( "win\_ptr" ) ); to get a Gtk2::Window object.
+ Additionally when you have detached tabs, each of the windows will return a different win\_ptr for the different Gtk2::Window objects.
+ See char\_count.pl for a longer example of a script that uses this to show how many characters you currently have in your input box.
|
|
@@ -511,104 +453,87 @@ a context cannot be found.
hexchatdirfs | same as hexchatdir except encoded in the locale file system encoding |
|
-
This function is used to retrieve certain information about the current
-context. If there is an associated command then that command can be used to change the value for a particular ID.
-
-Xchat::get_prefs( $name )
-
-$name
- name of a X-Chat setting (available through the /set command)
-
-
-This function provides a way to retrieve X-Chat's setting information.
-Returns undef
if there is no setting called called $name
.
-
-
-Xchat::emit_print( $event, LIST )
-
-$event
- name from the Event column in Settings->Advanced->Text Events
-
-- LIST - this depends on the Description column on the bottom of Settings->Advanced->Text Events
-
-
-This functions is used to generate one of the events listed under
-Settings->Advanced->Text Events
-Note: when using this function you MUST return Xchat::EAT_ALL otherwise you will end up with duplicate events.
-One is the original and the second is the one you emit.
-Returns true on success, false on failure
-
-
-Xchat::send_modes( $target | \@targets, $sign, $mode, [ $modes_per_line ] )
-
-$target
- a single nick to set the mode on
-
-\@targets
- an array reference of the nicks to set the mode on
-
-$sign
- the mode sign, either '+' or '-'
-
-$mode
- the mode character such as 'o' and 'v', this can only be one character long
-
-$modes_per_line
- an optional argument maximum number of modes to send per at once, pass 0 use the current server's maximum (default)
-
-
-Send multiple mode changes for the current channel. It may send multiple MODE lines if the request doesn't fit on one.
-Example:
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
-
use strict;
-use warning;
-use Xchat qw(:all);
+
-hook_command( "MODES", sub {
- my (undef, $who, $sign, $mode) = @{$_[0]};
- my @targets = split /,/, $who;
- if( @targets > 1 ) {
- send_modes( \@targets, $sign, $mode, 1 );
- } else {
- send_modes( $who, $sign, $mode );
+This function is used to retrieve certain information about the current
+context. If there is an associated command then that command can be used
+to change the value for a particular ID.
+
+
+### `Xchat::get_prefs( $name )`
+
+ * **`$name` - name of a HexChat setting (available through the /set command)
+
+This function provides a way to retrieve HexChat's setting information.
+
+Returns `undef` if there is no setting called called `$name`.
+
+
+### `Xchat::emit_print( $event, LIST )`
+
+ * **`$event` - name from the Event column in _Settings_ `->` _Text Events_**
+ * **`LIST` - this depends on the Description column on the bottom of _Settings_ `->` _Text Events_**
+
+This functions is used to generate one of the events listed under _Settings_ `->` _Text Events_.
+
+Note: when using this function you **must** return `Xchat::EAT_ALL` otherwise you will end up with duplicate events.
+One is the original and the second is the one you emit.
+
+Returns true on success, false on failure.
+
+
+### `Xchat::send_modes( $target | \@targets, $sign, $mode, [ $modes_per_line ] )`
+
+ * **`$target` - a single nick to set the mode on**
+ * **`\@targets` - an array reference of the nicks to set the mode on**
+ * **`$sign` - the mode sign, either '+' or '-'**
+ * **`$mode` - the mode character such as 'o' and 'v', this can only be one character long**
+ * **`$modes_per_line` - an optional argument maximum number of modes to send per at once, pass 0 use the current server's maximum (default)**
+
+Send multiple mode changes for the current channel. It may send multiple MODE lines if the request doesn't fit on one.
+
+Example:
+
+
+use strict;
+use warning;
+use Xchat qw(:all);
+
+hook_command( "MODES", sub {
+ my (undef, $who, $sign, $mode) = @{$_[0]};
+ my @targets = split /,/, $who;
+ if( @targets > 1 ) {
+ send_modes( \@targets, $sign, $mode, 1 );
+ } else {
+ send_modes( $who, $sign, $mode );
}
- return EAT_XCHAT;
+ return EAT_XCHAT;
});
-
-
-
-Xchat::nickcmp( $nick1, $nick2 )
-
-$nick1, $nick2
- the two nicks or channel names that are to be compared
-
-
-The comparsion is based on the current server. Either a RFC1459 compliant
-string compare or plain ascii will be using depending on the server. The
-comparison is case insensitive.
-Returns a number less than, equal to or greater than zero if
-$nick1
is
-found respectively, to be less than, to match, or be greater than
-$nick2
.
-
-
-Xchat::get_list( $name )
-
-$name
- name of the list, one of the following:
-"channels", "dcc", "ignore", "notify", "users"
-
-
-This function will return a list of hash references. The hash references
+
+
+### `Xchat::nickcmp( $nick1, $nick2 )`
+
+ * **`$nick1, $nick2` - the two nicks or channel names that are to be compared**
+
+The comparsion is based on the current server. Either an [RFC1459](http://www.ietf.org/rfc/rfc1459.txt)
+compliant string compare or plain ascii will be using depending on the server. The
+comparison is case insensitive.
+
+Returns a number less than, equal to or greater than zero if `$nick1` is
+found respectively, to be less than, to match, or be greater than `$nick2`.
+
+
+### `Xchat::get_list( $name )`
+
+ * **`$name` - name of the list, one of the following: "channels", "dcc", "ignore", "notify", "users"**
+
+This function will return a list of hash references. The hash references
will have different keys depend on the list. An empty list is returned
-if there is no such list.
-"channels" - list of channels, querys and their server
+if there is no such list.
+
+"channels" - list of channels, querys and their server
+
+
Key | Description |
channel | tab name |
@@ -678,7 +603,10 @@ if there is no such list.
users | Number of users in this channel |
-
"dcc" - list of DCC file transfers
+
+
+"dcc" - list of DCC file transfers
+
Key | Value |
@@ -726,7 +654,10 @@ if there is no such list.
2 - chatrecv
3 - chatsend
-
"ignore" - current ignore list
+
+
+"ignore" - current ignore list
+
Key | Value |
@@ -742,7 +673,10 @@ if there is no such list.
6 - nosave
7 - dcc
-
"notify" - list of people on notify
+
+
+"notify" - list of people on notify
+
Key | Value |
@@ -760,10 +694,16 @@ if there is no such list.
seen | time when user was last verified still online |
-
the values indexed by on, off and seen can be passed to localtime
-and gmtime, see perldoc -f localtime and perldoc -f gmtime for more
-detail
"users" - list of users in the current channel
-
+
+The values indexed by on, off and seen can be passed to localtime
+and gmtime, see perldoc -f [localtime](http://perldoc.perl.org/functions/localtime.html) and
+perldoc -f [gmtime](http://perldoc.perl.org/functions/gmtime.html) for more details.
+
+"users" - list of users in the current channel
+
+
+
Key | Value |
away | away status(boolean) |
@@ -784,7 +724,10 @@ detail"users" - list of users in the current channel
selected |
selected status in the user list, only works when retrieving the user list of the focused tab. You can use the /USELECT command to select the nicks |
-
"networks" - list of networks and the associated settings from network list
+
+
+"networks" - list of networks and the associated settings from network list
+
Key | Value |
@@ -879,150 +822,107 @@ detail"users" - list of users in the current channel
servers |
An array reference of hash references with a "host" and "port" key. If a port is not specified then 6667 will be used. |
-
-
-Xchat::user_info( [$nick] )
-
-$nick
- the nick to look for, if this is not given your own nick will be
- used as default
-
-
-This function is mainly intended to be used as a shortcut for when you need
-to retrieve some information about only one user in a channel. Otherwise it
-is better to use get_list.
-If $nick
is found a hash reference containing the same keys as those in the
-"users" list of get_list is returned otherwise undef is returned.
-Since it relies on get_list this function can only be used in a
-channel context.
-
-
-Xchat::context_info( [$context] )
-
-$context
- context returned from get_context, find_context and get_list, this is the context that you want infomation about. If this is omitted, it will default to current context.
-
-
-This function will return the information normally retrieved with get_info, except this is for the context that is passed in. The information will be returned in the form of a hash. The keys of the hash are the $id
you would normally supply to get_info as well as all the keys that are valid for the items in the "channels" list from get_list. Use of this function is more efficient than calling get_list( "channels" ) and searching through the result.
-Example:
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
-
use strict;
-use warnings;
-use Xchat qw(:all);
+
-register( "User Count", "0.1",
- "Print out the number of users on the current channel" );
-hook_command( "UCOUNT", \&display_count );
-sub display_count {
- prnt "There are " . context_info()->{users} . " users in this channel.";
- return EAT_XCHAT;
+
+### `Xchat::user_info( [$nick] )`
+
+ * **`$nick` - the nick to look for, if this is not given your own nick will be used as default**
+
+This function is mainly intended to be used as a shortcut for when you need
+to retrieve some information about only one user in a channel. Otherwise it
+is better to use `get_list`. If `$nick` is found a hash reference containing
+the same keys as those in the "users" list of `get_list` is returned otherwise
+undef is returned. Since it relies on `get_list` this function can only be used in a
+channel context.
+
+
+### `Xchat::context_info( [$context] )`
+
+ * **`$context` - context returned from `get_context`, `find_context` and `get_list`, this is the context that you want infomation about. If this is omitted, it will default to current context.**
+
+This function will return the information normally retrieved with `get_info`, except this
+is for the context that is passed in. The information will be returned in the form of a
+hash. The keys of the hash are the `$id` you would normally supply to `get_info` as well
+as all the keys that are valid for the items in the "channels" list from `get_list`. Use
+of this function is more efficient than calling get_list( "channels" ) and
+searching through the result.
+
+Example:
+
+
+use strict;
+use warnings;
+use Xchat qw(:all); # imports all the functions documented on this page
+
+register( "User Count", "0.1",
+ "Print out the number of users on the current channel" );
+hook_command( "UCOUNT", \&display_count );
+sub display_count {
+ prnt "There are " . context_info()->{users} . " users in this channel.";
+ return EAT_XCHAT;
}
-
-
-
-Xchat::strip_code( $string )
-
-$string
- string to remove codes from
-
-
-This function will remove bold, color, beep, reset, reverse and underline codes from $string
. It will also remove ANSI escape codes which might get used by certain terminal based clients. If it is called in void context $string
will be modified otherwise a modified copy of $string
is returned.
-
-
-Examples
-
-
-Asynchronous DNS resolution with hook_fd
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
-
use strict;
-use warnings;
-use Xchat qw(:all);
-use Net::DNS;
+
+
+
+### `Xchat::strip_code( $string )`
+
+ * **`$string` - string to remove codes from**
+
+This function will remove bold, color, beep, reset, reverse and underline codes from `$string`.
+It will also remove ANSI escape codes which might get used by certain terminal based clients.
+If it is called in void context `$string` will be modified otherwise a modified copy of `$string` is returned.
+
+
+## Examples
+
+### Asynchronous DNS resolution with hook\_fd
+
+
+use strict;
+use warnings;
+use Xchat qw(:all);
+use Net::DNS;
-hook_command( "BGDNS", sub {
- my $host = $_[0][1];
- my $resolver = Net::DNS::Resolver->new;
- my $sock = $resolver->bgsend( $host );
+hook_command( "BGDNS", sub {
+ my $host = $_[0][1];
+ my $resolver = Net::DNS::Resolver->new;
+ my $sock = $resolver->bgsend( $host );
- hook_fd( $sock, sub {
- my $ready_sock = $_[0];
- my $packet = $resolver->bgread( $ready_sock );
+ hook_fd( $sock, sub {
+ my $ready_sock = $_[0];
+ my $packet = $resolver->bgread( $ready_sock );
- if( $packet->authority && (my @answers = $packet->answer ) ) {
+ if( $packet->authority && (my @answers = $packet->answer ) ) {
- if( @answers ) {
- prnt "$host:";
- my $padding = " " x (length( $host ) + 2);
- for my $answer ( @answers ) {
- prnt $padding . $answer->rdatastr . ' ' . $answer->type;
+ if( @answers ) {
+ prnt "$host:";
+ my $padding = " " x (length( $host ) + 2);
+ for my $answer ( @answers ) {
+ prnt $padding . $answer->rdatastr . ' ' . $answer->type;
}
}
- } else {
- prnt "Unable to resolve $host";
+ } else {
+ prnt "Unable to resolve $host";
}
- return REMOVE;
+ return REMOVE;
},
{
- flags => FD_READ,
+ flags => FD_READ,
});
- return EAT_XCHAT;
+ return EAT_XCHAT;
});
-
-
+
+
+
+## Contact Information
+
+Contact Lian Wan Situ at <atmcmnky [at] yahoo.com> for questions, comments and
+corrections about this page or the Perl plugin itself. You can also find me in #xchat
+on freenode under the nick Khisanth.
-
-
-Contact Information
-Contact Lian Wan Situ at <atmcmnky [at] yahoo.com> for questions, comments and
-corrections about this page or the Perl plugin itself. You can also find me
-in #xchat on FreeNode under the nick Khisanth.