GNU bug report logs - #16508
24.3; Slash matching in HTML mode

Previous Next

Package: emacs;

Reported by: Mark Tilford <ralphmerridew <at> gmail.com>

Date: Mon, 20 Jan 2014 17:42:02 UTC

Severity: minor

Tags: patch

Found in version 24.3

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 16508 in the body.
You can then email your comments to 16508 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#16508; Package emacs. (Mon, 20 Jan 2014 17:42:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mark Tilford <ralphmerridew <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 20 Jan 2014 17:42:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mark Tilford <ralphmerridew <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3; Slash matching in HTML mode
Date: Mon, 20 Jan 2014 11:39:34 -0600
[Message part 1 (text/plain, inline)]
--text follows this line--
In HTML mode, type

<!DOCTYPE html>
<html>
  <head>
    <title>My Web Page</title>
  </head>
  <body>
    <br />
    <h1>Heading</h1>

When typing the </h1>, it will briefly highlight the <br />.  This is
incorrect and annoying.  Either highlight the matching <h1> or don't
highlight anything.


In GNU Emacs 24.3.1 (i386-mingw-nt6.1.7601)
 of 2013-03-17 on MARVIN
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --with-gcc (4.7) --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include
 -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
 -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1252
  default enable-multibyte-characters: t

Major mode: HTML

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t


Recent messages:
call-interactively: End of buffer [2 times]
Mark set
byte-code: End of buffer
forward-sexp: Scan error: "Unbalanced parentheses", 127, 133
Undo!

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message format-spec rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils help-mode
easymenu sgml-mode browse-url url-util url-parse auth-source eieio
byte-opt bytecomp byte-compile cconv gnus-util mm-util mail-prsvr
password-cache url-vars time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win
w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
w32 multi-tty emacs)
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16508; Package emacs. (Tue, 21 Jan 2014 21:38:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Rüdiger Sonderfeld <ruediger <at> c-plusplus.de>
To: bug-gnu-emacs <at> gnu.org
Cc: Mark Tilford <ralphmerridew <at> gmail.com>, 16508 <at> debbugs.gnu.org
Subject: Re: bug#16508: 24.3; Slash matching in HTML mode
Date: Tue, 21 Jan 2014 22:37:10 +0100
Hello,

On Monday 20 January 2014 11:39:34 Mark Tilford wrote:
> --text follows this line--
> In HTML mode, type
> 
> <!DOCTYPE html>
> <html>
>   <head>
>     <title>My Web Page</title>
>   </head>
>   <body>
>     <br />
>     <h1>Heading</h1>
> 
> When typing the </h1>, it will briefly highlight the <br />.  This is
> incorrect and annoying.  Either highlight the matching <h1> or don't
> highlight anything.

I can reproduce the behaviour.  It seems this was introduced to support SGML's 
syntax for <FOO/bar/ which is apparently a shortcut for <FOO>bar</FOO>.  But I 
don't understand why it tries to match a / if it's after a <.  (I'm not very 
familiar with SGML's quirks and special syntax.)

It seems the code in `sgml-slash' actually tried to deal with that case but in 
the end still calls `sgml-slash-matching'.  The following patch would fix that

╭────
│ diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
│ index 09459d1..78fdb50 100644
│ --- a/lisp/textmodes/sgml-mode.el
│ +++ b/lisp/textmodes/sgml-mode.el
│ @@ -539,7 +539,7 @@ (defun sgml-slash (arg)
│      (delete-char -1)
│      (sgml-close-tag))
│     (t
│ -    (sgml-slash-matching arg))))
│ +    (insert-char ?/ arg))))
│ 
│  (defun sgml-slash-matching (arg)
│    "Insert `/' and display any previous matching `/'.
╰────

Until then you could use (define-key sgml-mode-map "/" nil) as a workaround to 
disable the matching in all cases.

btw. maybe `sgml-quick-keys' should be customizable.

Regards,
Rüdiger




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16508; Package emacs. (Tue, 21 Jan 2014 21:38:03 GMT) Full text and rfc822 format available.

Added tag(s) patch. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Tue, 01 Mar 2016 14:14:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16508; Package emacs. (Sun, 15 Apr 2018 22:00:02 GMT) Full text and rfc822 format available.

Message #16 received at 16508 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Rüdiger Sonderfeld <ruediger <at> c-plusplus.de>
Cc: ralphmerridew <at> gmail.com, 16508 <at> debbugs.gnu.org
Subject: Re: bug#16508: 24.3; Slash matching in HTML mode
Date: Sun, 15 Apr 2018 23:57:18 +0200
Rüdiger Sonderfeld <ruediger <at> c-plusplus.de> writes:

> │ diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
> │ index 09459d1..78fdb50 100644
> │ --- a/lisp/textmodes/sgml-mode.el
> │ +++ b/lisp/textmodes/sgml-mode.el
> │ @@ -539,7 +539,7 @@ (defun sgml-slash (arg)
> │      (delete-char -1)
> │      (sgml-close-tag))
> │     (t
> │ -    (sgml-slash-matching arg))))
> │ +    (insert-char ?/ arg))))
> │ 
> │  (defun sgml-slash-matching (arg)
> │    "Insert `/' and display any previous matching `/'.

Seems to do the right thing in the test case, so I've applied it to
Emacs 27.1.  If this turns out to be the wrong thing to do, it should be
easy enough to revert.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug closed, send any further explanations to 16508 <at> debbugs.gnu.org and Mark Tilford <ralphmerridew <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 15 Apr 2018 22:00:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 14 May 2018 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 41 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.