   EZ IRC for OS/2 Warp     version 1.2o beta
=====================================================================

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.
/clear    (to clear the window)
/rejoin on|off (to set automatic channel rejoin on kick)

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)

=====================================================================
Changes in 1.2o,
- /clear command
- more channel search options, and channel search fix
- /rejoin command
- fixed bug to allow script to work if a nickname has a | in it
- fixed bug in logging. (filenames with multiple .s in them)
- allow multiple line select for copy
- allow numeric IP address instead of server name
- allow joining channels from scripts
- now show the command on the screen from scripts.
- 5 second timer on initial copyright screen.
- allow password on server connect..  format=  irc.server.com:port:password
=====================================================================
Changes in 1.2j,
- Flood control setting on setup
- Line wrap on word boundries
- Name change to EZirc.
- Sound support
- allow socket addr per irc server address. use format   irc.server.net:6667
- DCC functions can now be used on machines with multiple interfaces.
- automatic nickname changing to add ^ if nickname is in use.
- enhanced channel listing performance.
- fixed /join with password for protected channels
- Do not allow PING/VERSION to autolaunch windows.
- Save last irc server:portnumber  to allow easier reconnecting.
- Tile windows (for 4 window tile)
- channel/nick logging to seperate files
- Alias command support via rexx script
- A few other minor fixes..
=====================================================================
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.cmd> <search text string>

   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.

<filename.cmd>
 This is REXX file that will have input of the following arguements.
 <channel or nickname> <full line of text that was received that caused this
                        file to get executed>


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.
