Commit 8f59ff24 authored by Paul Eggert's avatar Paul Eggert
Browse files

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.
parent ebe0bdae
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment