unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc variant of sh-mode
@ 2014-01-18  9:24 Mikhail Gusarov
  2019-10-30 13:55 ` Lars Ingebrigtsen
  2022-09-03  8:22 ` bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc Vasilij Schneidermann
  0 siblings, 2 replies; 4+ messages in thread
From: Mikhail Gusarov @ 2014-01-18  9:24 UTC (permalink / raw)
  To: 16500


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@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)





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc variant of sh-mode
  2014-01-18  9:24 bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc variant of sh-mode Mikhail Gusarov
@ 2019-10-30 13:55 ` Lars Ingebrigtsen
  2022-09-03  8:22 ` bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc Vasilij Schneidermann
  1 sibling, 0 replies; 4+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-30 13:55 UTC (permalink / raw)
  To: Mikhail Gusarov; +Cc: 16500

Mikhail Gusarov <dottedmag@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





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc
  2014-01-18  9:24 bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc variant of sh-mode Mikhail Gusarov
  2019-10-30 13:55 ` Lars Ingebrigtsen
@ 2022-09-03  8:22 ` Vasilij Schneidermann
  2022-09-03 10:02   ` Lars Ingebrigtsen
  1 sibling, 1 reply; 4+ messages in thread
From: Vasilij Schneidermann @ 2022-09-03  8:22 UTC (permalink / raw)
  To: 16500; +Cc: Lars Ingebrigtsen, Mikhail Gusarov

[-- Attachment #1: Type: text/plain, Size: 405 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc
  2022-09-03  8:22 ` bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc Vasilij Schneidermann
@ 2022-09-03 10:02   ` Lars Ingebrigtsen
  0 siblings, 0 replies; 4+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-03 10:02 UTC (permalink / raw)
  To: Vasilij Schneidermann; +Cc: Mikhail Gusarov, 16500

Vasilij Schneidermann <mail@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...





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-09-03 10:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-18  9:24 bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc variant of sh-mode Mikhail Gusarov
2019-10-30 13:55 ` Lars Ingebrigtsen
2022-09-03  8:22 ` bug#16500: 24.3.50; Wrong font-lock backquote highlighting in plan9 rc Vasilij Schneidermann
2022-09-03 10:02   ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).