@@ -230,6 +230,7 @@ static void uv__fsevents_event_cb(ConstFSEventStreamRef streamRef,
230
230
uv_loop_t * loop ;
231
231
uv__cf_loop_state_t * state ;
232
232
uv__fsevents_event_t * event ;
233
+ FSEventStreamEventFlags flags ;
233
234
QUEUE head ;
234
235
235
236
loop = info ;
@@ -245,8 +246,10 @@ static void uv__fsevents_event_cb(ConstFSEventStreamRef streamRef,
245
246
246
247
/* Process and filter out events */
247
248
for (i = 0 ; i < numEvents ; i ++ ) {
249
+ flags = eventFlags [i ];
250
+
248
251
/* Ignore system events */
249
- if (eventFlags [ i ] & kFSEventsSystem )
252
+ if (flags & kFSEventsSystem )
250
253
continue ;
251
254
252
255
path = paths [i ];
@@ -271,6 +274,9 @@ static void uv__fsevents_event_cb(ConstFSEventStreamRef streamRef,
271
274
/* Ignore events with path equal to directory itself */
272
275
if (len == 0 )
273
276
continue ;
277
+ #else
278
+ if (len == 0 && (flags & kFSEventStreamEventFlagItemIsDir ))
279
+ continue ;
274
280
#endif /* MAC_OS_X_VERSION_10_7 */
275
281
276
282
/* Do not emit events from subdirectories (without option set) */
@@ -291,12 +297,24 @@ static void uv__fsevents_event_cb(ConstFSEventStreamRef streamRef,
291
297
292
298
memset (event , 0 , sizeof (* event ));
293
299
memcpy (event -> path , path , len + 1 );
300
+ event -> events = UV_RENAME ;
294
301
295
- if ((eventFlags [i ] & kFSEventsModified ) != 0 &&
296
- (eventFlags [i ] & kFSEventsRenamed ) == 0 )
302
+ #ifdef MAC_OS_X_VERSION_10_7
303
+ if (0 != (flags & kFSEventsModified ) &&
304
+ 0 == (flags & kFSEventsRenamed )) {
305
+ event -> events = UV_CHANGE ;
306
+ }
307
+ #else
308
+ if (0 != (flags & kFSEventsModified ) &&
309
+ 0 != (flags & kFSEventStreamEventFlagItemIsDir ) &&
310
+ 0 == (flags & kFSEventStreamEventFlagItemRenamed )) {
297
311
event -> events = UV_CHANGE ;
298
- else
299
- event -> events = UV_RENAME ;
312
+ }
313
+ if (0 == (flags & kFSEventStreamEventFlagItemIsDir ) &&
314
+ 0 == (flags & kFSEventStreamEventFlagItemRenamed )) {
315
+ event -> events = UV_CHANGE ;
316
+ }
317
+ #endif /* MAC_OS_X_VERSION_10_7 */
300
318
301
319
QUEUE_INSERT_TAIL (& head , & event -> member );
302
320
}
0 commit comments