@@ -32,20 +32,32 @@
3232--
3333-- =BUGS
3434--
35−-- There may be some idiosyncracies in event reporting likely due to temporal
36−-- coalescing of events by the macOS fs events implementation.
37−--
38−-- 1. Multiple events that happen in quick succession may be coalesced into a
39−-- single event with multiple event flags set. We have observed that sometimes
40−-- "Deleted", "Renamed", "Modified" events have "Created" flag also present.
41−-- For example, on macOS 10.15.1, try "touch x; rm x" or "rm x; touch
42−-- x" or "touch x; mv x y". Sometimes even just an "rm x" produces both flags.
43−-- 2. Sometimes it has been seen that the earlier events go missing and only
44−-- the latest one is reported. See 'isCreated' for one such case.
45−-- 3. When @rm -rf@ is used on the watched root directory, only one 'isDeleted'
35+-- There may be some idiosyncrasies in event reporting.
36+--
37+-- 1. Multiple events may be coalesced into a single event having multiple
38+-- flags set. For example, on macOS 10.15.6, "touch x; rm x" or "touch x; mv x
39+-- y" produces an event with both "Created" and "Deleted/Moved" flags set.
40+--
41+-- 2. The same event can occur multiple times. For example, "touch x; sleep 1;
42+-- rm x" generates a "Created" event followed by an event with both "Created"
43+-- and "Deleted" flags set. Similarly, a cloned event can also occur multiple
44+-- times.
45+--
46+-- 3. Some events can go missing and only the latest one is reported. See
47+-- 'isCreated' for one such case.
48+--
49+-- 4. When @rm -rf@ is used on the watched root directory, only one 'isDeleted'
4650-- event occurs and that is for the root. However, @rm -rf@ on a directory
4751-- inside the watch root produces 'isDeleted' events for all files.
4852--
53+-- 5. When a file is moved, a move event occurs for both the source and the
54+-- destination files. There seems to be no way to distinguish the source and
55+-- the destination. Perhaps the lower eventId can be considered as source.
56+--
57+-- 6. When a file is cloned both source and destination generate a cloned
58+-- event, however the source has lower eventId and destination may have
59+-- OwnerGroupModeChanged, InodeAttrsChanged, Created flags as well.
60+--
4961-- You may have to stat the path of the event to know more information about
5062-- what might have happened. It may be a good idea to watch the behavior of
5163-- events you are handling before you can rely on it. See the individual event
@@ -789,9 +801,9 @@ foreign import ccall safe
789801-- non-existing path and the path is created later, then this event is not
790802-- generated, the path is not watched.
791803--
792−-- BUGS: When we use a "touch x" to create a file for the first time only an
793−-- 'isInodeAttrsChanged' event occurs and there is no 'isCreated' event (tested
794−-- on 10.15.1).
804+-- BUGS: On 10.15.1 when we use a "touch x" to create a file for the first time
805+-- only an 'isInodeAttrsChanged' event occurs and there is no 'isCreated'
806+-- event. However, this seems to have been fixed on 10.15.6.
795807--
796808-- /Applicable only when 'setFileEvents' is 'On'/
797809--
@@ -863,7 +875,8 @@ foreign import ccall safe
863875 kFSEventStreamEventFlagItemCloned :: Word32
864876
865877-- | Determine whether the event indicates cloning of an object within the
866−-- monitored path.
878+-- monitored path. The "Duplicate" command in the "File" menu of the "Finder"
879+-- application generates a "clone" event.
867880--
868881-- Applicable only when 'setFileEvents' is 'On'.
869882--