emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 8f59ff2 1/3: Simplify computation of inotify mask


From: Paul Eggert
Subject: [Emacs-diffs] master 8f59ff2 1/3: Simplify computation of inotify mask
Date: Sat, 27 May 2017 14:14:35 -0400 (EDT)

branch: master
commit 8f59ff2461b54e29c9389cee5851f348b867a281
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Simplify computation of inotify mask
    
    * src/inotify.c (add_watch): Accept uint32_t imask instead
    of Lisp_Object aspect.  Caller changed.
    (Finotify_add_watch): Use aspect_to_inotifymask earlier, to
    simplify the code.
---
 src/inotify.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/inotify.c b/src/inotify.c
index 1165293..bcf30ad 100644
--- a/src/inotify.c
+++ b/src/inotify.c
@@ -215,16 +215,15 @@ inotifyevent_to_event (Lisp_Object watch, struct 
inotify_event const *ev)
 }
 
 /* Add a new watch to watch-descriptor WD watching FILENAME and using
-   CALLBACK.  Returns a cons (DESCRIPTOR . ID) uniquely identifying the
-   new watch.  */
+   IMASK and CALLBACK.  Return a cons (DESCRIPTOR . ID) uniquely
+   identifying the new watch.  */
 static Lisp_Object
 add_watch (int wd, Lisp_Object filename,
-          Lisp_Object aspect, Lisp_Object callback)
+          uint32_t imask, Lisp_Object callback)
 {
   Lisp_Object descriptor = INTEGER_TO_CONS (wd);
   Lisp_Object tail = assoc_no_quit (descriptor, watch_list);
   Lisp_Object watch, watch_id;
-  uint32_t imask = aspect_to_inotifymask (aspect);
   Lisp_Object mask = INTEGER_TO_CONS (imask);
 
   EMACS_INT id = 0;
@@ -436,12 +435,10 @@ IN_ONLYDIR  */)
      (Lisp_Object filename, Lisp_Object aspect, Lisp_Object callback)
 {
   Lisp_Object encoded_file_name;
-  bool dont_follow = (CONSP (aspect)
-                     ? ! NILP (Fmemq (Qdont_follow, aspect))
-                     : EQ (Qdont_follow, aspect));
   int wd = -1;
+  uint32_t imask = aspect_to_inotifymask (aspect);
   uint32_t mask = (INOTIFY_DEFAULT_MASK
-                   | (dont_follow ? IN_DONT_FOLLOW : 0));
+                  | (imask & IN_DONT_FOLLOW));
 
   CHECK_STRING (filename);
 
@@ -459,7 +456,7 @@ IN_ONLYDIR  */)
   if (wd < 0)
     report_file_notify_error ("Could not add watch for file", filename);
 
-  return add_watch (wd, filename, aspect, callback);
+  return add_watch (wd, filename, imask, callback);
 }
 
 static bool



reply via email to

[Prev in Thread] Current Thread [Next in Thread]