Historical Note (Or "Why?")
During a religious emacs discussion with ap (AyPEE on FICS) on the then AICS (now ICC) server some time ago, the idea of an ics mode for Emacs came up. I decided to attempt to write it. It was, however, my first Emacs Lisp program ever, and as such was really crap. So I printed out the elisp manual - all 706 pages. Then I read it - all 706 pages. (You believe me, right?) Then I started ics.el again from scratch. The result is the new, improved, all-singing, all-dancing ics.el.
I have now finally addressed what I saw as the main problems with the 0.3.x alpha releases. The current version is 0.4.1, released Sun Jul 21 19:58:49 BST 2002.
The next stage now is to redo the highlighting, buttonising and auto-command bits to be easier to customise, probably using the built-in customisation feature of Emacs. this will be worked on as v0.5 and eventually(!) released as 1.0.
Any feedback on current bugs and future feature requests will be gladly received via firstname.lastname@example.org. Feature requests are particularly welcome since I am running out of ideas for things to add.
What is it?
ics.el is meant to handle the text portion of an Internet Chess Server (ICS) session. It handles colour highlighting and "buttonisation" (making certain portions of text active so that, for example, you can challenge opponents with a single mouse click) as well as command recall and editing and automation of commands based on regexps seen in the ICS output, all highly customisable using Emacs lisp.
One thing that it doesn't handle (yet?) is the chess board portion of the ICS session. For this I'd recommend Tim Mann's superlative xboard program.
I just (13th Feb 2006) put together a little amaroK script to send the currently playing track in amaroK to Emacs for, e.g., inclusion in your ICS finger notes.
- The amaroK script package
- The Emacs Lisp source for the ics-set-amarok-now-playing function. You'll need to edit the format string and the ICS buffer name.
You'll need to have gnuserv installed and active, which for me under GNU emacs requires the following in my .emacs:-
;; ;; gnuserv (for amarok <-> ics integration) ;; (require 'gnuserv-compat) (require 'gnuserv) (gnuserv-start)
The current stable version of ics.el is 0.4.1 and was released on 21st July 2002.
Download version 0.4.1 as
- plaintext format (65503 bytes, md5sum 696483ed9f11065b1a603e4334af006e),
- gzipped format (19684 bytes, md5sum 1d01c29223bff40e5774a7e28e65beb0)
Downloads are only currently available via http protocol, until I work out if Eclipse provide anon ftp server space, or I find another ftp site that can host ics.el. If you have trouble getting downloads to work without mangling the file, email me and I'll mail you a uuencoded version. (this is done manually, so might not happen quickly - please bear with me!). When checking the md5 sums given above, remember that the browser/server may have uncompressed/un-gzipped them on the fly for you.
My main development platform is FSF Emacs, but I have just installed a version of XEmacs in order to fix some of the grosser incompatibilities. Some of this has been incorporated into version 0.4.1.
My current development version (snapshotted at Wed Jul 12 23:03:00 BST 2006). This is usually not too broken, being the version I use on a day-to-day basis ;-). This has some fixes for XEmacs problems, but needs more work - currently, highlighting and button regexps and button pressing function have been fixed. The code is a mess at the moment, with numerous (string-match "XEmacs\\|Lucid" emacs-version) calls scattered throughout, and probably won't byte-compile without a lot of warnings, if at all but it seems to run in both Xemacs and GNU (FSF) Emacs. The md5sum for ics-devel.el is dcb151975f8e7a3c64e67f37bbc3a906
The development version has updated server list and now works a bit better with chess.net and the BCF online sites. chess.net support isn't complete since they seem to have decided for no good reason to do things just slightly differently to the other sites out there (despite springing from essentially the same codebase).
ics.el is released WITH NO WARRANTY under the GNU General Public License either version 2, or at your option, any later version.
ChangeLogThe ChangeLog is available.
- If a range of text matches multiple buttons, clicking different parts of the button will invoke different button actions. e.g. in seek ads and history lists, the "who-list" regexp also matches subparts of the larger match so clicking these does a finger instead of a play or examine respectively.
DocumentationDocumentation is somewhat scarce at the moment, although the code is reasonably well commented throughout, with instructions on setup at the start of the file. There is a (plaintext) HOWTO document available here. It was written about 4 years ago but still covers the current version. (Just goes to show how long this project has stagnated for!).
ics.el, running in emacs 20.3, under windowmaker along with xboard looks a little bit like this (click on image for full size screenshot, 800x600 jpeg 283k):-
ics.el is intended to work with both ICC and FICS