mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-06 11:50:51 -08:00
The old approach, which fell back on DIR/.#FILE.0 through
DIR/.#FILE.9, had race conditions that could not be easily fixed.
If DIR/.#FILE is a non-symlink file, Emacs now does not create a
lock file for DIR/FILE; that is, DIR/FILE is no longer partly
protected by a lock if DIR/.#FILE is a non-symlink file ("partly"
because the locking mechanism was never reliable in that case).
This patch fixes this and other bugs discovered by a code
inspection that was prompted by
<http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00531.html>.
Also, this patch switches to .#-FILE (not .#FILE) on MS-Windows,
to avoid interoperability problems between the MS-Windows and
non-MS-Windows implementations. MS-Windows and non-MS-Windows
instances of Emacs now ignore each others' locks.
* etc/NEWS: Document this.
* src/filelock.c (defined_WINDOWSNT): New constant.
(MAKE_LOCK_NAME, fill_in_lock_file_name):
Don't create DIR/.#FILE.0 through DIR/.#FILE.9. Instead, create
DIR/.#FILE symlinks on non-MS-Windows hosts, and DIR/.#-FILE
regular files on MS-Windows hosts.
(MAKE_LOCK_NAME, unlock_file, Ffile_locked_p):
Use SAFE_ALLOCA to avoid problems with long file names.
(MAX_LFINFO): Now a local constant, not a global macro.
(IS_LOCK_FILE): Remove.
(lock_file_1): Don't inspect errno if symlink call succeeds;
that's not portable.
(lock_file): Document that this function can return if lock
creation fails.
Fixes: debbugs:13807
|
||
|---|---|---|
| .. | ||
| charsets | ||
| e | ||
| forms | ||
| gnus | ||
| images | ||
| nxml | ||
| org | ||
| refcards | ||
| schema | ||
| srecode | ||
| themes | ||
| tutorials | ||
| .gitignore | ||
| AUTHORS | ||
| CALC-NEWS | ||
| celibacy.1 | ||
| CENSORSHIP | ||
| ChangeLog | ||
| compilation.txt | ||
| condom.1 | ||
| CONTRIBUTE | ||
| COOKIES | ||
| COPYING | ||
| copying.paper | ||
| DEBUG | ||
| DEVEL.HUMOR | ||
| DISTRIB | ||
| echo.msg | ||
| edt-user.el | ||
| emacs-buffer.gdb | ||
| emacs.desktop | ||
| emacs.icon | ||
| enriched.doc | ||
| ERC-NEWS | ||
| ETAGS.EBNF | ||
| ETAGS.README | ||
| FTP | ||
| future-bug | ||
| GNU | ||
| GNUS-NEWS | ||
| gnus-tut.txt | ||
| grep.txt | ||
| HELLO | ||
| INTERVIEW | ||
| JOKES | ||
| LINUX-GNU | ||
| MACHINES | ||
| MAILINGLISTS | ||
| MH-E-NEWS | ||
| MORE.STUFF | ||
| MOTIVATION | ||
| NEWS | ||
| NEWS.1-17 | ||
| NEWS.18 | ||
| NEWS.19 | ||
| NEWS.20 | ||
| NEWS.21 | ||
| NEWS.22 | ||
| NEWS.23 | ||
| NEXTSTEP | ||
| NXML-NEWS | ||
| ORDERS | ||
| ORG-NEWS | ||
| PROBLEMS | ||
| ps-prin0.ps | ||
| ps-prin1.ps | ||
| publicsuffix.txt | ||
| README | ||
| rgb.txt | ||
| SERVICE | ||
| ses-example.ses | ||
| sex.6 | ||
| spook.lines | ||
| TERMS | ||
| THE-GNU-PROJECT | ||
| TODO | ||
| WHY-FREE | ||
| yow.lines | ||
This directory contains the architecture-independent files used by or with Emacs. This includes some text files of documentation for GNU Emacs or of interest to Emacs users, and the file of dumped docstrings for Emacs functions and variables. `forms-d2.dat' is an example data file used by forms-d2.el. COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES File: emacs.icon Author: Sun Microsystems, Inc Copyright (C) 1999, 2001-2013 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING)