== Version 0.21b (2006/05/27) ==

== Note that pictures are slightly out of date ==


About Cretin

Cretin is an IRC client for RISC OS. It was written mainly just for the fun of writing one, and partly because we wanted a client that worked as we wanted. Mainly for the fun of it.
It is called Cretin for no very good reason - it was born from "I (C)an't (R)emember (T)he (N)ame", which later became "I (C)an't (Re)member (T)he (I)RC Client's (N)ame" for the better acronym thing. It's also an anagram of IRCNet, so "go figure".
If you have any questions, please contact me: James Scholes

About the icon

Cretin's icon is a smiley in a jar, connected to a server. You can decide for yourself what this is supposed to symbolise, but please don't take it personally. ;-)
Cretin needed an icon, so one was hacked up from the Wet String Networking icon. I still think it's sort of appropriate, in a mad scientist sort of way. You could perhaps think of IRC as providing vital nutrients and stimulation to the disembodied mind in the jar, if it pleased you. Hmm. A bit far from the truth though, I suspect.


Supports connection to more than one server at a time.
Optional timestamps on messages

Iconbar Menu

Tabs menu

Dialogue tabs: double click a user's name (in either the messages window or the user pane) for a dialogue tab. (dialogues capture /msg commands to and from the relevant user)

Userlist menu: sporting such fancy features as Dialogue, Whois, Op, Deop and now a CTCP section!

Message window menu: options to turn on and off the various parts of the window display.

Message window user menu: click menu over someone's name to get to the userlist menu.

URL Links: double-click on a URL to launch it in your current web browser.

Things which may confuse:

Normal Use

When you first load Cretin, you are presented with the usual iconbar icon. Clicking SELECT will open a Cretin window:

Connecting... Your default name is 'cretin'. This, and many other things can be changed in the options file.
Cretin automatically attempts to connect to IRCnet when a window is opened. Again, this is configurable.
The empty pane on the right is the userpane.
In a channel, it shows which user are members of the channel.
In the status window, it shows any channels you have joined (currently none). Clicking a channel will bring it into view in the current window

"/start" is set by default to connect to the #riscos and #cretin channels:
Simply clicking the icon and pressing RETURN will have you online and ready to go.
This action can be changed at any time by editing the aliases file

Click MENU on a user's name in the userpane to bring up a menu offering many actions.
Note this channel has 4 operators (blue diamonds)
Also 3 people with 'voices' (green diamonds)
Double-clicking on a user name will open a dialogue.
Click 'Who is' to find out information about a user.
If you have operator status, you can Op or Deop via the menu.
Click DCC (Direct Client-to-Client) Chat for a secure chat window.
Send file opens the file dialogue box, ready for a file to be dropped in. CTCP
User Menu

CTCP CTCP options are client-specific requests, as shown here.
Double-click the highlighted URL to launch in a web browser.
Also several optional part of the window are turned off:
Tabs, Topic, Nick
These are accessible by the menu in the messages window:
Display menu


There are a few hotkeys defined at present, these all apply to the currently selected window:

Tab: Autocomplete the nickname you are typing at present. If there is more than one nick which matches the fragment you have typed, pressing Tab again will cycle through them. They are cycled through in userlist order, so nicks with ops will be shown before "plain" nicks even if they are alphabetically the other way around.

Cursor up: Goes "up" in the line editor history, from your last command through to your first one.

Cursor down: Goes "down" in the line editor history, from the fist command you entered to the last one.

F1: Change to the server tab on the current window, and cycle through the servers if there are more than one.

F2 - F10: Change to channel tab 1-9 on this window.

Ctrl-Tab: Cycle through the tabs and servers on this window

Ctrl-F1: Reduce the window to "just tabs"

Ctrl-C: Copy highlighted text to the global clipboard

Ctrl-V: Paste text from the global clipboard to the current server/channel

Command Use

Access to just about everything can done from the Cretin "command line" - the writable icon stuck onto the bottom of the window. There are also options that can be set in the Choices file and actions available through menus.

Commands are:

/connect <server>[:<port>] Tries to connect to the server specified. Times out after a while, and will try to connect three times before failing completely. The timeout time and number of retries will be user-definable.
If you have disconnected from the server, but are on this server's "window", you can just use /connect on its own to reconnect. If you want to rejoin channels you didn't leave before disconnection, you should reconnect using this method.
Multiple connections to one server are allowed by Cretin, but may not be allowed by the network you are using. Check before connecting five times simultaneously - otherwise you may be disappointed.

/start Runs your default options. This a simple script in the aliases file, initially set to join #riscos and #cretin

/join <channelname> (/j) Joins the channel named, on the currently selected server.

/leave (/p) Leaves the current channel.

/clear Clears the display of this channel - this is an irreversible action!

/quit [<message>] Closes the connection to the current server, with the optional message being given.

/me <text> Performs an action on the current channel.

/msg <nick> <message> /notice <nick> <message> Sends "message" to "nick". If you wish to send spaces at the start of a message (to indent it), you should start the line with a colon.
eg. /msg fred     Hello. means that fred will receive something like --> (cretin) Hello.
/msg fred :     Hello.
means that fred will receive something like --> (cretin)     Hello.

