[comp.emacs] GNU Emacs mode line customizations

gaynor@topaz.UUCP (03/27/87)

M-x flame-mode
Topic (regexp): Sex.1

A note on the current discussion concerning Sex.1.  First, as I said
in my response to rms's survey (to where many of the postings SHOULD
have been directed), the page doesn't merit the attention it's
getting.  Second, an/a argument/discussion over/of the morality of its
content isn't likely to be won/resolved.  (I don't think anyone's mind
has been changed or outlook significantly broadened by this traffic.)
Third, if an argument/discussion must be had, it shouldn't be here -
perhaps comp.sources.d or rec.humor.d?  Fourth, (moral) opponents of
the man page are defeating themselves by prolonging the discussion,
which may peak an observer's curiosity to read it, and further Sex.1's
exposure.

Note that in the preceding paragraph, I do not take a side in this
argument/discussion (although I do have my own opinion, which I'll
keep to myself since the survey), so, please, do not follow-up on
those grounds.  I make some observations about the argument/discussion
which I do not even try to defend.  Don't attack them, I include them
only as an incentive to think before you post.

M-x flame-mode

Enough of all this serious stuff, now, and back to hacking - er, um,
customizing the mode line.  Here's what I want of my mode line that is
causing difficulty:

  - It should be centered, with dashes extending from endpoints of the
    desired string to the edges of the window.

  - If the buffer isn't associated with a file, it should contain the
    buffer name.  Otherwise, if the buffer name is the same as the
    trailing element in the filename, then it should contain the
    filename.  Otherwise, it should contain both (this should be an
    unusual circumstance).  In the case where two files with the same
    last component are visited, the buffer names should be considered
    as above but without postfixes (ie for two buffers(files)
    foo(/usr/foo) and foo<2>(/usr/local/foo), I would like to have
    displayed /usr/foo and /usr/local/foo).

  - If the buffer is not modified, no modification flags should be
    displayed, but should otherwise surround the name (of the buffer,
    if both name and buffer are displayed).

In essence, I guess I want to evaluate a function prior to
redisplaying the mode line.  I've written the function, it's fairly
straightforward.  In hopes that the mode line's redisplay mechanism
evaluated the mode line, I tried setting the mode-line-format to my
mode line function.  To no avail.  I tried poking around the various
functions available, but didn't find what I wanted.  I did find some
relevant source, but cannot afford the space to keep my own emacs
executable around.  One pseudo-solution that works poorly is to
redefine the functions that change the mode line to also update the
mode line.

Any solutions or solution strategies come to mind?

Silver.

       /-------------------------------------------------\
       | uucp:  ...!topaz!gaynor  ...!topaz!remus!gaynor |
       |        ~~~~~~~~~~~~~~~~                         |
       | arpa:  gaynor@topaz      silver@aim             |
       \-------------------------------------------------/
				   
    "Monsters have such *INTERESTING* hairdoos!!" - Bugs Bunny