<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src/inotify.c, branch feature/auth-source-pass</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>* src/inotify.c (add_watch): Add comment.</title>
<updated>2017-03-31T00:48:20+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2017-03-31T00:47:58+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=7a8ae233d1bdf538a99233e52f0d7dd0975df2d1'/>
<id>7a8ae233d1bdf538a99233e52f0d7dd0975df2d1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Some inotify cleanup</title>
<updated>2017-03-30T18:08:42+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2017-03-30T18:08:23+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=6ff870218dd4bc015cc4115ceb2febd8d807e57c'/>
<id>6ff870218dd4bc015cc4115ceb2febd8d807e57c</id>
<content type='text'>
This catches some problems with integer overflow and races
that I noticed in inotify.c after reviewing the changes
installed to fix Bug#26126.
* src/fns.c, src/lisp.h (equal_no_quit): Now extern.
* src/inotify.c (aspect_to_inotifymask):
Check for cycles and for improper lists.
(make_lispy_mask, lispy_mask_match_p): Remove.
All callers changed to use INTEGER_TO_CONS and CONS_TO_INTEGER.
(inotifyevent_to_event, add_watch):
Don’t assume watch descriptors and cookies fit in fixnums.
(add_watch): Use assoc_no_quit, not Fassoc.
Avoid integer overflow in (very!) long-running processes where
the Emacs watch ID could overflow.  Avoid some duplicate code.
(find_descriptor): New function.
(remove_descriptor): First arg is now the returned value from
find_descriptor, rather than the descriptor.  This way, the
value can be removed without calling Fdelete, which might quit.
Wait until the end (when watch_list is consistent) before signaling
any errors.
(remove_watch, inotify_callback):
Use find_descriptor to avoid the need for Fdelete.
(inotify_callback): Use simpler tests for ioctl failure.
Free temporary buffer if signaled, and put it on the stack if small.
Use ssize_t to index through read results, to avoid a cast.
(valid_watch_descriptor): New function, with a tighter check.
(Finotify_rm_watch, Finotify_valid_p): Use it.
(Finotify_valid_p): Use assoc_no_quit and ass_no_quit instead
of Fassoc.  Do not assume the first assoc succeeds.
* test/src/inotify-tests.el (inotify-valid-p-simple):
Add inotify-valid-p tests, some of which dump core without
the fixes noted above.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This catches some problems with integer overflow and races
that I noticed in inotify.c after reviewing the changes
installed to fix Bug#26126.
* src/fns.c, src/lisp.h (equal_no_quit): Now extern.
* src/inotify.c (aspect_to_inotifymask):
Check for cycles and for improper lists.
(make_lispy_mask, lispy_mask_match_p): Remove.
All callers changed to use INTEGER_TO_CONS and CONS_TO_INTEGER.
(inotifyevent_to_event, add_watch):
Don’t assume watch descriptors and cookies fit in fixnums.
(add_watch): Use assoc_no_quit, not Fassoc.
Avoid integer overflow in (very!) long-running processes where
the Emacs watch ID could overflow.  Avoid some duplicate code.
(find_descriptor): New function.
(remove_descriptor): First arg is now the returned value from
find_descriptor, rather than the descriptor.  This way, the
value can be removed without calling Fdelete, which might quit.
Wait until the end (when watch_list is consistent) before signaling
any errors.
(remove_watch, inotify_callback):
Use find_descriptor to avoid the need for Fdelete.
(inotify_callback): Use simpler tests for ioctl failure.
Free temporary buffer if signaled, and put it on the stack if small.
Use ssize_t to index through read results, to avoid a cast.
(valid_watch_descriptor): New function, with a tighter check.
(Finotify_rm_watch, Finotify_valid_p): Use it.
(Finotify_valid_p): Use assoc_no_quit and ass_no_quit instead
of Fassoc.  Do not assume the first assoc succeeds.
* test/src/inotify-tests.el (inotify-valid-p-simple):
Add inotify-valid-p tests, some of which dump core without
the fixes noted above.
</pre>
</div>
</content>
</entry>
<entry>
<title>* src/inotify.c (Finotify_add_watch): aspect can also be a symbol.</title>
<updated>2017-03-28T11:38:49+00:00</updated>
<author>
<name>Michael Albinus</name>
</author>
<published>2017-03-28T11:38:49+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=969fad4068e44ae2de7632dd656c8013bb60c566'/>
<id>969fad4068e44ae2de7632dd656c8013bb60c566</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Minor fixes for inotify.c and filenotify.el</title>
<updated>2017-03-26T09:41:12+00:00</updated>
<author>
<name>Andreas Politz</name>
</author>
<published>2017-03-26T09:41:12+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=082e2cb3f40b717e4c00d31532927c9693b7cb9b'/>
<id>082e2cb3f40b717e4c00d31532927c9693b7cb9b</id>
<content type='text'>
* lisp/filenotify.el (file-notify--watch-absolute-filename):
Add docstring.
(file-notify-callback): Simplify.

