From daae41005c6ff8ba7b6c389f2845d79abe3a040b Mon Sep 17 00:00:00 2001 From: Chris Howey Date: Sat, 14 Jul 2012 11:30:49 -0700 Subject: [PATCH] Linux - fix to see create of file after rename --- fsnotify.go | 2 +- fsnotify_linux.go | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/fsnotify.go b/fsnotify.go index 0798699..8e37833 100644 --- a/fsnotify.go +++ b/fsnotify.go @@ -30,7 +30,7 @@ func (w *Watcher) purgeEvents() { } if (fsnFlags&FSN_RENAME == FSN_RENAME) && ev.IsRename() { - w.RemoveWatch(ev.Name) + //w.RemoveWatch(ev.Name) sendEvent = true } diff --git a/fsnotify_linux.go b/fsnotify_linux.go index a0d10b9..73c9a3c 100644 --- a/fsnotify_linux.go +++ b/fsnotify_linux.go @@ -36,7 +36,9 @@ func (e *FileEvent) IsModify() bool { } // IsRename reports whether the FileEvent was triggerd by a change name -func (e *FileEvent) IsRename() bool { return (e.mask & IN_MOVE_SELF) == IN_MOVE_SELF } +func (e *FileEvent) IsRename() bool { + return ((e.mask&IN_MOVE_SELF) == IN_MOVE_SELF || (e.mask&IN_MOVED_FROM) == IN_MOVED_FROM) +} type watch struct { wd uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall) @@ -247,7 +249,7 @@ const ( IN_MOVE_SELF uint32 = syscall.IN_MOVE_SELF IN_OPEN uint32 = syscall.IN_OPEN - OS_AGNOSTIC_EVENTS = IN_CREATE | IN_ATTRIB | IN_MODIFY | IN_MOVE_SELF | IN_DELETE | IN_DELETE_SELF + OS_AGNOSTIC_EVENTS = IN_MOVED_FROM | IN_CREATE | IN_ATTRIB | IN_MODIFY | IN_MOVE_SELF | IN_DELETE | IN_DELETE_SELF // Special events IN_ISDIR uint32 = syscall.IN_ISDIR -- 2.50.1