mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-02 02:10:46 -08:00
Report file-notify-error in w32notify.c
* src/w32notify.c (report_w32notify_error): New function. (Fw32notify_add_watch, Fw32notify_rm_watch): Use it to report errors, instead of calling report_file_error. (Bug#21432)
This commit is contained in:
parent
12629d2857
commit
ef5b1a22bb
1 changed files with 22 additions and 7 deletions
|
|
@ -464,6 +464,21 @@ filter_list_to_flags (Lisp_Object filter_list)
|
|||
return flags;
|
||||
}
|
||||
|
||||
/* Like report_file_error, but reports a file-notify-error instead. */
|
||||
static void
|
||||
report_w32notify_error (const char *string, Lisp_Object name)
|
||||
{
|
||||
Lisp_Object data = CONSP (name) || NILP (name) ? name : list1 (name);
|
||||
synchronize_system_messages_locale ();
|
||||
char *str = strerror (errno);
|
||||
Lisp_Object errstring
|
||||
= code_convert_string_norecord (build_unibyte_string (str),
|
||||
Vlocale_coding_system, 0);
|
||||
Lisp_Object errdata = Fcons (errstring, data);
|
||||
|
||||
xsignal (Qfile_notify_error, Fcons (build_string (string), errdata));
|
||||
}
|
||||
|
||||
DEFUN ("w32notify-add-watch", Fw32notify_add_watch,
|
||||
Sw32notify_add_watch, 3, 3, 0,
|
||||
doc: /* Add a watch for filesystem events pertaining to FILE.
|
||||
|
|
@ -528,8 +543,8 @@ generate notifications correctly, though. */)
|
|||
|| (w32_major_version == 5 && w32_major_version < 1))
|
||||
{
|
||||
errno = ENOSYS;
|
||||
report_file_error ("Watching filesystem events is not supported",
|
||||
Qnil);
|
||||
report_w32notify_error ("Watching filesystem events is not supported",
|
||||
Qnil);
|
||||
}
|
||||
|
||||
/* filenotify.el always passes us a directory, either the parent
|
||||
|
|
@ -573,11 +588,11 @@ generate notifications correctly, though. */)
|
|||
Vlocale_coding_system, 0);
|
||||
else
|
||||
lisp_errstr = build_string (errstr);
|
||||
report_file_error ("Cannot watch file",
|
||||
Fcons (lisp_errstr, Fcons (file, Qnil)));
|
||||
report_w32notify_error ("Cannot watch file",
|
||||
Fcons (lisp_errstr, Fcons (file, Qnil)));
|
||||
}
|
||||
else
|
||||
report_file_error ("Cannot watch file", Fcons (file, Qnil));
|
||||
report_w32notify_error ("Cannot watch file", Fcons (file, Qnil));
|
||||
}
|
||||
/* Store watch object in watch list. */
|
||||
watch_descriptor = make_pointer_integer (dirwatch);
|
||||
|
|
@ -611,8 +626,8 @@ WATCH-DESCRIPTOR should be an object returned by `w32notify-add-watch'. */)
|
|||
}
|
||||
|
||||
if (status == -1)
|
||||
report_file_error ("Invalid watch descriptor", Fcons (watch_descriptor,
|
||||
Qnil));
|
||||
report_w32notify_error ("Invalid watch descriptor", Fcons (watch_descriptor,
|
||||
Qnil));
|
||||
|
||||
return Qnil;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue