GNU bug report logs - #16500
24.3.50; Wrong font-lock backquote highlighting in plan9 rc variant of sh-mode

Previous Next

Package: emacs;

Reported by: Mikhail Gusarov <dottedmag <at> dottedmag.net>

Date: Sun, 19 Jan 2014 18:49:02 UTC

Severity: minor

Found in version 24.3.50

To reply to this bug, email your comments to 16500 AT debbugs.gnu.org.

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#16500; Package emacs. (Sun, 19 Jan 2014 18:49:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mikhail Gusarov <dottedmag <at> dottedmag.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 19 Jan 2014 18:49:02 GMT) Full text and rfc822 format available.

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

From: Mikhail Gusarov <dottedmag <at> dottedmag.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.50;
 Wrong font-lock backquote highlighting in plan9 rc variant of sh-mode
Date: Sat, 18 Jan 2014 10:24:10 +0100
sh-quoted-exec face recognized by rc variant of sh-mode is not
terminated at the end of quoted expression. To reproduce this bug,
enable the font lock and open the following file in Emacs
(alternatively remove {} around foo):
----------------------------------------------------------------------
#!rc

`{foo}   bar
baz
----------------------------------------------------------------------

Check with e.g. what-cursor-position that sh-quoted-exec face is
continuing until the end of file, or up to a next ` symbol.

sh-quoted-exec face should apply only to the closing } symbol, or,
if the word quoted is not bracketed, to the end of word.



In GNU Emacs 24.3.50.1 (x86_64-apple-darwin, NS apple-appkit-1038.36)
 of 2013-11-29 on bob.porkrind.org
Bzr revision: eliz <at> gnu.org-20131129085350-6yb2ej3yjpeu2lc6
Windowing system distributor `Apple', version 10.3.1265
Configured using:
 `configure --host=x86_64-apple-darwin --build=i686-apple-darwin
 --with-ns'

Important settings:
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: IBuffer

Minor modes in effect:
  global-whitespace-mode: t
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  which-function-mode: t
  global-auto-revert-mode: t
  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
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<C-home> <down> C-s a b a n d o n e d C-a M-< C-s m 
o z - c o l u m n C-a C-x C-s C-r s <backspace> f o 
n t C-r C-a C-p C-p C-x k <return> C-x k <return> C-x 
k <return> C-x k <return> C-x k <return> C-x k <return> 
C-x k <return> C-x k <return> C-x k C-g g C-x k C-g 
C-n d d C-p x y C-x k <return> C-x k <return> C-x k 
<return> C-x k <return> C-x C-f C-f t m <tab> p a c 
<tab> <tab> <return> M-q g r e p - f i n d <return> 
S S H <return> C-. C-n C-n C-s A g e C-a C-s P a s 
s w o r d C-s C-s C-b <return> C-a C-x 1 <next> <next> 
<next> <C-end> <C-home> <C-end> C-x k <return> g C-x 
k <return> C-x C-f C-f C-g C-x k <return> C-x k <return> 
C-x k <return> C-x k <return> C-M-s g C-n C-n C-p C-p 
C-n C-n C-p C-p C-n d x y C-x b SPC SPC C-f C-g C-x 
b <tab> <tab> C-g C-x C-f C-f C-e <M-backspace> <M-backspace> 
w / i <return> g C-_ C-x k <return> C-x C-f C-f <M-backspace> 
<M-backspace> w <return> M-q x <return> g C-s i C-b 
C-n C-n C-n C-n C-n C-n C-n <return> g C-s t e s t 
C-b <return> <return> <return> <C-end> C-r i n s t 
a l l C-a C-p C-p C-p C-p C-r p k g s e l C-a C-g C-x 
k <return> g C-x k <return> C-x k <return> C-x k <return> 
C-x k <return> g M-q r e p r <backspace> o r t SPC 
e m a c s SPC b u g <return>

Recent messages:
Omitting...
(Nothing to omit)
Omitting...
Omitted 2 lines.
Mark set
Mark saved where search started [2 times]
Quit
Omitting...
Omitted 2 lines.
Updating buffer list...done

