[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 12629d2: Implement w32notify-valid-p
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master 12629d2: Implement w32notify-valid-p |
Date: |
Mon, 14 Sep 2015 07:03:10 +0000 |
branch: master
commit 12629d2857ba2a7c8a6b6a6b61f28a179d2c92a7
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Implement w32notify-valid-p
* src/w32notify.c (Fw32notify_valid_p): New function. (Bug#21432)
* lisp/filenotify.el (w32notify-valid-p): No longer an alias for
'identity'.
---
lisp/filenotify.el | 1 -
src/w32notify.c | 24 ++++++++++++++++++++++++
2 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/lisp/filenotify.el b/lisp/filenotify.el
index 9a48c5e..002c5a5 100644
--- a/lisp/filenotify.el
+++ b/lisp/filenotify.el
@@ -359,7 +359,6 @@ DESCRIPTOR should be an object returned by
`file-notify-add-watch'."
;; Temporary declarations.
(defalias 'gfile-valid-p 'identity)
-(defalias 'w32notify-valid-p 'identity)
(defun file-notify-valid-p (descriptor)
"Check a watch specified by its DESCRIPTOR.
diff --git a/src/w32notify.c b/src/w32notify.c
index ab6cd12..fa4ad01 100644
--- a/src/w32notify.c
+++ b/src/w32notify.c
@@ -628,6 +628,29 @@ w32_get_watch_object (void *desc)
return NILP (watch_list) ? Qnil : assoc_no_quit (descriptor, watch_list);
}
+DEFUN ("w32notify-valid-p", Fw32notify_valid_p, Sw32notify_valid_p, 1, 1, 0,
+ doc: /* "Check a watch specified by its WATCH-DESCRIPTOR for validity.
+
+WATCH-DESCRIPTOR should be an object returned by `w32notify-add-watch'.
+
+A watch can become invalid if the directory it watches is deleted, or if
+the watcher thread exits abnormally for any other reason. */)
+ (Lisp_Object watch_descriptor)
+{
+ Lisp_Object watch_object = Fassoc (watch_descriptor, watch_list);
+
+ if (!NILP (watch_object))
+ {
+ struct notification *dirwatch =
+ (struct notification *)XINTPTR (watch_descriptor);
+ if (w32_valid_pointer_p (dirwatch, sizeof(struct notification))
+ && dirwatch->dir != NULL)
+ return Qt;
+ }
+
+ return Qnil;
+}
+
void
globals_of_w32notify (void)
{
@@ -648,6 +671,7 @@ syms_of_w32notify (void)
defsubr (&Sw32notify_add_watch);
defsubr (&Sw32notify_rm_watch);
+ defsubr (&Sw32notify_valid_p);
staticpro (&watch_list);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 12629d2: Implement w32notify-valid-p,
Eli Zaretskii <=