[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#18111: 24.3; makefile-gmake-mode: Doesn't fontify `subst' calls prop
From: |
Samuel Bronson |
Subject: |
bug#18111: 24.3; makefile-gmake-mode: Doesn't fontify `subst' calls properly |
Date: |
Fri, 25 Jul 2014 18:37:09 -0400 |
This problem has been bugging me for quite some time: `makefile-mode',
and now `makefile-gmake-mode', don't handle a construction used in,
for example, the following passage quoted from git's Makefile:
--8<---------------cut here---------------start------------->8---
# Shell quote (do not use $(call) to accommodate ancient setups);
SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER))
ETC_GITCONFIG_SQ = $(subst ','\'',$(ETC_GITCONFIG))
ETC_GITATTRIBUTES_SQ = $(subst ','\'',$(ETC_GITATTRIBUTES))
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
bindir_SQ = $(subst ','\'',$(bindir))
bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
mandir_relative_SQ = $(subst ','\'',$(mandir_relative))
infodir_relative_SQ = $(subst ','\'',$(infodir_relative))
localedir_SQ = $(subst ','\'',$(localedir))
gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
template_dir_SQ = $(subst ','\'',$(template_dir))
htmldir_relative_SQ = $(subst ','\'',$(htmldir_relative))
prefix_SQ = $(subst ','\'',$(prefix))
gitwebdir_SQ = $(subst ','\'',$(gitwebdir))
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
PYTHON_PATH_SQ = $(subst ','\'',$(PYTHON_PATH))
TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
DIFF_SQ = $(subst ','\'',$(DIFF))
PERLLIB_EXTRA_SQ = $(subst ','\'',$(PERLLIB_EXTRA))
--8<---------------cut here---------------end--------------->8---
Actually, the problem doesn't seem to be at all specific to subst; it
appears to apply to any function call.
Function calls are delimited only by balanced parens()/braces{}; there
is no special treatment of single or double quotes. In fact, Make does
not appear to have *any* particular handling for either single or double
quotes; the only reason to even fontify them at all is that *shells* do.
(I wonder why the manual never actually seems to mention this fact?)
--
In GNU Emacs 24.3.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2014-06-06 on babin, modified by Debian
Windowing system distributor `Colin Harrison', version 11.0.60900031
System Description: Debian GNU/Linux testing (jessie)
Configured using:
`configure '--build' 'i486-linux-gnu' '--build' '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/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
'--with-crt-dir=/usr/lib/i386-linux-gnu' '--with-x=yes'
'--with-x-toolkit=lucid' '--with-toolkit-scroll-bars' '--without-gconf'
'--without-gsettings' 'build_alias=i486-linux-gnu' 'CFLAGS=-g -O2
-fstack-protector --param=ssp-buffer-size=4 -Wformat
-Werror=format-security -Wall' 'LDFLAGS=-Wl,-z,relro'
'CPPFLAGS=-D_FORTIFY_SOURCE=2''
Important settings:
value of $LC_COLLATE: C
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: GNUmakefile
Minor modes in effect:
shell-dirtrack-mode: t
diff-auto-refine-mode: t
xterm-mouse-mode: t
show-paren-mode: t
recentf-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
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
--
Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread!
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#18111: 24.3; makefile-gmake-mode: Doesn't fontify `subst' calls properly,
Samuel Bronson <=