From 836d29b3704d0dc40411715fc0a9f3a708a8f8ad Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Wed, 9 May 2012 20:55:57 -0400 Subject: [PATCH] Add the option to not create lockfiles * src/filelock.c (syms_of_filelock): New boolean create-lockfiles. (lock_file): If create_lockfiles is 0, do nothing. * lisp/cus-start.el (create-lockfiles): Add it. Fixes: debbugs:11227 --- lisp/ChangeLog | 4 ++++ lisp/cus-start.el | 1 + src/ChangeLog | 5 +++++ src/filelock.c | 8 ++++++++ 4 files changed, 18 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index bf15cd2f9aa..f1429f9f875 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-05-10 Dave Abrahams + + * cus-start.el (create-lockfiles): Add it. + 2012-05-09 Chong Yidong * net/browse-url.el (browse-url-url-encode-chars): Use upper-case. diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 3863e718f58..fc3c6561a1e 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -204,6 +204,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (delete-by-moving-to-trash auto-save boolean "23.1") (auto-save-visited-file-name auto-save boolean) ;; filelock.c + (create-lockfiles files boolean "24.2") (temporary-file-directory ;; Darwin section added 24.1, does not seem worth :version bump. files directory nil diff --git a/src/ChangeLog b/src/ChangeLog index 07d85cbf5c8..d4e38f5271c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-05-10 Dave Abrahams + + * filelock.c (syms_of_filelock): New boolean create-lockfiles. + (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227) + 2012-05-09 Michael Albinus * dbusbind.c (xd_registered_buses): New internal Lisp object. diff --git a/src/filelock.c b/src/filelock.c index 2613eec4aca..d8914c73328 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -550,6 +550,10 @@ lock_file (Lisp_Object fn) struct gcpro gcpro1; USE_SAFE_ALLOCA; + /* Don't do locking if the user has opted out. */ + if (! create_lockfiles) + return; + /* Don't do locking while dumping Emacs. Uncompressing wtmp files uses call-process, which does not work in an uninitialized Emacs. */ @@ -722,6 +726,10 @@ syms_of_filelock (void) doc: /* The directory for writing temporary files. */); Vtemporary_file_directory = Qnil; + DEFVAR_BOOL ("create-lockfiles", create_lockfiles, + doc: /* Non-nil means use lockfiles to avoid editing collisions. */); + create_lockfiles = 1; + #ifdef CLASH_DETECTION defsubr (&Sunlock_buffer); defsubr (&Slock_buffer); -- 2.39.2