Am 22.02.2014 23:43, schrieb Juanma Barranquero: > On Sat, Feb 22, 2014 at 9:50 PM, Andreas Röhler > wrote: > >> This bug is about Info files > > I don't think there is a bug. That info node talks about the format of > the file variables, but of course says nothing about the format of the > contents of your file. If your file is text, perhaps just > > -*- variable: value -*- > > in the first line is perfectly acceptable. Do you want file-local variables restrict to text-mode? Doesn't make sense for me. If the file contains C > source code, or elisp, or another data format to be digested by some > external processor, it should already be clear that the file variables > must be acceptable to these external processors. You can't expect to > have > > -*- mode: c -*- > > as the first line of a C file and compile it with GCC without getting an error. > We must not discuss possible other bugs here. Let's stay with the reported one. > That said, the same node that you quote already says: > > Here is an example first line that specifies Lisp mode and sets two > variables with numeric values: > > ;; -*- mode: Lisp; fill-column: 75; comment-column: 50; -*- > > and a little later: > > In shell scripts, the first line is used to identify the script > interpreter, so you cannot put any local variables there. To > accommodate this, Emacs looks for local variable specifications in the > _second_ line if the first line specifies an interpreter. The same is > true for man pages which start with the magic string `'\"' to specify a > list of troff preprocessors (not all do, however). > > which clearly suggests that the file variables must also be acceptable > to the consumer of the file. It rather says: implementation is not that straightforward as it could/should be. It's at Emacs, when sending code, to clear its artistics before. > >> , the former report was about a wrong compiler warning. > > Which was, in fact, not wrong at all. > Attach foo1.png - happens when evaluating a buffer with contents: ;;;;;; -*- lexical-binding: t -*- (setq foo 1) ;;;;;;