Things for Emacs



Unicode-internal XEmacs 21.4

(Supported) I'm an XEmacs user, and the pace of proper Unicodification in the development branch (21.5) was a bit slow; and I rather like the retro 21.4 anyway. So when I had lots of time a few years ago (while convalescing from a severe illness), I converted 21.4 to be Unicode-internal. I never released it, because I don't release without documentation, and writing documentation is hard:-) However, for those who want it, here it is. There are some very brief notes in UNINOTES.TXT, and some slightly longer notes in man/jcbmacs.info, and much more information in comments in the source files.

It's not properly supported, in the sense that it's not properly documented, but I'll support it in the sense of fixing bugs and adding features (as long as I want them too).

April 2021: It's seven years since I updated this, so it's time for another update. A few bugs have emerged in that time. Performance on large files has been much improved.

XEmacs-21.4.21-Unicode-20210426.tgz (12 MB)



Urgent message highlighting in VM

(Supported (under XEmacs)) If you use VM under XEmacs (and possibly FSF Emacs), the file vm-sumurg.el allows you to tag messages with an urgency/importance level from 1 to 4. The message is displayed in a bright colour (yellow, amber, red, blinking-magenta-and-cyan) in the summary, and a count of the messages at each level is shown in the summary modeline. In addition, a count of the number of composition buffers is shown (in green) in the modeline.

In addition, you can set an alarm to flag a message as urgent at a later time or date, and can set repeating alarms.

The user interface is the command vm-sumurg-set-urgency.
This command is not bound to a key by default, as I don't know what a good key binding is. (I bind it to *, which is vm-burst-digest in the distribution, which I never use.)

A command vm-sumurg-showurgent, bound to V U, creates a virtual folder showing messages of the given urgency level (or higher).

The documentation for vm-sumurg-set-urgency is

*Set the urgency level of a message.
Interactively, this prompts for an urgency level from 0 (unmarked) to 4,
and sets the message's urgency accordingly.

A numeric prefix argument is treated in the usual way, setting the
following N messages to the given urgency level.

If called with a simple prefix argument (C-u), it first prompts
for a date on which the message is to be set to the given urgency level.
If called with a double prefix argument (C-u C-u), it clears any pending
urgency changes on the message.
If called with a triple prefix argument, it will prompt for a repeat interval
as well, in the form N d(ay)|w(eek)|m(onth)|y(ear)

The date can be given in several reasonable forms:

ISO: 2012-01-22
European numeric: 22/01/2012 or 22/01/12
British traditional: 22 January 2012  or  22 Jan 2012  or  Jan 22, 2012
 (month names can be given either in full, or as the first three letters)
Except in ISO format, the year can be omitted, and the next such date will
be assumed.

For the next few days, there are two options: a weekday name, which may be
given in full, or with the first three, or first two, letters. It may be
followed by  week  (or  wk  for the really lazy), to add another seven days.
For example:
 monday
 tue
 wed week

Alternatively, a number of days in the future may be given by +N:
+1  tomorrow
+2  day after tomorrow
+   tomorrow (N.B. means +1 not +0)

Any date spec may be preceded or followed by a time spec, in several
reasonable formats: 19:27  19.27  19h27  7.27 pm  19h  7pm.
Specifically any of h : . is recognized as a separator; am and pm are 
recognized in either case and with or without full stops; the separator
and minutes may be omitted, provided that h or am/pm is used.
 (To avoid confusion with years, military format 1927 is not accepted.)

A time spec normally means that time on the given date. In the special case 
where there is only a time spec, and the date is empty, it means the next
occurrence of that time: e.g. at 19:00, a date/time spec of 09:00 means
the following morning.

A date spec without a time spec will become active according to the value
of `vm-sumurg-default-time', which should be a string containing a time
in any of the above formats. This defaults to \"00:01\"; it might be useful to
set it to, say, \"08:30\", so that messages don't become urgent until you get
to the office! (Note: the value of `vm-sumurg-default-time' that counts is
that when the urgency is set, or when VM loads the mail folder, whichever
happens later.)

Updates:

2018-01-18: repeating alarms, bug fixes.

2011-12-19: urgency level 4 added, alarms added, interface command added, many bugs fixed.

2008-09-23: extended to put a reminder of any unsent composition buffers in the modeline also.