/close Closes the current "tab" - Note that it doesn't close the connection, just your view of it.

/view <channelname> Shows you the named channel in this window, opening a new tab if necessary.

/kill [<channel name>] Leaves the channel (if you haven't left already), and removes Cretin's memory of the channel. This will remove it from all windows, and you get no second chances with it.

/killserver Only works if you are disconnected from the server already. Wipes the server, and all of its associated channels from Cretin's memory.

/log <filename> | -off If you give a filename, it will log everything sent to that channel to the file you've given, storing it in Choices:IRC.Cretin. /log -off stops the logging to file.

/chat <nick> Request a DCC chat with the person named. The DCC request is sent via the currently selected server.

/send [<nick> [<filename>]] Try to send a file to the person named. You might find it easier to just drop the file onto the window, or even better, onto the person's nick on the "user" pane of the window.

/nick <nick> Change your nickname (on this server) to the one given.

/topic [<topic text>] Ask what the channel topic is, if no topic text is specified, or else try to set the topic to the new topic text.

/option [~]<option name> Turn on [off] a display option on the current window. Options are:

/op <nick> [<nick> ...] Give someone operator status on this channel

/deop <nick> [<nick> ...] Remove someone's operator status on this channel

/voice <nick> [<nick> ...] Give someone a voice on this channel

/devoice <nick> [<nick> ...] Remove someone's voice on this channel

/kick <nick> [<message>] Kick someone off the current channel, with the optional message

/names [<channel name>] Ask for a list of people on the current channel (with no parameter), all visible channels (with a star as parameter) or the specified channel.

/invite <nick> [<channel>] Invite someone to join the specified channel, or else the current channel.

/mode <mode parameters> Sends a MODE message to the current server with the parameters as typed after /mode.

/watch <nickname> Adds a name to the "notify list" for this server. Nicks on the watchlist are shown on the server tab in the "userlist" pane. If Cretin notices they are on the server, the name will be in black, otherwise they will be in grey. With no nickname, it will force a check of the names on the list. Checks are done every 90 seconds or so.

/watchoff <nickname> Remove someone from the "notify list" for this server.

/copy (Ctrl+C) Copy the highlighted text into the global clipboard

/paste (Ctrl+V) Paste the contents of the global clipboard to the current server/channel

/flush "Flush" the output buffer - when flood control kicks in and you realise you hadn't wanted to paste all *that* to the channel.

/ctcp <user> <command> Use the CTCP commands to find out information about users. Cretin can send any CTCP command, and will respond to the following: CLIENTINFO, PING, TIME, VERSION, USERINFO, ERRMSG, SOURCE, FINGER, DCC

/whois <user> [user ...] Retrieves information about the user(s) in question

/dialogue <user> Open a special window for /msg commands

/reload Reload the choices file.

--- The following are untested at present, but should work ---

/squit <server to quit> <reason> Tell a server to quit. You can only do this if you're an IRC op.

/oper <username> <password> Attempt to gain IRC operator status

Various notes

At the moment, the "style code" for coloured text in messages is not supported. This means that messages which the sender intends to have coloured sections will instead have lots of C or C codes which may look a mess. Eventually, you will be able to ignore them, or get the display coloured appropriately. Other style codes (such as bold) are supported, but need to use a font that has bold, underline, etc. version defined.

- Dragging to highlight doesn't scroll the window if you drag off the ends. It will work properly soonish.

- Outgoing "flood protection" is in place, buffering output and sending it at no more than five messages in any ten second period. These values will be user-definable at some point, and will probably explain any lag between you typing something to be sent to the server and it appearing on your screen.

- The Choices:IRC.Cretin.Aliases file contains aliased commands, it should be fairly self-explanatory as to how it works. It will, in due course, be properly described in the file itself, and will have a GUI so you can forget about it anyway.

- A SubVersion (SVN) of Cretin is now available, kindly hosted by Peter Naulls at riscos.info


Cretin has been tested on StrongARM RISC PC's running RISC OS 3.7, 4.02 and 4.39 (Adjust), 5.11 (Iyonix) and an A4 running RISC OS 3.11.

As of version 0.20b, Cretin no longer relies on EasySockets, and is, therefore 32bit compatible. It is currently running on my Iyonix with RISC OS 5.11, no Aemulor in sight. Huge thanks go out to James Bursa for this, along with several people who've helped me on IRCnet.

RISC OS 3.11 is problematic because of reliance on the nested window manager and ZapRedraw, and I'm unlikely to put in the effort to fix this: RISC PCs can be had for pennies on eBay, and I have to draw the line somewhere.
If you have used it successfully on another version of RISC OS, or had a problem with it, please get in touch. (contact details above)


This isn't finished yet. This file is being kept roughly up to date with the functionality currently in Cretin, but not everything should be taken as truth. This is what is known as a disclaimer, I think.

Further note

As of December 2005, Antony and Andrew Sidwell have kindly open-sourced Cretin. At the moment, it's being looked after by myself, in an attempt to make it a viable, workable, 32-bit compatible IRC client.