Load-path shadows:
/Users/dottedmag/.emacs.d/el-get/org-mode/.dir-locals hides /Users/dottedmag/.emacs.d/el-get/flycheck/.dir-locals
/Users/dottedmag/.emacs.d/el-get/org-mode/.dir-locals hides /Users/dottedmag/.emacs.d/el-get/el-get/.dir-locals
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-texinfo hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-texinfo
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-publish hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-publish
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-org
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-odt hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-odt
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-md hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-md
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-man hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-man
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-latex
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-icalendar hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-icalendar
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-html hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-html
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-beamer hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-beamer
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ox-ascii hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-ascii
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org hides /Applications/Emacs.app/Contents/Resources/lisp/org/org
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-w3m hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-w3m
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-version hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-version
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-timer hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-timer
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-table
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-src hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-src
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-rmail hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-rmail
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-protocol hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-protocol
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-plot hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-plot
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-pcomplete hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-pcomplete
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-mouse hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mouse
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-mobile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mobile
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-mhe hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mhe
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-macs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macs
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-macro hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macro
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-loaddefs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-loaddefs
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-list hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-list
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-irc hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-irc
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-install hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-install
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-inlinetask hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-inlinetask
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-info hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-info
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-indent hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-indent
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-id hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-id
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-habit hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-habit
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-gnus hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-gnus
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-footnote hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-footnote
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-feed hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-feed
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-faces hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-faces
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-eshell hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-eshell
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-entities hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-entities
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-element hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-element
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-docview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-docview
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-datetree hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-datetree
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-ctags hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-ctags
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-crypt hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-crypt
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-compat hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-compat
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-colview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-colview
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-clock hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-clock
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-capture hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-capture
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-bibtex hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-bibtex
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-bbdb hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-bbdb
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-attach hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-archive hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-archive
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/org-agenda hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-agenda
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-tangle hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-tangle
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-table
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-sqlite hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sqlite
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-sql hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sql
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-shen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-shen
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-sh hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sh
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-screen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-screen
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-scheme hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-scheme
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-scala hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-scala
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-sass hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sass
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-ruby hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ruby
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-ref hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ref
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-R hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-R
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-python hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-python
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-plantuml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-plantuml
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-picolisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-picolisp
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-perl hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-perl
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-org
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-octave hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-octave
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-ocaml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ocaml
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-mscgen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-mscgen
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-maxima hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-maxima
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-matlab hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-matlab
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-makefile hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-makefile
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-lob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lob
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lisp
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-lilypond hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lilypond
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-ledger hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ledger
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-latex
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-keys hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-keys
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-js hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-js
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-java hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-java
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-io hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-io
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-haskell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-haskell
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-gnuplot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-fortran hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-fortran
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-exp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-exp
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-eval hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-eval
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-emacs-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-dot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-dot
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-ditaa hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ditaa
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-css hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-css
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-core hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-core
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-comint hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-comint
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-clojure hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-clojure
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-calc hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-calc
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-C hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-C
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-awk hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-awk
/Users/dottedmag/.emacs.d/el-get/org-mode/lisp/ob-asymptote hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-asymptote
/Users/dottedmag/.emacs.d/el-get/org-mode/.dir-locals hides /Applications/Emacs.app/Contents/Resources/lisp/gnus/.dir-locals

Features:
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mail-utils ispell disp-table
whitespace thai-util thai-word lao-util view mule-util vc-arch vc-hg
vc-bzr vc-sccs vc-svn vc-rcs debug cus-start cus-load ibuf-ext ibuffer
grep sgml-mode diff-mode log-edit pcvs-util vc vc-dispatcher novice
tabify nroff-mode cc-langs tex-mode latexenc make-mode perl-mode
tramp-cache haskell-font-lock haskell-doc inf-haskell haskell-cabal
haskell-utils haskell-decl-scan haskell-indentation haskell-mode
haskell-string haskell-sort-imports haskell-align-imports flymake
compile dabbrev sh-script executable epa-file epa epg epg-config
org-element org-indent org-rmail org-mhe org-irc org-info org-gnus
org-docview doc-view jka-compr image-mode org-bibtex bibtex org-bbdb
org-w3m js json thingatpt css-mode smie xterm misearch multi-isearch
add-log vc-git dired-aux vc-mcvs vc-cvs rng-nxml rng-valid rng-loc
rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns
nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok avoid
woman man tramp tramp-compat auth-source eieio eieio-core gnus-util
mm-util mail-prsvr password-cache tramp-loaddefs trampver shell python
rx which-func imenu cperl-mode org-mobile org-agenda org byte-opt advice
org-macro org-footnote org-pcomplete pcomplete org-list org-faces
org-entities noutline outline easy-mmode org-version ob-emacs-lisp ob
ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint comint
ansi-color ring ob-core ob-eval org-compat org-macs org-loaddefs
format-spec find-func cal-menu calendar cal-loaddefs org-install ido
paren server haskell-mode-autoloads s .loaddefs el-get cl-macs gv
el-get-autoloads el-get-list-packages el-get-notify help-mode
el-get-dependencies el-get-build el-get-status pp el-get-recipes
el-get-byte-compile el-get-methods el-get-fossil el-get-svn
el-get-pacman el-get-github-zip el-get-github-tar el-get-http-zip
el-get-http-tar el-get-hg el-get-git-svn el-get-fink el-get-emacswiki
el-get-http el-get-emacsmirror el-get-github el-get-git el-get-elpa
package el-get-darcs el-get-cvs el-get-bzr el-get-brew el-get-builtin
el-get-apt-get el-get-custom el-get-core autoload help-fns lisp-mnt
bytecomp byte-compile cconv cl autorevert filenotify edmacro kmacro
cl-loaddefs cl-lib edje-mode derived dired-x dired cfengine-code-style
cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel ns-win tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode prog-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 nadvice
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 cocoa ns
multi-tty emacs)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16500; Package emacs. (Wed, 30 Oct 2019 13:56:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Mikhail Gusarov <dottedmag <at> dottedmag.net>
Cc: 16500 <at> debbugs.gnu.org
Subject: Re: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc
 variant of sh-mode
Date: Wed, 30 Oct 2019 14:55:18 +0100
Mikhail Gusarov <dottedmag <at> dottedmag.net> writes:

> sh-quoted-exec face recognized by rc variant of sh-mode is not
> terminated at the end of quoted expression. To reproduce this bug,
> enable the font lock and open the following file in Emacs
> (alternatively remove {} around foo):
> ----------------------------------------------------------------------
> #!rc
>
> `{foo}   bar
> baz
> ----------------------------------------------------------------------
>
> Check with e.g. what-cursor-position that sh-quoted-exec face is
> continuing until the end of file, or up to a next ` symbol.
>
> sh-quoted-exec face should apply only to the closing } symbol, or,
> if the word quoted is not bracketed, to the end of word.

