PM IRC for OS/2 Warp version 1.2 ===================================================================== This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. (c) Copyright Roger Bess 1996, All Rights Reserved. ============ SUMMARY of some PMirc commands, more details below========= /m nickname your message = to send a private message to a nickname. /me your message = Specifies an action. /ping nickname = ping a nickname (or use the pulldown window) /ver nickname = query a nicknames version "" /whois nickname = query a nicknames additional data. "" /who channel = list the users on a channel. "" /nick newnickname = To change your nickname. /join channel = joins a channel /ignore nickname duration = ignores "nickname" for "duration" seconds. /ignore (no parameters) = display the nicks currently being ignored. /dccsend nickname file = to send a file to nickname. dccsend nick c:\file /flood num interval restoreseconds = if num CTCP's are received in interval time, the filter out for restoreseconds /ctcp nickname command for most other ctcp commands. Almost all of the IRC commands specified in RFC1459 are supported. Simply prefix the command with a '/'. For example. /TOPIC #channel your topic will change the channels topic. (or use the channel options window) Other hot keys: - copy/paste (ctrl-insert/shift-insert or ctrl-c/ctrl-p) - hot key toggle through channel and private windows (ctrl-x, ctrl-tab) - retreive commands (ctrl-uparrow/ctrl-downarrow) To stop running scripts, rename or copy the PMIRCSCR.BAK file to, PMIRC.SCR then goto options->setup and hit 'ok'. ===================================================================== Changes in 1.2 - Added ignore function (with an ignore duration paramater) - Add command line /dccsend command - Seperate window task list - Flood detection for CTCP commands - fixed nickname changing problem - moved whoishere, stopscroll buttons to floating menu (more room for text - System menu on all windows - DCC receive will now overwrite file if it previously existed. (prompt) - Beep on private option now applies to DCC chat - Fixed 'bogus' characters appearing in DCC chat - Improved the line wrapping. (still not 'perfect' though) - Fixed script problem where long commands from the script get truncated. - A primitive logging mechinasm - Suppress unprintable characters, (mIRC 4.7 color codes) - other small fixes and enhancements. ===================================================================== Changes in 1.10 - Script support - Window fonts/colors cleaned up giving PMirc a new look. - Delete 'menu only' window, and put menu on the pmirc general window - Display current server in pmirc title bar. - automatically rejoin channels after disconnect/reconnect to server - show longer lists on setup, and connect to server dialogs. - fixed identd problem - DCC send size configurable - Windows added to Task List (ctrl-esc) *disabled in 1.11* ===================================================================== Changes in 1.09b - DCC send/receive fix - optimize channel list ===================================================================== Changes in 1.09 - can configure multiple servers (options->setup) - auto reconnect to server if disconnected (options->setup) - extra msg's supported for AWAY, KICK, and SERVER DISCONNECT (options->setup) - Color support for foreground/backround colors (options->colors) - notify interval is user configurable (options->setup) - default DCC path is configurable (options->setup) - copy/paste (ctrl-insert/shift-insert or ctrl-c/ctrl-p) - hot key toggle through channel and private windows (ctrl-x, ctrl-tab) - retreive commands (ctrl-uparrow/ctrl-downarrow) - other small improvements Remember the 2nd mouse button, it does wonders. :) ===================================================================== Changes in 1.08 - various fixes - DCC send, receive and chat now supported. - /ctcp now is supported, format is /ctcp nickname command - can now stop window scrolling ===================================================================== Changes in 1.07 - various fixes - Change font is now support - Line wrapping based on window size - Automatic refresh of the user list window - Auto launch window option on incomming private message - user list and channel list windows can be closed - /join is enabled from the command line, (autolaunches a window) - Setup is now through options->setup. you never need to edit the .ini file ===================================================================== The only files related to this program are PMIRC.EXE = The executable file PMIRC.INI = an INI file (optional) Here is basic operation and commands for PM IRC. The first option to select is 'Connect To Server' Once your connected into the server, you can now Join channels or execute the various commands of IRC.. ----------------------------------------------------------------------- To join a channel do one of the following. - select Channels->Join Channel enter the channel name. - In the Channel List window, click on a channel to hilight it, then click the 2nd mouse button for a pull down menu.. - at the command line type /join #channel This will launch a window and join the channel. ----------------------------------------------------------------------- To leave a channel. - Press the Quit button on the window. ----------------------------------------------------------------------- To list channels - select Channels->List Channels. you will be prompted for a channel search string. This will list all channels that have the 'search string' in the channel name. If the search string is left blank, ALL channels will be displayed. Note, while the channel list is being sent from the server, you will not be able to send/receive other messages from users. - Select Channels->Preferred Channels This will query only the channels specified in the .ini file. See below more details. ----------------------------------------------------------------------- To Save your window positions and sizes. Go to Options->Save Window Positions. ----------------------------------------------------------------------- To show the users on a channel, - From the channel list window, select a channel and press the 2nd mouse button, and select 'who is here' = The results of this who is displayed in the 'General Window' - From a channel window, press the 'Who is Here' button. = The results are displayed in a seperate window associated with this channel. ----------------------------------------------------------------------- Options from the channel users window, press the 2nd mouse button, after selecting a line. Most of these options can be selected from ANY window now via the 2nd button after selecting a line with a nickname at the beginning channel options = Brings up dialog window to change channel options. (you must have operator status @ to do this) Private = Start a new window, messages to from this window are only sent to the nickname selected. DCC Chat = Start a private DCC chat session. (this is usually faster and more secure that normal private chat) Whois = does a /whois command on the selected nickname, results on displayed on the general window. Ping = Ping selected nickname Version = Query the nicknames version. op/deop/kick/ban/unban = perform operation on the selected nickname. ======================================================================= Other Commands: /m nickname your message = to send a private message to a nickname. /me your message = Specifies an action. /ping nickname = ping a nickname (or use the pulldown window) /ver nickname = query a nicknames version "" /whois nickname = query a nicknames additional data. "" /who channel = list the users on a channel. "" /nick newnickname = To change your nickname. /ctcp nickname command for most other ctcp commands. Almost all of the IRC commands specified in RFC1459 are supported. Simply prefix the command with a '/'. For example. /TOPIC #channel your topic will change the channels topic. (or use the channel options window) =================================================================== Font support: Starting with 1.07, you can go to options->font to change the font. PMIRC will for the most part cut/wrap lines so they stay on the screen without having to use the horizontal scroll bar. Depending on the font you choose, the success of this wrapping changes.. I've seen cases with some proportional fonts, that they don't take advantage of the entire screen width. =================================================================== Auto refresh of the 'who is here' list, and the BAN function. - When you click the 'who is here' on a channel, it bring ups a window with the list of users, plus some additional information. As users join, leave, or change nicks, this list is automatically updated.. BUT, only the nickname is displayed.. If you want to 'BAN' a user from the channel, and they don't have the 'additional' information, click the 'who is here' to manually refresh the list, then u can select that nick, and perform the 'BAN' function. ===================================================================== DCC commands: To send a file via DCC: a. Go to the menu Users->DCC Send b. type in the nickname of the user you want to send to c. select the file name. d. Hit send. e. when the transfer is complete, hit ok. or type at the command line dccsend nickname filename eg. dccsend climbn c:\temp\file.txt ------------------- To start a DCC chat session. a. select Users->DCC chat b. type in the nickname. or. on most windows, a. hilight the line with the users nickname. b. press the 2nd mouse button, and select DCC Chat ------------------ To Receive DCC files. a. Be sure that Receive DCC is enabled under Options->setup b. A dialog box will be displayed to prompt for a local filename of were to put the file. c. hit receive. d. when the transfer is complete, hit ok. ------------------- =================================================================== identd: Many irc servers require that identd be supported on the client. PM IRC automatically starts identd when connecting to a server. =================================================================== INI file options. Note: The INI file never needs to be edited by hand. go to options->setup The following options are specified when you connect to a server. server=irc server name = specify the name of your irc server port=6667 = irc port realname=your real name = userid=your userid = To get notified which of your friends are on IRC, I have a notify list. Specify a list of nicknames to be checked for. Every 10 minutes, the client will display those in this list that are currently connected in. notify=nick1 nick2 nick3 To avoid having to do a 'List Channels' which can take a *very* long time to get the full response to, there is now a 'Preferred channels' option in the 'Channels' menu. This will only query the channels put on the preferred_channels line in the .ini file. The format is: preferred_channels=#channel1 #channel2 #channel3 The window positions can now be saved in the .ini file Unfortuately, there are cases where if you 'Save Window Positions' multiple times, the .ini file can get corrupted, (only slightly). I recommend that the window options be at the bottom of the .ini file. Below is the format of the lines, and how to create them under 'Options'. I intend to fix this corruption problem sometime.. main_window=4 1 400 50 general_window=4 33 519 192 channel_list_window=508 12 143 221 channel_window=4 254 522 221 whois_window=524 253 119 226 There are general messages that are not directly associated with a channel. These messages can either be displayed in the 'top' window or the 'general' window. To display to the top window, add the following line to the .ini file default_to_top_window=yes For private messages directed to you, they will either go a. to the window of that nickname, (if u have one open). b. to the 'top' most window, if u have default_private_to_top_window=yes c. to the 'general window' autolaunch_private_window=yes when this is enabled, when someone send you a private message, it will automatically bring up a private window for that user if none exists. ===================================================================== SCRIPT SUPPORT PMirc V1.10 provides the tools to allow users to - Start any REXX program based on a string of text received. - Execute an IRC command as returned by the executed REXX program. The script support requires 2 types of files. The first file specifies a list of REXX commands and search strings. ----------------------------------- PMIRC.SCR This file will contain lines of the following format filename = REXX program to execute search text string = when this text is received from the irc server it will execute the REXX program specified as 'filename' Use a : in the first column for comments Example of a line PMIRC.SCR :this is a comment playsnd.cmd SOUND joinch.cmd is joining channel This will execute the joinch.cmd REXX script when the string 'is joining channel' is seen. IMPORTANT: After making a change to the PMIRC.SCR file, goto options->setup. This will cause the PMIRC.SCR file to be re-read into PMIRC so your changes will take affect. ---------------------------------- The second type of file is the REXX scripts that are specfied in the PMIRC.SCR file. This is REXX file that will have input of the following arguements. The 'return' statement at the end of the rexx program can contain any command or text that a user would normally enter on the command line in PMirc. If the return has no arguement, the script will not execute any IRC command or text. To return multiple commands or text, use the symbol | (vertical bar) to seperate the different commands. resultstr = 'First command or text string|Second command or text string' ---------------------------- Example 1 of REXX script. (issuing a command) This REXX script is executed as a result of the text *** MyNick is joining channel #chatzone6 *** /* First line must be a comment line*/ parse arg channel asteriks nickname restoftext resultstr = '/whois '||nickname||'|Welcome '||nickname||' to channel '||channel return resultstr ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ first command second command The resultstr will be /whois MyNick to execute a /whois command on everyone who joins a channel while your there. It will also send a message to that user saying welcome to the channel. ----------------------------- Example 2 (playing a sound) /*This will play a sound when some issues the */ /* command /CTCP channel SOUND asound.wav */ /* note that there is no arguement on the 'return' statement */ parse arg channel nickname ctcp sound sound = substr(sound,1,length(sound)-1) 'start CALL play file=c:\mmos2\sounds\'sound return ------------------------------ More notes on scripts. - Text that YOU type will NOT cause a script to get executed. This will will help prevent some nasty loops that a user might create. - to test your own scripts, you can /msg yourself in many cases. - The REXX script can be as complex or as simple as you want it to be. Be careful with scripts that are too complex as they could slow the performance. - Watch for 'search strings' that are too generic or will cause the rexx script to get executed more than desired. This can also cause performance degradation. - If calling another rexx program from within this rexx program, you need to use the 'call' command. In some cases I use the 'start' command so that this rexx script can return control back to PMirc while the other rexx script executes. (The sound playing script is an example of this). - If you see a line REXX Error RC= this is because there is either a pmirc.scr file that is pointing to a rexx file that can't be found, or there is a problem in the REXX script itself. ===================================================================== This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. ===================================================================== Please send any comments to rndbess@ibm.net When I'm on IRC, I always go by the nickname climbn. Look me up if you have questions.