From: "Pascal J. Bourguignon" <pjb@informatimago.com>
To: help-gnu-emacs@gnu.org
Subject: Re: Local variables list
Date: Thu, 02 Oct 2014 22:33:08 +0200 [thread overview]
Message-ID: <8738b6p5yz.fsf@kuiper.lan.informatimago.com> (raw)
In-Reply-To: m0ji5m$2bj$1@dont-email.me
Dieter Britz <dieterhansbritz@gmail.com> writes:
> On Thu, 02 Oct 2014 14:25:54 +0200, Pascal J. Bourguignon wrote:
>
>> Dieter Britz <dieterhansbritz@gmail.com> writes:
>>
>>> For some files, when I start emacs, I get a warning something like "The
>>> local variables list for <file> contains values that may not be
>>> safe..." (I was not able to copy/paste so am citing from memory). I
>>> then answer "yes" and I get in, but what does this mean? What can I do
>>> about it?
>>
>> The file local variables are defined either on one of the first two
>> lines, between "-*-" and "-*-", or in the last 512 bytes, between
>> "\nLocal Variable:\n" and "\nEnd:\n".
>>
>> Some local variables are "safe" and/or have "safe" values. For example:
>>
>> ;; -*- mode:lisp; coding:utf-8; -*-
>>
>> on the first line define two variables, mode and coding to be set to
>> lisp and utf-8 which are all safe.
>>
>> Some other local variables or values are not safe. For example:
>>
>> Local Variable:
>> post-command-hook: ((lambda () (do-some-virus-propagation)))
>> End:
>>
>> wouldn't be safe, and neither would:
>>
>> Local Variable:
>> post-command-hook: ((lambda () (shell "rm -rf /")))
>> End:
>>
>> It is to protect you from such files, that emacs warns you when it
>> detect something strange in file local variables. You should not answer
>> yes blindly, you should check those variables, and convince yourself
>> that they are safe, before answering yes.
>>
>> The "*Local Variables*" buffer gives you the list of local variables,
>> indicating those that are unsafe:
>>
>>
>> -----(*Local
>> Variables*)------------------------------------------------
>> The local variables list in test-file contains varibles that are
>> risk (**).
>>
>> Do you want to apply it? You can type y -- to apply the local
>> variable list.
>> n -- to ignore the local variables list.
>>
>> mode : text
>> ** post-command-hook : ((lambda nil (message "hi")))
>>
> ------------------------------------------------------------------------
>>
>> Here you can see that post-command-hook looks safe (but it will erase
>> the current post-command-hook, so you might still want to answer n (and
>> then remove it from the file).
>
> Thanks - I don't fully understand but will watch out for this.
> These must get into the file without my doing. I find in one of
> these, at the end, the lines
>
> %%% Local Variables:
> %%% mode: latex
> %%% TeX-master: t
> %%% End:
>
> How did they get there?
Somebody wrote them in that file.
> What are local variables?
File Local Variables are buffer local variables that are set in the
buffer where the file is loaded.
See: (info "(emacs) File Variables") ; type C-x C-e before this comment.
> I suppose they are connected with the settings my emacs has (?) -
> these must be default because I have never set anything.
No, there are the opposite of default settings. They are the most
specific settings you can get with emacs, specifically for buffers
visiting this specific file.
emacs consider unsafe all the variables it doesn't know to be safe.
TeX-master is unknown to be safe, so it's marked with one star.
Since the value is a simple symbol (t), it looks rather safe to set this
variable (and let whatever code you already loaded use it when
processing your buffer).
To be compared with post-command-hook, which is known to be unsafe, and
which emacs marked with two stars.
If you want to know what the variable is used for, you can type
C-h v TeX-master RET
and see if it's documented.
Otherwise, you could check the source of any package that use the TeX-
prefix for their stuff.
Otherwise, it's possible no code uses it.
--
__Pascal Bourguignon__ http://www.informatimago.com/
“The factory of the future will have only two employees, a man and a
dog. The man will be there to feed the dog. The dog will be there to
keep the man from touching the equipment.” -- Carl Bass CEO Autodesk
next prev parent reply other threads:[~2014-10-02 20:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-02 12:01 Local variables list Dieter Britz
2014-10-02 12:25 ` Pascal J. Bourguignon
2014-10-02 12:58 ` Dieter Britz
2014-10-02 20:33 ` Pascal J. Bourguignon [this message]
2014-10-02 13:16 ` Dieter Britz
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8738b6p5yz.fsf@kuiper.lan.informatimago.com \
--to=pjb@informatimago.com \
--cc=help-gnu-emacs@gnu.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 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.