lock_file (fn)
register Lisp_Object fn;
{
- register Lisp_Object attack;
+ register Lisp_Object attack, orig_fn;
register char *lfname;
+ orig_fn = fn;
+ fn = Fexpand_file_name (fn, Qnil);
+
MAKE_LOCK_NAME (lfname, fn);
/* See if this file is visited and has changed on disk since it was
visited. */
{
register Lisp_Object subject_buf;
- subject_buf = Fget_file_buffer (fn);
+ subject_buf = get_truename_buffer (orig_fn);
if (!NILP (subject_buf)
&& NILP (Fverify_visited_file_modtime (subject_buf))
&& !NILP (Ffile_exists_p (fn)))
{
register char *lfname;
+ fn = Fexpand_file_name (fn, Qnil);
+
MAKE_LOCK_NAME (lfname, fn);
lock_superlock (lfname);
for (tail = Vbuffer_alist; GC_CONSP (tail); tail = XCONS (tail)->cdr)
{
b = XBUFFER (XCONS (XCONS (tail)->car)->cdr);
- if (STRINGP (b->filename) && BUF_SAVE_MODIFF (b) < BUF_MODIFF (b))
- unlock_file (b->filename);
+ if (STRINGP (b->file_truename) && BUF_SAVE_MODIFF (b) < BUF_MODIFF (b))
+ unlock_file (b->file_truename);
}
}
Lisp_Object fn;
{
if (NILP (fn))
- fn = current_buffer->filename;
+ fn = current_buffer->file_truename;
else
CHECK_STRING (fn, 0);
if (SAVE_MODIFF < MODIFF
()
{
if (SAVE_MODIFF < MODIFF
- && STRINGP (current_buffer->filename))
- unlock_file (current_buffer->filename);
+ && STRINGP (current_buffer->file_truename))
+ unlock_file (current_buffer->file_truename);
return Qnil;
}
struct buffer *buffer;
{
if (BUF_SAVE_MODIFF (buffer) < BUF_MODIFF (buffer)
- && STRINGP (buffer->filename))
- unlock_file (buffer->filename);
+ && STRINGP (buffer->file_truename))
+ unlock_file (buffer->file_truename);
}
DEFUN ("file-locked-p", Ffile_locked_p, Sfile_locked_p, 0, 1, 0,