The problem here seems to be that ` is defined in the syntax table to be
a quote character, so `parse-partial-sexp` will skip to the end of the
buffer (or the next ` character) in
font-lock-fontify-syntactically-region.

I'm trying to familiarise myself with how font locking is supposed to
work -- anybody know what I should be poking into to get this to work
better?

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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16500; Package emacs. (Sat, 03 Sep 2022 08:23:02 GMT) Full text and rfc822 format available.

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

From: Vasilij Schneidermann <mail <at> vasilij.de>
To: 16500 <at> debbugs.gnu.org
Cc: Lars Ingebrigtsen <larsi <at> gnus.org>,
 Mikhail Gusarov <dottedmag <at> dottedmag.net>
Subject: Re: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc
Date: Sat, 3 Sep 2022 10:22:13 +0200
[Message part 1 (text/plain, inline)]
I've run into this bug while switching all my sh/bash scripts to rc and
used the following workaround:

    (defun my-sh-set-shell-hook ()
      (when (member sh-shell '(rc es))
        (modify-syntax-entry ?` ".")))
    
    (add-hook 'sh-set-shell-hook 'my-sh-set-shell-hook)

I doubt this warrants inclusion into sh-script.el as is, but should
demonstrate a possible approach how to fix it.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16500; Package emacs. (Sat, 03 Sep 2022 10:03:01 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Vasilij Schneidermann <mail <at> vasilij.de>
Cc: Mikhail Gusarov <dottedmag <at> dottedmag.net>, 16500 <at> debbugs.gnu.org
Subject: Re: bug#16500: 24.3.50; Wrong font-lock backquote highlighting in
 plan9 rc
Date: Sat, 03 Sep 2022 12:02:15 +0200
Vasilij Schneidermann <mail <at> vasilij.de> writes:

> I've run into this bug while switching all my sh/bash scripts to rc and
> used the following workaround:
>
>     (defun my-sh-set-shell-hook ()
>       (when (member sh-shell '(rc es))
>         (modify-syntax-entry ?` ".")))
>
>     (add-hook 'sh-set-shell-hook 'my-sh-set-shell-hook)
>
> I doubt this warrants inclusion into sh-script.el as is, but should
> demonstrate a possible approach how to fix it.

But we want the {...} to be fontified as a quoted-exec, so I think the
correct fix here is to make { } be a pair after ` in the rc version?

That is, tweak this:

(defun sh-font-lock-syntactic-face-function (state)
  (let ((q (nth 3 state)))
    (if q
        (if (characterp q)
            (if (eq q ?\`) 'sh-quoted-exec font-lock-string-face)
          'sh-heredoc)
      font-lock-comment-face)))

Possibly...




Added tag(s) moreinfo. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sat, 03 Sep 2022 10:03:02 GMT) Full text and rfc822 format available.

Removed tag(s) moreinfo. Request was from Stefan Kangas <stefankangas <at> gmail.com> to control <at> debbugs.gnu.org. (Wed, 10 Jan 2024 11:04:01 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 154 days ago.

Previous Next


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