Commit graph

1467 commits

Author SHA1 Message Date
Glenn Morris
6640b281f3 Add the ability to exclude dir-locals from subdirs. (Bug#8100)
* lisp/files.el (dir-locals-collect-variables):
Add the ability to exclude subdirectories.

* doc/emacs/custom.texi (Directory Variables):
Give an example of excluding subdirectories.

* doc/lispref/variables.texi (Directory Local Variables):
Mention `(subdirs . nil)' alist element.

* etc/NEWS: Mention this addition.

* lisp/dired-x.el (dired-omit-here-always): Add `(subdirs . nil)' to locals.
2011-02-28 19:05:28 -08:00
Glenn Morris
07915ed93c More dir-locals fixes for files.el.
* lisp/files.el (hack-local-variables-confirm, hack-local-variables-filter):
Doc fix (say _which_ directory `dir-name' is).
(hack-dir-local-variables): Fix setting of `dir-name'.
Previous value seems clearly wrong.  Eg put a risky variable in a
dir-locals file, visit a file in a subdirectory, see which directory
it says the risky variables come from.  It should be the one with the
associated directory variables, not the one containing the visited file.
2011-02-24 00:02:45 -08:00
Glenn Morris
ebe401f697 Partial fix for bug#8095.
* lisp/files.el (dir-locals-find-file): Doc fix.
Fix the check for cache elements that have no associated file,
and the mtime check for those that do.

Still to do: some places that use dir-locals-find-file assume the
result is always a file, which is not true. (The function name is
misleading.)
2011-02-23 23:47:06 -08:00
Glenn Morris
5582c6706a * lisp/files.el (safe-local-eval-forms): Add the write-file-hooks version.
This obsolete form is still supported, and present in some of the
files synced from gnulib, for example.
2011-02-22 19:24:23 -08:00
Stefan Monnier
f619ad4ca2 Merge from trunk 2011-02-21 17:34:51 -05:00
Glenn Morris
67ab0163d6 Merge from emacs-23; up to 2010-06-01T01:49:15Z!monnier@iro.umontreal.ca 2011-02-19 11:40:59 -08:00
Stefan Monnier
aa56f3613e * lisp/files.el (cd): Make completion obey cd-path.
* lread.c (Qdir_ok): New constant.
(syms_of_lread): Initialize it.
(openp): Don't ignore directories if the predicate returns dir-ok.

Fixes: debbugs:7924
2011-02-18 12:18:16 -05:00
Glenn Morris
72d6685c11 * lisp/files.el (find-file-literally): Doc fix. 2011-02-17 21:15:22 -08:00
Stefan Monnier
b38b1ec071 Various compiler bug-fixes. MPC seems to run correctly now.
* lisp/files.el (lexical-binding): Add a safe-local-variable property.

* lisp/emacs-lisp/byte-opt.el (byte-inline-lapcode): Check how many elements
are added to the stack.
(byte-compile-splice-in-already-compiled-code): Don't touch lexical nor
byte-compile-depth now that byte-inline-lapcode does it for us.
(byte-compile-inline-expand): Don't inline dynbind byte code into
lexbind code, since it has to be done differently.

* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
Correctly extract arglist from `closure's.
(byte-compile-cl-warn): Compiler-macros are run earlier now.
(byte-compile-top-level): Bind byte-compile-lexical-environment to nil,
except for lambdas.
(byte-compile-form): Don't run the compiler-macro expander here.
(byte-compile-let): Merge with byte-compile-let*.
Don't preserve-body-value if the body's value was discarded.

* lisp/emacs-lisp/cconv.el (cconv--set-diff, cconv--set-diff-map)
(cconv--map-diff, cconv--map-diff-elem, cconv--map-diff-set): New funs.
(cconv--env-var): New constant.
(cconv-closure-convert-rec): Use it and use them.  Fix a typo that
ended up forgetting to remove entries from lmenvs in `let'.
For `lambda' use the outer `fvrs' when building the closure and don't
forget to remove `vars' from the `emvrs' and `lmenvs' of the body.

* lisp/emacs-lisp/cl-macs.el (cl-byte-compile-block): Disable optimization
in lexbind, because it needs a different implementation.

* src/bytecode.c (exec_byte_code): Fix handling of &rest.

* src/eval.c (Vinternal_interpreter_environment): Remove.
(syms_of_eval): Do declare Vinternal_interpreter_environment as
a global lisp var, but unintern it to hide it.
(Fcommandp):
* src/data.c (Finteractive_form): Understand `closure's.
2011-02-17 16:19:13 -05:00
Chong Yidong
20fac86e2e * lisp/files.el (copy-directory): Revert to pre-2011-01-29 version. 2011-02-12 14:43:04 -05:00
Thierry Volpiatto
470d996db4 New optional arg COPY-CONTENTS to copy-directory.
* files.el (copy-directory): New argument COPY-CONTENTS for
copying directory contents into another existing directory.
2011-02-12 14:34:50 -05:00
Bastien Guerry
75d1d833f5 Save unmodified buffers when buffer-file-name doesn't exist.
* files.el (basic-save-buffer): save unmodified buffers when
the file pointed by buffer-file-name doesn't exist.
2011-02-11 18:35:37 +01:00
Chong Yidong
65821e2244 * lisp/files.el (copy-directory): New arg COPY-AS-SUBDIR.
If nil, don't copy as a subdirectory.
2011-02-05 23:59:06 -05:00
Sam Steingold
e8e4d5c88e undo 2011-02-01T18:15:18Z!sds@gnu.org (purecopy-cons, purecopy-car) at Stefan Monnier's request 2011-02-01 16:37:12 -05:00
Sam Steingold
0b75349e7e * lisp/subr.el (purecopy-cons, purecopy-car): Add shortcuts.
* lisp/faces.el (face-x-resources): Use `purecopy-cons'.
* lisp/files.el (auto-mode-alist, interpreter-mode-alist): Use
`purecopy-car'.
* lisp/international/fontset.el (font-encoding-alist): Ditto.
* lisp/international/mule-conf.el (file-coding-system-alist): Ditto.
* lisp/international/mule.el (auto-coding-alist)
(auto-coding-regexp-alist): Ditto.
* lisp/mouse.el (mouse-buffer-menu-mode-groups): Use `purecopy-cons'.
* lisp/term/x-win.el (x-gtk-stock-map): Ditto.
2011-02-01 13:15:18 -05:00
Chong Yidong
14beddf471 Merge changes from emacs-23 branch 2011-01-31 18:54:50 -05:00
Chong Yidong
6fa1f65165 * lisp/files.el (copy-directory): Fix arguments to the recursive call. 2011-01-31 12:03:37 -05:00
Chong Yidong
82d84d3fc9 Fix bug in copy-directory copying into an existing directory.
http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg01007.html

* files.el (copy-directory): If destination is an existing
directory, copy into a subdirectory there.
2011-01-29 17:10:51 -05:00
Glenn Morris
73b0cd5003 Convert consecutive FSF copyright years to ranges. 2011-01-24 20:08:28 -08:00
Glenn Morris
06d8ace515 Merge from emacs-23.
Note setting of CANNOT_DUMP on ia64 hpux is still to be merged manually.
2011-01-24 19:47:47 -08:00
Stefan Monnier
10e1d5f30f * files.el (file-name-non-special): Only change buffer-file-name after
insert-file-contents if it's `visit'ing the file.

Fixes: debbugs:7854
2011-01-24 15:34:44 -05:00
Chong Yidong
9aea757bb0 Revert changes adding format args to yes-or-no-p and y-or-n-p.
See discussion on emacs-devel at
http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00388.html

* src/fns.c (Fyes_or_no_p): Revert 2011-01-07 change, removing ARGS.

* lisp/subr.el (y-or-n-p): Revert 2011-01-07 change, removing ARGS.

* lisp/files.el (find-alternate-file, basic-save-buffer)
(basic-save-buffer-2, revert-buffer, recover-file)
(kill-buffer-ask, abort-if-file-too-large)
(set-visited-file-name, write-file, backup-buffer)
(basic-save-buffer, save-some-buffers):
* lisp/dired-aux.el (dired-compress-file): Callers changed.
2011-01-19 21:55:36 -05:00
Glenn Morris
d52969e8af Merge from emacs-23 branch, up to 2010-05-20T21:33:58Z!juri@jurta.org.
Note:
emacs-23 2010-05-20T01:32:08Z!lekktu@gmail.com is rendered unnecessary by pre-existing 2010-05-20
trunk change.
2011-01-15 12:38:27 -08:00
Glenn Morris
362b9d483c Merge from emacs-23 branch. 2011-01-15 12:03:38 -08:00
Mark Diekhans
b024d9f02d Make last-resort backup file in .emacs.d (Bug#6953).
* lisp/files.el (backup-buffer): Make last-resort backup file in
.emacs.d.

* lisp/subr.el (locate-user-emacs-file): If .emacs.d does not exist,
make it with permission 700.

* doc/emacs/files.texi (Backup Names): Document the new location of the
last-resort backup file.
2011-01-14 21:32:19 -05:00
Chong Yidong
2b9f65621b * lisp/files.el (directory-abbrev-alist): Minor doc fix (Bug#7777).
* doc/lispref/files.texi: Likewise.
2011-01-08 16:22:19 -05:00
Chong Yidong
3ef01959de New function read-char-choice for reading a restricted set of chars.
* lisp/subr.el (read-char-choice): New function, factored out from
dired-query and hack-local-variables-confirm.

* lisp/dired-aux.el (dired-query):
* lisp/files.el (hack-local-variables-confirm): Use it.
2011-01-08 14:17:23 -05:00
Eli Zaretskii
4320be4251 Fix bug #7777 with documentation of directory-abbrev-alist.
lisp/files.el (directory-abbrev-alist): Doc fix.
 doc/lispref/files.texi (Directory Names): Explain why FROM in
 directory-abbrev-alist should begin with \`.
2011-01-07 17:55:13 +02:00
Chong Yidong
7c420169ba Merge changes from emacs-23 branch 2011-01-02 15:31:19 -05:00
Stefan Monnier
2a8a455e77 * lisp/files.el (file-local-variables-alist): Make permanent-local.
Fixes: debbugs:7767
2011-01-01 22:57:26 -05:00
Tassilo Horn
291cc04566 * doc-view.el (doc-view-set-doc-type): New function refactored
from doc-view-mode.
(doc-view-fallback-mode): New function.
(doc-view-mode): Use it.
(doc-view-mode-maybe): New function that checks if doc-view-mode
can be used and falls back to the next best mode otherwise.

* files.el (auto-mode-alist): Use doc-view-mode-maybe for PDF,
DVI, OpenDocument, and MS Office files.
2010-12-30 19:08:18 +01:00
Stefan Monnier
f49d1f52b2 Merge from emacs-23 2010-12-13 10:27:36 -05:00
Karel Klíc
1e5d2a048d * lisp/files.el (auto-mode-alist): Use html-mode for *.xhtml.
(This really only affects empty files.)

Fixes: debbugs:7606
2010-12-10 18:48:23 -08:00
Glenn Morris
66f782de2e * lisp/files.el (diff-no-select): Declare. 2010-12-09 19:47:49 -08:00
Stefan Monnier
33cf0fb226 * lisp/files.el (dir-locals-collect-variables): Don't let errors stop us.
Use string-prefix-p.
(file-name-version-regexp): New var.
(file-name-sans-versions):
* lisp/jka-cmpr-hook.el (jka-compr-build-file-regexp): Use it,
(jka-compr-get-compression-info): Use dolist.
(jka-compr-compression-info-list): Don't bother specifying
version/backup regexps.
2010-12-07 21:18:02 -05:00
W. Martin Borgert
11cb1e35ff * lisp/files.el (auto-mode-alist): Handle .dbk (DocBook) with xml-mode.
* etc/schema/schemas.xml: Handle *.dbk as DocBook.
2010-12-04 16:45:17 -05:00
Eli Zaretskii
2472c214a6 Fix bug #4674 with UNCs in file-relative-name.
files.el (file-relative-name): Handle UNC file names on DOS/Windows.
 Also fixes bug#4673.
2010-12-04 14:52:04 +02:00
Stefan Monnier
b2e4481906 Cleanup diff-buffer-with-file.
* lisp/vc/diff.el (diff-old-temp-file, diff-new-temp-file): Remove.
(diff-sentinel): Get them as arguments instead.
(diff-old-file, diff-new-file, diff-extra-args): Remove.
(diff-file-local-copy, diff-better-file-name): New funs.
(diff-no-select): Rename from diff-into-buffer.
Support buffers additionally to files.  Move `buf' arg.  Don't display buf.
Prefer closures to buffer-local variables.
(diff): Adjust accordingly.
(diff-buffer-with-file): Move from files.el.
* lisp/files.el (diff-buffer-with-file): Move to vc/diff.el.
(diff-buffer-internal): Remove.
(diff-buffer-buffer): Remove.
(save-some-buffers-action-alist): Use diff-no-select so as not to guess
the buffer name used, and so as not to mess up windows and frames.
2010-11-22 14:22:03 -05:00
Bob Rogers
6a7662bb7d * lisp/files.el: Make revert work with diff-buffer-with-file.
(diff-buffer-internal): New function extracted from diff-buffer-with-file
(diff-buffer-with-file): Use it.
* lisp/vc/diff.el (diff-into-buffer): New fun, extracted from diff.
(diff): Use it.

Fixes: debbugs:7277
2010-11-22 12:57:46 -05:00
Michael Albinus
e274eb13e0 * files.el (backup-by-copying-when-mismatch): The default value is
now t.

* startup.el (normal-top-level):
* net/tramp.el (tramp-handle-insert-file-contents): Do not set
`backup-by-copying-when-mismatch'.
2010-11-21 20:39:21 +01:00
Stefan Monnier
4a47c27573 Merge from emacs-23 2010-11-17 22:54:14 -05:00
Stefan Monnier
acef0722fc * lisp/files.el (safe-local-variable-p): Gracefully handle errors.
* lisp/emacs-lisp/bytecomp.el (byte-compile-warnings): Simplify the
safety predicate.
2010-11-11 17:19:01 -05:00
Stefan Monnier
d607b96bc2 Merge from emacs-23 2010-11-09 15:07:10 -05:00
Michael Albinus
6ce78fdc20 * files.el (backup-by-copying-when-mismatch): Make it a buffer local
variable (permanent-local).

* net/tramp.el (tramp-handle-insert-file-contents): Do not set
`permanent-local' property for `(backup-by-copying-when-mismatch'.
2010-11-06 15:04:23 +01:00
Glenn Morris
e088c02a81 Remove duplicate Lisp definition of temporary-file-directory, from filelock.c.
* lisp/files.el (temporary-file-directory): Remove (already defined in C).
* lisp/cus-start.el: Add temporary-file-directory.
2010-10-28 23:51:36 -07:00
Stefan Monnier
43f964fcf0 * lisp/files.el (locate-file-completion-table): Strip non-matching elements
before checking length of list.

Fixes: debbugs:7238
2010-10-18 17:02:00 -04:00
Michael Albinus
4bc3c53d1d * files.el (remote-file-name-inhibit-cache): New defcustom.
* time.el (display-time-file-nonempty-p): Use
`remote-file-name-inhibit-cache'.

* net/tramp.el (tramp-completion-reread-directory-timeout): Fix
docstring.

* net/tramp-cache.el (tramp-cache-inhibit-cache): Remove.
(tramp-get-file-property): Replace `tramp-cache-inhibit-cache' by
`remote-file-name-inhibit-cache'.  Check also for an integer
value.  Add/increase counter when `tramp-verbose' >= 10.
(tramp-set-file-property): Add/increase counter when
`tramp-verbose' >= 10.

* net/tramp-cmds.el (tramp-cleanup-all-connections)
(tramp-cleanup-all-buffers): Set tramp-autoload cookie.
(tramp-bug): Set tramp-autoload cookie.  Report all interned
tramp-* variables.  Report also `remote-file-name-inhibit-cache'.
(tramp-reporter-dump-variable): Fix docstring.  Mask non-7bit
characters only in strings.

* net/tramp-compat.el (remote-file-name-inhibit-cache): Define due
to backward compatibility.

* net/tramp-sh.el (tramp-handle-verify-visited-file-modtime)
(tramp-handle-file-name-all-completions)
(tramp-handle-vc-registered): Use
`remote-file-name-inhibit-cache'.
(tramp-open-connection-setup-interactive-shell): Call
`tramp-cleanup-connection' directly.
2010-10-02 15:21:43 +02:00
Glenn Morris
1ef075bb27 Tweak temporary-file-directory on darwin systems.
* lisp/files.el (temporary-file-directory): On darwin, also try
DARWIN_USER_TEMP_DIR (see discussion in bug#7135).
2010-09-30 20:57:26 -07:00
Chong Yidong
41f54b7388 * files.el (get-free-disk-space): Don't assume "df" output columns line up (Bug#6995). 2010-09-25 16:16:35 -04:00
Glenn Morris
5e339ee2a3 Move some autoloaded auto-mode-alist entries to files.el.
* image-mode.el, progmodes/compile.el, progmodes/gud.el:
* progmodes/mixal-mode.el, textmodes/bibtex-style.el:
* textmodes/css-mode.el, textmodes/dns-mode.el:
Move autoloaded auto-mode-alist entries to files.el.
* files.el (auto-mode-alist): Move entries here.
2010-09-23 20:06:33 -07:00