[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master ef5b1a2: Report file-notify-error in w32notify.c
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master ef5b1a2: Report file-notify-error in w32notify.c |
Date: |
Mon, 14 Sep 2015 07:32:35 +0000 |
branch: master
commit ef5b1a22bbeef239981dd6745abb4f08e2de54e0
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
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)
---
src/w32notify.c | 29 ++++++++++++++++++++++-------
1 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/src/w32notify.c b/src/w32notify.c
index fa4ad01..efd9e56 100644
--- a/src/w32notify.c
+++ b/src/w32notify.c
@@ -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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master ef5b1a2: Report file-notify-error in w32notify.c,
Eli Zaretskii <=