* src/inotify.c (Finotify_add_watch): Adapt docstring.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/filenotify.el (file-notify--watch-absolute-filename):
Add docstring.
(file-notify-callback): Simplify.

* src/inotify.c (Finotify_add_watch): Adapt docstring.
</pre>
</div>
</content>
</entry>
<entry>
<title>; Format files from last commit</title>
<updated>2017-03-26T07:42:40+00:00</updated>
<author>
<name>Michael Albinus</name>
</author>
<published>2017-03-26T07:42:40+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=74129db63d690747c008b1b5d442fe41056584c3'/>
<id>74129db63d690747c008b1b5d442fe41056584c3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix issues regarding inotify file-notification</title>
<updated>2017-03-26T07:21:56+00:00</updated>
<author>
<name>Andreas Politz</name>
</author>
<published>2017-03-26T07:21:56+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=158bb8555dfefa50f6118be6794d0424cc52d291'/>
<id>158bb8555dfefa50f6118be6794d0424cc52d291</id>
<content type='text'>
Remove special code handling the inotify back-end.
* lisp/filenotify.el (file-notify--watch): New struct
representing a file-watch.
(file-notify-descriptors): Use the new struct as hash-value.
(file-notify-handle-event): Check that event is a cons.
(file-notify--rm-descriptor, file-notify--event-watched-file)
(file-notify--event-file-name, file-notify--event-file1-name)
(file-notify-callback, file-notify-add-watch)
(file-notify-rm-watch, file-notify-valid-p): Use new struct.
Remove special code handling inotify descriptors.  Remove code
handling multiple clients per descriptor.
(file-notify--descriptor): Remove unused function.

