<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -35,6 +35,7 @@ highlights. The full CVS log is available at www.xchat.org/cvslog/
     that do not call register() to show up as &quot;&quot; for the name and description
     and &quot;unknown&quot; for the version
   * /reloadall will now reload scripts in the same order they were loaded
+  * Make xchat_send_modes available as Xchat::send_modes
 
 ------------------------------------------------------------------------------
  2.8.6 - 11/Jun/2008</diff>
      <filename>ChangeLog</filename>
    </modified>
    <modified>
      <diff>@@ -49,7 +49,7 @@ our %EXPORT_TAGS = (
 		qw(hook_server hook_command hook_print hook_timer hook_fd unhook),
 	],
 	util =&gt; [
-		qw(register nickcmp strip_code), # misc
+		qw(register nickcmp strip_code send_modes), # misc
 		qw(print prnt printf prntf command commandf emit_print), # output
 		qw(find_context get_context set_context), # context
 		qw(get_info get_prefs get_list context_info user_info), # input</diff>
      <filename>plugins/perl/Xchat.pm</filename>
    </modified>
    <modified>
      <diff>@@ -627,6 +627,58 @@ XS (XS_Xchat_emit_print)
 		XSRETURN_IV (RETVAL);
 	}
 }
+
+static
+XS (XS_Xchat_send_modes)
+{
+	AV *p_targets = NULL;
+	int modes_per_line = 0;
+	char sign;
+	char mode;
+	int i = 0;
+	const char **targets;
+	int target_count = 0;
+	SV **elem;
+
+	dXSARGS;
+	if (items &lt; 3 || items &gt; 4) {
+		xchat_print (ph,
+			&quot;Usage: Xchat::send_modes( targets, sign, mode, modes_per_line)&quot;
+		);
+	} else {
+		if (SvROK (ST (0))) {
+			p_targets = (AV*) SvRV (ST (0));
+			target_count = av_len (p_targets) + 1;
+			targets = malloc (target_count * sizeof (char *));
+			for (i = 0; i &lt; target_count; i++ ) {
+				elem = av_fetch (p_targets, i, 0);
+
+				if (elem != NULL) {
+					targets[i] = SvPV_nolen (*elem);
+				} else {
+					targets[i] = &quot;&quot;;
+				}
+			}
+		} else{
+			targets = malloc (sizeof (char *));
+			targets[0] = SvPV_nolen (ST (0));
+			target_count = 1;
+		}
+		
+		if (target_count == 0) {
+			XSRETURN_EMPTY;
+		}
+
+		sign = (SvPV_nolen (ST (1)))[0];
+		mode = (SvPV_nolen (ST (2)))[0];
+
+		if (items == 4 ) {
+			modes_per_line = (int) SvIV (ST (3)); 
+		}
+
+		xchat_send_modes (ph, targets, target_count, modes_per_line, sign, mode);
+	}
+}
 static
 XS (XS_Xchat_get_info)
 {
@@ -1163,6 +1215,7 @@ xs_init (pTHX)
 	newXS (&quot;Xchat::get_context&quot;, XS_Xchat_get_context, __FILE__);
 	newXS (&quot;Xchat::get_prefs&quot;, XS_Xchat_get_prefs, __FILE__);
 	newXS (&quot;Xchat::emit_print&quot;, XS_Xchat_emit_print, __FILE__);
+	newXS (&quot;Xchat::send_modes&quot;, XS_Xchat_send_modes, __FILE__);
 	newXS (&quot;Xchat::nickcmp&quot;, XS_Xchat_nickcmp, __FILE__);
 	newXS (&quot;Xchat::get_list&quot;, XS_Xchat_get_list, __FILE__);
 </diff>
      <filename>plugins/perl/perl.c</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,10 @@
+&lt;?xml version=&quot;1.0&quot; ?&gt;
 &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
 &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
 &lt;head&gt;
 &lt;title&gt;X-Chat 2 Perl Interface&lt;/title&gt;
-&lt;link rev=&quot;made&quot; href=&quot;mailto:root@vertigo.twi-31o2.org&quot; /&gt;
+&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
+&lt;link rev=&quot;made&quot; href=&quot;mailto:khisanth@miyu.hopto.org&quot; /&gt;
 &lt;/head&gt;
 
 &lt;body style=&quot;background-color: white&quot;&gt;
@@ -12,43 +14,49 @@
 &lt;/td&gt;&lt;/tr&gt;
 &lt;/table&gt;
 
-&lt;p&gt;&lt;a name=&quot;__index__&quot;&gt;&lt;/a&gt;&lt;/p&gt;
+
 &lt;!-- INDEX BEGIN --&gt;
+&lt;div name=&quot;index&quot;&gt;
+&lt;p&gt;&lt;a name=&quot;__index__&quot;&gt;&lt;/a&gt;&lt;/p&gt;
 
 &lt;ul&gt;
-	&lt;li&gt;&lt;a href=&quot;#introduction&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;
-	&lt;li&gt;
-		&lt;a href=&quot;#constants&quot;&gt;Constants&lt;/a&gt;
+
+	&lt;li&gt;&lt;a href=&quot;#x_chat_2_perl_interface&quot;&gt;X-Chat 2 Perl Interface&lt;/a&gt;&lt;/li&gt;
+	&lt;ul&gt;
+
+		&lt;li&gt;&lt;a href=&quot;#introduction&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;
+		&lt;li&gt;&lt;a href=&quot;#constants&quot;&gt;Constants&lt;/a&gt;&lt;/li&gt;
 		&lt;ul&gt;
+
 			&lt;li&gt;&lt;a href=&quot;#priorities&quot;&gt;Priorities&lt;/a&gt;&lt;/li&gt;
-			&lt;li&gt;
-				&lt;a href=&quot;#return_values&quot;&gt;Return values&lt;/a&gt;
-				&lt;ul&gt;
-					&lt;li&gt;&lt;a href=&quot;#timer_specific&quot;&gt;Timer specific&lt;/a&gt;&lt;/li&gt;
-				&lt;/ul&gt;
-			&lt;/li&gt;
+			&lt;li&gt;&lt;a href=&quot;#return_values&quot;&gt;Return values&lt;/a&gt;&lt;/li&gt;
+			&lt;ul&gt;
+
+				&lt;li&gt;&lt;a href=&quot;#timer_specific&quot;&gt;Timer specific&lt;/a&gt;&lt;/li&gt;
+			&lt;/ul&gt;
+
 		&lt;/ul&gt;
-	&lt;/li&gt;
-	&lt;li&gt;
-		&lt;a href=&quot;#functions&quot;&gt;Functions&lt;/a&gt;
+
+		&lt;li&gt;&lt;a href=&quot;#functions&quot;&gt;Functions&lt;/a&gt;&lt;/li&gt;
 		&lt;ul&gt;
+
 			&lt;li&gt;&lt;a href=&quot;#xchat__register___name___version____description___callback____&quot;&gt;&lt;code&gt;Xchat::register( $name, $version, [$description,[$callback]] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__hook_server___message___callback_____options___&quot;&gt;&lt;code&gt;Xchat::hook_server( $message, $callback, [\%options] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__hook_command___command___callback_____options___&quot;&gt;&lt;code&gt;Xchat::hook_command( $command, $callback, [\%options] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__hook_print___event__callback_____options___&quot;&gt;&lt;code&gt;Xchat::hook_print( $event,$callback, [\%options] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
-			&lt;li&gt;
-				&lt;a href=&quot;#xchat__hook_timer___timeout__callback_____options____data___&quot;&gt;&lt;code&gt;Xchat::hook_timer( $timeout,$callback, [\%options | $data] )&lt;/code&gt;&lt;/a&gt;
-				&lt;ul&gt;
-					&lt;li&gt;&lt;a href=&quot;#when_callbacks_are_invoked&quot;&gt;When callbacks are invoked&lt;/a&gt;&lt;/li&gt;
-					&lt;li&gt;&lt;a href=&quot;#callback_arguments&quot;&gt;Callback Arguments&lt;/a&gt;&lt;/li&gt;
-					&lt;li&gt;&lt;a href=&quot;#callback_return_values&quot;&gt;Callback return values&lt;/a&gt;&lt;/li&gt;
-					&lt;li&gt;&lt;a href=&quot;#miscellaneous_hook_related_information&quot;&gt;Miscellaneous Hook Related Information&lt;/a&gt;&lt;/li&gt;
-				&lt;/ul&gt;
-			&lt;/li&gt;
+			&lt;li&gt;&lt;a href=&quot;#xchat__hook_timer___timeout__callback_____options____data___&quot;&gt;&lt;code&gt;Xchat::hook_timer( $timeout,$callback, [\%options | $data] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
+			&lt;ul&gt;
+
+				&lt;li&gt;&lt;a href=&quot;#when_callbacks_are_invoked&quot;&gt;When callbacks are invoked&lt;/a&gt;&lt;/li&gt;
+				&lt;li&gt;&lt;a href=&quot;#callback_arguments&quot;&gt;Callback Arguments&lt;/a&gt;&lt;/li&gt;
+				&lt;li&gt;&lt;a href=&quot;#callback_return_values&quot;&gt;Callback return values&lt;/a&gt;&lt;/li&gt;
+				&lt;li&gt;&lt;a href=&quot;#miscellaneous_hook_related_information&quot;&gt;Miscellaneous Hook Related Information&lt;/a&gt;&lt;/li&gt;
+			&lt;/ul&gt;
+
 			&lt;li&gt;&lt;a href=&quot;#xchat__unhook___hook__&quot;&gt;&lt;code&gt;Xchat::unhook( $hook )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__print___text_____lines____channel___server____&quot;&gt;&lt;code&gt;Xchat::print( $text | \@lines, [$channel,[$server]] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__printf___format__list__&quot;&gt;&lt;code&gt;Xchat::printf( $format, LIST )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
-			&lt;li&gt;&lt;a href=&quot;#xchat__command___command____channel___server____&quot;&gt;&lt;code&gt;Xchat::command( $command, [$channel,[$server]] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
+			&lt;li&gt;&lt;a href=&quot;#xchat__command___command_____commands____channel___server____&quot;&gt;&lt;code&gt;Xchat::command( $command | \@commands, [$channel,[$server]] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__commandf___format__list__&quot;&gt;&lt;code&gt;Xchat::commandf( $format, LIST )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__find_context____channel____server____&quot;&gt;&lt;code&gt;Xchat::find_context( [$channel, [$server]] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__get_context__&quot;&gt;&lt;code&gt;Xchat::get_context()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
@@ -56,22 +64,26 @@
 			&lt;li&gt;&lt;a href=&quot;#xchat__get_info___id__&quot;&gt;&lt;code&gt;Xchat::get_info( $id )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__get_prefs___name__&quot;&gt;&lt;code&gt;Xchat::get_prefs( $name )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__emit_print___event__list__&quot;&gt;&lt;code&gt;Xchat::emit_print( $event, LIST )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
+			&lt;li&gt;&lt;a href=&quot;#xchat__send_modes___target_____targets___sign___mode_____modes_per_line____&quot;&gt;&lt;code&gt;Xchat::send_modes( $target | \@targets, $sign, $mode, [ $modes_per_line ] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__nickcmp___nick1___nick2__&quot;&gt;&lt;code&gt;Xchat::nickcmp( $nick1, $nick2 )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__get_list___name__&quot;&gt;&lt;code&gt;Xchat::get_list( $name )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__user_info____nick___&quot;&gt;&lt;code&gt;Xchat::user_info( [$nick] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__context_info____context___&quot;&gt;&lt;code&gt;Xchat::context_info( [$context] )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 			&lt;li&gt;&lt;a href=&quot;#xchat__strip_code___string__&quot;&gt;&lt;code&gt;Xchat::strip_code( $string )&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
 		&lt;/ul&gt;
-	&lt;/li&gt;
-	&lt;li&gt;&lt;a href=&quot;#contact_information&quot;&gt;Contact Information&lt;/a&gt;&lt;/li&gt;
+
+		&lt;li&gt;&lt;a href=&quot;#contact_information&quot;&gt;Contact Information&lt;/a&gt;&lt;/li&gt;
+	&lt;/ul&gt;
 
 &lt;/ul&gt;
+
+&lt;hr name=&quot;index&quot; /&gt;
+&lt;/div&gt;
 &lt;!-- INDEX END --&gt;
 
-&lt;hr /&gt;
 &lt;p&gt;
 &lt;/p&gt;
-&lt;h1&gt;&lt;a name=&quot;xchat_2_perl_interface&quot;&gt;X-Chat 2 Perl Interface&lt;/a&gt;&lt;/h1&gt;
+&lt;h1&gt;&lt;a name=&quot;x_chat_2_perl_interface&quot;&gt;X-Chat 2 Perl Interface&lt;/a&gt;&lt;/h1&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h2&gt;&lt;a name=&quot;introduction&quot;&gt;Introduction&lt;/a&gt;&lt;/h2&gt;
@@ -87,38 +99,38 @@ on the bottom of this page.&lt;/p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;priorities&quot;&gt;Priorities&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3apri_highest_3e&quot;&gt;&lt;code&gt;Xchat::PRI_HIGHEST&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3apri_high_3e&quot;&gt;&lt;code&gt;Xchat::PRI_HIGH&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3apri_norm_3e&quot;&gt;&lt;code&gt;Xchat::PRI_NORM&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3apri_low_3e&quot;&gt;&lt;code&gt;Xchat::PRI_LOW&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3apri_lowest_3e&quot;&gt;&lt;code&gt;Xchat::PRI_LOWEST&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_pri_highest&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::PRI_HIGHEST&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_pri_high&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::PRI_HIGH&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_pri_norm&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::PRI_NORM&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_pri_low&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::PRI_LOW&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_pri_lowest&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::PRI_LOWEST&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;return_values&quot;&gt;Return values&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3aeat_none_3e_pass_the_event_along&quot;&gt;&lt;code&gt;Xchat::EAT_NONE&lt;/code&gt; 		pass the event along&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3aeat_xchat_3e_don_27t_let_xchat_see_&quot;&gt;&lt;code&gt;Xchat::EAT_XCHAT&lt;/code&gt; 		don't let xchat see this event&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3aeat_plugin_3e_don_27t_let_other_scr&quot;&gt;&lt;code&gt;Xchat::EAT_PLUGIN&lt;/code&gt; 	don't let other scripts and plugins see this event&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3aeat_all_3e_don_27t_let_anything_see&quot;&gt;&lt;code&gt;Xchat::EAT_ALL&lt;/code&gt; 		don't let anything see this event&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_eat_none_pass_the_event_along&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::EAT_NONE&lt;/code&gt; 		pass the event along&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_eat_xchat_don_t_let_xchat_see_this_event&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::EAT_XCHAT&lt;/code&gt; 		don't let xchat see this event&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_eat_plugin_don_t_let_other_scripts_and_plugins_see_this_event&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::EAT_PLUGIN&lt;/code&gt; 	don't let other scripts and plugins see this event&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_eat_all_don_t_let_anything_see_this_event&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::EAT_ALL&lt;/code&gt; 		don't let anything see this event&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h4&gt;&lt;a name=&quot;timer_specific&quot;&gt;Timer specific&lt;/a&gt;&lt;/h4&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3akeep_3e_keep_the_timer_going&quot;&gt;&lt;code&gt;Xchat::KEEP&lt;/code&gt;				keep the timer going&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3cxchat_3a_3aremove_3e_remove_the_timer&quot;&gt;&lt;code&gt;Xchat::REMOVE&lt;/code&gt;			remove the timer&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_keep_keep_the_timer_going&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::KEEP&lt;/code&gt;				keep the timer going&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;xchat_remove_remove_the_timer&quot; class=&quot;item&quot;&gt;&lt;code&gt;Xchat::REMOVE&lt;/code&gt;			remove the timer&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;
 &lt;/p&gt;
@@ -127,16 +139,16 @@ on the bottom of this page.&lt;/p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__register___name___version____description___callback____&quot;&gt;&lt;code&gt;Xchat::register( $name, $version, [$description,[$callback]] )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24name_3e__2d_the_name_of_this_script&quot;&gt;&lt;code&gt;$name&lt;/code&gt; 				-	The name of this script&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24version_3e__2d_this_script_27s_version&quot;&gt;&lt;code&gt;$version&lt;/code&gt; 			-	This script's version&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24description_3e__2d_a_description_for_this_s&quot;&gt;&lt;code&gt;$description&lt;/code&gt; 	-	A description for this script&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24callback_3e__2d_this_is_a_function_that_wil&quot;&gt;&lt;code&gt;$callback&lt;/code&gt; 		-	This is a function that will be called when the is script
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_name&quot; class=&quot;item&quot;&gt;&lt;code&gt;$name&lt;/code&gt; 				-	The name of this script&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_version&quot; class=&quot;item&quot;&gt;&lt;code&gt;$version&lt;/code&gt; 			-	This script's version&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_description&quot; class=&quot;item&quot;&gt;&lt;code&gt;$description&lt;/code&gt; 	-	A description for this script&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_callback&quot; class=&quot;item&quot;&gt;&lt;code&gt;$callback&lt;/code&gt; 		-	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.&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+							function or an anonymous sub reference.&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;This is the first thing to call in every script.&lt;/p&gt;
 &lt;p&gt;
@@ -157,22 +169,22 @@ hook_command can be used to intercept any command, if the command doesn't curren
 hook_print can be used to intercept any of the events listed in Setttings-&amp;gt;Advanced-&amp;gt;Text Events
 hook_timer can be used to create a new timer&lt;/p&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24message_3e__2d_server_message_to_hook_such_&quot;&gt;&lt;code&gt;$message&lt;/code&gt; 		-	server message to hook such as PRIVMSG&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24command_3e__2d_command_to_intercept_2c_with&quot;&gt;&lt;code&gt;$command&lt;/code&gt; 		-	command to intercept, without the leading /&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_advanced&quot;&gt;&lt;code&gt;$event&lt;/code&gt; 		-	one of the events listed in Settings-&amp;gt;Advanced-&amp;gt;Text Events&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24timeout_3e__2d_timeout_in_milliseconds&quot;&gt;&lt;code&gt;$timeout&lt;/code&gt; 		-	timeout in milliseconds&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24callback_3e__2d_callback_function_2c_this_i&quot;&gt;&lt;code&gt;$callback&lt;/code&gt; 	-	callback function, this is called whenever
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_message&quot; class=&quot;item&quot;&gt;&lt;code&gt;$message&lt;/code&gt; 		-	server message to hook such as PRIVMSG&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_command&quot; class=&quot;item&quot;&gt;&lt;code&gt;$command&lt;/code&gt; 		-	command to intercept, without the leading /&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;advanced&quot; class=&quot;item&quot;&gt;&lt;code&gt;$event&lt;/code&gt; 		-	one of the events listed in Settings-&amp;gt;Advanced-&amp;gt;Text Events&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_timeout&quot; class=&quot;item&quot;&gt;&lt;code&gt;$timeout&lt;/code&gt; 		-	timeout in milliseconds&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$callback&lt;/code&gt; 	-	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.&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item__5c_25options__2d_a_hash_reference_containing_addi&quot;&gt;\%options	-	a hash reference containing addional options for the hooks&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+						function or an anonymous sub reference.&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;options_a_hash_reference_containing_addional_options_for_the_hooks&quot; class=&quot;item&quot;&gt;\%options	-	a hash reference containing addional options for the hooks&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;Valid keys for \%options:&lt;/p&gt;
 &lt;table border=&quot;1&quot;&gt;	&lt;tr&gt;
@@ -282,9 +294,9 @@ the timer or Xchat::KEEP to keep it going&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h4&gt;&lt;a name=&quot;miscellaneous_hook_related_information&quot;&gt;Miscellaneous Hook Related Information&lt;/a&gt;&lt;/h4&gt;
-&lt;p&gt;For server hooks, if &lt;code&gt;$message&lt;/code&gt; is ``RAW LINE'' then &lt;code&gt;$cb&lt;/code&gt; will be called for
-every IRC message that X-Chat receives.&lt;/p&gt;
-&lt;p&gt;For command hooks if &lt;code&gt;$command&lt;/code&gt; is ``'' then &lt;code&gt;$cb&lt;/code&gt; will be called for
+&lt;p&gt;For server hooks, if &lt;a href=&quot;#_message&quot;&gt;&lt;code&gt;$message&lt;/code&gt;&lt;/a&gt; is &amp;quot;RAW LINE&amp;quot; then &lt;code&gt;$cb&lt;/code&gt; will be called for
+every IRC message than X-Chat receives.&lt;/p&gt;
+&lt;p&gt;For command hooks if &lt;a href=&quot;#_command&quot;&gt;&lt;code&gt;$command&lt;/code&gt;&lt;/a&gt; is &amp;quot;&amp;quot; then &lt;code&gt;$cb&lt;/code&gt; will be called for
 messages entered by the user that is not a command.&lt;/p&gt;
 &lt;p&gt;For print hooks besides those events listed in 
 Settings-&amp;gt;Advanced-&amp;gt;Text Events, these additional events can be used.&lt;/p&gt;
@@ -309,24 +321,15 @@ Settings-&amp;gt;Advanced-&amp;gt;Text Events, these additional events can be used.&lt;/p&gt;
 											&lt;code&gt;$_[0][2]&lt;/code&gt;	-	Nick&lt;br /&gt;
 											&lt;code&gt;$_[0][3]&lt;/code&gt;	-	Message&lt;br /&gt;
 											&lt;/td&gt;
-	&lt;/tr&gt; &lt;tr&gt;
-		&lt;td&gt;&quot;Key Press&quot;&lt;/td&gt;
-		&lt;td&gt;
-			used for intercepting key presses&lt;br /&gt;
-			the key value is in $_[0][0]&lt;br /&gt;
-			the modifier value is in $_[0][1]&lt;br /&gt;
-			both are integers&lt;br /&gt;
-			&lt;br /&gt;
-			if the key is a printable character such as abcde... then that letter can be found in $_[0][2]&lt;br /&gt;
-			the length of $_[0][2], may be 0 for unprintable keys
-		&lt;/td&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
+		&lt;td&gt;&quot;Key Press&quot;&lt;/td&gt;	&lt;td&gt;used for intercepting key presses, the key value is in $_[0][0]&lt;/td&gt;
+	&lt;/tr&gt;
 &lt;/table&gt;&lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__unhook___hook__&quot;&gt;&lt;code&gt;Xchat::unhook( $hook )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24hook_3e__2d_the_hook_that_was_previously_re&quot;&gt;&lt;code&gt;$hook&lt;/code&gt; 	-	the hook that was previously returned by one of
-					the &lt;code&gt;Xchat::hook_*&lt;/code&gt;	functions&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_hook&quot; class=&quot;item&quot;&gt;&lt;code&gt;$hook&lt;/code&gt; 	-	the hook that was previously returned by one of the &lt;code&gt;Xchat::hook_*&lt;/code&gt;	functions&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;This function is used to removed a hook previously added with one of
 the &lt;code&gt;Xchat::hook_*&lt;/code&gt; functions&lt;/p&gt;
@@ -336,111 +339,110 @@ the hook was added&lt;/p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__print___text_____lines____channel___server____&quot;&gt;&lt;code&gt;Xchat::print( $text | \@lines, [$channel,[$server]] )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24text_3e__2d_the_text_to_print&quot;&gt;&lt;code&gt;$text&lt;/code&gt;		-	the text to print&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_5c_40lines_3e__2d_array_reference_containing_&quot;&gt;&lt;code&gt;\@lines&lt;/code&gt;	-	array reference containing lines of text to be printed
-					all the elements will be joined together before printing&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24channel_3e__2d_channel_or_tab_with_the_give&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;	-	channel or tab with the given name where &lt;code&gt;$text&lt;/code&gt;
-					will be printed&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24server_3e__2d_specifies_that_the_text_will_&quot;&gt;&lt;code&gt;$server&lt;/code&gt;	-	specifies that the text will be printed in a channel or tab
-					that is associated with &lt;code&gt;$server&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_text&quot; class=&quot;item&quot;&gt;&lt;code&gt;$text&lt;/code&gt;		-	the text to print&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;lines_array_reference_containing_lines_of_text_to_be_printed_all_the_elements_will_be_joined_together_before_printing&quot; class=&quot;item&quot;&gt;&lt;code&gt;\@lines&lt;/code&gt;	-	array reference containing lines of text to be printed
+					all the elements will be joined together before printing&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_channel&quot; class=&quot;item&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;	-	channel or tab with the given name where &lt;a href=&quot;#_text&quot;&gt;&lt;code&gt;$text&lt;/code&gt;&lt;/a&gt;
+					will be printed&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_server&quot; class=&quot;item&quot;&gt;&lt;code&gt;$server&lt;/code&gt;	-	specifies that the text will be printed in a channel or tab
+					that is associated with &lt;code&gt;$server&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
-&lt;p&gt;The first argument can either be a string or an array reference of strings.&lt;br /&gt;
-Either or both of &lt;code&gt;$channel&lt;/code&gt; and &lt;code&gt;$server&lt;/code&gt; can be undef.&lt;/p&gt;
+&lt;p&gt;The first argument can either be a string or an array reference of strings.
+Either or both of &lt;a href=&quot;#_channel&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;#_server&quot;&gt;&lt;code&gt;$server&lt;/code&gt;&lt;/a&gt; can be undef.&lt;/p&gt;
 &lt;p&gt;If called as &lt;code&gt;Xchat::print( $text )&lt;/code&gt;, 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 &lt;code&gt;$channel&lt;/code&gt; or &lt;code&gt;$server&lt;/code&gt; to
+is not found.  The meaning of setting &lt;a href=&quot;#_channel&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;&lt;/a&gt; or &lt;a href=&quot;#_server&quot;&gt;&lt;code&gt;$server&lt;/code&gt;&lt;/a&gt; to
 undef is the same as
-&lt;a href=&quot;#xchat__find_context____channel____server____&quot;&gt;find_context&lt;/a&gt;.&lt;/p&gt;
+&lt;a href=&quot;#xchat__find_context____channel_____server____&quot;&gt;find_context&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__printf___format__list__&quot;&gt;&lt;code&gt;Xchat::printf( $format, LIST )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24format_3e__2d_a_format_string_2c_see__22per&quot;&gt;&lt;code&gt;$format&lt;/code&gt;	-	a format string, see ``perldoc -f sprintf'' for further detail&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_list__2d_list_of_values_for_the_format_fields&quot;&gt;LIST		-	list of values for the format fields&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_format&quot; class=&quot;item&quot;&gt;&lt;code&gt;$format&lt;/code&gt;	-	a format string, see &amp;quot;perldoc -f sprintf&amp;quot; for further detail&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;list_list_of_values_for_the_format_fields&quot; class=&quot;item&quot;&gt;LIST		-	list of values for the format fields&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;
 &lt;/p&gt;
-&lt;h3&gt;&lt;a name=&quot;xchat__command___command____channel___server____&quot;&gt;&lt;code&gt;Xchat::command( $command | \@commands, [$channel,[$server]] )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
+&lt;h3&gt;&lt;a name=&quot;xchat__command___command_____commands____channel___server____&quot;&gt;&lt;code&gt;Xchat::command( $command | \@commands, [$channel,[$server]] )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24command_3e__2d_the_command_to_execute_2c_wi&quot;&gt;&lt;code&gt;$command&lt;/code&gt;	-	the command to execute, without the leading /&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;li&gt;&lt;strong&gt;&lt;code&gt;\@command&lt;/code&gt;	-	array reference containing a list of commands to execute&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;code&gt;$channel&lt;/code&gt;	-	channel or tab with the given name where &lt;code&gt;$command&lt;/code&gt; will be executed&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24server_3e__2d_specifies_that_the_command_wi&quot;&gt;&lt;code&gt;$server&lt;/code&gt;	-	specifies that the command will be executed in a channel or tab
-					that is associated with &lt;code&gt;$server&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$command&lt;/code&gt;	-	the command to execute, without the leading /&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;commands_array_reference_containing_a_list_of_commands_to_execute&quot; class=&quot;item&quot;&gt;&lt;code&gt;\@commands&lt;/code&gt;	-	array reference containing a list of commands to execute&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$channel&lt;/code&gt;	-	channel or tab with the given name where &lt;a href=&quot;#_command&quot;&gt;&lt;code&gt;$command&lt;/code&gt;&lt;/a&gt; will be executed&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$server&lt;/code&gt;	-	specifies that the command will be executed in a channel or tab that is associated with &lt;code&gt;$server&lt;/code&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
-&lt;p&gt;The first argument can either be a string or an array reference of strings.&lt;br /&gt;
-Either or both of &lt;code&gt;$channel&lt;/code&gt; and &lt;code&gt;$server&lt;/code&gt; can be undef.&lt;/p&gt;
+&lt;p&gt;The first argument can either be a string or an array reference of strings.
+Either or both of &lt;a href=&quot;#_channel&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;#_server&quot;&gt;&lt;code&gt;$server&lt;/code&gt;&lt;/a&gt; can be undef.&lt;/p&gt;
 &lt;p&gt;If called as &lt;code&gt;Xchat::command( $command )&lt;/code&gt;, 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 &lt;code&gt;$channel&lt;/code&gt; or &lt;code&gt;$server&lt;/code&gt; to undef is the same
+The meaning of setting &lt;a href=&quot;#_channel&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;&lt;/a&gt; or &lt;a href=&quot;#_server&quot;&gt;&lt;code&gt;$server&lt;/code&gt;&lt;/a&gt; to undef is the same
 as find_context.&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__commandf___format__list__&quot;&gt;&lt;code&gt;Xchat::commandf( $format, LIST )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;code&gt;$format&lt;/code&gt; -  a format string, see ``perldoc -f sprintf'' for further detail&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;LIST		-	list of values for the format fields&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$format&lt;/code&gt; -  a format string, see &amp;quot;perldoc -f sprintf&amp;quot; for further detail&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;list_list_of_values_for_the_format_fields2&quot; class=&quot;item&quot;&gt;LIST		-	list of values for the format fields&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__find_context____channel____server____&quot;&gt;&lt;code&gt;Xchat::find_context( [$channel, [$server]] )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24channel_3e__2d_name_of_a_channel&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;	-	name of a channel&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24server_3e__2d_name_of_a_server&quot;&gt;&lt;code&gt;$server&lt;/code&gt;	-	name of a server&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$channel&lt;/code&gt;	-	name of a channel&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$server&lt;/code&gt;	-	name of a server&lt;/strong&gt;
+
 &lt;/ul&gt;
-&lt;p&gt;Either or both of &lt;code&gt;$channel&lt;/code&gt; and $server can be undef. Calling
+&lt;p&gt;Either or both of &lt;a href=&quot;#_channel&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;&lt;/a&gt; and $server can be undef. Calling
 &lt;code&gt;Xchat::find_context()&lt;/code&gt; is the same as calling
 &lt;code&gt;Xchat::find_context( undef, undef)&lt;/code&gt; and
 &lt;code&gt;Xchat::find_context( $channel )&lt;/code&gt; is
 the same as &lt;code&gt;Xchat::find_context( $channel, undef )&lt;/code&gt;.&lt;/p&gt;
-&lt;p&gt;If &lt;code&gt;$server&lt;/code&gt; is undef, find any channel named $channel.
-If &lt;code&gt;$channel&lt;/code&gt; is undef, find the front most window
-or tab named &lt;code&gt;$server&lt;/code&gt;.If both $channel and
-&lt;code&gt;$server&lt;/code&gt; are undef, find the currently focused tab or window.&lt;/p&gt;
+&lt;p&gt;If &lt;a href=&quot;#_server&quot;&gt;&lt;code&gt;$server&lt;/code&gt;&lt;/a&gt; is undef, find any channel named $channel.
+If &lt;a href=&quot;#_channel&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;&lt;/a&gt; is undef, find the front most window
+or tab named &lt;a href=&quot;#_server&quot;&gt;&lt;code&gt;$server&lt;/code&gt;&lt;/a&gt;.If both $channel and
+&lt;a href=&quot;#_server&quot;&gt;&lt;code&gt;$server&lt;/code&gt;&lt;/a&gt; are undef, find the currently focused tab or window.&lt;/p&gt;
 &lt;p&gt;Return the context found for one of the above situations or undef if such
 a context cannot be found.&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
-&lt;h3&gt;&lt;a name=&quot;xchat__get_context__&quot;&gt;&lt;code&gt;Xchat::get_context()&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
+&lt;h3&gt;&lt;a name=&quot;xchat__get_context__&quot;&gt;&lt;a href=&quot;#get_context&quot;&gt;&lt;code&gt;Xchat::get_context()&lt;/code&gt;&lt;/a&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;p&gt;Returns the current context.&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__set_context___context____channel___server___&quot;&gt;&lt;code&gt;Xchat::set_context( $context | $channel,[$server] )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24context_3e__2d_context_value_as_returned_fr&quot;&gt;&lt;code&gt;$context&lt;/code&gt;	-	context value as returned from get_context,find_context or one
-					of the fields in the list of hashrefs returned by list_get&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24channel_3e__2d_name_of_a_channel_you_want_t&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;	-	name of a channel you want to switch context to&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24server_3e__2d_name_of_a_server_you_want_to_&quot;&gt;&lt;code&gt;$server&lt;/code&gt;	-	name of a server you want to switch context to&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;get_context&quot; class=&quot;item&quot;&gt;&lt;code&gt;$context&lt;/code&gt;	-	context value as returned from &lt;a href=&quot;#get_context&quot;&gt;get_context&lt;/a&gt;,&lt;a href=&quot;#xchat__find_context____channel___server____&quot;&gt;find_context&lt;/a&gt; or one
+					of the fields in the list of hashrefs returned by list_get&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$channel&lt;/code&gt;	-	name of a channel you want to switch context to&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$server&lt;/code&gt;	-	name of a server you want to switch context to&lt;/strong&gt;
+
 &lt;/ul&gt;
-&lt;p&gt;See &lt;a href=&quot;#xchat__find_context____channel____server____&quot;&gt;find_context&lt;/a&gt; for more details on &lt;code&gt;$channel&lt;/code&gt; and &lt;code&gt;$server&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;See &lt;a href=&quot;#xchat__find_context____channel____server____&quot;&gt;find_context&lt;/a&gt; for more details on &lt;a href=&quot;#_channel&quot;&gt;&lt;code&gt;$channel&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;#_server&quot;&gt;&lt;code&gt;$server&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;Returns true on success, false on failure&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__get_info___id__&quot;&gt;&lt;code&gt;Xchat::get_info( $id )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24id_3e__2d_one_of_the_following_case_sensiti&quot;&gt;&lt;code&gt;$id&lt;/code&gt;	-	one of the following case sensitive values&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_id&quot; class=&quot;item&quot;&gt;&lt;code&gt;$id&lt;/code&gt;	-	one of the following case sensitive values&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;table border=&quot;1&quot;&gt;	&lt;tr style=&quot;background-color: #dddddd&quot;&gt;
 		&lt;td&gt;ID&lt;/td&gt;				&lt;td&gt;Return value&lt;/td&gt;
@@ -451,23 +453,13 @@ a context cannot be found.&lt;/p&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;charset&lt;/td&gt;	&lt;td&gt;character-set used in the current context&lt;/td&gt;
 	&lt;/tr&gt;
-	&lt;tr&gt;
-		&lt;td&gt;event_text &amp;lt;name&amp;gt;&lt;/td&gt;
-		&lt;td&gt;text event format string for &lt;em&gt;name&lt;/em&gt;. This is whatever the user has under the Text column of Settings-&amp;gt;Advanced-&amp;gt;Text Events.&lt;/td&gt;
-	&lt;/tr&gt;
+	
 	&lt;tr&gt;
 		&lt;td&gt;host&lt;/td&gt;	&lt;td&gt;real hostname of the current server&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
-	&lt;tr&gt;
-		&lt;td&gt;id&lt;/td&gt;	&lt;td&gt;unique server id&lt;/td&gt;
-	&lt;/tr&gt; &lt;tr&gt;
 		&lt;td&gt;inputbox&lt;/td&gt;	&lt;td&gt;contents of the inputbox&lt;/td&gt;
 	&lt;/tr&gt;
-
-	&lt;tr&gt;
-		&lt;td&gt;modes&lt;/td&gt; &lt;td&gt;channel modes, if known or undef&lt;/td&gt;
-	&lt;/tr&gt;
-
+	
 	&lt;tr&gt;
 		&lt;td&gt;libdirfs&lt;/td&gt;
 		&lt;td&gt;the system wide directory where xchat will look for plugins.
@@ -481,14 +473,9 @@ a context cannot be found.&lt;/p&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;nickserv&lt;/td&gt;	&lt;td&gt;nickserv password for this network or undef&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
-		&lt;td&gt;server&lt;/td&gt;
-		&lt;td&gt;
-			current server name &lt;br /&gt;
-			(what the server claims to be) undef if not connected
-		&lt;/td&gt;
-	&lt;/tr&gt; &lt;tr&gt;
-		&lt;td&gt;state_cursor&lt;/td&gt;
-		&lt;td&gt;current inputbox cursor position in characters&lt;/td&gt;
+		&lt;td&gt;server&lt;/td&gt;	&lt;td&gt;current server name &lt;br /&gt;
+								(what the server claims to be) undef if not connected
+								&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;topic&lt;/td&gt;	&lt;td&gt;current channel topic&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
@@ -500,8 +487,8 @@ a context cannot be found.&lt;/p&gt;
 	&lt;/tr&gt;
 	
 	&lt;tr&gt;
-		&lt;td&gt;win_ptr&lt;/td&gt; &lt;td&gt;native window pointer, GtkWindow * on Unix, HWND on Win32.&lt;br /&gt;
-		On Unix if you have the Glib module installed you can use my $window = Glib::Object-&gt;new_from_pointer( Xchat::get_info( &quot;win_ptr&quot; ) ); to get a Gtk2::Window object.&lt;/td&gt;
+     &lt;td&gt;win_ptr&lt;/td&gt; &lt;td&gt;native window pointer, GtkWindow * on Unix, HWND on Win32.&lt;br /&gt;
+     On Unix if you have the Glib module installed you can use my $window = Glib::Object-&gt;new_from_pointer( Xchat::get_info( &quot;win_ptr&quot; ) ); to get a Gtk2::Window object.&lt;/td&gt;
 	&lt;/tr&gt;
 	&lt;tr&gt;
 		&lt;td&gt;xchatdir&lt;/td&gt;	&lt;td&gt;xchat config directory encoded in UTF-8&lt;br /&gt;
@@ -509,41 +496,70 @@ a context cannot be found.&lt;/p&gt;
 								/home/user/.xchat2&lt;br /&gt;
 								C:\Documents and Settings\user\Application Data\X-Chat 2
 								&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
-		&lt;td&gt;xchatdirfs&lt;/td&gt; &lt;td&gt;xchat config directory encoded in the local file system encoding&lt;/td&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
+		&lt;td&gt;state_cursor&lt;/td&gt;
+		&lt;td&gt;current inputbox cursor position in characters&lt;/td&gt;
 	&lt;/tr&gt;
 &lt;/table&gt;&lt;p&gt;This function is used to retrieve certain information about the current
 context.&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__get_prefs___name__&quot;&gt;&lt;code&gt;Xchat::get_prefs( $name )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_setting&quot;&gt;&lt;code&gt;$name&lt;/code&gt;	-	name of a X-Chat setting (available through the /set command)&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;setting&quot; class=&quot;item&quot;&gt;&lt;a href=&quot;#_name&quot;&gt;&lt;code&gt;$name&lt;/code&gt;&lt;/a&gt;	-	name of a X-Chat setting (available through the /set command)&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;This function provides a way to retrieve X-Chat's setting information.&lt;/p&gt;
-&lt;p&gt;Returns &lt;code&gt;undef&lt;/code&gt; if there is no setting called &lt;code&gt;$name&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;Returns &lt;code&gt;undef&lt;/code&gt; if there is no setting called called &lt;a href=&quot;#_name&quot;&gt;&lt;code&gt;$name&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__emit_print___event__list__&quot;&gt;&lt;code&gt;Xchat::emit_print( $event, LIST )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_lists&quot;&gt;&lt;code&gt;$event&lt;/code&gt;	-	name from the Event column in Settings-&amp;gt;Advanced-&amp;gt;Text Events&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;LIST		-	this depends on the Description column on the bottom of
-				Settings-&amp;gt;Advanced-&amp;gt;Text Events&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$event&lt;/code&gt;	-	name from the Event column in Settings-&amp;gt;Advanced-&amp;gt;Text Events&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;LIST		-	this depends on the Description column on the bottom of Settings-&amp;gt;Advanced-&amp;gt;Text Events&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;This functions is used to generate one of the events listed under
 Settings-&amp;gt;Advanced-&amp;gt;Text Events&lt;/p&gt;
 &lt;p&gt;Returns true on success, false on failure&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
+&lt;h3&gt;&lt;a name=&quot;xchat__send_modes___target_____targets___sign___mode_____modes_per_line____&quot;&gt;&lt;code&gt;Xchat::send_modes( $target | \@targets, $sign, $mode, [ $modes_per_line ] )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
+&lt;ul&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_target&quot; class=&quot;item&quot;&gt;&lt;code&gt;$target&lt;/code&gt;	-	a single nick to set the mode on&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;targets_an_array_reference_of_the_nicks_to_set_the_mode_on_item_sign_the_mode_sign_either_or&quot; class=&quot;item&quot;&gt;&lt;code&gt;\@targets&lt;/code&gt;	-	an array reference of the nicks to set the mode on
+=item *
+&lt;code&gt;$sign&lt;/code&gt;	- the mode sign, either '+' or '-'&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_mode&quot; class=&quot;item&quot;&gt;&lt;code&gt;$mode&lt;/code&gt; - the mode character such as 'o' and 'v', this can only be one character long&lt;/a&gt;&lt;/strong&gt;
+
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;maximum&quot; class=&quot;item&quot;&gt;&lt;code&gt;$modes_per_line&lt;/code&gt;	-	an optional argument maximum number of modes to send per at once, pass 0 use the current server's maximum (default)&lt;/a&gt;&lt;/strong&gt;
+
+&lt;/ul&gt;
+&lt;p&gt;Send multiple mode changes for the current channel. It may send multiple MODE lines if the request doesn't fit on one.&lt;/p&gt;
+&lt;p&gt;Example:&lt;/p&gt;
+&lt;code&gt;
+&lt;pre&gt;
+use strict;
+use warning;
+use Xchat qw(:all);hook_command( &quot;MODES&quot;, sub {
+   my (undef, $who, $sign, $mode) = @{$_[0]};   my @targets = split /,/, $who;
+   if( @targets &amp;gt; 1 ) {
+      send_modes( \@targets, $sign, $mode, 1 );
+   } else {
+      send_modes( $who, $sign, $mode );
+   }   return EAT_XCHAT;
+});
+&lt;/pre&gt;
+&lt;/code&gt;&lt;p&gt;
+&lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__nickcmp___nick1___nick2__&quot;&gt;&lt;code&gt;Xchat::nickcmp( $nick1, $nick2 )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24nick1_2c__24nick2_3e__2d_the_two_nicks_or_c&quot;&gt;&lt;code&gt;$nick1, $nick2&lt;/code&gt;	-	the two nicks or channel names that are to be compared&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_nick1_&quot; class=&quot;item&quot;&gt;&lt;code&gt;$nick1, $nick2&lt;/code&gt;	-	the two nicks or channel names that are to be compared&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
-&lt;p&gt;The comparsion is based on the current server. Either a RFC1459 compliant
+&lt;p&gt;The comparsion is based on the current server. Either a &lt;a href=&quot;http://www.ietf.org/rfc/rfc1459.txt&quot; class=&quot;rfc&quot;&gt;RFC1459&lt;/a&gt; compliant
 string compare or plain ascii will be using depending on the server. The
 comparison is case insensitive.&lt;/p&gt;
 &lt;p&gt;Returns a number less than, equal to or greater than zero if
@@ -554,9 +570,9 @@ found respectively, to be less than, to match, or be greater than
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__get_list___name__&quot;&gt;&lt;code&gt;Xchat::get_list( $name )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24name_3e__2d_name_of_the_list_2c_one_of_the_&quot;&gt;&lt;code&gt;$name&lt;/code&gt; -	name of the list, one of the following:
-``channels'', ``dcc'', ``ignore'', ``notify'', ``users''&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$name&lt;/code&gt; -	name of the list, one of the following:
+&amp;quot;channels&amp;quot;, &amp;quot;dcc&amp;quot;, &amp;quot;ignore&amp;quot;, &amp;quot;notify&amp;quot;, &amp;quot;users&amp;quot;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;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
@@ -565,50 +581,45 @@ if there is no such list.&lt;/p&gt;
 		&lt;td&gt;Key&lt;/td&gt;	&lt;td&gt;Description&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;channel&lt;/td&gt;	&lt;td&gt;tab name&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;chantypes&lt;/td&gt;
-		&lt;td&gt;channel types supported by the server, typically &quot;#&amp;amp;&quot;&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+		&lt;td&gt;&lt;channel types supported by the server, typically &quot;#&amp;amp;&quot;&lt;/td&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;context&lt;/td&gt;	&lt;td&gt;can be used with set_context&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;flags&lt;/td&gt;	&lt;td&gt;Server Bits:&lt;br /&gt;
-							0  - Connected&lt;br /&gt;
-							1  - Connecting&lt;br /&gt;
-							2  - Away&lt;br /&gt;
-							3  - EndOfMotd(Login complete)&lt;br /&gt;
-							4  - Has WHOX (ircu)&lt;br /&gt;
-							5  - Has IDMSG (FreeNode)&lt;br /&gt;
-							&lt;br /&gt;
-							&lt;p&gt;The following correspond to the /chanopt command&lt;/p&gt;
-							6  - Hide Join/Part Message (text_hidejoinpart)&lt;br /&gt;
-							7  - unused (was for color paste)&lt;br /&gt;
-							8  - Beep on message (alert_beep)&lt;br /&gt;
-							9  - Blink Tray (alert_tray)&lt;br /&gt;
-							10 - Blink Task Bar (alert_taskbar)&lt;br /&gt;
+							0 - Connected&lt;br /&gt;
+							1 - Connecting&lt;br /&gt;
+							2 - Away&lt;br /&gt;
+							3 - EndOfMotd(Login complete)&lt;br /&gt;
+							4 - Has WHOX&lt;br /&gt;
+							5 - Has IDMSG (FreeNode)&lt;br /&gt;
+                    &lt;br /&gt;
+                    &lt;p&gt;The following correspond to the /chanopt command&lt;/p&gt;
+                    6  - Hide Join/Part Message (text_hidejoinpart)&lt;br /&gt;
+                    7  - unused (was for color paste)&lt;br /&gt;
+                    8  - Beep on message (alert_beep)&lt;br /&gt;
+                    9  - Blink Tray (alert_tray)&lt;br /&gt;
+                    10 - Blink Task Bar (alert_taskbar)&lt;br /&gt;
 &lt;p&gt;Example of checking if the current context has Hide Join/Part messages set:&lt;br /&gt;
 &lt;code&gt;
 &lt;pre&gt;
 if( Xchat::context_info-&amp;gt;{flags} &amp; (1 &amp;lt;&amp;lt; 6) ) {
-	Xchat::print( &quot;Hide Join/Part messages is enabled&quot; );
+  Xchat::print( &quot;Hide Join/Part messages is enabled&quot; );
 }
 &lt;/pre&gt;
 &lt;/code&gt;
-&lt;/p&gt;
-							&lt;/td&gt;
+&lt;/p&gt;							&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;id&lt;/td&gt;	&lt;td&gt;Unique server ID	&lt;/td&gt;
 	&lt;/tr&gt;
 	
 	&lt;tr&gt;
 		&lt;td&gt;maxmodes&lt;/td&gt;	&lt;td&gt;Maximum modes per line&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;lag&lt;/td&gt;
 		&lt;td&gt;lag in milliseconds&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;network&lt;/td&gt;	&lt;td&gt;network name to which this channel belongs&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;nickprefixes&lt;/td&gt;	&lt;td&gt;Nickname prefixes e.g. &quot;+@&quot;&lt;/td&gt;
@@ -616,11 +627,11 @@ if( Xchat::context_info-&amp;gt;{flags} &amp; (1 &amp;lt;&amp;lt; 6) ) {
 	
 	&lt;tr&gt;
 		&lt;td&gt;nickmodes&lt;/td&gt;	&lt;td&gt;Nickname mode chars e.g. &quot;vo&quot;&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;queue&lt;/td&gt;
 		&lt;td&gt;number of bytes in the send queue&lt;/td&gt;
 	&lt;/tr&gt;
+	
 	&lt;tr&gt;
 		&lt;td&gt;server&lt;/td&gt;	&lt;td&gt;server name to which this channel belongs&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
@@ -692,12 +703,10 @@ if( Xchat::context_info-&amp;gt;{flags} &amp; (1 &amp;lt;&amp;lt; 6) ) {
 &lt;table border=&quot;1&quot;&gt;
 	&lt;tr style=&quot;background-color: #dddddd&quot;&gt;
 		&lt;td&gt;Key&lt;/td&gt;	&lt;td&gt;Value&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;networks&lt;/td&gt;
 		&lt;td&gt;comma separated list of networks where you will be notfified about this user's online/offline status or undef if you will be notificed on every network you are connected to&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;nick&lt;/td&gt;	&lt;td&gt;nickname&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;flags&lt;/td&gt;	&lt;td&gt;0 = is online&lt;/td&gt;
@@ -715,71 +724,66 @@ detail&lt;/p&gt;&lt;p&gt;&quot;users&quot;		-	list of users in the current channel&lt;/p&gt;
 		&lt;td&gt;Key&lt;/td&gt;	&lt;td&gt;Value&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;away&lt;/td&gt;	&lt;td&gt;away status(boolean)&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;lasttalk&lt;/td&gt;
 		&lt;td&gt;last time a user was seen talking, this is the an epoch time(number of seconds since a certain date, that date depends on the OS)&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;nick&lt;/td&gt;	&lt;td&gt;nick name&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;host&lt;/td&gt;
 		&lt;td&gt;host name in the form: user@host or undef if not known&lt;/td&gt;
 	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;prefix&lt;/td&gt;	&lt;td&gt;prefix character, .e.g: @ or +&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;realname&lt;/td&gt;
-		&lt;td&gt;Real name or undef&lt;/td&gt;
-	&lt;/tr&gt;
-	&lt;tr&gt;
+		 &lt;td&gt;Real name or undef&lt;/td&gt;
+	&lt;/tr&gt;	&lt;tr&gt;
 		&lt;td&gt;selected&lt;/td&gt;
 		&lt;td&gt;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&lt;/td&gt;
+	&lt;/tr&gt;
 &lt;/table&gt;&lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__user_info____nick___&quot;&gt;&lt;code&gt;Xchat::user_info( [$nick] )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24nick_3e__2d_the_nick_to_look_for_2c_if_this&quot;&gt;&lt;code&gt;$nick&lt;/code&gt;	-	the nick to look for, if this is not given your own nick will be
-				used as default&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_nick&quot; class=&quot;item&quot;&gt;&lt;code&gt;$nick&lt;/code&gt;	-	the nick to look for, if this is not given your own nick will be
+				used as default&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
 &lt;p&gt;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 to use &lt;a href=&quot;#xchat__get_list___name__&quot;&gt;get_list&lt;/a&gt;.
-If &lt;code&gt;$nick&lt;/code&gt; is found a hash reference containing the same keys as those in the
-``users'' list of &lt;a href=&quot;#xchat__get_list___name__&quot;&gt;get_list&lt;/a&gt; is returned otherwise undef is returned.&lt;/p&gt;
+If &lt;a href=&quot;#_nick&quot;&gt;&lt;code&gt;$nick&lt;/code&gt;&lt;/a&gt; is found a hash reference containing the same keys as those in the
+&amp;quot;users&amp;quot; list of &lt;a href=&quot;#xchat__get_list___name__&quot;&gt;get_list&lt;/a&gt; is returned otherwise undef is returned.&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__context_info____context___&quot;&gt;&lt;code&gt;Xchat::context_info( [$context] )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;code&gt;$context&lt;/code&gt;	-	context returned from &lt;a href=&quot;#xchat__get_context__&quot;&gt;get_context&lt;/a&gt;, &lt;a href=&quot;#xchat__find_context____channel____server____&quot;&gt;find_context&lt;/a&gt; and &lt;a href=&quot;#xchat__get_list___name__&quot;&gt;get_list&lt;/a&gt;, this is the context that you want infomation about. If this is omitted, it will default to current context.&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;code&gt;$context&lt;/code&gt;	-	context returned from &lt;a href=&quot;#get_context&quot;&gt;get_context&lt;/a&gt;, &lt;a href=&quot;#xchat__find_context____channel____server____&quot;&gt;find_context&lt;/a&gt; and &lt;a href=&quot;#xchat__get_list___name__&quot;&gt;get_list&lt;/a&gt;, this is the context that you want infomation about. If this is omitted, it will default to current context.&lt;/strong&gt;
+
 &lt;/ul&gt;
-&lt;p&gt;This function will return the information normally retrieved with &lt;a href=&quot;#xchat__get_info___id__&quot;&gt;get_info&lt;/a&gt;, 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 &lt;a href=&quot;#xchat__get_info___id__&quot;&gt;get_info&lt;/a&gt;. It also includes all the keys are valid &lt;code&gt;Xchat::get_list( &quot;channels&quot; )&lt;/code&gt;&lt;/p&gt;
+&lt;p&gt;This function will return the information normally retrieved with &lt;a href=&quot;#xchat__get_info___id__&quot;&gt;get_info&lt;/a&gt;, 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 &lt;a href=&quot;#xchat__get_info___id__&quot;&gt;get_info&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;Example:
 &lt;code&gt;
 &lt;pre&gt;
 use strict;
 use warnings;
 use Xchat qw(:all); # imports all the functions documented on this page
-
 register( &quot;User Count&quot;, &quot;0.1&quot;, &quot;Print out the number of users on the current channel&quot; );
 hook_command( &quot;UCOUNT&quot;, \&amp;amp;display_count );
 sub display_count {
-	prnt &quot;There are &quot; . context_info()-&gt;{users} . &quot; users in this channel.&quot;;
-	return EAT_XCHAT;
+  prnt &quot;There are &quot; . context_info()-&gt;{users} . &quot; users in this channel.&quot;;
+  return EAT_XCHAT;
 }
 &lt;/pre&gt;
 &lt;/code&gt;
-&lt;/p&gt;
-&lt;p&gt;
+&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;xchat__strip_code___string__&quot;&gt;&lt;code&gt;Xchat::strip_code( $string )&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;item_c_3c_24string_3e__2d_string_to_remove_codes_from&quot;&gt;&lt;code&gt;$string&lt;/code&gt;	-	string to remove codes from&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
-&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;&lt;a name=&quot;_string&quot; class=&quot;item&quot;&gt;&lt;code&gt;$string&lt;/code&gt;	-	string to remove codes from&lt;/a&gt;&lt;/strong&gt;
+
 &lt;/ul&gt;
-&lt;p&gt;This function will remove bold, color, beep, reset, reverse and underline codes from &lt;code&gt;$string&lt;/code&gt;. If it is called in void context $string will be modified otherwise a modified copy of &lt;code&gt;$string&lt;/code&gt; is returned.&lt;/p&gt;
+&lt;p&gt;This function will remove bold, color, beep, reset, reverse and underline codes from &lt;a href=&quot;#_string&quot;&gt;&lt;code&gt;$string&lt;/code&gt;&lt;/a&gt;. If it is called in void context $string will be modified otherwise a modified copy of &lt;a href=&quot;#_string&quot;&gt;&lt;code&gt;$string&lt;/code&gt;&lt;/a&gt; is returned.&lt;/p&gt;
 &lt;p&gt;
 &lt;/p&gt;
 &lt;h2&gt;&lt;a name=&quot;contact_information&quot;&gt;Contact Information&lt;/a&gt;&lt;/h2&gt;</diff>
      <filename>plugins/perl/xchat2-perl.html</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>dc346cdf66e2ec5deeb7ab4fe6970c41d7e697d5</id>
    </parent>
  </parents>
  <author>
    <name>lsitu</name>
    <email>lsitu</email>
  </author>
  <url>http://github.com/tycho/xchat-aqua/commit/c831550f17a9d408905a8ea8ff2ff57782b5d7a1</url>
  <id>c831550f17a9d408905a8ea8ff2ff57782b5d7a1</id>
  <committed-date>2009-03-05T17:27:35-08:00</committed-date>
  <authored-date>2009-03-05T17:27:35-08:00</authored-date>
  <message>Make xchat_send_modes available from Perl</message>
  <tree>ed2a5a534346ee2132965557e9b68d001784770e</tree>
  <committer>
    <name>lsitu</name>
    <email>lsitu</email>
  </committer>
</commit>
