unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: gnu-emacs-bug@moderators.isc.org
Subject: bug#14325: 24.3; cc-mode does not initialize correctly w/ -batch
Date: Wed, 1 May 2013 12:53:28 +0000 (UTC)	[thread overview]
Message-ID: <klr388$b56$1__13314.3316059888$1367413264$gmane$org@colin.muc.de> (raw)
In-Reply-To: <878v3z29r2.fsf@Rainer.invalid>

Achim Gratz <Stromeko@nexgo.de> wrote:

> Publishing from Worg (the community webpages for Org) runs in batch mode
> and uses cc-mode for syntax highlighting for some source code examples.
> While testing the publishing process with Emacs?24 I've come across an
> apparent regression in cc-mode: it tries to use the initial value for
> c-standard-font-lock-fontify-region-function, which happens to be nil to
> do a funcall and errors out since the function slot of that variable is
> void.  I've worked around the error by adding this to the init file:

> --8<---------------cut here---------------start------------->8---
> ;; to have things work correctly in batch-mode
> (require 'font-lock)
> (require 'cc-mode)
> (c-after-font-lock-init)
> --8<---------------cut here---------------end--------------->8---

> I cannot tell if that works correctly in all cases or why this is
> necessary, but simply by switching to Emacs?23 it all works correctly
> without it.

Yes, the c-after-font-lock-init call will initialise everything properly,
though it's more a workaround than a solution.

Font Lock Mode is a minor mode, and part of its initialisation is calling
font-lock-mode-hook.  (font-lock-mode-hook is here c-after-font-lock-init.)
If you run font-lock-fontify-buffer (etc.) without fully initialising Font
Lock Mode, you're liable to run into bugs.  If that were all there were
to it, I'd have nothing more to say, but sadly it's not so simple.

Font Lock Mode is, by default disabled in batch mode.  If you enable it,
this also enables jit-lock-mode (which is surely wrong), which prevents
any fontification actually taking place, since the buffer is never
displayed on the screen to trigger the fontification.

I think the following sequence of commands would fontify the buffer
properly in batch mode:
    (c-mode)
    (setq font-lock-support-mode nil) ; disable jit-lock-mode
    (font-lock-mode 1)
.

However, you'll probably prefer to carry on with using Font Lock Mode
uninitialised.  ;-)  I think Glenn's patch achieves this painlessly.

> Regards,
> Achim.

-- 
Alan Mackenzie (Nuremberg, Germany).






  parent reply	other threads:[~2013-05-01 12:53 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.24908.1367343951.855.bug-gnu-emacs@gnu.org>
2013-04-30 17:45 ` bug#14325: 24.3; cc-mode does not initialize correctly w/ -batch Achim Gratz
2013-05-01  0:51   ` Glenn Morris
2013-05-01  3:37     ` Glenn Morris
2013-05-01  6:51     ` Achim Gratz
2013-05-01 12:53   ` Alan Mackenzie [this message]
2013-05-01 16:26   ` Achim Gratz
2013-05-01 17:23   ` Alan Mackenzie
2013-05-01 18:15   ` Achim Gratz
2013-05-02 13:04     ` Alan Mackenzie
2013-05-02 18:44   ` Achim Gratz
2013-05-05 14:17   ` Achim Gratz
2013-05-06 13:25   ` Alan Mackenzie
     [not found] ` <klr388$b56$1@colin.muc.de>
2013-05-01 17:59   ` Glenn Morris
2013-05-01 18:55     ` Alan Mackenzie
2013-05-01 19:04       ` Glenn Morris

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='klr388$b56$1__13314.3316059888$1367413264$gmane$org@colin.muc.de' \
    --to=acm@muc.de \
    --cc=gnu-emacs-bug@moderators.isc.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).