Let inotify-add-watch return a unique descriptor on every
call, like every other back-end does (Bug#26126).  Prevent
multiple clients from interfering with each other, when
watching a shared descriptor.
* src/inotify.c (watch_list): Extend the format by including a
id and the provided mask.
(INOTIFY_DEFAULT_MASK): Default mask used for all clients.
(make_watch_descriptor): Removed.
(make_lispy_mask, lispy_mask_match_p): New functions.
(inotifyevent_to_event): Match event against the mask provided
by the client.
(add_watch, remove_descriptor, remove_watch): New functions
for managing the watch_list.
(inotify_callback): Use the new functions.
(Finotify_add_watch, Finotify_rm_watch): Remove deprecated
flags from documentation.  Add check for validity of provided
descriptor.  Use the new functions.  Use the default mask.
(INOTIFY_DEBUG): Add new debug conditional.
(inotify-watch-list, inotify-allocated-p): New debug functions.
(symbol_to_inotifymask, syms_of_inotify): Remove deprecated symbols.

* test/lisp/filenotify-tests.el:
(file-notify-test02-rm-watch): Remove expected failure for inotify.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove special code handling the inotify back-end.
* lisp/filenotify.el (file-notify--watch): New struct
representing a file-watch.
(file-notify-descriptors): Use the new struct as hash-value.
(file-notify-handle-event): Check that event is a cons.
(file-notify--rm-descriptor, file-notify--event-watched-file)
(file-notify--event-file-name, file-notify--event-file1-name)
(file-notify-callback, file-notify-add-watch)
(file-notify-rm-watch, file-notify-valid-p): Use new struct.
Remove special code handling inotify descriptors.  Remove code
handling multiple clients per descriptor.
(file-notify--descriptor): Remove unused function.

Let inotify-add-watch return a unique descriptor on every
call, like every other back-end does (Bug#26126).  Prevent
multiple clients from interfering with each other, when
watching a shared descriptor.
* src/inotify.c (watch_list): Extend the format by including a
id and the provided mask.
(INOTIFY_DEFAULT_MASK): Default mask used for all clients.
(make_watch_descriptor): Removed.
(make_lispy_mask, lispy_mask_match_p): New functions.
(inotifyevent_to_event): Match event against the mask provided
by the client.
(add_watch, remove_descriptor, remove_watch): New functions
for managing the watch_list.
(inotify_callback): Use the new functions.
(Finotify_add_watch, Finotify_rm_watch): Remove deprecated
flags from documentation.  Add check for validity of provided
descriptor.  Use the new functions.  Use the default mask.
(INOTIFY_DEBUG): Add new debug conditional.
(inotify-watch-list, inotify-allocated-p): New debug functions.
(symbol_to_inotifymask, syms_of_inotify): Remove deprecated symbols.

* test/lisp/filenotify-tests.el:
(file-notify-test02-rm-watch): Remove expected failure for inotify.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use 'char *FOO' instead of 'char* FOO'</title>
<updated>2017-02-19T02:17:03+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2017-02-19T02:16:37+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b2a83eed23d540b4b0ab9e0bf5605821011bfd7d'/>
<id>b2a83eed23d540b4b0ab9e0bf5605821011bfd7d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge from origin/emacs-25</title>
<updated>2017-01-01T09:10:47+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2017-01-01T09:10:47+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=bcf244ef9be0fe61f4b9a48d3412b2c8a9f1edb9'/>
<id>bcf244ef9be0fe61f4b9a48d3412b2c8a9f1edb9</id>
<content type='text'>
2e2a806 Fix copyright years by hand
5badc81 Update copyright year to 2017
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
2e2a806 Fix copyright years by hand
5badc81 Update copyright year to 2017
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright year to 2017</title>
<updated>2017-01-01T03:42:26+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2017-01-01T03:14:01+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=5badc81c1cdfbb261ad3e6d1b753defb15712f26'/>
<id>5badc81c1cdfbb261ad3e6d1b753defb15712f26</id>
<content type='text'>
Run admin/update-copyright.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Run admin/update-copyright.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve filenotify-tests.el</title>
<updated>2016-12-29T18:48:17+00:00</updated>
<author>
<name>Michael Albinus</name>
</author>
<published>2016-12-29T18:48:17+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b9cacf044902df441dc7cbd9a21f36833dc40a30'/>
<id>b9cacf044902df441dc7cbd9a21f36833dc40a30</id>
<content type='text'>
* src/inotify.c (Finotify_valid_p):
* src/kqueue.c (Fkqueue_valid_p):
* src/w32notify.c (Fw32notify_valid_p):
* src/gfilenotify.c (Fgfile_valid_p): Fix typo in docstring.
(Fgfile_monitor_name): New defun.
(syms_of_gfilenotify): Declare Sgfile_monitor_name.

* test/lisp/filenotify-tests.el	(file-notify--test-read-event):
New defun, derived from `file-notify--test-read-event-timeout'.
Replace all calls of `read-event' by this.
(file-notify--test-timeout): Fix docstring.
(file-notify--test-monitor): New defun.
(file-notify--deftest-remote): Do not bind
`file-notify--test-read-event-timeout' anymore.
(file-notify-test00-availability): Print also monitor, if existent.
(file-notify--test-with-events): Add an additional
`file-notify--test-read-event' call, in order to get it work
after `file-notify-add-watch'.  Remove special timeout for cygwin.
(file-notify-test02-events): Make a better check for cygwin.
(file-notify-test06-many-events): Improve event list for cygwin.
(file-notify-test08-watched-file-in-watched-dir): Add cygwin case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/inotify.c (Finotify_valid_p):
* src/kqueue.c (Fkqueue_valid_p):
* src/w32notify.c (Fw32notify_valid_p):
* src/gfilenotify.c (Fgfile_valid_p): Fix typo in docstring.
(Fgfile_monitor_name): New defun.
(syms_of_gfilenotify): Declare Sgfile_monitor_name.

* test/lisp/filenotify-tests.el	(file-notify--test-read-event):
New defun, derived from `file-notify--test-read-event-timeout'.
Replace all calls of `read-event' by this.
(file-notify--test-timeout): Fix docstring.
(file-notify--test-monitor): New defun.
(file-notify--deftest-remote): Do not bind
`file-notify--test-read-event-timeout' anymore.
(file-notify-test00-availability): Print also monitor, if existent.
(file-notify--test-with-events): Add an additional
`file-notify--test-read-event' call, in order to get it work
after `file-notify-add-watch'.  Remove special timeout for cygwin.
(file-notify-test02-events): Make a better check for cygwin.
(file-notify-test06-many-events): Improve event list for cygwin.
(file-notify-test08-watched-file-in-watched-dir): Add cygwin case.
</pre>
</div>
</content>
</entry>
</feed>
