Whether it is a bug or not, it seems to be undocumented how the extents are
handled in the modeline format. Looking in info I found descriptions the
following:
-------------------------- Start quote -----------------------------------
`STRING'
A string as a modeline construct is displayed verbatim in the mode
line except for "`%'-constructs". Decimal digits after the `%'
specify the field width for space filling on the right (i.e., the
data is left justified). *Note %-Constructs::.
`SYMBOL'
A symbol as a modeline construct stands for its value. The value
of SYMBOL is used as a modeline construct, in place of SYMBOL.
However, the symbols `t' and `nil' are ignored; so is any symbol
whose value is void.
There is one exception: if the value of SYMBOL is a string, it is
displayed verbatim: the `%'-constructs are not recognized.
`(STRING REST...) or (LIST REST...)'
A list whose first element is a string or list means to process
all the elements recursively and concatenate the results. This is
the most common form of mode line construct.
`(SYMBOL THEN ELSE)'
A list whose first element is a symbol is a conditional. Its
meaning depends on the value of SYMBOL. If the value is non-`nil',
the second element, THEN, is processed recursively as a modeline
element. But if the value of SYMBOL is `nil', the third element,
ELSE, is processed recursively. You may omit ELSE; then the mode
line element displays nothing if the value of SYMBOL is `nil'.
`(WIDTH REST...)'
A list whose first element is an integer specifies truncation or
padding of the results of REST. The remaining elements REST are
processed recursively as modeline constructs and concatenated
together. Then the result is space filled (if WIDTH is positive)
or truncated (to -WIDTH columns, if WIDTH is negative) on the
right.
For example, the usual way to show what percentage of a buffer is
above the top of the window is to use a list like this: `(-3
"%p")'.
-------------------------- End quote ------------------------------------
And what about `(EXTENT REST)'?
Moreover, in documentation to `modeline-buffer-identification' there is written
-------------------------- Start quote -----------------------------------
Setting it would make its value buffer-local.
Documentation:
Modeline control for identifying the buffer being displayed.
Its default value is "XEmacs: %17b" (NOT!). Major modes that edit things
other than ordinary files may change this (e.g. Info, Dired,...)
-------------------------- End quote ------------------------------------
Note that particular `NOT' ;)
Am I missing something?
TIA
Nick.