home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / hacking / internet / ircman.r < prev    next >
Encoding:
Text File  |  1994-11-10  |  89.8 KB  |  2,326 lines

  1.  
  2.  
  3.                                 Abstract
  4.                                 ~~~~
  5.  
  6.    Have  you ever wanted to talk with other computer users in other parts
  7. of  the  world?  Well guess what...  You can!  The program is called IRC,
  8. (Internet  Relay Chat), and it is networked much over North America, Asia
  9. Europe, and Oceania.  This program is a substitution for 'talk', and many
  10. other  multiple  talk  programs  you might have read about.  When you are
  11. talking  on IRC, everything you type will instantly be transmitted around
  12. the  world  to  other users that might be watching their terminals at the
  13. time, they can then type something and respond to your messages, and vice
  14. versa.  I should warn you that the program can be very addictive once you
  15. begin  to make friends and contacts on IRC, especially when you learn how
  16. to discuss in 14 languages...
  17.  
  18.    Topics of discussion on IRC are varied, just like the topics of Usenet
  19. newsgroups  are varied.  Technical and political discussions are popular,
  20. especially  when  world  events  are  in  progress.  IRC is also a way to
  21. expand  your horizons, as people from many countries and cultures are on,
  22. 24  hours a day.  Most conversations are in English, but there are always
  23. channels  in  German,  Japanese,  French, Finnish, and occasionally other
  24. languages.
  25.  
  26.    IRC  gained  international fame during the late Persian Gulf War, when
  27. updates  from  around  the world came across the wire, and most people on
  28. IRC gathered on a single channel to hear these reports.
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.                                 CONTENTS
  41.                                ~~~~~
  42.  
  43. 1.     Getting started
  44.  
  45.         1.1    Clients and Servers
  46.         1.2    How to Behave on IRC
  47.         1.3    Privacy on IRC
  48.         1.4    First Steps
  49.         1.5    Screen and Keyboard activity
  50.  
  51.  
  52. 2.     Let's go!
  53.  
  54.         2.1    General Commands
  55.         2.2    Communication and Private Conversations
  56.         2.3    Channels and Public Conversations
  57.         2.4    Channel and User Modes
  58.         2.5    Client to Client Protocol
  59.         2.6    Network Related Commands
  60.         2.7    Quick Reference Panel
  61.         2.8    Further into ircII Wizardry
  62.         2.9    Sample .ircrc
  63.         2.10   Writing Automatons
  64.  
  65.  
  66. 3.     Frequently Asked Questions
  67.  
  68.         3.1    How do I set up an IRC client?
  69.         3.2    Which server do I connect to?
  70.         3.3    What are good channels to try while using IRC?
  71.         3.4    How do I get nifty effects with ircII?
  72.         3.5    What if someone tells me to type something cryptic?
  73.         3.6    I get strange characters on my screen, what are they?
  74.         3.7    What about NickServ?
  75.         3.8    I'm being flooded and harassed by a jerk. Help!
  76.         3.9    How do I get rid of a ghosted IRC session?
  77.         3.10   About KILL usage.
  78.         3.11   Where can I find more?
  79.  
  80.  
  81. 4.     Administrativia
  82.  
  83.         4.1    Revision history
  84.         4.2    Release sites for the IRCprimer
  85.         4.3    Copyright (C) 1993 Nicolas PIOCH
  86.         4.4    Credits
  87.  
  88.  
  89.  
  90.                              List of Tables
  91.                              --------------
  92.  
  93.            Table  1:  Editing keys
  94.            Table  2:  Editing commands
  95.            Table  3:  Simple screen activity
  96.            Table  4:  General commands
  97.            Table  5:  Private conversation commands
  98.            Table  6:  Channel commands
  99.            Table  7:  Mode commands
  100.            Table  8:  Channel modes
  101.            Table  9:  User modes
  102.            Table 10:  Client to client commands
  103.            Table 11:  Network related commands
  104.            Table 12:  Setting environment tables
  105.            Table 13:  Environment variables
  106.            Table 14:  Advanced commands
  107.            Table 15:  FTP sites with IRC clients
  108.            Table 16:  Open telnet IRC clients
  109.            Table 17:  Open IRC servers
  110.            Table 18:  Highlighting ircII output
  111.            Table 19:  Nordic countries character translations
  112.            Table 20:  IRC related mailing lists
  113.            Table 21:  IRCprimer release sites
  114.  
  115.  
  116.  
  117.                            1. GETTING STARTED
  118.                            ==================
  119.  
  120.                         1.1  Clients and Servers
  121.                         ~~~~~~~~~~~~
  122.  
  123.    IRC  (original code was written by Jarkko Oikarinen)  is a multi-user,
  124. multi-channel  chatting  network.  It allows people all over the internet
  125. to  talk to one another in real-time.  It is a functional replacement and
  126. improvement to 'talk'; 'talk' is an old, primitive, atrocious, minimalist
  127. sort  of  keyboard/screen  conversation tool, using a grotesque, machine-
  128. dependent  protocol  (blah!).   IRC does everything 'talk' does, but with
  129. better  protocol, allowing more than 2 users to talk at once, with access
  130. across the aggregate Internet, and providing a whole raft of other useful
  131. features.
  132.  
  133.    There  are two ways to enter IRC from a Unix system.  If you are using
  134. the   emacs    (editor  from  Richard  Stallman  and  the  Free  Software
  135. Foundation)   lisp  client,  you  just  have  to type "M-x irc", (if this
  136. doesn't  work  you  may need to load the client into your emacs session).
  137. If  you  are using the C client, (easier for beginners), then you usually
  138. type "irc".  Non-Unix boxes have special clients, each of which has to be
  139. configured using a special procedure. Check the manual or help screen for
  140. more information.
  141.  
  142.    If  you  wish  to be known by a nickname which is not your login name,
  143. type  "irc  nickname"  instead.   Each  IRC  user,  ("client"), chooses a
  144. nickname.   All  communication with another user is either by nickname or
  145. by  the channel that they or you are on  (more information about channels
  146. later on).
  147.  
  148.    The  most important thing to remember about IRC is that you have to be
  149. willing  to explore and learn to use it...  Take you time, try not to get
  150. flustered, enjoy  yourself,  and you will soon be making  new friends all
  151. over the world!
  152.  
  153.    IRC  is  based  on  a  client-server model.  Clients are programs that
  154. connect  to  a  server,  a  server  is  a  program  that transports data,
  155. (messages),  from a user client to another.  There are clients running on
  156. many  different systems, (Unix, emacs, VMS, MSDOS, VM...), that allow you
  157. to  connect to an IRC server.  The client which will be spoken of here is
  158. the  most  widespread:   ircII, (originally designed by Michael Sandrof).
  159. Other clients are similar, and often accept ircII commands.
  160.  
  161.  
  162.  
  163.  
  164.                         1.2  How to behave on IRC
  165.                         ~~~~~~~~~~~~~
  166.  
  167.    The  most  widely  understood  and  spoken language on IRC is English.
  168. However,  as  IRC  is  used in many different countries, English is by no
  169. means  the  only language.  If you want to speak some other language than
  170. English,  (for  example  with your friends), go to a separate channel and
  171. set  the topic to indicate that.  On the other hand, you should check the
  172. topic  before you move  to a channel to see if there are any restrictions
  173. about  language.   On  a  non-restricted channel, please speak a language
  174. everybody can understand. If you want to do otherwise,change channels and
  175. set the topic accordingly.
  176.  
  177.    It's  not  necessary  to  greet  everybody  on  a  channel personally.
  178. Usually  one "Hello!" or equivalent is enough. And don't expect everybody
  179. to  greet  you  back...   On a channel with 20 people that would mean one
  180. screenful of hellos.  It's sensible not to greet, in order not to be rude
  181. to  the rest of the channel.  If you must say hello to somebody you know,
  182. do it with a private message.  The same applies to goodbyes.
  183.  
  184.    Also  note  that using your client facilities, (ircII "ON" command for
  185. instance),  to  automatically say hello or goodbye to people is extremely
  186. poor  etiquette.   Nobody wants to receive autogreets.  They are not only
  187. obviously  automatic,  but  even  if  you  think  you  are polite you are
  188. actually  sounding  insincere  and  also  interfering  with  the personal
  189. environment of the recipient when using autogreets.  If somebody wants to
  190. be autogreeted on joining a channel, he will autogreet himself.
  191.  
  192.   Remember,  people  on  IRC  form  their opinions about you only by your
  193. actions,  writings  and  comments,  so think before you type.  If you use
  194. offensive  words,  you'll be frowned upon.  Do not "dump" to a channel or
  195. user,  (send  large  amounts of unwanted information).  This is likely to
  196. get  you  kicked  off the channel or killed off from IRC.  Dumping causes
  197. network "burps", connections going down because servers cannot handle the
  198. large amount of traffic anymore. Other prohibited actions include:
  199.  
  200.         * Harassing another user.  Harassment is defined as behavior
  201.           towards another user with the purpose of annoying them.
  202.  
  203.         * Annoying a channel with constant beeping.
  204.  
  205.         * Any behavior reducing the functionality of IRC.
  206.  
  207.  
  208.  
  209.  
  210.  
  211.                            1.3  Privacy on IRC
  212.                            ~~~~~~~~~~
  213.  
  214.    You  should always keep in mind that messages you send to someone over
  215. IRC are passed along  all the servers  between you and and the person you
  216. are writing to.  When you're sending a letter to someone,  any postman on
  217. the way could open it and read its contents...
  218.  
  219.    Well,  it's  the same on the network.  Any IRC-Admin could compile its
  220. server  in "debug" mode and log whatever messages are transmitted through
  221. his  node,  (it  has  already  been done), so a good thumb rule is not to
  222. trust the servers.
  223.  
  224.               +-------------------------------------------+
  225.               | IRC IS NOT A SECURE WAY OF COMMUNICATION! |
  226.               +-------------------------------------------+
  227.  
  228.    How  to  establish  direct  communications  between  clients  will  be
  229. explained later, (see DCC CHAT in section 2.5).  This should be used when
  230. you wouldn't want anybody else on IRC to intercept your private messages.
  231.  
  232.  
  233.  
  234.  
  235.  
  236.                             1.4  First Steps
  237.                             ~~~~~~~~
  238.  
  239.    Note:   ircII,  the  client  most  people  are using, has most of this
  240. information online.  If you are stuck, type "/HELP" and hit <return>.  To
  241. escape  from HELP mode, keep pressing <return> until your edit line, (the
  242. line  at the bottom of the screen), is empty.  Most of the information in
  243. this  file  can  be found typing these commands:  "/HELP INTRO" or "/HELP
  244. NEWUSER".
  245.  
  246.            +------------------------------------------------+
  247.            | All ircII commands begin with a "/" character. |
  248.            +------------------------------------------------+
  249.  
  250.    The  slash  is  the  default command character.  Commands are not case
  251. sensitive,  and  can  be  abbreviated  to  their first letters: "/SI" and
  252. "/sign  <text>"  stand  for  /SIGNOFF and will both end your IRC session,
  253. (more in section 2.1).
  254.  
  255.    Anything  that  does  not begin with "/" is assumed to be a message to
  256. someone  and will be sent to your current channel, or to a person you are
  257. QUERYing,  (the  QUERY  command  will  be  detailed  later on, maybe even
  258. section 2.2).
  259.  
  260.    If  you  are not sure about the spelling of an ircII command, type the
  261. prefix  of  that command, and press the ESCape key twice; ircII will give
  262. you a listing of commands and aliases that start with that prefix.  Don't
  263. forget the "/" in front of the command though.
  264.  
  265.         /W <ESC><ESC>
  266.         *** Commands:
  267.         ***     WAIT            WALL            WALLOPS         WHICH
  268.         ***     WHILE           WHO             WHOIS           WHOWAS
  269.         ***     WINDOW
  270.         *** Aliases:
  271.         ***     W
  272.  
  273.    This  is  an  example.   Your  screen  may show more aliases, and less
  274. commands  than  shown  here, or less aliases and more commands - in other
  275. words "your mileage may vary"...
  276.  
  277.  
  278.  
  279.  
  280.                     1.5  Screen and Keyboard activity
  281.                     ~~~~~~~~~~~~~~~~~
  282.  
  283.    IRC is a full-screen utility.  It takes over the screen, with the bulk
  284. of  activity  happening  in  the top (N-2) lines, a status line, (vaguely
  285. emacs-like),  on  the  next to last line, and your input being entered on
  286. the  last  line.   When  typing  commands at ircII, you have a minimalist
  287. line-editing facility in an emacs style.
  288.  
  289.  
  290.                          Table 1:  Editing keys
  291.                          ----------------------
  292.            Key      Effects
  293.            ~~      ~~~~
  294.             ^P      recalls previous command line
  295.             ^N      recalls next command line
  296.             ^F      moves forward one character
  297.             ^B      moves backward one character
  298.             ^A      moves the cursor to the beginning of the line
  299.             ^E      moves the cursor to the end of the line
  300.             ^D      deletes the character under the cursor
  301.             ^K      kills from the cursor to the end
  302.             ^Y      reinserts the last stretch of killed text
  303.             ^U      clears the whole line
  304.             ^L      redraws the screen
  305.  
  306.  
  307.                        Table 2:  Editing commands
  308.                        --------------------------
  309.            Keyword   Action
  310.            ~~~~   ~~~
  311.            !         recalls previous commands for re-editing
  312.            HISTORY   displays the command history
  313.            LASTLOG   lists the most recent messages
  314.            CLEAR     puts some white space on your screen
  315.  
  316.  
  317.    The  !   command  is  used to recall previous commands in your command
  318. history  for  re-execution.   The !  command is unique in that when it is
  319. used,  it  leaves  the  matching  history  entry  in  the  input line for
  320. re-editing.   You can specify a history entry either by its number in the
  321. history  list,  or  by  a  match  with  a given wildcard expression.  For
  322. instance,  "/!10"  will put  entry 10 in the history list  into the input
  323. line.  "/!/MSG" will search the history for a line beginning with a /MSG,
  324. (a "*" is implied at the end).
  325.  
  326. /![<history number>|<history match>]
  327.    Recalls previous commands for re-editing.
  328.  
  329.    The command history can be dumped using:
  330.  
  331. /HISTORY [<number>]
  332.    Displays  the  command  history  on  the  screen.  You can specify the
  333. number of history entries you wish to view as well.
  334.  
  335.  
  336.  
  337.    Almost  everything  happens  in  the  upper bulk  of the screen.  This
  338. includes  both  messages from other users,  as well as  the output of the
  339. control commands.  Normal  messages  from  other  users  appear  with the
  340. originating nickname in  <angle brackets>.  Private messages  arrive with
  341. the originating nickname  in  *asterisks*.  Messages you send to everyone
  342. appear with a preceding  "> "  whereas  messages  you  send  privately to
  343. another  user  appear  with  "-> *nickname*".  Other output  (invitations
  344. from other users  to join channels,  and so forth),  appears interspersed
  345. with other activity on the screen.
  346.  
  347.  
  348.                     Table 3:  Simple screen activity
  349.                     --------------------------------
  350.  
  351.   What is displayed    What you typed      Sender     Recipients
  352.   ~~~~~~~~~    ~~~~~~~      ~~~     ~~~~~
  353.   > Morning people     Morning, people     You        Channel
  354.   <some1else> hello                        some1else  Channel
  355.   -> *some1else* hi!   /msg some1else hi!  You        some1else (only)
  356.   *some1else* wassup?                      some1else  You (only)
  357.    Last ircII outputs can be recalled with:
  358. /LASTLOG [<number of entries>|<text> [<from entry>]]
  359.    Displays  the  contents  of  the  lastlog.  This is a list of the most
  360. recent  messages  that  have  appeared  on  the  screen,  useful  if  you
  361. inadvertantly  miss  messages.   If  no  arguments  are given, the entire
  362. lastlog  is  displayed.  If the first argument is a number, it determines
  363. how  many  log  entries  to  show.  Otherwise it is searched for in every
  364. lastlog  entry.   The  second  argument determines how many lines back to
  365. start display from.
  366.  
  367.         Example:
  368.  
  369.         /LASTLOG
  370.         > Public message I send to all in the channel
  371.         <some1else> Public message from some1else
  372.         *some1else* Private message sent to me by some1else
  373.         -> *some1else* Private message I send to some1else
  374.  
  375.    Finally, if your screen gets garbage from a 'talk', 'write', 'wall' or
  376. any other form of primitive communication (smirk), hit ^L to redraw it,
  377. or CLEAR it.
  378.  
  379. /CLEAR
  380.    Clears the screen.
  381.  
  382.  
  383.  
  384.  
  385.  
  386.                               2. LET'S GO!
  387.                               ============
  388.  
  389.                          2.1  General  Commands
  390.                          ~~~~~~~~~~~
  391.  
  392.                        Table 4:  General commands
  393.                        --------------------------
  394.     Keyword   Action
  395.     ~~~~   ~~~
  396.     NICK      changes your nickname
  397.     QUIT      exits your IRC session, (same as BYE, SIGNOFF and EXIT)
  398.     HELP      prints help on the given command
  399.     WHOIS     displays information about someone
  400.     WHOWAS    displays information about someone who just left
  401.     AWAY      leaves a message saying you're not paying attention
  402.  
  403.  
  404.  
  405. /NICK [<nickname>]
  406.    Changes your nickname to whatever you like.
  407.  
  408.    Everyone  who  wants  to  talk  to  you  sees this name - also, at the
  409. moment, nicknames are limited to 9 characters max.  Your nickname will be
  410. the  same as your login name by default.  You can also set an environment
  411. variable,  IRCNICK,  the  value  of which will be used instead.  Nickname
  412. clashes  are  not  allowed;  this  is  enforced  by the servers.  If your
  413. intended  nickname clashes with someone else's as you enter IRC, you will
  414. not be able to enter until you change it to something else.
  415.  
  416.         /NICK Nappy
  417.         *** Nap is now known as Nappy
  418.  
  419.  
  420.  
  421. /QUIT [<reason>]
  422.    Exits your IRC session.  You can also use BYE, SIGNOFF and EXIT.  If a
  423. reason is supplied, it is displayed to other people on your channels.
  424.  
  425.         /QUIT Lunch Time!
  426.         poly ~ >
  427.  
  428.  
  429.  
  430. /HELP [<command>]
  431.    Shows help on the given command.
  432.  
  433.         /HELP HELP
  434.         Usage: HELP [command]
  435.            Shows help on the given command. The help documentation is set
  436.            up in a  hierarchical fashion.  That  means that  certain help
  437.            topics have sub-topics under them.
  438.         [boring stuff deleted]
  439.  
  440.  
  441.  
  442. /WHOIS [<nickname>]
  443.    Shows information about someone.
  444.  
  445.         /WHOIS Nap
  446.         *** Nap is pioch@poly.polytechnique.fr (Klein bottle for sale...
  447.            inquire within.)
  448.         *** on channels: @#Twilight_Zone @#EU-Opers
  449.         *** on via server poly.polytechnique.fr (Ecole Polytechnique,
  450.           Paris, FRANCE ! )
  451.         *** Nap has a connection to the twilight zone (is an IRC operator)
  452.         *** Nap has been idle 0 seconds
  453.  
  454.         /WHOIS Nappy
  455.         *** Nappy: No such nickname
  456.  
  457.  
  458.    Sometimes WHOIS won't help you much, because the person you want to
  459. know more about just left IRC or changed nick.  However, you can use
  460. WHOWAS to get this information for a while:
  461.  
  462. /WHOWAS [[<server>] <nickname>]
  463.    Shows  information  about who used the given nickname last, even if no
  464. one is currently using it.
  465.  
  466.         /WHOWAS Nappy
  467.         *** Nappy was pioch@poly.polytechnique.fr (Artistic ventures
  468.           highlighted. Rob a museum.) on channel *private*
  469.         *** on irc via server poly.polytechnique.fr (Signoff: Mon Jun 22
  470.           20:15:23)
  471.  
  472.  
  473.    Very  often,  an  unsuccess call to WHOIS will lead you to try WHOWAS.
  474. That's  why  ircII  allows you to "/SET AUTO_WHOWAS ON"; that way, a "***
  475. <nickname>:   No  such  nickname"  message  will automagically generate a
  476. "/WHOWAS  <nickname>".   Try  typing  "/HELP  SET  AUTO_WHOWAS"  for more
  477. information on this topic.
  478.  
  479.  
  480.  
  481. /AWAY [<away message>]
  482.    Leave a message explaining that you are not currently paying attention
  483. to  IRC.   Whenever  someone sends you a MSG or does a WHOIS on you, they
  484. automatically   see  whatever  message  you  set.   Using  AWAY  with  no
  485. parameters marks you as no longer being away.
  486.  
  487.         /AWAY Gone to get a cup of coffee.
  488.         *** You have been marked as being away
  489.  
  490.         /AWAY
  491.         *** You are no longer marked as being away
  492.  
  493.  
  494.  
  495.  
  496.                2.2  Communication and Private Conversation
  497.                ~~~~~~~~~~~~~~~~~~~~~~
  498.  
  499.                  Table 5: Private conversation commands
  500.                  --------------------------------------
  501.       Keyword  Action
  502.       ~~~~  ~~~
  503.       MSG      sends a private message
  504.       QUERY    starts a private conversation
  505.       NOTICE   sends a private message
  506.       NOTIFY   warns you of people logging in or out IRC
  507.       IGNORE   removes output from specific people off your screen
  508.  
  509.  
  510.    You can use the MSG command, (usually "M" is an alias for it), to send
  511. someone a message that only that person can read.
  512.  
  513. /MSG <nickname>|<channel> <text>
  514.    Send a private message to specified nickname.
  515.  
  516.         /MSG Nap This message is for Nap only.
  517.         -> *Nap* This message is for Nap only.
  518.  
  519.         On my screen will appear:
  520.  
  521.         *YourNick* This message is for Nap only.
  522.  
  523.  
  524.    If you want to send a private message to more than one person, you can
  525. specify a list of nicknames separated by commas, (no spaces).
  526.  
  527.         /MSG Nap,Sorg This message for both Nap and Sorg.
  528.         -> *Nap* This message for both Nap and Sorg.
  529.         -> *Sorg* This message for both Nap and Sorg.
  530.  
  531.  
  532.  
  533.    Two  special  case  nicknames  are defined.  If the nickname is "," (a
  534. comma),  the  message  is sent to the last person who sent you a MSG.  If
  535. the nickname is "." (a period), the message is sent to the last person to
  536. whom you sent a message.
  537.  
  538.    You  can  have  a  private  conversation by only using /MSG.  However,
  539. typing  "/MSG <nick> <text>" or "/MSG .  <text>" gets cumbersome.  That's
  540. where the /QUERY command comes in handy.
  541.  
  542.  
  543. /QUERY [<nickname>|<channel>]
  544.    Starts a private conversation with <nickname>.
  545.  
  546.    All text you type that would normally be sent to your channel now goes
  547. to  the  supplied  nickname  in  the  form  of MSGs.  To cancel a private
  548. conversation, use QUERY with no arguments.
  549.  
  550.         /QUERY Nap
  551.         *** Starting conversation with Nap
  552.  
  553.         Blahblahblah
  554.         -> *Nap* Blahblahblah
  555.  
  556.         /QUERY
  557.         *** Ending conversation with Nap
  558.  
  559.  
  560.  
  561.    There is also another command to send messages, called NOTICE.  Unlike
  562. MSGs,  NOTICEs  are  surrounded  by  '-'  when  printed, and no automated
  563. responses, (such as generated by IGNORE or an automaton), will be sent in
  564. reply.  Services, (robots), on IRC often use this form of interaction.
  565.  
  566.  
  567. /NOTICE <nickname>|<channel> <text>
  568.    Sends a private message to the specified <nickname>.
  569.  
  570.         /NOTICE Nap Better use /MSG instead of /NOTICE.
  571.         -> -Nap- Better use /MSG instead of /NOTICE.
  572.  
  573.         On my screen will appear:
  574.  
  575.         -YourNick- Better use /MSG instead of /NOTICE.
  576.  
  577.  
  578.  
  579.    As you begin to make new friends over IRC, you'll want to mark certain
  580. nicknames such that you will be warned when they signon or off.
  581.  
  582. /NOTIFY [[-]<nickname>]
  583.    Adds or removes <nickname> to the list of people you'll be warned when
  584. they enter or quit IRC   (in ircII versions prior to 2.2, too many people
  585. in the NOTIFY list cause excessive slowness).
  586.  
  587.         /NOTIFY Nap Nappy
  588.         *** Signon by Nap detected
  589.  
  590.         /NOTIFY
  591.         *** Currently present: Nap
  592.         *** Currently absent: Nappy
  593.  
  594.  
  595.  
  596.    Eventually,  you may wish some day not to see messages from a specific
  597. user  on  your  screen.   This  may  happen when someone is dumping large
  598. amounts  of garbage, or if someone is harassing you.  The proper response
  599. to  such a behavior is to  IGNORE that person.  IGNORE is a very powerful
  600. command,  and  can be used in many ways.  However the basic usage of this
  601. tool is the following.
  602.  
  603.  
  604. /IGNORE [<nickname>|<user@host> [[-]<message type>]]
  605.    Suppresses  output from the given people from your screen.  IGNORE can
  606. be  set by nickname or by specifying a userid@hostname format.  Wildcards
  607. may  be  used  in all formats.  Output that can be ignored includes MSGs,
  608. NOTICEs,  PUBLIC messages, INVITEs, ALL or NONE.  Preceding a type with a
  609. "-" indicates removal of ignoring of that type of message.
  610.  
  611.         /IGNORE *@cheshire.oxy.edu ALL
  612.         *** Ignoring ALL messages from *@CHESHIRE.OXY.EDU
  613.  
  614.         /IGNORE
  615.         *** Ignorance list:
  616.         ***     *@CHESHIRE.OXY.EDU      ALL
  617.  
  618.         /IGNORE *@cheshire.oxy.edu NONE
  619.         *** *@cheshire.oxy.edu removed from ignorance list
  620.  
  621.  
  622.  
  623.  
  624.  
  625.                  2.3  Channels and Public Conversations
  626.                  ~~~~~~~~~~~~~~~~~~~
  627.  
  628.    On  IRC,  there  are  a  lot of places where you can "hang out"; those
  629. places  are  called  'channels', (most of the information in this section
  630. can  also  be  obtained  by  issuing  "/HELP  CHANNEL").  You can compare
  631. conversations  on  a  channel  to a conversation among a group of people:
  632. you  see/hear  everything  that  is  said,  and you can reply to anything
  633. that's  said.   What  you  type  is received by everyone who's willing to
  634. listen  -  and  everyone  who is late will not hear what was said before,
  635. unless  repeated  by  one  of  the  ones who were there.  (Who said "real
  636. life" ?)
  637.  
  638.    All  channels  on IRC have names:  a "#" sign followed by some kind of
  639. text-string,  like "#C++" or "#Asians" or "#EU-Opers".  Usually, the name
  640. of  the channel will indicate the type of conversation that's going on in
  641. there.  Don't count on it, though.
  642.  
  643.                        Table 6:  Channel commands
  644.                        --------------------------
  645.        Keyword   Action
  646.        ~~~~   ~~~
  647.        LIST      lists channels, number of users, topic
  648.        NAMES     shows the nicknames of the users on each channel
  649.        JOIN      sets your current channel, (same as CHANNEL)
  650.        WHO       gives a listing of users
  651.        INVITE    sends an invitation to another user
  652.        LEAVE     leaves a channel, (same as PART)
  653.        KICK      gets rid of someone on a channel
  654.        TOPIC     changes the topic of the channel
  655.        ME        sends anything about you to a channel or QUERY
  656.        DESCRIBE  sends anything about you to a person or channel
  657.  
  658.  
  659.    Every channel has certain characteristics, called channel modes.
  660. These will also be explained below.  Recall the NAMES and LIST
  661. commands; they will show you the names of the existing channels.
  662.  
  663. /LIST [[<flags>] <channel mask>]
  664.   Lists  all  current  "channels",  number  of  users,  and  topic.   The
  665. displayed  list  may  be  quite  long,  so  you can limit it using flags.
  666. "/LIST  -MIN n" for instance removes channels with less than 'n' users of
  667. the output.
  668.  
  669.         Example:
  670.  
  671.         /LIST -MIN 5
  672.         *** #aussies   5
  673.         *** #amiga     5        Daily Amiga Silence...join&enjoy
  674.         *** #hottub    21       Imagine sky, high above...
  675.         *** #tuebingen 11       Happy Borthday CHUCK!!!
  676.         *** #Christian 6        Jesus!
  677.         *** #Twilight_ 15       The Oper Bar & Grill
  678.         *** #initgame  5        More players needed!!!!!!!!!!!!
  679.         *** #Taiwan    8        Welcome good friends.
  680.         *** #espanol   6        EMERGENCIA SE Necesitan Mujeres!
  681.         *** #sherwood  7
  682.         *** #francais  6        on apprend le japonais (japanese welcome)
  683.  
  684.  
  685.  
  686. /NAMES [[<flags>] <channel mask>]
  687.    Shows the nicknames of all users on each "channel", (these may be very
  688. long.  Remember to filter them with "-MIN n" or "-MAX n").
  689.  
  690.         /NAMES -MIN 5
  691.         Pub: #twilight> Mycroft @sojge scorpio @Troy @Avalon @Nap phone
  692.            Merlinus Lumberjak @tzoper
  693.         Pub: #espanol   Cacique Bonjovi leopardo Carina Miguel Cisco r2
  694.         Pub: #amiga     @gio @Radix @xterm @mama @AmiBot
  695.         Pub: #aussies   @Bleve @GrayElf @Insomniac @Morkeleb @titus
  696.         Pub: #hottub    baby @Aldur KnightOrc @Toasty Gwydion @Belkira
  697.            @Aiken Edge @Spockobot @Nada @ZBot @Aurik @anna @RedBaron
  698.            @Katzen @esashi IceWolf @Eniigma @Digger @TheHeck
  699.  
  700.  
  701.  
  702.    To  join in the conversation on a certain channel you may use the JOIN
  703. command.
  704.  
  705. /JOIN [<channel>]
  706.    Sets your current channel to the supplied channel.
  707.  
  708.         /JOIN #Twilight_Zone
  709.         *** Nap has joined channel #Twilight_Zone
  710.         *** Topic: The Gernsback Continuum
  711.         *** Users on #Twilight_Zone: Nap msa tober phone @julia @SirLance
  712.           igh @Daemon @Avalon @Waftam @Trillian @tzoper
  713.  
  714.    The CHANNEL command has the same effects. Note that if no parameters
  715. are given, your current channel is displayed.
  716.  
  717.    Upon  entering a channel, you are given useful details about it:  list
  718. of  users  talking  in that channel, topic...  Joining a channel does not
  719. cause you to leave your previous channel unless NOVICE is set to ON.  See
  720. "/HELP SET NOVICE".
  721.  
  722.  
  723.  
  724.   Once  in  a  channel, you may wish to get a detailed list of the people
  725. IRCing inside.  That's where the WHO command comes in handy:
  726.  
  727. /WHO [<channel>|<wildcard expression>]
  728.    Gives  a  listing  of  users.   "/WHO *" for the list of users in your
  729. current channel.
  730.  
  731.         /WHO #Twilight_Zone
  732.         Channel    Nickname     S    User@Host (Name)
  733.         #Twilight_ Nap          H*   pioch@poly.polytechnique.fr
  734.           (Quidquid latine dictum sit, altum viditur)
  735.         #Twilight_ msa          H    msa@tel1.tel.vtt.fi (Markku Savela)
  736.         #Twilight_ tober        H    ircuser@kragar.eff.org (tober)
  737.         #Twilight_ phone        H    mrgreen@munagin.ee.mu.OZ.AU (Third
  738.           row seats to the Cure? WHO ME? nah.. *grin*)
  739.         #Twilight_ julia        G*@  julie@turing.acs.Virginia.EDU
  740.           ( Future graduate of ACME Looniversity)
  741.         #Twilight_ SirLance     G*@  lancelot@tdsb-s.mais.hydro.qc.ca
  742.           (Sir Lancelot)
  743.         #Twilight_ igh          G    igh@micom1.servers.unsw.EDU.AU (igh)
  744.         #Twilight_ Daemon       G*@  frechett@spot.Colorado.EDU
  745.           (-=Runaway Daemon=-)
  746.         #Twilight_ Avalon       H*@  avalon@coombs.anu.edu.au (Avalon...)
  747.         #Twilight_ Waftam       G*@  danielce@munagin.ee.mu.OZ.AU (Daniel
  748.           Carosone)
  749.         #Twilight_ Trillian     G*@  hrose@rocza.eff.org ( I turn to
  750.           stone when you are gone )
  751.         #Twilight_ tzoper       H*@  tzoper@azure.acsu.buffalo.edu (/msg
  752.           tzoper help)
  753.  
  754.    The  first  field  is the current channel, then nickname, status, real
  755. name  (in internet user@host form), and a small witty comment you can set
  756. yourself with the environment variable IRCNAME, (this will be detailed in
  757. section  2.8).   Status  indicates  if  a  user is "H"ere or "G"one, (see
  758. AWAY), if IRCop ("*"), and/or chanop ("@").
  759.  
  760.  
  761.  
  762.    It is also possible, when you are already on a channel, to ask someone
  763. to join your channel.  The command is called INVITE.
  764.  
  765. /INVITE <nickname> [<channel>]
  766.    Invites  another  user to a channel.  If no channel is specified, your
  767. current channel is used.
  768.  
  769.         /INVITE Nap
  770.         *** Inviting Nap to channel #Twilight_Zone
  771.  
  772.    If you receive an INVITE message, you can type "/JOIN -INVITE" to join
  773.  
  774.  
  775.  
  776.  
  777.  
  778.    A + or - sign  determines whether the mode should be added or deleted.
  779. Try typing  "/HELP MODE"  to  get  further  information.  Channels can be
  780. moderated (only chanops can talk), secret, private, with a limited number
  781. of users, anonymous,  invite-only,  topic-limited,  with a list of banned
  782. users...
  783.  
  784.    The  MODE  command also allows you to modify your personal parameters,
  785. your  "user  mode".   You can check your usermode with the command "/MODE
  786. <YourNick>"  or  sometimes  "/UMODE".   Note that user mode +i may be the
  787. default  on  some  servers,  in  order to protect privacy of users.  This
  788. should  not  be  seen  as  a  problem,  since any user can change his/her
  789. personal mode whatever defaults a server may set.
  790.  
  791.  
  792.                          Table 8:  Channel modes
  793.                          -----------------------
  794.         ModeChar        Effects on channels
  795.         ~~~~        ~~~~~~~~~~
  796.         b <person>      ban somebody, <person> in "nick!user@host" form
  797.         i               channel is invite-only
  798.         l <number>      channel is limited, <number> users allowed max
  799.         m               channel is moderated, (only chanops can talk)
  800.         n               external /MSGs to channel are not allowed
  801.         o <nick>        makes <nick> a channel operator
  802.         p               channel is private
  803.         s               channel is secret
  804.         t               topic limited, only chanops may change it
  805.  
  806.  
  807.                           Table 9:  User modes
  808.                           --------------------
  809.         ModeChar        Effects on nicknames
  810.         ~~~~        ~~~~~~~~~~
  811.         i               makes yourself invisible to anybody that does
  812.                         not know the exact spelling of your nickname
  813.         o               IRC-operator status, can only be set
  814.                         by IRC-ops with OPER
  815.         s               receive server notices
  816.         w               receive wallops (abused and deprecated)
  817.  
  818.  
  819.  
  820.  
  821.  
  822.                      2.5  Client to Client Protocol
  823.                      ~~~~~~~~~~~~~~~
  824.  
  825. /CTCP <nickname> <command> [<argument>]
  826.    Allows you to perform certain client specific actions on the network.
  827.  
  828.         /CTCP Nap VERSION
  829.         *** CTCP VERSION reply from Nap: ircII 2.2 *IX
  830.            :ircII 2.2, SL0 The one you thought you'd never see.
  831.  
  832.         This can be used to get information about how long a person has
  833.         been idle:
  834.  
  835.         /CTCP Nap FINGER
  836.         *** CTCP FINGER reply from Nap: PIOCH Nicolas - Nap on IRC, X90,
  837.           (pioch@poly.polytechnique.fr) Idle 0 seconds
  838.  
  839.  
  840.                   Table 10:  Client to Client Commands
  841.                   ------------------------------------
  842.          Keyword    Action
  843.          ~~~~    ~~~
  844.          CTCP       performs certain client specific actions
  845.          DCC        handles direct connections to remote clients
  846.          DCC SEND   initiates a file transfer
  847.          DCC GET    accepts a file transfer
  848.          DCC CLOSE  ends a DCC connection or offer
  849.          DCC LIST   shows current DCC connections
  850.          DCC CHAT   initiates a secure chat between two clients
  851.  
  852.  
  853.  
  854.    There  are  many  other CTCP commands, and new ones are introduced all
  855. the  time.   There  is  a mechanism for you to find out what you can use:
  856. CTCP  CLIENTINFO.   To find out about your own client services, execute a
  857. CLIENTINFO on yourself.
  858.  
  859.         /CTCP Nap CLIENTINFO
  860.         *** CTCP CLIENTINFO reply from Nap: SED VERSION CLIENTINFO
  861.            USERINFO ERRMSG FINGER TIME ACTION DCC UTC PING :Use
  862.            CLIENTINFO <COMMAND> to get more specific information
  863.  
  864.    If  you are interested in this powerful CTCP mechanism, have a look in
  865. the  various  ircII  help  files.   "/HELP  CTCP"  might tell you more...
  866. However  the  client-to-client  protocol  has  a  very  powerful feature:
  867. Allowing two people to exchange files.
  868.  
  869.    To  send  small  text  files,  electronic  mail  is  probably the best
  870. solution, (don't rely on the user@host given by the WHOIS command to send
  871. mail.     For    people   registered   on   NickServ,   you   can   "/MSG
  872. NickServ@Service.de  WHOIS  nick" to get their E-mail address).  However,
  873. ircII  provides  you a way to establish Direct Client Connections ("DCC")
  874. to perform functions like sending and receiving files.
  875.  
  876.  
  877.  
  878. If NickA wants to send a file to NickB, then NickA should type:
  879.         /DCC SEND NickB filename
  880.  
  881. On NickB's screen will appear:
  882.         *** DCC SEND (filename) request received from NickA
  883.  
  884. If he, (NickB), wants to get the file, he just needs to type:
  885.         /DCC GET NickA filename
  886.  
  887. A few seconds later
  888.         *** DCC GET connection with NickA established
  889.         *** DCC GET filename connection to NickA completed
  890. will   inform  both  users  that  data  transfer  has  been  successfully
  891. completed.
  892.  
  893.  
  894.  
  895.    Here's a quick overview of the subject:
  896.  
  897. /DCC <function> [<arguments>]
  898.    Handles direct connections to remote clients.  The behavior of  DCC is
  899. determined by the specified <function>.
  900.  
  901.  
  902. /DCC SEND <nickname> <filename>
  903.    Initiates a file transfer by direct client connection.
  904.  
  905.  
  906. /DCC GET <nickname> <filename>
  907.    Accepts  a file transfer by direct client connection.  The sender must
  908. first have offered the file with DCC SEND.
  909.  
  910.  
  911. /DCC CLOSE <type> <nickname> [<arguments>]
  912.    Ends  an unwanted DCC connection or offer.  The <type>, <nickname> and
  913. <arguments>  must  be  the  same  as  those shown by "/DCC LIST".  If the
  914. arguments  are  not supplied, the oldest connection of the specified type
  915. is closed.
  916.  
  917.  
  918. /DCC LIST
  919.    Shows  current /DCC connections with their types, status and nicknames
  920. involved.
  921.  
  922.  
  923.  
  924.    More  details  can  be found in ircII online help:  try "/HELP DCC"...
  925. for more information.
  926.  
  927.    However,  if  someone  asks you to send him a file, DON'T do it unless
  928. you  EXACTLY  know  what  you  are  doing.  For instance,  NEVER send the
  929. password  file  of  your  system  to  anybody.  This could grant crackers
  930. illegal   access   to   your  machines,  and  put  you  and  your  system
  931. administrator in much trouble.
  932.  
  933.  
  934.  
  935. DCC  also  allows two clients to establish a direct client connection for
  936. chat.   This  is  a  secure form of communication, since messages are not
  937. sent through the IRC network.
  938.  
  939. /DCC CHAT
  940.    Initiates  a direct client connection chat to the given nick, who must
  941. repond  with  DCC  CHAT.   Once  established, messages are sent over with
  942. "/MSG =Nickname ...".
  943.  
  944.  
  945.  
  946.  
  947.  
  948.                       2.6  Network Related Commands
  949.                       ~~~~~~~~~~~~~~~
  950.  
  951.    If  you encounter any problem, contact your local IRC-Administrator or
  952. an  IRC-Operator.   An  IRC-Admin is a person who has access to all files
  953. concerning 'ircd' (the server program).  An IRC-Operator or "IRC-op" is a
  954. person  who  has  privileges  given  to  him by an IRC-Admin and tries to
  955. maintain  a  fast  reliable IRC network.  Information on how you can find
  956. out who he/she is, can be found below.
  957.  
  958.   Each  time  you are prompted for a server name, remember you can supply
  959. the nickname of someone being connected on that server instead.  This may
  960. be useful at times...
  961.  
  962.                    Table 11:  Network related commands
  963.                    -----------------------------------
  964.      Keyword  Action
  965.      ~~~~  ~~~
  966.      ADMIN    displays information about a server
  967.      LINKS    shows the servers on the IRC network
  968.      SERVER   switches your primary server
  969.      MOTD     displays the server message-of-the-day
  970.      USERS    prints users logged on the server machine
  971.      DATE     shows server current date and time
  972.      TIME     shows server current date and time
  973.      LUSERS   gives a brief listing of users, servers and operators
  974.      TRACE    shows the server connections of the given server
  975.      STATS    shows some irc server usage statistics
  976.      INFO     shows useless information about IRC
  977.      VERSION  shows client and server version number
  978.  
  979.  
  980. /ADMIN [<server>]
  981.    Displays  the  administrative  details  about the given server.  If no
  982. server is supplied, the server you are connected to is used.
  983.  
  984.         /ADMIN
  985.         ### Administrative info about poly.polytechnique.fr
  986.         ### Ecole Polytechnique, Palaiseau, FRANCE
  987.         ### IRC-Administrator Nicolas Pioch (Nap@IRC)
  988.         ### <pioch@poly.polytechnique.fr>
  989.  
  990.  
  991. /LINKS [[<server>] <wildcard expression>]
  992.    Shows  a  list  of servers currently connected to the IRC network.  If
  993. <wildcard expression> is given, /LINKS asks the given <server> for a list
  994. of servers matching the given expression, (this list can get very long!).
  995.  
  996.         /LINKS *po*
  997.         *** nova.unix.portal.com  7 Cupertino California, USA
  998.         *** poe.acc.Virginia.EDU  6 University of Virginia 2.7.1f
  999.         *** polaris.utu.fi        9 University of Turku, Finland
  1000.         *** polaris.ctr.columbia.edu 6 Columbia University, New York City
  1001.         *** csd.postech.ac.kr     4 POSTECH Computer Science Dept.
  1002.         *** cdc853.cdc.polimi.it  2 Polytechnic of Milan, Italy
  1003.         *** poly.polytechnique.fr 0 Ecole Polytechnique, Paris, FRANCE
  1004.  
  1005.  
  1006.  
  1007. /SERVER [<server>|<server number> [<port number>]]
  1008.    Switches your primary server to the supplied <server> at the specified
  1009. <port  number>.   If  no port number is given, the default port number is
  1010. used (normally 6667).
  1011.  
  1012.         /SERVER poly.polytechnique.fr 6667
  1013.         *** Connecting to port 6667 of server poly.polytechnique.fr
  1014.         *** Welcome to the Internet Relay Network, Nap
  1015.         *** Your host is poly.polytechnique.fr, running version 2.7.2g.ID
  1016.         *** This server was created Sat Jan 16 1993 at 12:16:10 MET
  1017.  
  1018.  
  1019.    Occasionally,  you  can switch servers faster than the IRC network can
  1020. send  out  the  information  that you have left your previous server.  So
  1021. don't  be  surprised  if  you are told your nickname is already in use...
  1022. Just wait a moment and set it with /NICK again.
  1023.  
  1024.  
  1025.  
  1026. /MOTD [<server>]
  1027.    Gives the  Message-Of-The-Day for the named server. If no server is
  1028. given, your server is used.
  1029.  
  1030.         /MOTD
  1031.         MOTD - poly.polytechnique.fr message of the day -
  1032.         MOTD -   _____________________________________
  1033.         MOTD -  /\                                    \
  1034.         MOTD -  \_|      Bienvenue sur le serveur      |
  1035.         MOTD -    |         Internet Relay Chat        |
  1036.         MOTD -    |  de l'Ecole Polytechnique, FRANCE  |
  1037.         MOTD -    |   _________________________________|__
  1038.         MOTD -     \_/___________________________________/
  1039.         MOTD -
  1040.         MOTD -        |    |    |      En cas de probleme,
  1041.         MOTD -       )_)  )_)  )_)           tapez / admin
  1042.         MOTD -      )___))___))___)\
  1043.         MOTD -     )____)____)_____)\\       Nicolas PIOCH
  1044.         MOTD -   _____|____|____|____\\\__     Nap sur IRC
  1045.         MOTD - --\  Welcome on IRC !  /---------
  1046.         MOTD -   ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^
  1047.         * End of /MOTD command
  1048. /USERS [<server>]
  1049.    Shows the users logged into the machine where the server is running,
  1050. (it's up to the server administrator to implement this feature or not.
  1051. It may not work on some machines).
  1052.         /USERS
  1053.         *** UserID  Terminal    Host
  1054.         *** pioch   ttyp9       rotule.polytechn
  1055.         *** pioch   ttypc       rotule.polytechn
  1056.         *** pioch   ttyq0       rotule.polytechn
  1057.         *** pioch   ttyq1       rotule.polytechn
  1058.  
  1059.  
  1060.  
  1061. /DATE [<server>]
  1062. /TIME [<server>]
  1063.    Shows the current time of day and date.  If a server is specified, the
  1064. time  of  day  and date are reported from that server.  DATE and TIME are
  1065. identical.
  1066.  
  1067.         /DATE
  1068.         *** poly.polytechnique.fr Saturday June 20 1992 -- 02: 35 +01:00
  1069.  
  1070.  
  1071.  
  1072. /LUSERS
  1073.    Gives  a  brief  listing of the number of servers, operators and users
  1074. matching  the  given  <wildcard  expression>,  as seen from the specified
  1075. <server>.
  1076.  
  1077.         /LUSERS
  1078.         *** There are 1008 users and 291 invisible on 135 servers
  1079.         *** 72 users have connection to the twilight zone
  1080.         *** There are 458 channels
  1081.         *** I have 16 clients and 4 servers
  1082.         *** 22 maximum connections, 19 clients
  1083.  
  1084.  
  1085.  
  1086. /TRACE [<server>]
  1087.    Shows the server connections of the given <server>.
  1088.  
  1089.         /TRACE
  1090.         *** Serv Class[9] ==> 134S 1331C eff.org[192.88.144.3]
  1091.         *** Serv Class[8] ==> 1S 6C Julia.Enst.FR
  1092.         *** Serv Class[8] ==> 1S 6C Eurecom8.Cica.FR[192.70.34.208]
  1093.         *** Serv Class[1] ==> 2S 0C athina.cc.uch.gr[147.52.80.102]
  1094.         *** Serv Class[8] ==> 1S 5C dafne.mines.u-nancy.fr[192.70.66.2]
  1095.         *** Serv Class[8] ==> 1S 0C cnam.cnam.fr
  1096.         *** Class 0 Entries linked: 16
  1097.         *** Class 9 Entries linked: 1
  1098.         *** Class 8 Entries linked: 4
  1099.         *** Class 1 Entries linked: 1
  1100.  
  1101.  
  1102.  
  1103. /STATS c|i|k|l|m|u|y [<server>]
  1104.    Shows some irc server usage statistics.
  1105.  
  1106.         /STATS u
  1107.         *** Server Up 12 days, 12:28:44
  1108.  
  1109.  
  1110.  
  1111. /INFO [<server>]
  1112.    Shows  information about the IRC creators, debuggers, slaves and a lot
  1113. of other people who no longer have much to do with IRC.
  1114.  
  1115.  
  1116.  
  1117. /VERSION
  1118.    Shows the ircII version number and the version number of the server.
  1119.  
  1120.         /VERSION
  1121.         *** Client: ircII 2.2
  1122.         *** Server poly.polytechnique.fr: ircd 2.7.2g.Nap+6(privacy).
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.                         2.7 Quick Reference Panel
  1129.                         ~~~~~~~~~~~~~
  1130.  
  1131.        Keyword      Action
  1132.        -------      ------
  1133.        !            recalls previous commands for re-editing
  1134.        ADMIN        displays information about a server
  1135.        AWAY         leaves a message saying you're not paying attention
  1136.        CLEAR        puts some white space on your screen
  1137.        CTCP         performs certain client specific actions
  1138.  
  1139.        DATE         shows server current date and time
  1140.        DCC          handles direct connections to remote clients
  1141.        DESCRIBE     sends anything about you to a person or channel
  1142.        HELP         prints help on the given command
  1143.        HISTORY      displays the command history
  1144.  
  1145.        IGNORE       removes output from specific people off your screen
  1146.        INFO         shows useless information about IRC
  1147.        INVITE       sends an invitation to another user
  1148.        JOIN         sets your current channel
  1149.        KICK         gets rid of someone on a channel
  1150.  
  1151.        LASTLOG      lists the most recent messages
  1152.        LEAVE        leaves a channel
  1153.        LINKS        shows servers on the IRC network
  1154.        LIST         lists channels, number of users, topic
  1155.        LUSERS       gives a brief listing of users, servers and operators
  1156.  
  1157.        ME           sends anything about you to a channel or QUERY
  1158.        MODE         changes channel mode
  1159.        MOTD         displays the server message-of-the-day
  1160.        MSG          sends a private message
  1161.        NAMES        shows the nicknames of users on each channel
  1162.  
  1163.        NICK         changes your nickname
  1164.        NOTICE       sends a private message
  1165.        NOTIFY       warns you of people logging in or out IRC
  1166.        QUERY        starts a private conversation
  1167.        QUIT         exits your IRC session
  1168.  
  1169.        SERVER       switches your primary server
  1170.        STATS        shows some irc server usage statistics
  1171.        TIME         shows server current date and time
  1172.        TOPIC        changes the topic of the channel
  1173.  
  1174.        TRACE        shows the server connections of the given machine
  1175.        USERS        prints users logged on the server machine
  1176.        VERSION      shows client and server version number
  1177.        WHO          gives a listing of users
  1178.        WHOIS        displays information about someone
  1179.  
  1180.        WHOWAS       displays information about someone who just left
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.                      2.8 Further into ircII Wizardry
  1187.                      ~~~~~~~~~~~~~~~~
  1188.  
  1189.        Note: This part should be reserved for experienced IRC'ers.
  1190.  
  1191.  
  1192.    Because ircII is not a simple client program, but an Operating System,
  1193. its  programming  language  is  just  as simple as you could expect (it's
  1194. horrendous),  but  if  you  want to get into it, here's a little note for
  1195. you...
  1196.  
  1197.    There  are  a few Unix environment variables you can set in your shell
  1198. configuration file, but you need to find out your shell name before that.
  1199. "echo $SHELL" should give you a hint.
  1200.  
  1201.                 Table 12:  Setting environment variables
  1202.                 ----------------------------------------
  1203.    Shell type      Shell name      Command
  1204.    ~~~~~      ~~~~~      ~~~~
  1205.    Bourne shells   sh              $ VARNAME="value" ; export VARNAME
  1206.                    ksh             $ export VARNAME="value"
  1207.                   % setenv VARNAME "value"
  1208.                    tcsh            > setenv VARNAME "value"
  1209.  
  1210.  
  1211.                     Table 13:  Environment variables
  1212.                     --------------------------------
  1213.       Name            Effects
  1214.       ~~            ~~~~
  1215.       HOME            where your home directory is
  1216.       IRCNAME         any lunaheses in a WHOIS)
  1217.       IRCNICK         your default IRC nickname
  1218.       IRCPATH         a directory path to LOAD scripts
  1219.       IRCRC           a file to use instead of your $HOME/.ircrc
  1220.       IRCSERVER       a default server list for ircII
  1221.       TERM            your terminal type
  1222.  
  1223.  
  1224.  
  1225.    The command character, (usually "/"), is only necessary when you type
  1226. commands interactively, when you program things it is no more needed, it
  1227. used to be though.
  1228.  
  1229.  
  1230.                        Table 14: Advanced commands
  1231.                        ---------------------------
  1232.     Keyword         Action
  1233.     ~~~~         ~~~
  1234.     #               same as COMMENT except for the lenght
  1235.     @               performs variable expressions
  1236.     ALIAS           creates command aliases
  1237.     ASSIGN          creates user variables (expandable with $)
  1238.     BIND            binds a keystroke sequence to a function
  1239.  
  1240.     CD              changes ircII working directory
  1241.     COMMENT         does nothing, but very useful. Strange, uh?
  1242.     ECHO            displays all of its arguments
  1243.     EXEC            allows you to start subprocesses
  1244.     FLUSH           flushes all pending output from the server
  1245.  
  1246.     IF              standard boolean expression checker
  1247.     LOAD            loads an ircII command script file
  1248.     ON              sets up actions to occur when certain events happen
  1249.     REDIRECT        forwards the output from a command
  1250.     SAVE            saves all ircII settings into a file
  1251.  
  1252.     SAY             same as sending text to a channel
  1253.     SEND            same as sending text to a channel
  1254.     SET             sets a variable to a given value
  1255.     SLEEP           suspends ircII for a few seconds
  1256.     TYPE            simulates keystrokes
  1257.  
  1258.     WAIT            waits for all server output to finish
  1259.     WHILE           another control command to make loops
  1260.     WINDOW          lets you manipulate multiple "windows" in ircII
  1261.     XECHO           like ECHO, but takes flag arguments
  1262.  
  1263.  
  1264.  
  1265.    If you want to type to the channel from within an ALIAS or on BINDing,
  1266. you have to use SAY or SEND.
  1267.  
  1268.    The  ";"  has  a  special  meaning in ALIASes, BINDings and ONs:  it's
  1269. treated  as  command  separator,  that  means  you  can  execute multiple
  1270. commands  in  a  row  separated  by  semicolons.   The semicolons are not
  1271. considered  separators  when  you  use them interactively, (to be able to
  1272. type ";-)"), and within an ircII script file.  You can escape the meaning
  1273. of ";" in an ALIAS with "\;".
  1274.  
  1275.    When  you  use  ircII on a (semi)regular basis, you will discover that
  1276. every  time  you start the program you will issue the same initialization
  1277. sequence.  If that is the case, I have good news for you:  you don't have
  1278. to do that anymore!  ircII will, at startup, load a file called ".ircrc",
  1279. (full  path:   $HOME/.ircrc).  It will treat each line in that file as if
  1280. you typed it manually.
  1281.  
  1282.    For example, if the content of your .ircrc file is:
  1283.  
  1284.         JOIN #Twilight_Zone
  1285.  
  1286.    then each time you will start IRC, you will join this channel.
  1287.  
  1288.  
  1289.  
  1290.     Advanced  commands  may come in handy if you need them.  Feel free to
  1291. browse  in  ircII online help to find out more about them.  A few of them
  1292. are probably worth learning...
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.                            2.9  Sample .ircrc
  1300.                            ~~~~~~~~~
  1301.  
  1302.    As a sample, here's part of my .ircrc file.  Since ircII2.2, this file
  1303. can be found in the "script" directory, and loaded with "/load ircprimer"
  1304.  
  1305. # Sample .ircrc script, from the IRCprimer v1.1
  1306. # -------------------------------------------------------------------
  1307. #    IRCII sample configuration file  (~/.ircrc)  (Nicolas Pioch)
  1308. # -------------------------------------------------------------------
  1309. # The aim of this file is to shorten all useful commands to 1 letter.
  1310.  
  1311. set NOVICE off
  1312. set INPUT_ALIASES off
  1313. set AUTO_WHOWAS on
  1314. set SHOW_CHANNEL_NAMES on
  1315. set SHOW_AWAY_ONCE on
  1316.  
  1317. # Speeds up ircII display 2 times
  1318. set SCROLL_LINES 2
  1319.  
  1320. # Put Hack notices down under
  1321. on ^SERVER_NOTICE "\*\*\* Notice -- Hack: *" set status_user Hack: $4-
  1322.  
  1323. # Modified killpath script from YeggMan
  1324. ALIAS kpath ECHO ### Last received KILL for $nkp.path
  1325. @ nkp.path = [<empty>]
  1326. ALIAS nkp.msg ECHO ### $Z -- KILL by $1 for $0 $2-
  1327. ALIAS nkp.idx @ FUNCTION_RETURN = RINDEX(! $0) + 1
  1328. ALIAS nkp.srv @ FUNCTION_RETURN = INDEX(. $MID($nkp.idx($0) 512 $0))
  1329. ON ^SERVER_NOTICE "\*\*\* Notice -- Received KILL*" {
  1330. #       if (index(. $mid(${rindex(! $11) +1} 512 $11))
  1331.         IF ( nkp.srv($11) > -1 )
  1332.             { nkp.msg $7 $9 }
  1333.             { nkp.msg $7 $9 $12- }
  1334.         @ nkp.path = [$7-]
  1335. }
  1336.  
  1337. # Function to strip the less significant part of an internet hostname
  1338. # $userdomain(username@host.subdomain.dom)  returns username@subdomain.dom
  1339. # This eliminates the hostname which may change frequently
  1340. alias userdomain {
  1341.   @ function_return = LEFT($INDEX(@ $0) $0)##[@]##MID(${1+INDEX(. $0)} 99 $0)
  1342. }
  1343.  
  1344. # Who is that ?
  1345. on ^msg * echo *$0!$userdomain($userhost())* $1-
  1346.  
  1347. # /w [<nickname>]                        get info on someone
  1348. # /q [<nickname>]                        query someone
  1349. # /m  <nickname> <text>                  send a message
  1350. # /n  <nickname> <text>                  send a notice
  1351. # /r <text>                              reply to last message I got
  1352. # /a <text>                              followup on my last message
  1353.  
  1354. alias w whois
  1355. alias q query
  1356. alias m msg
  1357. alias n notice
  1358. alias r msg $,
  1359. alias a msg $.
  1360.  
  1361. # /j <channel>                           join a channel
  1362. # /l <channel>                           list people in a channel
  1363. # /ll                                    list in the current channel
  1364. # /i <nickname> [<channel>]              invite someone
  1365. # /hop                                   leave the current channel
  1366.  
  1367. alias j join
  1368. alias l who
  1369. alias ll who *
  1370. alias i invite
  1371. alias hop part $C
  1372.  
  1373. # /o <nickname> [<nickname> <nickname>]  give channel op status
  1374. # /d <nickname> [<nickname> <nickname>]  remove channel op status
  1375. # /k <nickname>                          kick someone
  1376. # /mo [+|-]<modechars>                   change current channel mode
  1377.  
  1378. alias o mode $C +ooo
  1379. alias d mode $C -ooo
  1380. alias k kick $C
  1381. alias mo mode $C
  1382.  
  1383. # the "wrong person" alias! /oops <nickname> to resend message to
  1384. alias oops {
  1385.         @ _whoops = [$B]
  1386.         msg $. Whooops ! Please ignore, that wasn't meant for you.
  1387.         msg $0 $_whoops
  1388. }
  1389.  
  1390. alias unset set -$*
  1391. alias unalias alias -$*
  1392. alias NickServ msg NickServ@Service.de
  1393. alias NoteServ msg NoteServ@Service.de
  1394.  
  1395. # -------------------------------------------------------------------
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.                         2.10  Writing automatons
  1402.                         ~~~~~~~~~~~~
  1403.  
  1404.    An  automaton,  (also  called  robot or service), is a program that is
  1405. connected to the IRC network to provide services.  Many people try to set
  1406. that up with a few ircII commands like:
  1407.  
  1408. on ^msg "% help" notice $0 This is LameBot 1.0
  1409.  
  1410.    However,  you  should know that setting up an automaton using ircII ON
  1411. facilities  is  quick  and  dirty, and should be reserved for robots that
  1412. rely  on ircII specific features such as DCC (file servers for instance).
  1413. Writing  a  program  in C, perl or any decent programming language should
  1414. take longer in the beginning, but your efforts will be rewarded.  You can
  1415. download  skeletons  of  such  programs  on  some ftp sites that keep IRC
  1416. related stuff (check in the Frequently Asked Questions part).
  1417.  
  1418.  
  1419.    Although  most  robots-writers  believe  they  have  created  a "smart
  1420. thing",  99%  of  the  robots  online  happen to be a nuisance to the IRC
  1421. community, because a few simple rules were not respected by their owners.
  1422. The main idea is that robots should neither be seen nor heard:
  1423.  
  1424.     * automatons should be clearly identified as such, having "bot",
  1425.       "serv" or "srv" in their nickname.
  1426.  
  1427.     * they should use NOTICES to communicate with the rest
  1428.       of the world, and not reply to NOTICES they get.
  1429.  
  1430.     * they should be able to always be killed (craziness is a
  1431.       frequent disease among robots).
  1432.  
  1433.     * they should be able to be killed remotely by their owner via IRC.
  1434.  
  1435.     * they should not give access to their owner's real files, (bandits
  1436.       have already been able to crack people's accounts through
  1437.       their robots).
  1438.  
  1439.     * they should not send messages to channels (unless the channel
  1440.       is dedicated to that robot).
  1441.  
  1442.    * they should not flood channels with MODE changes. Basically,
  1443.      if you have such a command as:
  1444.  
  1445.         on -JOIN "Lamer #BotTub" mode #BotTub +o Lamer
  1446.  
  1447.   then you are wrong. Because this is what you will get:
  1448.  
  1449. *** Lamer (clueless@where.the.hell) has joined channel #bottub
  1450. *** Mode change "+o Lamer" on channel #bottub by LameBot
  1451. *** Mode change "+o Lamer" on channel #bottub by StupidSrv
  1452. *** Mode change "+ooo Lamer Lamer Lamer" on channel #bottub by FloodServ
  1453. *** Mode change "+o Lamer" on channel #bottub by Dumbbot
  1454.  
  1455.  
  1456.    And  this  will  get  boring  very soon, so don't be surprised if such
  1457. robots  get  banned  from  most channels.  A good kludge is to wait until
  1458. someone  asks explicitly the robot to be opped on a channel.  This could
  1459. be:
  1460.      on -MSG "Lamer op me on #BotTub" mode #BotTub +o Lamer
  1461.  
  1462.  
  1463.    If you don't respect rules 2 and 6 above, this may happen too:
  1464.  
  1465. *** TalkBot (clueless@where.the.hell) has joined channel #bottub
  1466.  
  1467.         * Nap opens up the fridge.
  1468.  
  1469.         You can also use your own nickname as command, i.e. you can type
  1470.         the line with a leading slash:
  1471.  
  1472.         /Nap reaches out for the orange juice.
  1473.         * Nap reaches out for the orange juice.
  1474.  
  1475.  
  1476.    The same goal can be achieved towards a specific nickname using:
  1477.  
  1478. /DESCRIBE <nickname>|<channel> <action description>
  1479.    Sends anything concerning you to the <nickname> or <channel> you pass
  1480. as first argument.
  1481.  
  1482.  
  1483.  (Note:  The look of the result depends on each client version, and might
  1484.          not be exactly the same as in the examples shown here.)
  1485.  
  1486.    These  commands  make use of CTCP, a client-to-client protocol crafted
  1487. to  perform  specific actions,  but  not understood by all clients, (more
  1488. about  CTCP  in  section  2.5).   If  you  get  an  error  message,  your
  1489. description may not have arrived properly.
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.                        2.4  Channel and User Modes
  1496.                        ~~~~~~~~~~~~~~
  1497.  
  1498.    Channels can have additional constraints, which can be set by the MODE
  1499. command, (most of the information in this section can also be obtained by
  1500. issuing  "/HELP MODE").  To understand this, recall that the first person
  1501. to JOIN a channel effectively creates it  and is initially "in charge" of
  1502. the  channel,  ("Channel Operator" or "chanop").  He/She can subsequently
  1503. add those constraints, make other people chanops at leisure.
  1504.  
  1505.                          Table 7:  Mode commands
  1506.                          -----------------------
  1507.                   Keyword  Action
  1508.                   ~~~~  ~~~
  1509.                   MODE     changes channel or user mode
  1510.  
  1511.  
  1512.    Public is the default mode for a channel.  When someone is on a public
  1513. channel, he can be seen by all other users, (if his own user mode permits
  1514. this).   Anyone  can  notice  users  on  a public channel and join such a
  1515. conversation.
  1516.  
  1517.    Private means that, although anyone can see members of such a channel,
  1518. you  can't  tell  what channel they are on unless you are already on that
  1519. channel  with  them.   They  just  appear  as "Prv:  *" in LIST or NAMES.
  1520. Since  the number of potential channels is in the billions, this is quite
  1521. some  security  -  all  you  give away is the acknowledgement that you're
  1522. IRCing.
  1523.  
  1524.    If you are on a secret channel, someone who is not on the same channel
  1525. can't  even see that you are there.  Your name does not show up in a LIST
  1526. of  active  users.   The  only  indication of your presence is that, when
  1527. entering  IRC,  all new users are told that there are "NNNNN users on XXX
  1528. servers".   If someone  checks  on all users and finds less than NNNNN of
  1529. them,  he  knows  that other people are hiding on secret channels.  But a
  1530. secret  channel user still cannot be found except by brute-force checking
  1531. through  all  channels,  a  hopeless  proposition in the face of the huge
  1532. number  of  possible  channel  names.  Security through obscurity finally
  1533. means something.
  1534.  
  1535.  
  1536.  
  1537. /MODE <channel>|<nickname> [[+|-]<modechars> [<parameters>]]
  1538.    Allows channel operators to change channel mode, or any user to change
  1539. their personal mode, (don't use this command too often, it floods the net
  1540. with worthless information).
  1541.  
  1542.         /MODE #Twilight_Zone +m
  1543.         *** Mode change "+m" on channel #Twilight_Zone by Nap
  1544.  
  1545.         /MODE Nap -i
  1546.         *** Mode change "-i" for user Nap by poly.polytechnique.fr
  1547.  
  1548.         And this is how to give 'chanop' status to someone on the channel
  1549.  
  1550.         /MODE #Twilight_Zone +o sojge
  1551.         *** Mode change "+o sojge" on channel #Twilight_Zone by Nap
  1552.  
  1553.  
  1554.  
  1555.                              
  1556.                        Table 14: Advanced commands
  1557.                        ---------------------------
  1558.     Keyword         Action
  1559.     ~~~~         ~~~
  1560.     #               same as COMMENT except for the lenght
  1561.     @               performs variable expressions
  1562.     ALIAS           creates command aliases
  1563.     ASSIGN          creates user variables (expandable with $)
  1564.     BIND            binds a keystroke sequence to a function
  1565.  
  1566.     CD              changes ircII working directory
  1567.     COMMENT         does nothing, but very useful. Strange, uh?
  1568.     ECHO            displays all of its arguments
  1569.     EXEC            allows you to start subprocesses
  1570.     FLUSH           flushes all pending output from the server
  1571.  
  1572.     IF              standard boolean expression checker
  1573.     LOAD            loads an ircII command script file
  1574.     ON              sets up actions to occur when certain events happen
  1575.     REDIRECT        forwards the output from a command
  1576.     SAVE            saves all ircII settings into a file
  1577.  
  1578.     SAY             same as sending text to a channel
  1579.     SEND            same as sending text to a channel
  1580.     SET             sets a variable to a given value
  1581.     SLEEP           suspends ircII for a few seconds
  1582.     TYPE            simulates keystrokes
  1583.  
  1584.     WAIT            waits for all server output to finish
  1585.     WHILE           another control command to make loops
  1586.     WINDOW          lets you manipulate multiple "windows" in ircII
  1587.     XECHO           like ECHO, but takes flag arguments
  1588.  
  1589.  
  1590.  
  1591.    If you want to type to the channel from within an ALIAS or on BINDing,
  1592. you have to use SAY or SEND.
  1593.  
  1594.    The  ";"  has  a  special  meaning in ALIASes, BINDings and ONs:  it's
  1595. treated  as  command  separator,  that  means  you  can  execute multiple
  1596. commands  in  a  row  separated  by  semicolons.   The semicolons are not
  1597. considered  separators  when  you  use them interactively, (to be able to
  1598. type ";-)"), and within an ircII script file.  You can escape the meaning
  1599. of ";" in an ALIAS with "\;".
  1600.  
  1601.    When  you  use  ircII on a (semi)regular basis, you will discover that
  1602. every  time  you start the program you will issue the same initialization
  1603. sequence.  If that is the case, I have good news for you:  you don't have
  1604. to do that anymore!  ircII will, at startup, load a file called ".ircrc",
  1605. (full  path:   $HOME/.ircrc).  It will treat each line in that file as if
  1606. you typed it manually.
  1607.  
  1608.    For example, if the content of your .ircrc file is:
  1609.  
  1610.         JOIN #Twilight_Zone
  1611.  
  1612.    then each time you will start IRC, you will join this channel.
  1613.  
  1614.  
  1615.  
  1616.     Advanced  commands  may come in handy if you need them.  Feel free to
  1617. browse  in  ircII online help to find out more about them.  A few of them
  1618. are probably worth learning...
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.                            2.9  Sample .ircrc
  1626.                            ~~~~~~~~~
  1627.  
  1628.    As a sample, here's part of my .ircrc file.  Since ircII2.2, this file
  1629. can be found in the "script" directory, and loaded with "/load ircprimer"
  1630.  
  1631. # Sample .ircrc script, from the IRCprimer v1.1
  1632. # -------------------------------------------------------------------
  1633. #    IRCII sample configuration file  (~/.ircrc)  (Nicolas Pioch)
  1634. # -------------------------------------------------------------------
  1635. # The aim of this file is to shorten all useful commands to 1 letter.
  1636.  
  1637. set NOVICE off
  1638. set INPUT_ALIASES off
  1639. set AUTO_WHOWAS on
  1640. set SHOW_CHANNEL_NAMES on
  1641. set SHOW_AWAY_ONCE on
  1642.  
  1643. # Speeds up ircII display 2 times
  1644. set SCROLL_LINES 2
  1645.  
  1646. # Put Hack notices down under
  1647. on ^SERVER_NOTICE "\*\*\* Notice -- Hack: *" set status_user Hack: $4-
  1648.  
  1649. # Modified killpath script from YeggMan
  1650. ALIAS kpath ECHO ### Last received KILL for $nkp.path
  1651. @ nkp.path = [<empty>]
  1652. ALIAS nkp.msg ECHO ### $Z -- KILL by $1 for $0 $2-
  1653. ALIAS nkp.idx @ FUNCTION_RETURN = RINDEX(! $0) + 1
  1654. ALIAS nkp.srv @ FUNCTION_RETURN = INDEX(. $MID($nkp.idx($0) 512 $0))
  1655. ON ^SERVER_NOTICE "\*\*\* Notice -- Received KILL*" {
  1656. #       if (index(. $mid(${rindex(! $11) +1} 512 $11))
  1657.         IF ( nkp.srv($11) > -1 )
  1658.             { nkp.msg $7 $9 }
  1659.             { nkp.msg $7 $9 $12- }
  1660.         @ nkp.path = [$7-]
  1661. }
  1662.  
  1663. # Function to strip the less significant part of an internet hostname
  1664. # $userdomain(username@host.subdomain.dom)  returns username@subdomain.dom
  1665. # This eliminates the hostname which may change frequently
  1666. alias userdomain {
  1667.   @ function_return = LEFT($INDEX(@ $0) $0)##[@]##MID(${1+INDEX(. $0)} 99 $0)
  1668. }
  1669.  
  1670. # Who is that ?
  1671. on ^msg * echo *$0!$userdomain($userhost())* $1-
  1672.  
  1673. # /w [<nickname>]                        get info on someone
  1674. # /q [<nickname>]                        query someone
  1675. # /m  <nickname> <text>                  send a message
  1676. # /n  <nickname> <text>                  send a notice
  1677. # /r <text>                              reply to last message I got
  1678. # /a <text>                              followup on my last message
  1679.  
  1680. alias w whois
  1681. alias q query
  1682. alias m msg
  1683. alias n notice
  1684. alias r msg $,
  1685. alias a msg $.
  1686.  
  1687. # /j <channel>                           join a channel
  1688. # /l <channel>                           list people in a channel
  1689. # /ll                                    list in the current channel
  1690. # /i <nickname> [<channel>]              invite someone
  1691. # /hop                                   leave the current channel
  1692.  
  1693. alias j join
  1694. alias l who
  1695. alias ll who *
  1696. alias i invite
  1697. alias hop part $C
  1698.  
  1699. # /o <nickname> [<nickname> <nickname>]  give channel op status
  1700. # /d <nickname> [<nickname> <nickname>]  remove channel op status
  1701. # /k <nickname>                          kick someone
  1702. # /mo [+|-]<modechars>                   change current channel mode
  1703.  
  1704. alias o mode $C +ooo
  1705. alias d mode $C -ooo
  1706. alias k kick $C
  1707. alias mo mode $C
  1708.  
  1709. # the "wrong person" alias! /oops <nickname> to resend message to
  1710. alias oops {
  1711.         @ _whoops = [$B]
  1712.         msg $. Whooops ! Please ignore, that wasn't meant for you.
  1713.         msg $0 $_whoops
  1714. }
  1715.  
  1716. alias unset set -$*
  1717. alias unalias alias -$*
  1718. alias NickServ msg NickServ@Service.de
  1719. alias NoteServ msg NoteServ@Service.de
  1720.  
  1721. # -------------------------------------------------------------------
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.                         2.10  Writing automatons
  1728.                         ~~~~~~~~~~~~
  1729.  
  1730.    An  automaton,  (also  called  robot or service), is a program that is
  1731. connected to the IRC network to provide services.  Many people try to set
  1732. that up with a few ircII commands like:
  1733.  
  1734. on ^msg "% help" notice $0 This is LameBot 1.0
  1735.  
  1736.    However,  you  should know that setting up an automaton using ircII ON
  1737. facilities  is  quick  and  dirty, and should be reserved for robots that
  1738. rely  on ircII specific features such as DCC (file servers for instance).
  1739. Writing  a  program  in C, perl or any decent programming language should
  1740. take longer in the beginning, but your efforts will be rewarded.  You can
  1741. download  skeletons  of  such  programs  on  some ftp sites that keep IRC
  1742. related stuff (check in the Frequently Asked Questions part).
  1743.  
  1744.  
  1745.    Although  most  robots-writers  believe  they  have  created  a "smart
  1746. thing",  99%  of  the  robots  online  happen to be a nuisance to the IRC
  1747. community, because a few simple rules were not respected by their owners.
  1748. The main idea is that robots should neither be seen nor heard:
  1749.  
  1750.     * automatons should be clearly identified as such, having "bot",
  1751.       "serv" or "srv" in their nickname.
  1752.  
  1753.     * they should use NOTICES to communicate with the rest
  1754.       of the world, and not reply to NOTICES they get.
  1755.  
  1756.     * they should be able to always be killed (craziness is a
  1757.       frequent disease among robots).
  1758.  
  1759.     * they should be able to be killed remotely by their owner via IRC.
  1760.  
  1761.     * they should not give access to their owner's real files, (bandits
  1762.       have already been able to crack people's accounts through
  1763.       their robots).
  1764.  
  1765.     * they should not send messages to channels (unless the channel
  1766.       is dedicated to that robot).
  1767.  
  1768.    * they should not flood channels with MODE changes. Basically,
  1769.      if you have such a command as:
  1770.  
  1771.         on -JOIN "Lamer #BotTub" mode #BotTub +o Lamer
  1772.  
  1773.   then you are wrong. Because this is what you will get:
  1774.  
  1775. *** Lamer (clueless@where.the.hell) has joined channel #bottub
  1776. *** Mode change "+o Lamer" on channel #bottub by LameBot
  1777. *** Mode change "+o Lamer" on channel #bottub by StupidSrv
  1778. *** Mode change "+ooo Lamer Lamer Lamer" on channel #bottub by FloodServ
  1779. *** Mode change "+o Lamer" on channel #bottub by Dumbbot
  1780.  
  1781.  
  1782.    And  this  will  get  boring  very soon, so don't be surprised if such
  1783. robots  get  banned  from  most channels.  A good kludge is to wait until
  1784. someone  asks explicitly the robot to be opped on a channel.  This could
  1785. be:
  1786.      on -MSG "Lamer op me on #BotTub" mode #BotTub +o Lamer
  1787.  
  1788.  
  1789.    If you don't respect rules 2 and 6 above, this may happen too:
  1790.  
  1791. *** TalkBot (clueless@where.the.hell) has joined channel #bottub
  1792. <LameBot> Hi TalkBot!
  1793. <TalkBot> Hello LameBot! How are you?
  1794. *** Mode change "+o TalkBot" on channel #bottub by LameBot
  1795. <LameBot> Fine thanx.
  1796. <TalkBot> Thank you for the op, LameBot.
  1797. <LameBot> No problem, TalkBot.
  1798. *** Signoff: Talkbot (ircserver.irc.edu where.the.hell)
  1799. *** TalkBot (clueless@where.the.hell) has joined channel #bottub
  1800. *** Mode change "+o TalkBot" on channel #bottub by where.the.hell
  1801. *** Mode change "+o LameBot" on channel #bottub by TalkBot
  1802. *** Mode change "+o TalkBot" on channel #bottub by LameBot
  1803. <TalkBot> Thank you for the op, LameBot.
  1804. <LameBot> No problem, TalkBot.
  1805. ...
  1806.  
  1807.  
  1808. See?  Remember the golden rule:
  1809.  
  1810.     +--------------------------------------------------------------+
  1811.     | A smart bot won't act unless explicitly asked by someone to. |
  1812.     +--------------------------------------------------------------+
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.                       3. FREQUENTLY ASKED QUESTIONS
  1820.                       =============================
  1821.  
  1822.                    3.1  How do I set up an IRC client?
  1823.                    ~~~~~~~~~~~~~~~~~~
  1824.  
  1825.    Here  is  a list of FTP sites from which you can download a client for
  1826. your specific Operating System.
  1827.  
  1828.  
  1829.                   Table 15:  FTP sites with IRC clients
  1830.                   -------------------------------------
  1831.                                UNIX ircII
  1832.                                ~~~~~
  1833.               cs.bu.edu                      - /irc/clients
  1834.               ftp.acsu.buffalo.edu           - /pub/irc
  1835.               slopoke.mlb.semi.harris.com    - /pub/irc
  1836.               plod.cmbe.unsw.oz.au           - /pub
  1837.               coombs.anu.edu.au              - /pub/irc
  1838.               nic.funet.fi                   - /pub/unix/irc/ircII
  1839.               ftp.informatik.tu-muenchen.de  - /pub/net/irc
  1840.  
  1841.  
  1842.                                EMACS elisp
  1843.                                ~~~~~~
  1844.               cs.bu.edu                       - /irc/clients/elisp
  1845.               slopoke.mlb.semi.harris.com     - /pub/irc/emacs
  1846.               nic.funet.fi                    - /pub/unix/irc/Emacs
  1847.               lehtori.cc.tut.fi               - /pub/irchat
  1848.               ftp.informatik.tu-muenchen.de   - /pub/net/irc
  1849.  
  1850.  
  1851.                                    VMS
  1852.                                    ~~
  1853.               cs.bu.edu                       - /irc/clients/vms
  1854.               coombs.anu.edu.au               - /pub/irc/vms
  1855.               nic.funet.fi                    - /pub/unix/irc/vms
  1856.               ftp.informatik.tu-muenchen.de   - /pub/net/irc
  1857.  
  1858.  
  1859.                                REXX for VM
  1860.                                ~~~~~~
  1861.               ftp.informatik.uni-oldenburg.de - /pub/irc/rxirc
  1862.               ftp.informatik.tu-muenchen.de   - /pub/net/irc/VM
  1863.               cs.bu.edu                       - /irc/clients/rxirc
  1864.               coombs.anu.edu.au               - /pub/irc/rxirc
  1865.               nic.funet.fi                    - /pub/unix/irc/rxirc
  1866.  
  1867.  
  1868.                                   MSDOS
  1869.                                   ~~~
  1870.               cs.bu.edu                       - /irc/clients
  1871.               nic.funet.fi                    - /pub/unix/irc/msdos
  1872.  
  1873.  
  1874.                                 Macintosh
  1875.                      ~~~~~
  1876.  
  1877.               cs.bu.edu                       - /irc/clients
  1878.               nic.funet.fi                    - /pub/unix/irc/mac
  1879.               sumex.stanford.edu              - /info-mac/comm
  1880.               ftp.ira.uka.de                  - /pub/systems/mac
  1881.  
  1882.  
  1883.    For  Unix  machines,  you  either compile the source yourself, or have
  1884. someone  else  on  your  machine compile the source for you.  The current
  1885. "official"  ircII release is version 2.2.1. That means that it is said to
  1886. be quite bugfree (Hehe, you never know...) In addition to this "official"
  1887. distribution,  you  may  find  preversions of the client to come floating
  1888. around,  for people who like to track down bugs and taste things to come.
  1889. However,  you  should be aware of that those clients are being worked on,
  1890. and may not have full features working properly.
  1891.  
  1892.    Here are the commands to type to setup an ircII client:
  1893.  
  1894.         ~ > ftp
  1895.         ftp> verbose off
  1896.         Verbose mode off.
  1897.         ftp> open cs.bu.edu
  1898.         Name (cs.bu.edu:yourname) : ftp
  1899.         Password: yourname@yourhost
  1900.         ftp> cd irc/clients
  1901.         ftp> bin
  1902.         ftp> get ircII2.2.1.2.tar.Z "|zcat|tar xf -"
  1903.         ftp> get ircII2.2.1help.tar.Z "|zcat|tar xf -"
  1904.         ftp> quit
  1905.         ~ >
  1906.  
  1907.    You now have to go into ircII2.2.1 and read the files  explaining  how
  1908. to achieve a successful installation.  Have a look at README and INSTALL,
  1909. edit   config.h   to  define  DEFAULT_SERVER,  edit  Makefile  to  define
  1910. INSTALL_EXECUTABLE,  IRCII_LIBRARY  and the C compiler you will be using,
  1911. then type make install and wait...
  1912.  
  1913.    If  you  can't set up a client on any local machine, you can still use
  1914. any telnet client:
  1915.  
  1916.                      Table 16:  Open telnet clients
  1917.                      ------------------------------
  1918.       Area      Command                                 login name
  1919.       ~~      ~~~~                                 ~~~~~
  1920.       America   telnet bradenville.andrew.cmu.edu
  1921.                 telnet chatsubo.nersc.gov               bbs
  1922.  
  1923.       Asia      telnet cc.nsysu.edu.tw                  irc
  1924.  
  1925.       Europe    telnet ircclient.itc.univie.ac.at 6668
  1926.                 telnet irc.ibmpcug.co.uk 9999
  1927.  
  1928.    Please  only use telnet when you have no other way of reaching IRC, as
  1929. this resource is quite limited.
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.                    3.2  Which server do I connect to?
  1936.                    ~~~~~~~~~~~~~~~~~
  1937.  
  1938.    It's usually best to try and connect to one geographically close, even
  1939. though that may not be the best.  You can always ask when you get on IRC.
  1940. Here's a list of servers available for connection:
  1941.  
  1942.                        Table 17:  Open IRC servers
  1943.                        ---------------------------
  1944.               America   Canada        ug.cs.dal.ca
  1945.               ~~~~   USA           csa.bu.edu
  1946.                                       ucsu.coloradu.edu
  1947.                                       irc.caltech.edu
  1948.  
  1949.               Europe    Finland       nic.funet.fi
  1950.               ~~~    France        poly.polytechnique.fr
  1951.                         Germany       noc.belwue.de
  1952.                         Sweden        irc.nada.kth.se
  1953.  
  1954.               Oceania   Australia     munagin.ee.mu.oz.au
  1955.               ~~~~
  1956.  
  1957.    This  is  by  no  means,  a  comprehensive  list,  but merely a start.
  1958. Connect   to   the   closest  of  these  servers  and  join  the  channel
  1959. #Twilight_Zone  or, if you are in Europe, #EU-Opers.  When you are there,
  1960. immediately  ask  what  you  want.  Don't say "I have a question" because
  1961. then  everyone  will  ignore  you  until you say it a few times, and then
  1962. they'll jump down your throat and rip your lungs out.  No one knows if he
  1963. can answer your question until you ask it.
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.            3.3  What are good channels to try while using IRC?
  1970.            ~~~~~~~~~~~~~~~~~~~~~~~~~~
  1971.  
  1972.    #Hottub  and #initgame are almost always teeming with people.  #Hottub
  1973. is  meant  to  simulate  a  hot  tub, and #initgame is a non-stop game of
  1974. "inits"  (initials).   Just join the fun and find out!  (German users may
  1975. try channels named after German university towns...)
  1976.  
  1977.    Many  IRC  Operators  are  in #Twilight_Zone, while European Operators
  1978. concentrate in #EU-Opers...  So if you join an Operator channel and don't
  1979. hear  much  talking,  don't worry, it's not because you joined, Operators
  1980. don't talk much on such channels anyways!
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.                3.4  How do I get nifty effects with ircII?
  1987.                ~~~~~~~~~~~~~~~~~~~~~~
  1988.  
  1989.    You  can  highlight  messages  you send using control chars:  parts of
  1990. text  surrounded  by  control-b (^B) will appear in video reverse to most
  1991. ircII  users for instance.  However the appearance of such effects relies
  1992. on the terminal abilities of the user you're writing to.
  1993.  
  1994.    In  some  cases keys are already bound to something.  For instance, ^B
  1995. is  normally  bound  to  BACKWARD_CHARACTER, so you will need to define a
  1996. "quote-character" key:  just enter "/BIND ^W QUOTE_CHARACTER" then "/BIND
  1997. ^W^B SELF_INSERT" and it may work...
  1998.  
  1999.                   Table 18:  Highlighting ircII output
  2000.                   ------------------------------------
  2001.                            Key  Effect
  2002.                            ~~  ~~~
  2003.                            ^B   Video reverse
  2004.                            ^V   Underline
  2005.                            ^_   Bold
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.         3.5  What if someone tells me to type something cryptic?
  2012.         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2013.  
  2014.    NEVER  type  anything  anyone tells you to without knowing what it is.
  2015. There  is  a  problem with typing a certain command with the ircII client
  2016. that  gives  anyone immediate control of your client, (and thus can alter
  2017. your account environment also).  Look in the ircII on-line help each time
  2018. you can.
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.        3.6  I get strange characters on my screen, what are they?
  2025.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2026.  
  2027.    IRC  has quite a lot of people from Scandinavian countries, }{|][\ are
  2028. letters  in  their  alphabet  (IRC is supposed to support the ISO Latin-1
  2029. 8-bit  character  set,  but your client  must be able to display them...)
  2030. This  has  been  explained on IRC about a thousand and one times, so read
  2031. the following, do not ask it on IRC:
  2032.  
  2033.            Table 19:  Nordic countries character translations
  2034.            --------------------------------------------------
  2035.     Character  Description
  2036.     ~~~~~  ~~~~~~
  2037.     [, {       'a' with two dots over it
  2038.     ], }       'a' with a small circle above it
  2039.     \, |       'o' with two dots over it, or a dash ("/") through it
  2040.                ("[", "]", and "\" = upper case)
  2041.  
  2042.    In  addition  to  that,  Japanese  IRC'ers  use  a special ANSI escape
  2043. control  sequences  to transmit their Kanji alphabet.  This may also look
  2044. funny  if  you  get  some  of it...  Here's a sample:  [$B$?$K$7[$B;$m$K#
  2045. (nice, uh?)
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.                         3.7  What about NickServ?
  2052.                         ~~~~~~~~~~~~~
  2053.    To  quote  from  NickServ's  help  text, NickServ's purpose is to help
  2054. avoiding  nickname confusions on IRC.  There's no such thing as "nickname
  2055. ownership",  however NickServ sends a warning to anyone else who signs on
  2056. with  your  nickname.   If  you don't use IRC for 10 weeks, your nickname
  2057. registration expires for reuse.
  2058.  
  2059.    Only  a  NickServ operator can change your NickServ password.  To find
  2060. out which NickServ operators are on-line, send
  2061.  
  2062.         /MSG NickServ@Service.de OPERWHO
  2063.  
  2064.    Nicknames with a "*" next to them are online at the time.
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.            3.8  I'm being flooded or harassed by a jerk. HELP!
  2072.            ~~~~~~~~~~~~~~~~~~~~~~~~~~
  2073.  
  2074.    If  somebody is behaving like a jerk on IRC, like dumping to a channel
  2075. Mb's  of garbage, then he should be KICKed and eventually banned from the
  2076. channel, (see "/HELP MODE" for details).
  2077.  
  2078.    If  it's a matter of personal harassment, then you should set a proper
  2079. IGNORE on that person, (preferably on his userid@hostname).  Remember you
  2080. can use wildcard expressions for IGNORE.  More about this in section 2.2.
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.             3.9  How do I get rid of a ghosted IRC session?
  2087.             ~~~~~~~~~~~~~~~~~~~~~~~~
  2088.  
  2089.    Sometimes  you  may  have  a  "ghosted"  IRC  session, a process still
  2090. running  on  your machine you would like to get rid of, but can't control
  2091. anymore to issue a QUIT command.  Going back to a unix shell, try listing
  2092. your processes:  ("ps -ux" or "ps -f" depending on your system)
  2093.  
  2094.     poly ~ > ps -ux
  2095.     USER       PID  %CPU %MEM   SZ  RSS TT STAT TIME COMMAND
  2096.     pioch    10410   1.4  0.2  839  402 pf S    0:00 /usr/local/bin/emacs
  2097.     pioch    25441   0.6  0.9 2888 1908 ?  S    0:32 xterm -ls
  2098.     pioch    25444   0.4  0.2  550  341 pf S    0:17 -tcsh (tcsh)
  2099.     pioch    10404   0.1  0.3  897  624 pf S    0:00 irisVx 5 4 10403
  2100.     pioch    25634   0.0  0.3 1022  678 p6 S    0:22 irc
  2101.     pioch    25451   0.0  0.2  953  326 ?  S    0:07 xmailbox
  2102.     pioch    25452   0.0  0.1  386  147 ?  S    0:00 xdaliclock
  2103.     pioch    25459   0.0  0.3 1109  617 ?  S    0:02 xman
  2104.     pioch    10403   0.0  0.1  574  124 pf I    0:00 mapleV
  2105.     pioch    10423   0.0  0.2  614  459 pf R    0:00 /bin/ps -ux
  2106.  
  2107.    Locate the line about your lost IRC session, (irc should appear in the
  2108. COMMAND field of the line), and its PID, (process number, second field of
  2109. the line here).  In this example the PID is 25634, as shown here:
  2110.  
  2111.     USER       PID  %CPU %MEM   SZ  RSS TT STAT TIME COMMAND
  2112.     pioch    25634   0.0  0.3 1022  678 p6 S    0:22 irc
  2113.  
  2114.    All  you  then  need  to  type is "kill -KILL" or "kill -9" immediatly
  2115. followed by the PID found above:  "kill -kill 25634" here.
  2116.  
  2117.    You  can  get  more  details  about  the commands involved here in the
  2118. standard unix manual, ("man 1 ps" or "man 1 kill").
  2119.  
  2120.    If  your  machine  crashed,  and  your nick is still in use on the IRC
  2121. network,  you'll have to wait 4 to 5 minutes for your server to recognize
  2122. the  fact.   Getting  an  Operator  to  kill  the  ghost  is almost never
  2123. necessary,  just  sign  on  as  another  nickname  and wait for the "Ping
  2124. timeout" or "Bad link" message, then you can change your nick back...
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.                          3.10  About KILL usage.
  2131.                          ~~~~~~~~~~~~
  2132.  
  2133.    KILL  is  a  command restricted to IRC-Operators to deal with protocol
  2134. errors  heavily  reducing the IRC network functionality.  It's to be used
  2135. with extreme caution, if at all.
  2136.  
  2137.       +-----------------------------------------------------------+
  2138.       | KILL should never interfere with channel-operator status. |
  2139.       +-----------------------------------------------------------+
  2140.  
  2141.    If you op someone on a channel, you take the consequences.  If someone
  2142. joins  #Whatever,  you  op  them,  then  they  kick everyone and lock the
  2143. channel  with  some  "Mode  change +ib *!*@*", then suffer it:  it's your
  2144. fault,  don't go whining to an IRC-op to fix it.  If a channel is locked,
  2145. you should start a new one.
  2146.  
  2147.    Effective  methods  to deal with obnoxious people are IGNORE, KICK and
  2148. various MODEs on channels, such as +i and/or +b.
  2149.  
  2150.    If  you  have  been  abusively  killed by an IRC-Operator, abusing his
  2151. power to gain illegal channel-operator status for instance, yell!  Mail a
  2152. log  to his server IRC-Administrator, (see ADMIN), join #Twilight_Zone or
  2153. #EU-Opers for European-related problems, and explain what happened.
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.                       3.11  Where can I find more?
  2160.                       ~~~~~~~~~~~~~~
  2161.  
  2162.    Should  your  question  not be listed above, you may want to check the
  2163. "Frequently  Unasked  Questions", (FUQ) list, which will be shipping real
  2164. soon now, featuring replies to:
  2165.  
  2166.         <lamer1> Are there any good FTP sites? (1)
  2167.         <lamer2> How do I join a channel?
  2168.         <lamer3> How do I become an IRCop?
  2169.  
  2170.  
  2171.    If you have access to Usenet News, (usually through a program called
  2172. rn, trn, xrn or nn), you may want to join alt.irc debates, flamings and
  2173. whinings.
  2174.  
  2175.    You can also join various IRC related mailing lists.  "Operlist"
  2176. discusses  current  (and  past)  server code, routing and protocol.  Mail
  2177. operlist-request@eff.org     to     join.     Another    mailing    list,
  2178. ircd-three@eff.org  exists  to  discuss  protocol  revisions  for the 3.0
  2179. release  of ircd, currently in planning.  Mail ircd-three-request@eff.org
  2180. to  be  added to that.  There is also low-traffic mailing-lists for ircII
  2181. vmsirc and irchat clients.
  2182.  
  2183.                   Table 20:  IRC related mailing lists
  2184.                   ------------------------------------
  2185.    E-mail for subscriptions       What's being talked about
  2186.    ~~~~~~~~~~~~       ~~~~~~~~~~~~~
  2187.    operlist-request@eff.org       Server code, routing and protocol.
  2188.    ircd-three-request@eff.org     ircd 3.0 protocol
  2189.    listserv@grasp1.univ.lyon1.fr  European IRC-Operators mailing list
  2190.    dl2p+@andrew.cmu.edu           ircII mailing list
  2191.    vmsirc-request@vax1.elon.edu   VMS IRC mailing list
  2192.    irchat-request@cc.tut.fi       irchat mailing list
  2193.    ((1) 129.0.0.1 but you already know that.)
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.                            4.  ADMINISTRATIVIA
  2201.                            ===================
  2202.  
  2203.                           4.1  Revision history
  2204.                           ~~~~~~~~~~~
  2205.    This  is  version 1.1 of this paper.  Version 1.0 of the IRCprimer was
  2206. released  in  postscript  form  in June 1992 because I was sick of people
  2207. asking  for  an  IRC  or  ircII  manual  (and  it was a good way to learn
  2208. LaTeX!).   During  summer 1992  Owe  Rasmussen  did  a  very  nice  text
  2209. conversion  of  the  paper.  Due to the support and many remarks I got, a
  2210. new version  is finally completed  (special thanks to Olaf Titz !), along
  2211. with Owe's plain ascii conversion.
  2212.  
  2213.    The primer is available in 3 formats:
  2214.  
  2215.                   IRCprimer.ps.Z:   Postscript version
  2216.                   IRCprimer.txt:    Plain text version
  2217.                   IRCprimer.tex.Z:  Source code.
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.                   4.2  Release sites for the IRCprimer
  2224.                   ~~~~~~~~~~~~~~~~~~
  2225.  
  2226.    The  latest  version  of  the primer can be found on the following ftp
  2227. sites, thanks to their admins:
  2228.  
  2229.                     Table 21: IRCprimer release sites
  2230.                     ---------------------------------
  2231.                      ftp site           location
  2232.                      ~~~~           ~~~~
  2233.                      nic.funet.fi       /pub/unix/irc/docs
  2234.                      cs.bu.edu          /irc/support
  2235.                      coombs.anu.edu.au  /pub/irc/docs
  2236.  
  2237.  
  2238.    Here's how to get the latest primer postscript version for example:
  2239.  
  2240.         ~ > ftp
  2241.         ftp> verbose off
  2242.         Verbose mode off.
  2243.         ftp> open cs.bu.edu
  2244.         Name (cs.bu.edu:yourname): ftp
  2245.         Password: yourname@yourhost
  2246.         ftp> cd irc/support
  2247.         ftp> bin
  2248.         ftp> get IRCprimer.ps.Z
  2249.         ftp> quit
  2250.         ~ > uncompress IRCprimer.ps.Z
  2251.         ~ >
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.                   4.3  Copyright (C) 1993 Nicolas PIOCH
  2258.                   ~~~~~~~~~~~~~~~~~~~
  2259.  
  2260.    This  manual  is  free; you can redistribute it and/or modify it under
  2261. the  terms  of  the  GNU  General Public License as published by the Free
  2262. Software Foundation; either version 2 of the license, or (at your option)
  2263. any later version.
  2264.  
  2265.    This  manual  is  distributed  in the hope that it will be useful, but
  2266. WITHOUT   ANY   WARRANTY;   without   even   the   implied   warranty  of
  2267. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
  2268. Public License for more details.
  2269.  
  2270.    You  should  have  received  a  copy of the GNU General Public License
  2271. along with this manual; if not, write to the
  2272.  
  2273.  
  2274.                      Free Software Foundation, Inc.,
  2275.                               675 Mass Ave,
  2276.                         Cambridge, MA 02139, USA.
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.                               4.4  Credits
  2283.                               ~~~~~~
  2284.  
  2285.    Interesting  informations  contained in this paper are due to the work
  2286. of various people interested in IRC improvement; I'm only responsible for
  2287. omissions and mistakes :-)
  2288.  
  2289.    It's  impossible  to  give here a full list, however special thanx are
  2290. due to (in analphabetical order):
  2291.  
  2292.  +---------------------------------------------------------------------+
  2293.  |   Real life (uh ?)       IRC          E-mail                        |
  2294.  |   ~~~~~~~~       ~~          ~~~                        |
  2295.  |   Christopher Davis      ckd          ckd@eff.org                   |
  2296.  |   Christophe Wolfhugel   Zolf         wolf@grasp.insa-lyon.fr       |
  2297.  |   Darren Reed            Avalon       avalon@coombs.anu.edu.au      |
  2298.  |   Greg Lindahl,          Wumpus       gl8f@virginia.edu             |
  2299.  |   Helen Rose             Trillian     hrose@eff.org                 |
  2300.  |   Ian Frechette          Daemon       frechett@spot.colorado.edu    |
  2301.  |   Jarkko Oikarinen       WiZ          jto@tolsun.oulu.fi            |
  2302.  |   Jeff Trim                           jtrim@orion.cair.du.edu       |
  2303.  |   Jonathon E. Tidswell   Ernie        jont@cs.su.oz.au              |
  2304.  |   Karl Kleinpaste        poptart      KarlKleinpaste@cs.cmu.edu     |
  2305.  |   Matthew Alderson       thecure      thecure@mullian.ee.mu.oz.au   |
  2306.  |   Matthew Green          phone        phone@coombs.anu.edu.au       |
  2307.  |   Mauri Haikola          Mauri        mjh@stekt.oulu.fi             |
  2308.  |   Michael Sandrof        BigCheese    ms5n+@andrew.cmu.edu          |
  2309.  |   Olaf Titz              praetorius   stitz@ira.uka.de              |
  2310.  |   Ove Ruben R. Olsen     Gnarfer      rubenro@viggo.blh.no          |
  2311.  |   Ronald van Loon        rvl          rvloon@cv.ruu.nl              |
  2312.  |   Troy Rollo             Troy         troy@cbme.unsw.edu.au         |
  2313.  +---------------------------------------------------------------------+
  2314.  
  2315.    Feel  free  to bug me with your comments, I hope I'll have enough time
  2316. to reply.
  2317.  
  2318.                                                Paris, February 21, 1993,
  2319.                                                     Ecole Polytechnique,
  2320.  
  2321.                                                           Nicolas PIOCH.
  2322.  
  2323.  
  2324.  
  2325.  
  2326.