all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#19882: 25.0.50; Backwards font-lock regex in m4-mode
@ 2015-02-16 11:32 Rupert Swarbrick
  2016-03-21  5:30 ` Marcin Borkowski
  0 siblings, 1 reply; 3+ messages in thread
From: Rupert Swarbrick @ 2015-02-16 11:32 UTC (permalink / raw)
  To: 19882

In m4-mode.el, the last two sexps in m4-font-lock-keywords are the wrong
way around. As a result, if you are writing M4 code to be expanded in
"-P mode", so have things like

  m4_define

in the file, then the "define" part gets matched by the penultimate
regex, so m4_ doesn't get highlighted as part of a keyword.

I think the fix for this is to just swap the two regexes around. That
said, the commented stuff at the bottom of the file is rather
ugly. Maybe it would be better to have a single regex, made with
something like:

   (regexp-opt (append (mapcar (lambda (kw)
                                 (concat "m4_" kw))
                               prefixed)
                       prefixed
                       unprefixed))

with prefixed containing:

'("builtin" "changecom" "changequote" "changeword" "debugfile"
  "debugmode" "decr" "define" "defn" "divert" "divnum" "dnl"
  "dumpdef" "errprint" "esyscmd" "eval" "file" "format"
  "ifdef" "ifelse" "include" "incr" "index" "indir" "len" "line"
  "m4exit" "m4wrap" "maketemp" "patsubst" "popdef" "pushdef" "regexp"
  "shift" "sinclude" "substr" "syscmd" "sysval" "traceoff" "traceon"
  "translit" "undefine" "undivert" "unix"))


and unprefixed containing:

'("gnu")


Or maybe the absence of m4_gnu is a typo, in which case the logic could
be slightly simpler. I'm assuming that "m4_m4_undefine" at the bottom of
the file is a mistake.

Sorry there's no patch: I've requested assignment papers, but they
haven't come through yet. Since I think I've hit my minimal change
limit, someone else gets to type the code...


Rupert


In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars)
 of 2015-02-09 on <an-internal-hostname>
Repository revision: 2f7008715326a49770fcb82003ed78eab28c0626
Windowing system distributor `The X.Org Foundation', version 11.0.11300000


I'm trimming the rest of the build info because I'm pretty certain it's
not relevant to this report and contains lots of internal company paths.





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

* bug#19882: 25.0.50; Backwards font-lock regex in m4-mode
  2015-02-16 11:32 bug#19882: 25.0.50; Backwards font-lock regex in m4-mode Rupert Swarbrick
@ 2016-03-21  5:30 ` Marcin Borkowski
  2018-06-06  0:09   ` Noam Postavsky
  0 siblings, 1 reply; 3+ messages in thread
From: Marcin Borkowski @ 2016-03-21  5:30 UTC (permalink / raw)
  To: Rupert Swarbrick; +Cc: 19882

On 2015-02-16, at 11:32, Rupert Swarbrick <ruperts@broadcom.com> wrote:

> In m4-mode.el, the last two sexps in m4-font-lock-keywords are the wrong
> way around. As a result, if you are writing M4 code to be expanded in
> "-P mode", so have things like
>
>   m4_define
>
> in the file, then the "define" part gets matched by the penultimate
> regex, so m4_ doesn't get highlighted as part of a keyword.
>
> I think the fix for this is to just swap the two regexes around. That
> said, the commented stuff at the bottom of the file is rather
> ugly. Maybe it would be better to have a single regex, made with
> something like:
>
>    (regexp-opt (append (mapcar (lambda (kw)
>                                  (concat "m4_" kw))
>                                prefixed)
>                        prefixed
>                        unprefixed))
>
> with prefixed containing:
>
> '("builtin" "changecom" "changequote" "changeword" "debugfile"
>   "debugmode" "decr" "define" "defn" "divert" "divnum" "dnl"
>   "dumpdef" "errprint" "esyscmd" "eval" "file" "format"
>   "ifdef" "ifelse" "include" "incr" "index" "indir" "len" "line"
>   "m4exit" "m4wrap" "maketemp" "patsubst" "popdef" "pushdef" "regexp"
>   "shift" "sinclude" "substr" "syscmd" "sysval" "traceoff" "traceon"
>   "translit" "undefine" "undivert" "unix"))
>
>
> and unprefixed containing:
>
> '("gnu")
>
>
> Or maybe the absence of m4_gnu is a typo, in which case the logic could
> be slightly simpler. I'm assuming that "m4_m4_undefine" at the bottom of
> the file is a mistake.
>
> Sorry there's no patch: I've requested assignment papers, but they
> haven't come through yet. Since I think I've hit my minimal change
> limit, someone else gets to type the code...

Hi,

in case the problem is still there (I don't use m4, so it's difficult
for me to verify it), would you be able to provide a patch now?

> Rupert

Best,

-- 
Marcin





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

* bug#19882: 25.0.50; Backwards font-lock regex in m4-mode
  2016-03-21  5:30 ` Marcin Borkowski
@ 2018-06-06  0:09   ` Noam Postavsky
  0 siblings, 0 replies; 3+ messages in thread
From: Noam Postavsky @ 2018-06-06  0:09 UTC (permalink / raw)
  To: Marcin Borkowski; +Cc: Rupert Swarbrick, 19882

tags 19882 fixed
close 19882 25.1
quit

Marcin Borkowski <mbork@mbork.pl> writes:

> On 2015-02-16, at 11:32, Rupert Swarbrick <ruperts@broadcom.com> wrote:
>
>> In m4-mode.el, the last two sexps in m4-font-lock-keywords are the wrong
>> way around. As a result, if you are writing M4 code to be expanded in
>> "-P mode", so have things like
>>
>>   m4_define
>>
>> in the file, then the "define" part gets matched by the penultimate
>> regex, so m4_ doesn't get highlighted as part of a keyword.

> in case the problem is still there (I don't use m4, so it's difficult
> for me to verify it), would you be able to provide a patch now?

Seems to be fixed in 25 (I did M-x m4-mode and typed in m4_define).







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

end of thread, other threads:[~2018-06-06  0:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-16 11:32 bug#19882: 25.0.50; Backwards font-lock regex in m4-mode Rupert Swarbrick
2016-03-21  5:30 ` Marcin Borkowski
2018-06-06  0:09   ` Noam Postavsky

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.