Fancy URLs patch for slrn

What does this patch do?

This patch adds the following features:

What the status of this patch?

This patch is to slrn 0.9.5.4 (and has also been successfully used with versions 0.9.5.5-0.9.5.7). Judging by past experience, it's likely to work for several future versions (with a few "offset" warnings from patch), but no promises. I don't have time to check it as often as I'd like, so do mail me if it stops working.

John Davis intends to provide support for coloured and clickable URLs in a different way in a future version of slrn, so this patch is unlikely to be integrated in its current form. However, John says he's happy for me to keep updating it and making it available. He's also incorporated some elements of earlier versions.

I've tested it on Linux 2.0 using rxvt (and very briefly with xterm), but it should work on other platforms too.

Known Bugs and Problems

There was one minor cosmetic bug in the 0.9.3.2 version which has been fixed in slrn 0.9.4.0 and later by a change in the way slrn displays "unknown" characters.

There's a bug in the 0.9.3.2 version, and in the original 0.9.4.0 version which may stop mouse clicks having any effect outside a URL (the intention is they should work as it would without the patch). This is fixed in the patches now available from here.

I've slightly tweaked the URL spotting algorithm in the 0.9.5.4 version of the patch. It now copes with URLs containing "," or ";" (but ignores them at the end assuming they are punctuation). It also takes "'" as ending a URL. But as with any heuristic algorithm for this sort of job, it could probably be improved. If you come across a particular example which is handled badly, send me an email.

It would be nice if slrn could handle news:newsgroup, news:msgid and nntp: URLs itself, but this is harder than it may at first appear. Maybe soon.

Where can I get it and what do I do with it?

Anyway download the patch, try it out, and let me know what you think (e-mail <olly@survex.com>). For simplicity, I've removed all the old versions of the patch - if you're desparate for one, email me and I'll dig it out.

Mark K. Gardner has pointed out to me that some older versions of patch don't understand diff -u format patches, so I'm now supplying patches in diff -c format.

To apply the patch you'll need the patch program. Unpack the slrn source, then:

cd slrn/src
patch < slrnfancyurls0954.patch
The source code for slrn is available from ftp://space.mit.edu/pub/davis/slrn/ in case you don't have it. Then run configure and make as usual (read 'slrn/README' for more info).

And don't forget to run slrn with the -m option to get the mouse to work!