* M-x compile re-uses name of old compilation buffer, contrary to documentation
@ 2007-07-19 11:33 Edward Welbourne
2007-07-20 13:42 ` Richard Stallman
0 siblings, 1 reply; 27+ messages in thread
From: Edward Welbourne @ 2007-07-19 11:33 UTC (permalink / raw)
To: bug-gnu-emacs
I opened the top-level directory of a source tree, to make it current directory.
M-x compile
added cvs up; to start of make command-line, hit return
Killed directory buffer. Switched to *compilation* and did
M-x rename-buffer
Supplied name *myprog update build*, left it to finish building.
After it'd finished I fixed a compile error and, with cursor in *myprog update build*, did
M-x compile
removed the cvs up; from the command-line, hit return.
The new compilation re-used *myprog update build* as its buffer,
instead of creating a new buffer called *compilation* as clearly
explained in the documentation for M-x compile, specifically when
explaining how to avoid conflict between compilations (albeit ones
running in parallel).
The problem with this is that I actually wanted to keep the ouptut
from the original build - it recorded what files I've got locally
changed, and contained compiler warnings that I wanted to fix ! I now
have to do another cvs up to recover the list of local changes; and
I'll need to make clean and make in order to recover the list of
warnings.
compilation-buffer-name-function is nil
This is probably just a documentation bug.
I can see the given behaviour might even be intended, it's just not
what I'm used to, so it caught me out.
In GNU Emacs 22.1.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2007-07-07 on raven, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.10300000
configured using `configure '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs22:/etc/emacs:/usr/local/share/emacs/22.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/22.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/22.1/leim' '--with-x=yes' '--with-x-toolkit=athena' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_GB.ISO-8859-15
locale-coding-system: iso-8859-15
default-enable-multibyte-characters: t
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
unify-8859-on-encoding-mode: t
utf-translate-cjk-mode: t
auto-compression-mode: t
line-number-mode: t
Recent input:
C-e C-p M-b M-b M-b M-b C-SPC M-f M-f M-f M-f M-w C-x
o C-x o C-h C-g C-x C-x M-w C-h v C-y <return> q C-x
3 C-x k <return> M-x c o m p i l e <return> C-a M-f
M-f M-f M-f M-f M-b <M-backspace> <M-backspace> <M-backspace>
<M-backspace> <return> M-< C-x o q C-x k <return> C-x
b * m a i <tab> <return> M-{ M-{ M-{ C-n M-> M-{ C-x
C-x C-w C-b M-b a g a i n SPC C-n <return> a l s o
: SPC w h a t SPC i s SPC t h e SPC b e n f <backspace>
e f i t SPC f SPC <backspace> <backspace> o f SPC a
d d i n g SPC a n SPC e l s e SPC t o SPC t h e s e
SPC f u n c t i o n s SPC ? C-n M-> C-c C-c C-x o C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-p C-p
C-p C-p C-p C-p C-p C-x C-f a d j <tab> <return> M-!
c v s SPC u p SPC - r SPC p e r e g r i n e <return>
C-x k <return> C-x C-f <backspace> <return> M-x c o
m p i l e <return> <return> C-x k <return> C-x o M-x
M-p <return> <return> C-x o C-x k <return> C-x o C-x
o M-x e m a <tab> b u <tab> <M-backspace> r e p <tab>
<M-backspace> <M-backspace> b u <tab> g <tab> <M-backspace>
r e p <tab> o <tab> r <tab> <return>
Recent messages:
(No changes need to be saved)
Mark set [2 times]
Sending...done
? quick/setup/munge
P m2/src/import/EudoraImporter.cpp
M quick/quick-tweaks.h
M quick/windows/DocumentDesktopWindow.cpp
(No files need saving) [2 times]
Making completion list... [3 times]
Loading emacsbug...done
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: M-x compile re-uses name of old compilation buffer, contrary to documentation
2007-07-19 11:33 M-x compile re-uses name of old compilation buffer, contrary to documentation Edward Welbourne
@ 2007-07-20 13:42 ` Richard Stallman
2007-07-20 14:54 ` Edward Welbourne
0 siblings, 1 reply; 27+ messages in thread
From: Richard Stallman @ 2007-07-20 13:42 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
I will clarify the doc. Thanks.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: M-x compile re-uses name of old compilation buffer, contrary to documentation
2007-07-20 13:42 ` Richard Stallman
@ 2007-07-20 14:54 ` Edward Welbourne
2007-07-21 10:23 ` martin rudalics
0 siblings, 1 reply; 27+ messages in thread
From: Edward Welbourne @ 2007-07-20 14:54 UTC (permalink / raw)
To: rms; +Cc: bug-gnu-emacs
> I will clarify the doc.
OK. I'm warming to the new functionality, now that I've been using it
for a few days :-)
I also notice that emcas 22's HTML-mode (the one provided by
sgml-mode) is treating /* and */ as comment-delimiters - at least as
far as font-lock-mode is concerned - possibly in support of comments
in embedded CSS style sheets, but maybe a bug in some mode-related
code borrowing off C by mistake. Very tiresome in documents that talk
about files, e.g. "see source/*.mk for details."
And, on a wildly separate topic, I owe you some updates to the GNU
make manual: see
http://www.chaos.org.uk/~eddy/craft/make.html
for a talk in which I tried out my changes on the Bergen LUG, to see
if (a) anyone could spot any mistakes I was making and (b) whether it
was intelligible. Even documentation deserves testing ...
Main obstacle to supplying a patch (aside from the usual scarcity of
time) is that I'm not info-literate, although I can probably remember
enough TeX to work it out,
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: M-x compile re-uses name of old compilation buffer, contrary to documentation
2007-07-20 14:54 ` Edward Welbourne
@ 2007-07-21 10:23 ` martin rudalics
2007-07-23 11:50 ` C-comments in sgml-mode's html-mode Edward Welbourne
0 siblings, 1 reply; 27+ messages in thread
From: martin rudalics @ 2007-07-21 10:23 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
> I also notice that emcas 22's HTML-mode (the one provided by
> sgml-mode) is treating /* and */ as comment-delimiters - at least as
> far as font-lock-mode is concerned - possibly in support of comments
> in embedded CSS style sheets, but maybe a bug in some mode-related
> code borrowing off C by mistake. Very tiresome in documents that talk
> about files, e.g. "see source/*.mk for details."
Could you please give a recipe to reproduce this with emacs -Q?
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-21 10:23 ` martin rudalics
@ 2007-07-23 11:50 ` Edward Welbourne
2007-07-23 12:02 ` Lennart Borgman (gmail)
2007-07-23 12:27 ` martin rudalics
0 siblings, 2 replies; 27+ messages in thread
From: Edward Welbourne @ 2007-07-23 11:50 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs
>> I also notice that emcas 22's HTML-mode (the one provided by
>> sgml-mode) is treating /* and */ as comment-delimiters
> Could you please give a recipe to reproduce this with emacs -Q?
I'm guessing you mean -q but can't seem to reproduce it with a new
session even without it. The running session from which I'm sending
this e-mail still exhibits the problem, but a fresh session doesn't.
Strange.
But that probably means you can ignore this problem !
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-23 11:50 ` C-comments in sgml-mode's html-mode Edward Welbourne
@ 2007-07-23 12:02 ` Lennart Borgman (gmail)
2007-07-23 13:24 ` Edward Welbourne
2007-07-23 12:27 ` martin rudalics
1 sibling, 1 reply; 27+ messages in thread
From: Lennart Borgman (gmail) @ 2007-07-23 12:02 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
Edward Welbourne wrote:
>>> I also notice that emcas 22's HTML-mode (the one provided by
>>> sgml-mode) is treating /* and */ as comment-delimiters
>> Could you please give a recipe to reproduce this with emacs -Q?
>
> I'm guessing you mean -q but can't seem to reproduce it with a new
> session even without it. The running session from which I'm sending
> this e-mail still exhibits the problem, but a fresh session doesn't.
>
> Strange.
> But that probably means you can ignore this problem !
Could you please use "Help - Send bug report" from the menus in that
running session? This will give more information to us.
PS: -Q is new in Emacs 22.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-23 11:50 ` C-comments in sgml-mode's html-mode Edward Welbourne
2007-07-23 12:02 ` Lennart Borgman (gmail)
@ 2007-07-23 12:27 ` martin rudalics
2007-07-23 16:59 ` Edward Welbourne
1 sibling, 1 reply; 27+ messages in thread
From: martin rudalics @ 2007-07-23 12:27 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
>>>I also notice that emcas 22's HTML-mode (the one provided by
>>>sgml-mode) is treating /* and */ as comment-delimiters
>>
>>Could you please give a recipe to reproduce this with emacs -Q?
>
>
> I'm guessing you mean -q but can't seem to reproduce it with a new
> session even without it. The running session from which I'm sending
> this e-mail still exhibits the problem, but a fresh session doesn't.
>
> Strange.
> But that probably means you can ignore this problem !
Could you please, in the running session, move the cursor before
instances of the involved characters (in all four positions), do M-x
describe-char, and post the results here. In addition, please tell us
the values (with C-h v) for comment-start and comment-end in the
affected buffer.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-23 12:02 ` Lennart Borgman (gmail)
@ 2007-07-23 13:24 ` Edward Welbourne
2007-07-23 14:51 ` martin rudalics
0 siblings, 1 reply; 27+ messages in thread
From: Edward Welbourne @ 2007-07-23 13:24 UTC (permalink / raw)
To: bug-gnu-emacs
> PS: -Q is new in Emacs 22.
but absent from its info documentation !
> Could you please use "Help - Send bug report" from the menus in that
> running session?
hmm ... yes, I can turn menus back on ... ah, it's interactive and
wants to nuke this *mail* buffer ... worked round by renaming. This
appears to be just like using M-x report-emacs-bug, like I did when
originally submitting this - but here it is anyway. Point was in an
aflicted HTML buffer when I invoked the menu. My .emacs executes:
(autoload 'html-mode "sgml-mode" "Edit HTML docs" t)
(setq auto-mode-alist (cons (cons "\\.x?html?$" 'html-mode) auto-mode-alist))
(global-font-lock-mode 1)
(setq font-lock-maximum-decoration t
font-lock-support-mode 'lazy-lock-mode)
among other things.
A .html file containing <file>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en"><head><title>Test page for HTML-mode /* comment issue </title><!-- */ sanity
--></head><body><h1>Test page for HTML-mode /* comment issue </h1><!-- */ sanity --></body></html>
</file> displays each text from /* to */ in comment-face; and each
"sanity" as plain text. However, syntactic movement commands such as
C-M-f correctly understand the SGML comments as comments, unconfused
by the /* ... */.
This only happens in my current session: I have started up a fresh
session and seen the file displayed perfectly sensibly (i.e. treating
/* ... */ as ordinary text).
In GNU Emacs 22.1.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2007-07-07 on raven, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.10300000
configured using `configure '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs22:/etc/emacs:/usr/local/share/emacs/22.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/22.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/22.1/leim' '--with-x=yes' '--with-x-toolkit=athena' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_GB.ISO-8859-15
locale-coding-system: iso-8859-15
default-enable-multibyte-characters: t
Major mode: HTML
Minor modes in effect:
tooltip-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
unify-8859-on-encoding-mode: t
utf-translate-cjk-mode: t
auto-compression-mode: t
line-number-mode: t
Recent input:
. SPC SPC H o w e v e r , C-a <return> M-q <backspace>
<return> C-e SPC s y n t a c t i c SPC m o v e m e
n t SPC o <backspace> c o m m a n d s SPC ( C - M -
M-b M-b <backspace> s u c h SPC a s SPC C-e f <return>
c o r r e c t l y SPC u n d e r s t a n d SPC t h e
SPC S G M L SPC c o m m e n t s SPC a s SPC c o m m
e n t s C-x o C-p C-e SPC c o m <backspace> <backspace>
<backspace> s a n i t y C-n C-M-b C-M-b C-b C-b C-b
C-b SPC s a n i t y C-x o C-p M-f M-f C-p C-p C-p C-e
SPC s a n i t y C-n M-b M-b M-b M-f C-f C-f C-f C-f
C-f C-f C-f C-f SPC s a n i t y C-n C-n C-n C-p M-b
M-b M-b M-b M-f ; SPC a n d SPC e a c h SPC u s e SPC
o f SPC t h e SPC w o r d <M-backspace> <M-backspace>
<M-backspace> <M-backspace> " s a n i t y " SPC a s
SPC p l a i n SPC t e x t M-q C-n C-e C-x o C-x C-s
C-x o M-{ M-{ C-f C-p M-} M-} M-{ C-SPC M-} M-} C-x
C-x M-w C-x k <return> C-x <return> C-x <return> C-g
C-x k <return> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> C-x o <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<menu-bar> <help-menu> <report-emacs-bug>
Recent messages:
Auto-saving...done
Undo! [4 times]
undo-more: No further undo information
Undo! [3 times]
Redo!
Undo! [2 times]
Redo! [2 times]
Auto-saving...done
Wrote /disk/home/eddy/work/tmp/comment.html
Mark set
Quit
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-23 13:24 ` Edward Welbourne
@ 2007-07-23 14:51 ` martin rudalics
2007-07-23 17:49 ` Edward Welbourne
0 siblings, 1 reply; 27+ messages in thread
From: martin rudalics @ 2007-07-23 14:51 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
>>PS: -Q is new in Emacs 22.
>
>
> but absent from its info documentation !
>
From the Emacs manual:
`-Q'
`--quick'
Start emacs with minimum customizations. This is like using `-q'
and `--no-site-file', but also disables the startup screen.
> aflicted HTML buffer when I invoked the menu. My .emacs executes:
>
> (autoload 'html-mode "sgml-mode" "Edit HTML docs" t)
> (setq auto-mode-alist (cons (cons "\\.x?html?$" 'html-mode) auto-mode-alist))
> (global-font-lock-mode 1)
> (setq font-lock-maximum-decoration t
> font-lock-support-mode 'lazy-lock-mode)
>
> among other things.
On my system I have to require lazy-lock explicitly before doing
(setq font-lock-support-mode 'lazy-lock-mode)
However none of these explain the behavior you observe. Please post the
results of describe-char as I asked you in my last mail.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-23 12:27 ` martin rudalics
@ 2007-07-23 16:59 ` Edward Welbourne
2007-07-23 18:41 ` martin rudalics
0 siblings, 1 reply; 27+ messages in thread
From: Edward Welbourne @ 2007-07-23 16:59 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs
> Could you please, in the running session, move the cursor before
> instances of the involved characters (in all four positions), do M-x
> describe-char, and post the results here. In addition, please tell us
> the values (with C-h v) for comment-start and comment-end in the
> affected buffer.
comment-start is a variable defined in `newcomment.el'.
Its value is "<!-- "
Local in buffer comment.html; global value is nil
This variable is safe as a file local variable if its value
satisfies the predicate `string-or-null-p'.
Documentation:
*String to insert to start a new comment, or nil if no comment syntax.
comment-end is a variable defined in `newcomment.el'.
Its value is " -->"
Local in buffer comment.html; global value is ""
This variable is safe as a file local variable if its value
satisfies the predicate `string-or-null-p'.
Documentation:
*String to insert to end a new comment.
Should be an empty string if comments are terminated by end-of-line.
Not sure what you mean by "in all four positions", but here are the
results for each of the four characters in " /* " in the title:
character: SPC (32, #o40, #x20, U+0020)
charset: ascii (ASCII (ISO646 IRV))
code point: #x20
syntax: which means: whitespace
category: a:ASCII graphic characters 32-126 (ISO646 IRV:1983[4/0]) l:Latin
buffer code: #x20
file code: #x20 (encoded by coding system undecided-unix)
display: by this font (glyph code)
-Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-1 (#x20)
There are text properties here:
face (bold underline)
fontified t
character: / (47, #o57, #x2f, U+002F)
charset: ascii (ASCII (ISO646 IRV))
code point: #x2F
syntax: . 14 which means: punctuation,
is the first character of a comment-start sequence,
is the second character of a comment-end sequence
category: a:ASCII graphic characters 32-126 (ISO646 IRV:1983[4/0]) l:Latin
buffer code: #x2F
file code: #x2F (encoded by coding system undecided-unix)
display: by this font (glyph code)
-Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-1 (#x2F)
There are text properties here:
face (bold underline font-lock-comment-face)
fontified t
character: * (42, #o52, #x2a, U+002A)
charset: ascii (ASCII (ISO646 IRV))
code point: #x2A
syntax: . 23 which means: punctuation,
is the second character of a comment-start sequence,
is the first character of a comment-end sequence
category: a:ASCII graphic characters 32-126 (ISO646 IRV:1983[4/0]) l:Latin
buffer code: #x2A
file code: #x2A (encoded by coding system undecided-unix)
display: by this font (glyph code)
-Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-1 (#x2A)
There are text properties here:
face (bold underline font-lock-comment-face)
fontified t
character: SPC (32, #o40, #x20, U+0020)
charset: ascii (ASCII (ISO646 IRV))
code point: #x20
syntax: which means: whitespace
category: a:ASCII graphic characters 32-126 (ISO646 IRV:1983[4/0]) l:Latin
buffer code: #x20
file code: #x20 (encoded by coding system undecided-unix)
display: by this font (glyph code)
-Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-1 (#x20)
There are text properties here:
face (bold underline font-lock-comment-face)
fontified t
Similarly, for " */ " in the comment after the title:
character: SPC (32, #o40, #x20, U+0020)
charset: ascii (ASCII (ISO646 IRV))
code point: #x20
syntax: which means: whitespace
category: a:ASCII graphic characters 32-126 (ISO646 IRV:1983[4/0]) l:Latin
buffer code: #x20
file code: #x20 (encoded by coding system undecided-unix)
display: by this font (glyph code)
-Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-1 (#x20)
There are text properties here:
face font-lock-comment-face
fontified t
character: * (42, #o52, #x2a, U+002A)
charset: ascii (ASCII (ISO646 IRV))
code point: #x2A
syntax: . 23 which means: punctuation,
is the second character of a comment-start sequence,
is the first character of a comment-end sequence
category: a:ASCII graphic characters 32-126 (ISO646 IRV:1983[4/0]) l:Latin
buffer code: #x2A
file code: #x2A (encoded by coding system undecided-unix)
display: by this font (glyph code)
-Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-1 (#x2A)
There are text properties here:
face font-lock-comment-face
fontified t
character: / (47, #o57, #x2f, U+002F)
charset: ascii (ASCII (ISO646 IRV))
code point: #x2F
syntax: . 14 which means: punctuation,
is the first character of a comment-start sequence,
is the second character of a comment-end sequence
category: a:ASCII graphic characters 32-126 (ISO646 IRV:1983[4/0]) l:Latin
buffer code: #x2F
file code: #x2F (encoded by coding system undecided-unix)
display: by this font (glyph code)
-Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-1 (#x2F)
There are text properties here:
face font-lock-comment-face
fontified t
character: SPC (32, #o40, #x20, U+0020)
charset: ascii (ASCII (ISO646 IRV))
code point: #x20
syntax: which means: whitespace
category: a:ASCII graphic characters 32-126 (ISO646 IRV:1983[4/0]) l:Latin
buffer code: #x20
file code: #x20 (encoded by coding system undecided-unix)
display: by this font (glyph code)
-Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-1 (#x20)
There are text properties here:
fontified t
Is that what you wanted ?
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-23 14:51 ` martin rudalics
@ 2007-07-23 17:49 ` Edward Welbourne
0 siblings, 0 replies; 27+ messages in thread
From: Edward Welbourne @ 2007-07-23 17:49 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs
> >>PS: -Q is new in Emacs 22.
> >
> >
> > but absent from its info documentation !
> >
> From the Emacs manual:
> `-Q'
> `--quick'
> Start emacs with minimum customizations. This is like using `-q'
> and `--no-site-file', but also disables the startup screen.
Not visible in the emacs manual I get when I C-h i d m emacs RET - but
a closer look through the C-h i d list shows me that I have two of
each Emacs manual, presumably because I've got Emacs 22 and Emacs 21
installed side-by-side. Each resolves to the Emacs 21.3 version.
There might be some benefit to marking Emacs manuals with a version
number, in the info listing !
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-23 16:59 ` Edward Welbourne
@ 2007-07-23 18:41 ` martin rudalics
2007-07-24 8:57 ` Edward Welbourne
0 siblings, 1 reply; 27+ messages in thread
From: martin rudalics @ 2007-07-23 18:41 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
> character: / (47, #o57, #x2f, U+002F)
> charset: ascii (ASCII (ISO646 IRV))
> code point: #x2F
> syntax: . 14 which means: punctuation,
> is the first character of a comment-start sequence,
> is the second character of a comment-end sequence
Some css-mode I presume.
> There are text properties here:
> face (bold underline font-lock-comment-face)
> fontified t
Looks like a weird mixture of html- and css-mode. Are you using
a css-mode or html-helper-mode?
> Is that what you wanted ?
Yes, thank you very much.
BTW, I recommend you remove the
(global-font-lock-mode 1)
(setq font-lock-maximum-decoration t
font-lock-support-mode 'lazy-lock-mode)
lines from your .emacs. jit-lock-mode supersedes lazy-lock-mode for
some time already and the other settings are default. These settings
are, however, not responsible for the behavior you describe.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-23 18:41 ` martin rudalics
@ 2007-07-24 8:57 ` Edward Welbourne
2007-07-24 13:01 ` martin rudalics
0 siblings, 1 reply; 27+ messages in thread
From: Edward Welbourne @ 2007-07-24 8:57 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs
> Some css-mode I presume.
That was my guess, too (see initial report).
>> There are text properties here:
>> face (bold underline font-lock-comment-face)
>> fontified t
> Looks like a weird mixture of html- and css-mode. Are you using
> a css-mode or html-helper-mode?
However, C-h m gives me a buffer full of mode information in which
searching for css gets no hits, as does searching for helper. It
starts with <quote>
Enabled minor modes: Auto-Compression Blink-Cursor File-Name-Shadow
Font-Lock Global-Font-Lock Line-Number Mouse-Wheel Tooltip
Unify-8859-On-Encoding Utf-Translate-Cjk
</quote> (and I've no idea what's putting in File-Name-Shadow, Tooltip
or the two encoding-related ones on the last line), introducing the
major mode as: <quote>
HTML mode:
Major mode based on SGML mode for editing HTML documents.
</quote>
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 8:57 ` Edward Welbourne
@ 2007-07-24 13:01 ` martin rudalics
2007-07-24 13:51 ` Edward Welbourne
2007-07-24 14:39 ` Edward Welbourne
0 siblings, 2 replies; 27+ messages in thread
From: martin rudalics @ 2007-07-24 13:01 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
>>Some css-mode I presume.
>
>
> That was my guess, too (see initial report).
I was aware of your guess. By looking at the text properties I wanted
to exclude your guess about C.
> However, C-h m gives me a buffer full of mode information in which
> searching for css gets no hits, as does searching for helper.
C-h m won't tell about any remnants left by a mode in a buffer after the
mode has been turned off. In your case someone has set up the syntax of
/ and * much as a css-mode would do. What does C-h f css-mode say on
your system?
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 13:01 ` martin rudalics
@ 2007-07-24 13:51 ` Edward Welbourne
2007-07-24 14:51 ` Lennart Borgman (gmail)
2007-07-24 16:44 ` martin rudalics
2007-07-24 14:39 ` Edward Welbourne
1 sibling, 2 replies; 27+ messages in thread
From: Edward Welbourne @ 2007-07-24 13:51 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs
> > However, C-h m gives me a buffer full of mode information in which
> > searching for css gets no hits, as does searching for helper.
> C-h m won't tell about any remnants left by a mode in a buffer after the
> mode has been turned off.
However, everything I've reported has been based on freshly-opened
buffers looking at the simple test file from my Help -> Report a bug
menu report. Although there seems to be something odd in my *session*
the problem isn't due to anything odd in any particular *buffer*, or
its history. Presumably a data structure associated with html-mode
has been mangled.
> In your case someone has set up the syntax of / and * much as a
> css-mode would do. What does C-h f css-mode say on your system?
<quote src="C-h f css-mode RET">
css-mode is an interactive compiled Lisp function in `css-mode.el'.
(css-mode)
Major mode for editing CSS style sheets.
key binding
--- -------
C-c Prefix Command
ESC Prefix Command
" cssm-insert-quotes
( cssm-insert-parenthesises
[ cssm-insert-brackets
{ cssm-insert-curlies
} cssm-insert-right-brace-and-indent
M-TAB cssm-complete-property
C-c C-c cssm-insert-comment
C-c C-u cssm-insert-url
</quote> and I don't believe I've used it directly ('though I may have
looked at a .css file at some point, which would cause it to load
automagically). However, when I open up comment.html in a fresh clean
emacs -Q, it doesn't believe in css-mode at all. I just get a bell
(and [No match] in minibuffer) when I try C-h f css-mode RET. No
script in my usual .emacs (a minimal .emacs which adds an entry to
load-path and loads a bunch of little fragments from a directory of
mine) mentions css-mode.
In an emacs -q session, it knows it would autoload css-mode if asked
for: loading a css file, I now find I am able to reproduce the bug in
a new session :-)
So, steps to reproduce: in an emacs -q session evaluate <quote>
(autoload 'html-mode "sgml-mode" "Edit HTML docs" t)
(setq auto-mode-alist (cons (cons "\\.x?html?$" 'html-mode) auto-mode-alist))
</quote>, visit a .css file (it need not exist / can be empty),
open a .html file containing: <quote>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en"><head><title>Test page for HTML-mode /* comment issue </title><!-- */ sanity
--></head><body><h1>Test page for HTML-mode /* comment issue </h1><!-- */ sanity --></body></html>
</quote>
It would appear that css-mode is hacking html-mode !
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 13:01 ` martin rudalics
2007-07-24 13:51 ` Edward Welbourne
@ 2007-07-24 14:39 ` Edward Welbourne
1 sibling, 0 replies; 27+ messages in thread
From: Edward Welbourne @ 2007-07-24 14:39 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs
Further to successful reproduction, I've now simplified reproducing
this even further - css-mode is even hacking GNUMakefile-mode !
run: emacs -q dummy.css dummy.mk
In dummy.mk's buffer, type <quote>
/* I look like a comment
but I don't
</quote> and you'll see it's true !
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 13:51 ` Edward Welbourne
@ 2007-07-24 14:51 ` Lennart Borgman (gmail)
2007-07-24 15:46 ` Edward Welbourne
2007-07-24 16:44 ` martin rudalics
1 sibling, 1 reply; 27+ messages in thread
From: Lennart Borgman (gmail) @ 2007-07-24 14:51 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
Edward Welbourne wrote:
>> In your case someone has set up the syntax of / and * much as a
>> css-mode would do. What does C-h f css-mode say on your system?
>
> <quote src="C-h f css-mode RET">
>
> css-mode is an interactive compiled Lisp function in `css-mode.el'.
> (css-mode)
>
> Major mode for editing CSS style sheets.
> key binding
> --- -------
>
> C-c Prefix Command
> ESC Prefix Command
> " cssm-insert-quotes
> ( cssm-insert-parenthesises
> [ cssm-insert-brackets
> { cssm-insert-curlies
> } cssm-insert-right-brace-and-indent
>
> M-TAB cssm-complete-property
>
> C-c C-c cssm-insert-comment
> C-c C-u cssm-insert-url
>
> </quote>
If you put point in the help buffer at `css-mode.el' and press RET it
will open the file css-mode.el. Could you please look at the beginning
of that file and show us what it says (version, author etc)? If you in
this file do
C-h v buffer-file-name RET
you can see where that file is located.
> and I don't believe I've used it directly ('though I may have
> looked at a .css file at some point, which would cause it to load
> automagically). However, when I open up comment.html in a fresh clean
> emacs -Q, it doesn't believe in css-mode at all. I just get a bell
> (and [No match] in minibuffer) when I try C-h f css-mode RET. No
> script in my usual .emacs (a minimal .emacs which adds an entry to
> load-path and loads a bunch of little fragments from a directory of
> mine) mentions css-mode.
>
> In an emacs -q session, it knows it would autoload css-mode if asked
> for: loading a css file, I now find I am able to reproduce the bug in
> a new session :-)
>
> So, steps to reproduce: in an emacs -q session evaluate <quote>
> (autoload 'html-mode "sgml-mode" "Edit HTML docs" t)
> (setq auto-mode-alist (cons (cons "\\.x?html?$" 'html-mode) auto-mode-alist))
> </quote>, visit a .css file (it need not exist / can be empty),
> open a .html file containing: <quote>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
> <html lang="en"><head><title>Test page for HTML-mode /* comment issue </title><!-- */ sanity
> --></head><body><h1>Test page for HTML-mode /* comment issue </h1><!-- */ sanity --></body></html>
> </quote>
>
> It would appear that css-mode is hacking html-mode !
This does not happen for me when starting with emacs -q. Nor does it
happen for you with -Q. Using -q site-start.el is run, but it is not run
when using -Q. Can you please do
M-x find-library RET site-start RET
and show us the file?
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 14:51 ` Lennart Borgman (gmail)
@ 2007-07-24 15:46 ` Edward Welbourne
2007-07-24 16:47 ` martin rudalics
0 siblings, 1 reply; 27+ messages in thread
From: Edward Welbourne @ 2007-07-24 15:46 UTC (permalink / raw)
To: Lennart Borgman (gmail); +Cc: bug-gnu-emacs
> If you put point in the help buffer at `css-mode.el' and press RET it
> will open the file css-mode.el. Could you please look at the beginning
> of that file and show us what it says (version, author etc)?
(defvar cssm-version "0.11.zap1"
"The current version number of css-mode.")
;;; copyright (c) 1998 Lars Marius Garshol, larsga@ifi.uio.no
;;; $Id: css-mode.el,v 1.9 2000/01/05 21:21:56 larsga Exp $
;;; Modified by John Zaitseff, 3rd November 2004.
and I can confirm <quote src="C-h v cssm-version RET">
cssm-version is a variable defined in `css-mode.el'.
Its value is "0.11.zap1"
Documentation:
The current version number of css-mode.
</quote> and this coincides with what I find early in
/usr/share/emacs22/site-lisp/css-mode/css-mode.elc
shortly after
;;; Compiled by root@opera.com on Wed Jul 18 10:39:53 2007
;;; from file /usr/share/emacs22/site-lisp/css-mode/css-mode.el
;;; in Emacs version 22.1.1
;;; with all optimizations.
which is odd, because the .el file it mentions doesn't exist. In
load-path, "/usr/share/emacs22/site-lisp/css-mode" appears before
"/usr/share/emacs/site-lisp/css-mode".
> If you in this file do
> C-h v buffer-file-name RET
> you can see where that file is located.
buffer-file-name is a variable defined in `C source code'.
Its value is
"/usr/share/emacs/site-lisp/css-mode/css-mode.el"
Local in buffer css-mode.el; global value is nil
Automatically becomes buffer-local when set in any fashion.
Documentation:
Name of file visited in current buffer, or nil if not visiting a file.
> This does not happen for me when starting with emacs -q. Nor does it
> happen for you with -Q.
confirmed, also for .mk; and also using --no-site-file instead of -q
or -Q (so my .emacs is innocent :-)
> Can you please do
> M-x find-library RET site-start RET
> and show us the file?
<quote src="/etc/emacs/site-start.el">
;; Emacsen independent startup file. All of the various installed
;; flavors of emacs (emacs 19, emacs 20, xemacs) will load this file
;; at startup. Make sure any code you put here is emacs flavor
;; independent.
;; Package maintainers: do not have Debian packages edit this file.
;; See the policy manual for the proper way to handle Emacs package
;; initialization code.
</quote> containing *no* code. The policy document referenced is
/usr/share/doc/emacsen-common/debian-emacs-policy.gz
and makes clear that this file is "the sole domain of the local system
admin" which would fit with it being empty. I configure ~/.emacs
rather than the site ...
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 13:51 ` Edward Welbourne
2007-07-24 14:51 ` Lennart Borgman (gmail)
@ 2007-07-24 16:44 ` martin rudalics
1 sibling, 0 replies; 27+ messages in thread
From: martin rudalics @ 2007-07-24 16:44 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
> So, steps to reproduce: in an emacs -q session evaluate <quote>
> (autoload 'html-mode "sgml-mode" "Edit HTML docs" t)
> (setq auto-mode-alist (cons (cons "\\.x?html?$" 'html-mode) auto-mode-alist))
> </quote>, visit a .css file (it need not exist / can be empty),
> open a .html file containing: <quote>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
> <html lang="en"><head><title>Test page for HTML-mode /* comment issue </title><!-- */ sanity
> --></head><body><h1>Test page for HTML-mode /* comment issue </h1><!-- */ sanity --></body></html>
> </quote>
>
> It would appear that css-mode is hacking html-mode !
But this is not the css-mode that comes with Emacs 22.2.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 15:46 ` Edward Welbourne
@ 2007-07-24 16:47 ` martin rudalics
2007-07-24 20:05 ` Edward Welbourne
` (2 more replies)
0 siblings, 3 replies; 27+ messages in thread
From: martin rudalics @ 2007-07-24 16:47 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
> (defvar cssm-version "0.11.zap1"
> "The current version number of css-mode.")
> ;;; copyright (c) 1998 Lars Marius Garshol, larsga@ifi.uio.no
> ;;; $Id: css-mode.el,v 1.9 2000/01/05 21:21:56 larsga Exp $
> ;;; Modified by John Zaitseff, 3rd November 2004.
css-mode by Garshol, modified by Zaitseff, and distributed by Debian.
Apparently, Zaitseff's modifications are too persistent but I can't tell
anything because I don't have the sources. In any case this should be
reported to the Debian bug tracking system since probably more people
might be affected by this.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 16:47 ` martin rudalics
@ 2007-07-24 20:05 ` Edward Welbourne
2007-07-25 7:59 ` martin rudalics
2007-07-24 20:42 ` Edward Welbourne
2007-07-24 21:53 ` Lennart Borgman (gmail)
2 siblings, 1 reply; 27+ messages in thread
From: Edward Welbourne @ 2007-07-24 20:05 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs
> In any case this should be reported to the Debian bug tracking
> system since probably more people might be affected by this.
Debian bug submitted.
I'll follow up with bug number and URL once the robots answer.
> Apparently, Zaitseff's modifications are too persistent but I can't tell
> anything because I don't have the sources.
Source follows,
Eddy.
--
;;;; A major mode for editing CSS.
;;; Adds font locking, some rather primitive indentation handling and
;;; some typing help.
;;;
(defvar cssm-version "0.11.zap1"
"The current version number of css-mode.")
;;; copyright (c) 1998 Lars Marius Garshol, larsga@ifi.uio.no
;;; $Id: css-mode.el,v 1.9 2000/01/05 21:21:56 larsga Exp $
;;; Modified by John Zaitseff, 3rd November 2004.
;;; css-mode is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published
;;; by the Free Software Foundation; either version 2, or (at your
;;; option) any later version.
;;;
;;; css-mode is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;;; General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Emacs; see the file COPYING. If not, write to the
;;; Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
; Send me an email if you want new features (or if you add them yourself).
; I will do my best to preserve the API to functions not explicitly marked
; as internal and variables shown as customizable. I make no promises about
; the rest.
; Bug reports are very welcome. New versions of the package will appear at
; http://www.stud.ifi.uio.no/~larsga/download/css-mode.html
; You can register at the same address if you want to be notified when a
; new version appears.
; Thanks to Philippe Le Hegaret, Kjetil Kjernsmo, Alf-Ivar Holm and
; Alfred Correira for much useful feedback. Alf-Ivar Holm also contributed
; patches.
; To install, put this in your .emacs:
;
; (autoload 'css-mode "css-mode")
; (setq auto-mode-alist
; (cons '("\\.css\\'" . css-mode) auto-mode-alist))
;; Todo:
; - must not color URL file name extensions as class selectors (*.css)
; - color [] and url() constructs correctly, even if quoted strings present
; - disregard anything inside strings
;; Possible later additions:
;
; - forward/backward style/@media rule commands
; - more complete syntax table
;; Required modules
(require 'apropos)
(require 'font-lock)
(require 'cl)
;;; The code itself
; Customizable variables:
(defvar cssm-indent-level 2 "The indentation level inside rules.")
(defvar cssm-mirror-mode t
"Whether brackets, quotes etc should be mirrored automatically on
insertion.")
(defvar cssm-newline-before-closing-bracket nil
"In mirror-mode, controls whether a newline should be inserted before the
closing bracket or not.")
(defvar cssm-indent-function #'cssm-old-style-indenter
"Which function to use when deciding which column to indent to. To get
C-style indentation, use cssm-c-style-indenter. To get old-style indentation,
use cssm-old-style-indenter.")
; The rest of the code:
(defvar cssm-properties
'("font-family" "font-style" "font-variant" "font-weight" "font-size"
"font" "background-color" "background-image" "background-repeat"
"background-attachment" "background-position" "background" "color"
"word-spacing" "letter-spacing" "text-decoration" "vertical-align"
"text-transform" "text-align" "text-indent" "line-height" "margin-top"
"margin-right" "margin-bottom" "margin-left" "margin" "padding-top"
"padding-right" "padding-bottom" "padding-left" "padding"
"border-top-width" "border-right-width" "border-left-width"
"border-bottom-width" "border-width" "border-color" "border-style"
"border-top" "border-right" "border-bottom" "border-left" "border"
"width" "height" "float" "clear" "display" "white-space"
"list-style-type" "list-style-image" "list-style-position"
"list-style"
; CSS level 2.1:
"border-bottom-color" "border-bottom-style" "border-collapse"
"border-left-color" "border-left-style" "border-right-color"
"border-right-style" "border-spacing" "border-top-color"
"border-top-style" "bottom" "caption-side" "clip" "content"
"counter-increment" "counter-reset" "cursor" "direction" "empty-cells"
"left" "max-height" "max-width" "min-height" "min-width" "orphans"
"outline" "outline-color" "outline-style" "outline-width" "overflow"
"page-break-after" "page-break-before" "page-break-inside" "position"
"quotes" "right" "table-layout" "top" "unicode-bidi" "visibility"
"widows" "z-index"
; CSS level 2 (dropped from 2.1):
"azimuth" "cue" "cue-after" "cue-before" "elevation"
"font-size-adjust" "font-stretch" "marker-offset" "marks" "page"
"pause" "pause-after" "pause-before" "pitch" "pitch-range"
"play-during" "richness" "size" "speak" "speak-header" "speak-numeral"
"speak-punctuation" "speech-rate" "stress" "text-shadow"
"voice-family" "volume"
; Non-standard properties
"cell-spacing" "column-span" "row-span" "speak-date" "speak-time")
"A list of all CSS properties.")
(defvar cssm-properties-alist
(mapcar (lambda(prop)
(cons (concat prop ":") nil)) cssm-properties)
"An association list of the CSS properties for completion use.")
(defvar cssm-keywords
(append '("!\\s-*important"
; CSS level 2:
"@media" "@import" "@page" "@font-face")
(mapcar (lambda(property)
(concat property "\\s-*:"))
cssm-properties))
"A list of all CSS keywords.")
(defvar cssm-pseudos
'("link" "visited" "active" "first-line" "first-letter"
; CSS level 2
"first-child" "before" "after" "hover" "focus" "lang")
"A list of all CSS pseudo-classes.")
; internal
(defun cssm-list-2-regexp(altlist)
"Takes a list and returns the regexp \\(elem1\\|elem2\\|...\\)"
(let ((regexp "\\("))
(mapcar (lambda(elem)
(setq regexp (concat regexp elem "\\|")))
altlist)
(concat (substring regexp 0 -2) ; cutting the last "\\|"
"\\)")
))
(defvar cssm-font-lock-keywords
(list
(cons (cssm-list-2-regexp cssm-keywords) font-lock-keyword-face)
(cons "\\.[a-zA-Z][-a-zA-Z0-9.]+" font-lock-variable-name-face)
(cons (concat ":" (cssm-list-2-regexp cssm-pseudos))
font-lock-variable-name-face)
(cons "#[a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]\\([a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]\\)?"
font-lock-reference-face)
(cons "\\[.*\\]" font-lock-variable-name-face)
(cons "#[-a-zA-Z0-9]*" font-lock-function-name-face)
(cons "rgb(\\s-*[0-9]+\\(\\.[0-9]+\\s-*%\\s-*\\)?\\s-*,\\s-*[0-9]+\\(\\.[0-9]+\\s-*%\\s-*\\)?\\s-*,\\s-*[0-9]+\\(\\.[0-9]+\\s-*%\\s-*\\)?\\s-*)"
font-lock-reference-face)
)
"Rules for highlighting CSS style sheets.")
(defvar cssm-mode-map ()
"Keymap used in CSS mode.")
(when (not cssm-mode-map)
(setq cssm-mode-map (make-sparse-keymap))
(define-key cssm-mode-map (read-kbd-macro "C-c C-c") 'cssm-insert-comment)
(define-key cssm-mode-map (read-kbd-macro "C-c C-u") 'cssm-insert-url)
(define-key cssm-mode-map (read-kbd-macro "}") 'cssm-insert-right-brace-and-indent)
(define-key cssm-mode-map (read-kbd-macro "M-TAB") 'cssm-complete-property))
;;; Cross-version compatibility layer
(when (not (or (apropos-macrop 'kbd)
(fboundp 'kbd)))
(defmacro kbd (keys)
"Convert KEYS to the internal Emacs key representation.
KEYS should be a string constant in the format used for
saving keyboard macros (see `insert-kbd-macro')."
(read-kbd-macro keys)))
;;; Auto-indentation support
; internal
(defun cssm-insert-right-brace-and-indent()
(interactive)
(insert "}")
(cssm-indent-line))
; internal
(defun cssm-inside-atmedia-rule()
"Decides if point is currently inside an @media rule."
(let ((orig-pos (point))
(atmedia (re-search-backward "@media" 0 t))
(balance 1) ; used to keep the {} balance, 1 because we start on a {
)
; Going to the accompanying {
(re-search-forward "{" (point-max) t)
(if (null atmedia)
nil ; no @media before this point => not inside
(while (and (< (point) orig-pos)
(< 0 balance))
(if (null (re-search-forward "[{}]" (point-max) 0))
(goto-char (point-max)) ; break
(setq balance
(if (string= (match-string 0) "{")
(+ balance 1)
(- balance 1)))))
(= balance 1))
))
; internal
(defun cssm-rule-is-atmedia()
"Decides if point is currently on the { of an @media or ordinary style rule."
(let ((result (re-search-backward "[@}{]" 0 t)))
(if (null result)
nil
(string= (match-string 0) "@"))))
; internal
(defun cssm-find-column(first-char)
"Find which column to indent to."
; Find out where to indent to by looking at previous lines
; spinning backwards over comments
(let (pos)
(while (and (setq pos (re-search-backward (cssm-list-2-regexp
'("/\\*" "\\*/" "{" "}"))
(point-min) t))
(string= (match-string 0) "*/"))
(search-backward "/*" (point-min) t))
; did the last search find anything?
(if pos
(save-excursion
(let ((construct (match-string 0))
(column (current-column)))
(apply cssm-indent-function
(list (cond
((string= construct "{")
(cond
((cssm-rule-is-atmedia)
'inside-atmedia)
((cssm-inside-atmedia-rule)
'inside-rule-and-atmedia)
(t
'inside-rule)))
((string= construct "/*")
'inside-comment)
((string= construct "}")
(if (cssm-inside-atmedia-rule)
'inside-atmedia
'outside))
(t 'outside))
column
first-char))))
(apply cssm-indent-function
(list 'outside
(current-column)
first-char)))))
(defun cssm-indent-line()
"Indents the current line."
(interactive)
(beginning-of-line)
(let* ((beg-of-line (point))
(pos (re-search-forward "[]@#a-zA-Z0-9;,.\"{}/*\n:[]" (point-max) t))
(first (match-string 0))
(start (match-beginning 0)))
(goto-char beg-of-line)
(let ((indent-column (cssm-find-column first)))
(goto-char beg-of-line)
; Remove all leading whitespace on this line (
(if (not (or (null pos)
(= beg-of-line start)))
(kill-region beg-of-line start))
(goto-char beg-of-line)
; Indent
(while (< 0 indent-column)
(insert " ")
(setq indent-column (- indent-column 1))))))
;;; Indent-style functions
(defun cssm-old-style-indenter(position column first-char-on-line)
(cond
((eq position 'inside-atmedia)
(if (string= "}" first-char-on-line)
0
cssm-indent-level))
((eq position 'inside-rule)
(+ column 2))
((eq position 'inside-rule-and-atmedia)
(+ column 2))
((eq position 'inside-comment)
(+ column 3))
((eq position 'outside)
0)))
(defun cssm-c-style-indenter(position column first-char-on-line)
(cond
((or (eq position 'inside-atmedia)
(eq position 'inside-rule))
(if (string= "}" first-char-on-line)
0
cssm-indent-level))
((eq position 'inside-rule-and-atmedia)
(if (string= "}" first-char-on-line)
cssm-indent-level
(* 2 cssm-indent-level)))
((eq position 'inside-comment)
(+ column 3))
((eq position 'outside)
0)))
;;; Typing shortcuts
(define-skeleton cssm-insert-curlies
"Inserts a pair of matching curly parenthesises." nil
"{"
(if cssm-newline-before-closing-bracket "\n" " ")
(if cssm-newline-before-closing-bracket '>)
_
(if cssm-newline-before-closing-bracket "\n" " ")
"}"
(if cssm-newline-before-closing-bracket '>))
(define-skeleton cssm-insert-quotes
"Inserts a pair of matching quotes." nil
"\"" _ "\"")
(define-skeleton cssm-insert-parenthesises
"Inserts a pair of matching parenthesises." nil
"(" _ ")")
(define-skeleton cssm-insert-comment
"Inserts a full comment." nil
"/* " _ " */")
(define-skeleton cssm-insert-url
"Inserts a URL." nil
"url(" _ ")")
(define-skeleton cssm-insert-brackets
"Inserts a pair of matching brackets." nil
"[" _ "]")
(defun cssm-enter-mirror-mode()
"Turns on mirror mode, where quotes, brackets etc are mirrored automatically
on insertion."
(interactive)
(define-key cssm-mode-map (read-kbd-macro "{") 'cssm-insert-curlies)
(define-key cssm-mode-map (read-kbd-macro "\"") 'cssm-insert-quotes)
(define-key cssm-mode-map (read-kbd-macro "(") 'cssm-insert-parenthesises)
(define-key cssm-mode-map (read-kbd-macro "[") 'cssm-insert-brackets))
(defun cssm-leave-mirror-mode()
"Turns off mirror mode."
(interactive)
(define-key cssm-mode-map (read-kbd-macro "{") 'self-insert-command)
(define-key cssm-mode-map (read-kbd-macro "\"") 'self-insert-command)
(define-key cssm-mode-map (read-kbd-macro "(") 'self-insert-command)
(define-key cssm-mode-map (read-kbd-macro "[") 'self-insert-command))
;;; Property completion
(defun cssm-property-at-point()
"If point is at the end of a property name: returns it."
(let ((end (point))
(start (+ (re-search-backward "[^-A-Za-z]") 1)))
(goto-char end)
(buffer-substring start end)))
; internal
(defun cssm-maximum-common(alt1 alt2)
"Returns the maximum common starting substring of alt1 and alt2."
(let* ((maxlen (min (length alt1) (length alt2)))
(alt1 (substring alt1 0 maxlen))
(alt2 (substring alt2 0 maxlen)))
(while (not (string= (substring alt1 0 maxlen)
(substring alt2 0 maxlen)))
(setq maxlen (- maxlen 1)))
(substring alt1 0 maxlen)))
; internal
(defun cssm-common-beginning(alts)
"Returns the maximum common starting substring of all alts elements."
(let ((common (car alts)))
(dolist (alt (cdr alts) common)
(setq common (cssm-maximum-common alt common)))))
(defun cssm-complete-property-frame(completions)
; This code stolen from message.el. Kudos to larsi.
(let ((cur (current-buffer)))
(pop-to-buffer "*Completions*")
(buffer-disable-undo (current-buffer))
(let ((buffer-read-only nil))
(erase-buffer)
(let ((standard-output (current-buffer)))
(display-completion-list (sort completions 'string<)))
(goto-char (point-min))
(pop-to-buffer cur))))
(defun cssm-complete-property()
"Completes the CSS property being typed at point."
(interactive)
(let* ((prop (cssm-property-at-point))
(alts (all-completions prop cssm-properties-alist))
(proplen (length prop)))
(if (= (length alts) 1)
(insert (substring (car alts) proplen))
(let ((beg (cssm-common-beginning alts)))
(if (not (string= beg prop))
(insert (substring beg proplen))
(insert (substring
(completing-read "Property: " cssm-properties-alist nil
nil prop)
proplen)))))))
(defun css-mode()
"Major mode for editing CSS style sheets.
\\{cssm-mode-map}"
(interactive)
; Initializing
(kill-all-local-variables)
; Setting up indentation handling
(make-local-variable 'indent-line-function)
(setq indent-line-function 'cssm-indent-line)
; Setting up font-locking
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults '(cssm-font-lock-keywords nil t nil nil))
; Setting up typing shortcuts
(make-local-variable 'skeleton-end-hook)
(setq skeleton-end-hook nil)
(when cssm-mirror-mode
(cssm-enter-mirror-mode))
(use-local-map cssm-mode-map)
; Setting up syntax recognition
(make-local-variable 'comment-start)
(make-local-variable 'comment-end)
(make-local-variable 'comment-start-skip)
(setq comment-start "/* "
comment-end " */"
comment-start-skip "/\\*[ \n\t]+")
; Setting up syntax table
(modify-syntax-entry ?* ". 23")
(modify-syntax-entry ?/ ". 14")
; Final stuff, then we're done
(setq mode-name "CSS"
major-mode 'css-mode)
(run-hooks 'css-mode-hook))
(provide 'css-mode)
;; CSS-mode ends here
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 16:47 ` martin rudalics
2007-07-24 20:05 ` Edward Welbourne
@ 2007-07-24 20:42 ` Edward Welbourne
2007-07-24 21:53 ` Lennart Borgman (gmail)
2 siblings, 0 replies; 27+ messages in thread
From: Edward Welbourne @ 2007-07-24 20:42 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs
> In any case this should be reported to the Debian bug tracking
> system since probably more people might be affected by this.
Bug address: 434556@bugs.debian.org
URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=434556
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 16:47 ` martin rudalics
2007-07-24 20:05 ` Edward Welbourne
2007-07-24 20:42 ` Edward Welbourne
@ 2007-07-24 21:53 ` Lennart Borgman (gmail)
2007-07-24 22:05 ` Dan Nicolaescu
2 siblings, 1 reply; 27+ messages in thread
From: Lennart Borgman (gmail) @ 2007-07-24 21:53 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs, eddy
martin rudalics wrote:
> > (defvar cssm-version "0.11.zap1"
> > "The current version number of css-mode.")
> > ;;; copyright (c) 1998 Lars Marius Garshol, larsga@ifi.uio.no
> > ;;; $Id: css-mode.el,v 1.9 2000/01/05 21:21:56 larsga Exp $
> > ;;; Modified by John Zaitseff, 3rd November 2004.
>
> css-mode by Garshol, modified by Zaitseff, and distributed by Debian.
> Apparently, Zaitseff's modifications are too persistent but I can't tell
> anything because I don't have the sources. In any case this should be
> reported to the Debian bug tracking system since probably more people
> might be affected by this.
And Stefan Monnier's css-mode.el ought to be included in Emacs as soon
as possible I believe.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 21:53 ` Lennart Borgman (gmail)
@ 2007-07-24 22:05 ` Dan Nicolaescu
2007-07-25 8:19 ` martin rudalics
0 siblings, 1 reply; 27+ messages in thread
From: Dan Nicolaescu @ 2007-07-24 22:05 UTC (permalink / raw)
To: Lennart Borgman (gmail); +Cc: bug-gnu-emacs, eddy
"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
> martin rudalics wrote:
> > > (defvar cssm-version "0.11.zap1"
> > > "The current version number of css-mode.")
> > > ;;; copyright (c) 1998 Lars Marius Garshol, larsga@ifi.uio.no
> > > ;;; $Id: css-mode.el,v 1.9 2000/01/05 21:21:56 larsga Exp $
> > > ;;; Modified by John Zaitseff, 3rd November 2004.
> >
> > css-mode by Garshol, modified by Zaitseff, and distributed by Debian.
> > Apparently, Zaitseff's modifications are too persistent but I can't tell
> > anything because I don't have the sources. In any case this should be
> > reported to the Debian bug tracking system since probably more people
> > might be affected by this.
>
> And Stefan Monnier's css-mode.el ought to be included in Emacs as soon
> as possible I believe.
It already is, both CVS HEAD and 22.2 branch.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 20:05 ` Edward Welbourne
@ 2007-07-25 7:59 ` martin rudalics
0 siblings, 0 replies; 27+ messages in thread
From: martin rudalics @ 2007-07-25 7:59 UTC (permalink / raw)
To: eddy; +Cc: bug-gnu-emacs
>>Apparently, Zaitseff's modifications are too persistent but I can't tell
>>anything because I don't have the sources.
>
>
> Source follows,
Thanks. Basically, the problem is here
(defun css-mode()
...
; Setting up syntax table
(modify-syntax-entry ?* ". 23")
(modify-syntax-entry ?/ ". 14")
...
This will modify the syntax-table of the current buffer, which can be
any syntax table. You can, for example, in *scratch* do M-x css-mode
and you will get C-like comments in all your Elisp buffers. Weird.
Maybe this stuff works in a mmm-like environment where a buffer may have
multiple major modes. As it stands, the code above is highly dangerous
and should be either fixed (by making a new syntax table) or removed.
In any case it was useful to do these investigations. Thank you for the
collaboration.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-24 22:05 ` Dan Nicolaescu
@ 2007-07-25 8:19 ` martin rudalics
2007-07-25 8:48 ` Edward Welbourne
0 siblings, 1 reply; 27+ messages in thread
From: martin rudalics @ 2007-07-25 8:19 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: eddy, bug-gnu-emacs
> > And Stefan Monnier's css-mode.el ought to be included in Emacs as soon
> > as possible I believe.
>
> It already is, both CVS HEAD and 22.2 branch.
This won't help in the OP's case, because site-lisp's css-mode might be
loaded after Stefan's. The problem must be fixed by Debian first.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: C-comments in sgml-mode's html-mode
2007-07-25 8:19 ` martin rudalics
@ 2007-07-25 8:48 ` Edward Welbourne
0 siblings, 0 replies; 27+ messages in thread
From: Edward Welbourne @ 2007-07-25 8:48 UTC (permalink / raw)
To: martin rudalics; +Cc: bug-gnu-emacs, dann
> > > And Stefan Monnier's css-mode.el ought to be included in Emacs as soon
> > > as possible I believe.
> >
> > It already is, both CVS HEAD and 22.2 branch.
> This won't help in the OP's case, because site-lisp's css-mode might be
> loaded after Stefan's. The problem must be fixed by Debian first.
well, once Emacs22 is released with its own css-mode built in, one of
the ways Debian can fix this is by saying Emacs22 Conflicts: css-mode,
since it supplies its own and css-mode is broken ...
I've now tested with Emacs21: although I never saw this problem before
upgrading to Emacs22, I see that the bug is just as present in Emacs21.
I'll tell the Debian bug that it should be against css-mode !
Eddy.
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2007-07-25 8:48 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-19 11:33 M-x compile re-uses name of old compilation buffer, contrary to documentation Edward Welbourne
2007-07-20 13:42 ` Richard Stallman
2007-07-20 14:54 ` Edward Welbourne
2007-07-21 10:23 ` martin rudalics
2007-07-23 11:50 ` C-comments in sgml-mode's html-mode Edward Welbourne
2007-07-23 12:02 ` Lennart Borgman (gmail)
2007-07-23 13:24 ` Edward Welbourne
2007-07-23 14:51 ` martin rudalics
2007-07-23 17:49 ` Edward Welbourne
2007-07-23 12:27 ` martin rudalics
2007-07-23 16:59 ` Edward Welbourne
2007-07-23 18:41 ` martin rudalics
2007-07-24 8:57 ` Edward Welbourne
2007-07-24 13:01 ` martin rudalics
2007-07-24 13:51 ` Edward Welbourne
2007-07-24 14:51 ` Lennart Borgman (gmail)
2007-07-24 15:46 ` Edward Welbourne
2007-07-24 16:47 ` martin rudalics
2007-07-24 20:05 ` Edward Welbourne
2007-07-25 7:59 ` martin rudalics
2007-07-24 20:42 ` Edward Welbourne
2007-07-24 21:53 ` Lennart Borgman (gmail)
2007-07-24 22:05 ` Dan Nicolaescu
2007-07-25 8:19 ` martin rudalics
2007-07-25 8:48 ` Edward Welbourne
2007-07-24 16:44 ` martin rudalics
2007-07-24 14:39 ` Edward Welbourne
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.