Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fswatch for openSUSE:Factory checked 
in at 2026-07-28 18:14:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fswatch (Old)
 and      /work/SRC/openSUSE:Factory/.fswatch.new.2004 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fswatch"

Tue Jul 28 18:14:35 2026 rev:8 rq:1368044 version:1.22.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/fswatch/fswatch.changes  2026-05-12 
19:32:33.461728773 +0200
+++ /work/SRC/openSUSE:Factory/.fswatch.new.2004/fswatch.changes        
2026-07-28 18:16:33.095681698 +0200
@@ -1,0 +2,8 @@
+Mon Jul 27 13:11:13 UTC 2026 - Michal Vyskocil <[email protected]>
+
+- update to 1.22.0
+  * The inotify monitor now appends the kernel-provided child name
+    to MovedFrom and MovedTo event paths while forwarding
+    rename-correlation cookies unchanged.
+
+-------------------------------------------------------------------

Old:
----
  fswatch-1.21.0.tar.gz

New:
----
  fswatch-1.22.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fswatch.spec ++++++
--- /var/tmp/diff_new_pack.gGgliY/_old  2026-07-28 18:16:35.159753854 +0200
+++ /var/tmp/diff_new_pack.gGgliY/_new  2026-07-28 18:16:35.163753994 +0200
@@ -19,7 +19,7 @@
 %global sover 15
 
 Name:           fswatch
-Version:        1.21.0
+Version:        1.22.0
 Release:        0
 Summary:        Multi platform file change monitor
 License:        GPL-3.0-or-later

++++++ fswatch-1.21.0.tar.gz -> fswatch-1.22.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/.github/workflows/c-cpp.yml 
new/fswatch-1.22.0/.github/workflows/c-cpp.yml
--- old/fswatch-1.21.0/.github/workflows/c-cpp.yml      2026-05-09 
23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/.github/workflows/c-cpp.yml      2026-07-22 
11:59:23.000000000 +0200
@@ -36,7 +36,7 @@
     runs-on: ${{ matrix.os }}
 
     steps:
-    - uses: actions/checkout@v5
+    - uses: actions/checkout@v6
 
     - name: Install dependencies on Ubuntu
       if: matrix.os == 'ubuntu-latest'
@@ -88,7 +88,7 @@
 
     steps:
     - name: Report autotools result
-      uses: actions/github-script@v8
+      uses: actions/github-script@v9
       with:
         script: |
           const buildResult = '${{ needs.build.result }}';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fswatch-1.21.0/.github/workflows/cmake-libfswatch.yml 
new/fswatch-1.22.0/.github/workflows/cmake-libfswatch.yml
--- old/fswatch-1.21.0/.github/workflows/cmake-libfswatch.yml   2026-05-09 
23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/.github/workflows/cmake-libfswatch.yml   2026-07-22 
11:59:23.000000000 +0200
@@ -19,7 +19,7 @@
     runs-on: windows-latest
 
     steps:
-    - uses: actions/checkout@v5
+    - uses: actions/checkout@v6
 
     - name: Install MSYS2 MinGW toolchain
       shell: pwsh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/.github/workflows/cmake.yml 
new/fswatch-1.22.0/.github/workflows/cmake.yml
--- old/fswatch-1.21.0/.github/workflows/cmake.yml      2026-05-09 
23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/.github/workflows/cmake.yml      2026-07-22 
11:59:23.000000000 +0200
@@ -19,7 +19,7 @@
     runs-on: ${{ matrix.os }}
 
     steps:
-    - uses: actions/checkout@v5
+    - uses: actions/checkout@v6
 
     - name: Configure CMake
       # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only 
required if you are using a single-configuration generator such as make.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/.github/workflows/release-tarball.yml 
new/fswatch-1.22.0/.github/workflows/release-tarball.yml
--- old/fswatch-1.21.0/.github/workflows/release-tarball.yml    2026-05-09 
23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/.github/workflows/release-tarball.yml    2026-07-22 
11:59:23.000000000 +0200
@@ -13,13 +13,13 @@
     runs-on: ubuntu-latest
 
     steps:
-    - uses: actions/checkout@v5
+    - uses: actions/checkout@v6
       with:
         ref: ${{ github.event.release.tag_name }}
 
     - name: Check autotools status
       id: check_status
-      uses: actions/github-script@v8
+      uses: actions/github-script@v9
       with:
         script: |
           const owner = context.repo.owner;
@@ -83,6 +83,32 @@
           --repo "${GITHUB_REPOSITORY}" \
           --clobber
 
+    - name: Build static Linux x86_64 convenience binary
+      env:
+        TAG_NAME: ${{ github.event.release.tag_name }}
+      run: |
+        docker run --rm \
+          -e JOBS="$(nproc)" \
+          -e TAG_NAME="${TAG_NAME}" \
+          -v "${PWD}:/work" \
+          -w /work \
+          alpine:latest \
+          sh -euxc '
+            apk add --no-cache autoconf automake binutils build-base file 
gettext-dev git libtool make tar texinfo zsh
+            git config --global --add safe.directory /work
+            zsh ./scripts/release/build-static-linux-x86_64.zsh "${TAG_NAME}"
+          '
+
+    - name: Upload static Linux x86_64 convenience binary
+      env:
+        GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        TAG_NAME: ${{ github.event.release.tag_name }}
+      run: |
+        gh release upload "${TAG_NAME}" \
+          
"./fswatch-${TAG_NAME}-linux-x86_64-static.tar.gz#fswatch-${TAG_NAME}-linux-x86_64-static.tar.gz"
 \
+          --repo "${GITHUB_REPOSITORY}" \
+          --clobber
+
     - name: Build PDF documentation
       run: make -j pdf
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/CMakeLists.txt 
new/fswatch-1.22.0/CMakeLists.txt
--- old/fswatch-1.21.0/CMakeLists.txt   2026-05-09 23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/CMakeLists.txt   2026-07-22 11:59:23.000000000 +0200
@@ -14,7 +14,7 @@
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 cmake_minimum_required(VERSION 3.14)
-project(fswatch VERSION 1.21.0 LANGUAGES C CXX)
+project(fswatch VERSION 1.22.0 LANGUAGES C CXX)
 
 set(VERSION_MODIFIER "")
 set(FULL_VERSION "${PROJECT_VERSION}${VERSION_MODIFIER}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/NEWS new/fswatch-1.22.0/NEWS
--- old/fswatch-1.21.0/NEWS     2026-05-09 23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/NEWS     2026-07-22 11:59:23.000000000 +0200
@@ -1,6 +1,16 @@
 NEWS
 ****
 
+New in 1.22.0:
+
+  * The release workflow now provides an experimental static Linux x86_64
+    archive.
+
+  * Bug fix, PR 388, Issue 387: On Linux, inotify MovedFrom and MovedTo events
+    now report the complete child path for one-sided moves and paired renames,
+    while preserving the kernel rename-correlation cookie.
+
+
 New in 1.21.0:
 
   * CLI, Issues 104 and 273: Add --filter-mode=conjunctive.  In this mode,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/NEWS.libfswatch 
new/fswatch-1.22.0/NEWS.libfswatch
--- old/fswatch-1.21.0/NEWS.libfswatch  2026-05-09 23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/NEWS.libfswatch  2026-07-22 11:59:23.000000000 +0200
@@ -1,6 +1,13 @@
 NEWS
 ****
 
+New in 1.22.0:
+
+  * Bug fix, PR 388, Issue 387: The inotify monitor now appends the
+    kernel-provided child name to MovedFrom and MovedTo event paths while
+    forwarding rename-correlation cookies unchanged.
+
+
 New in 1.21.0:
 
   * API, Issues 104 and 273: Add conjunctive path filter evaluation mode.  In
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fswatch-1.21.0/libfswatch/src/libfswatch/c++/inotify_monitor.cpp 
new/fswatch-1.22.0/libfswatch/src/libfswatch/c++/inotify_monitor.cpp
--- old/fswatch-1.21.0/libfswatch/src/libfswatch/c++/inotify_monitor.cpp        
2026-05-09 23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/libfswatch/src/libfswatch/c++/inotify_monitor.cpp        
2026-07-22 11:59:23.000000000 +0200
@@ -327,7 +327,17 @@
 
     if (!flags.empty())
     {
-      impl->events.emplace_back(impl->wd_to_path[event->wd], impl->curr_time, 
flags, event->cookie);
+      std::ostringstream filename_stream;
+      filename_stream << impl->wd_to_path[event->wd];
+
+      if ((event->mask & (IN_MOVED_FROM | IN_MOVED_TO)) &&
+          event->len > 0 && event->name[0] != '\0')
+      {
+        filename_stream << "/";
+        filename_stream << event->name;
+      }
+
+      impl->events.emplace_back(filename_stream.str(), impl->curr_time, flags, 
event->cookie);
     }
 
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/m4/fswatch_version.m4 
new/fswatch-1.22.0/m4/fswatch_version.m4
--- old/fswatch-1.21.0/m4/fswatch_version.m4    2026-05-09 23:51:20.000000000 
+0200
+++ new/fswatch-1.22.0/m4/fswatch_version.m4    2026-07-22 11:59:23.000000000 
+0200
@@ -13,5 +13,5 @@
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 #
-m4_define([FSWATCH_VERSION], [1.21.0])
+m4_define([FSWATCH_VERSION], [1.22.0])
 m4_define([FSWATCH_REVISION], [1])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/m4/libfswatch_version.m4 
new/fswatch-1.22.0/m4/libfswatch_version.m4
--- old/fswatch-1.21.0/m4/libfswatch_version.m4 2026-05-09 23:51:20.000000000 
+0200
+++ new/fswatch-1.22.0/m4/libfswatch_version.m4 2026-07-22 11:59:23.000000000 
+0200
@@ -37,6 +37,6 @@
 #
 # Libtool documentation, 7.3 Updating library version information
 #
-m4_define([LIBFSWATCH_VERSION], [1.21.0])
-m4_define([LIBFSWATCH_API_VERSION], [15:0:0])
+m4_define([LIBFSWATCH_VERSION], [1.22.0])
+m4_define([LIBFSWATCH_API_VERSION], [15:1:0])
 m4_define([LIBFSWATCH_REVISION], [1])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/po/en.po new/fswatch-1.22.0/po/en.po
--- old/fswatch-1.21.0/po/en.po 2026-05-09 23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/po/en.po 2026-07-22 11:59:23.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: fswatch 1.11.3\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2026-05-09 20:17+0200\n"
+"POT-Creation-Date: 2026-07-22 10:43+0200\n"
 "PO-Revision-Date: 2017-10-29 14:04+0100\n"
 "Last-Translator: Enrico Maria Crisostomo <[email protected]>\n"
 "Language-Team: English\n"
@@ -342,7 +342,7 @@
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:480
 #: libfswatch/src/libfswatch/c++/fen_monitor.cpp:297
 #: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:293
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:515
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:525
 #: libfswatch/src/libfswatch/c++/kqueue_monitor.cpp:227
 #: libfswatch/src/libfswatch/c++/poll_monitor.cpp:169
 #, c-format
@@ -350,7 +350,7 @@
 msgstr ""
 
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:466
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:501
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:511
 #, c-format
 msgid "Synthetic event: processing directory: %s\n"
 msgstr ""
@@ -483,23 +483,23 @@
 msgid "Added: "
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:373
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:383
 msgid "Generic event: "
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:465
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:475
 msgid "Removed: "
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:601
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:611
 msgid "Number of records: "
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:607
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:617
 msgid "read() on inotify descriptor read 0 records."
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:615
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:625
 msgid "read() on inotify descriptor returned -1."
 msgstr ""
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/po/[email protected] 
new/fswatch-1.22.0/po/[email protected]
--- old/fswatch-1.21.0/po/[email protected]      2026-05-09 23:51:20.000000000 
+0200
+++ new/fswatch-1.22.0/po/[email protected]      2026-07-22 11:59:23.000000000 
+0200
@@ -30,10 +30,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: fswatch 1.21.0\n"
+"Project-Id-Version: fswatch 1.22.0\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2026-05-09 20:17+0200\n"
-"PO-Revision-Date: 2026-05-09 20:17+0200\n"
+"POT-Creation-Date: 2026-07-22 10:43+0200\n"
+"PO-Revision-Date: 2026-07-22 10:43+0200\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "Language: en@boldquot\n"
@@ -378,7 +378,7 @@
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:480
 #: libfswatch/src/libfswatch/c++/fen_monitor.cpp:297
 #: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:293
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:515
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:525
 #: libfswatch/src/libfswatch/c++/kqueue_monitor.cpp:227
 #: libfswatch/src/libfswatch/c++/poll_monitor.cpp:169
 #, c-format
@@ -386,7 +386,7 @@
 msgstr "Filesystem error: %s"
 
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:466
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:501
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:511
 #, c-format
 msgid "Synthetic event: processing directory: %s\n"
 msgstr "Synthetic event: processing directory: %s\n"
@@ -519,23 +519,23 @@
 msgid "Added: "
 msgstr "Added: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:373
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:383
 msgid "Generic event: "
 msgstr "Generic event: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:465
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:475
 msgid "Removed: "
 msgstr "Removed: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:601
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:611
 msgid "Number of records: "
 msgstr "Number of records: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:607
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:617
 msgid "read() on inotify descriptor read 0 records."
 msgstr "read() on inotify descriptor read 0 records."
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:615
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:625
 msgid "read() on inotify descriptor returned -1."
 msgstr "read() on inotify descriptor returned -1."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/po/[email protected] 
new/fswatch-1.22.0/po/[email protected]
--- old/fswatch-1.21.0/po/[email protected]  2026-05-09 23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/po/[email protected]  2026-07-22 11:59:23.000000000 +0200
@@ -27,10 +27,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: fswatch 1.21.0\n"
+"Project-Id-Version: fswatch 1.22.0\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2026-05-09 20:17+0200\n"
-"PO-Revision-Date: 2026-05-09 20:17+0200\n"
+"POT-Creation-Date: 2026-07-22 10:43+0200\n"
+"PO-Revision-Date: 2026-07-22 10:43+0200\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "Language: en@quot\n"
@@ -375,7 +375,7 @@
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:480
 #: libfswatch/src/libfswatch/c++/fen_monitor.cpp:297
 #: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:293
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:515
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:525
 #: libfswatch/src/libfswatch/c++/kqueue_monitor.cpp:227
 #: libfswatch/src/libfswatch/c++/poll_monitor.cpp:169
 #, c-format
@@ -383,7 +383,7 @@
 msgstr "Filesystem error: %s"
 
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:466
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:501
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:511
 #, c-format
 msgid "Synthetic event: processing directory: %s\n"
 msgstr "Synthetic event: processing directory: %s\n"
@@ -516,23 +516,23 @@
 msgid "Added: "
 msgstr "Added: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:373
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:383
 msgid "Generic event: "
 msgstr "Generic event: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:465
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:475
 msgid "Removed: "
 msgstr "Removed: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:601
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:611
 msgid "Number of records: "
 msgstr "Number of records: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:607
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:617
 msgid "read() on inotify descriptor read 0 records."
 msgstr "read() on inotify descriptor read 0 records."
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:615
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:625
 msgid "read() on inotify descriptor returned -1."
 msgstr "read() on inotify descriptor returned -1."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/po/es.po new/fswatch-1.22.0/po/es.po
--- old/fswatch-1.21.0/po/es.po 2026-05-09 23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/po/es.po 2026-07-22 11:59:23.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: fswatch 1.11.3\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2026-05-09 20:17+0200\n"
+"POT-Creation-Date: 2026-07-22 10:43+0200\n"
 "PO-Revision-Date: 2017-10-29 14:04+0100\n"
 "Last-Translator: Enrico Maria Crisostomo <[email protected]>\n"
 "Language-Team: Spanish <[email protected]>\n"
@@ -358,7 +358,7 @@
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:480
 #: libfswatch/src/libfswatch/c++/fen_monitor.cpp:297
 #: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:293
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:515
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:525
 #: libfswatch/src/libfswatch/c++/kqueue_monitor.cpp:227
 #: libfswatch/src/libfswatch/c++/poll_monitor.cpp:169
 #, c-format
@@ -366,7 +366,7 @@
 msgstr "Error del sistema de ficheros: %s"
 
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:466
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:501
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:511
 #, c-format
 msgid "Synthetic event: processing directory: %s\n"
 msgstr "Evento sintético: procesando carpeta: %s\n"
@@ -499,23 +499,23 @@
 msgid "Added: "
 msgstr "Añadiendo: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:373
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:383
 msgid "Generic event: "
 msgstr "Evento genérico: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:465
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:475
 msgid "Removed: "
 msgstr "Eliminado: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:601
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:611
 msgid "Number of records: "
 msgstr "Numero de registros: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:607
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:617
 msgid "read() on inotify descriptor read 0 records."
 msgstr "read() sobre el descriptor inotify leyó 0 registros."
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:615
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:625
 msgid "read() on inotify descriptor returned -1."
 msgstr "read() sobre le descriptor inotify devolvió -1."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/po/fswatch.pot 
new/fswatch-1.22.0/po/fswatch.pot
--- old/fswatch-1.21.0/po/fswatch.pot   2026-05-09 23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/po/fswatch.pot   2026-07-22 11:59:23.000000000 +0200
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: fswatch 1.21.0\n"
+"Project-Id-Version: fswatch 1.22.0\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2026-05-09 20:17+0200\n"
+"POT-Creation-Date: 2026-07-22 10:43+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -342,7 +342,7 @@
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:480
 #: libfswatch/src/libfswatch/c++/fen_monitor.cpp:297
 #: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:293
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:515
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:525
 #: libfswatch/src/libfswatch/c++/kqueue_monitor.cpp:227
 #: libfswatch/src/libfswatch/c++/poll_monitor.cpp:169
 #, c-format
@@ -350,7 +350,7 @@
 msgstr ""
 
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:466
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:501
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:511
 #, c-format
 msgid "Synthetic event: processing directory: %s\n"
 msgstr ""
@@ -483,23 +483,23 @@
 msgid "Added: "
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:373
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:383
 msgid "Generic event: "
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:465
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:475
 msgid "Removed: "
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:601
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:611
 msgid "Number of records: "
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:607
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:617
 msgid "read() on inotify descriptor read 0 records."
 msgstr ""
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:615
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:625
 msgid "read() on inotify descriptor returned -1."
 msgstr ""
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/po/it.po new/fswatch-1.22.0/po/it.po
--- old/fswatch-1.21.0/po/it.po 2026-05-09 23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/po/it.po 2026-07-22 11:59:23.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: fswatch 1.11.3\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2026-05-09 20:17+0200\n"
+"POT-Creation-Date: 2026-07-22 10:43+0200\n"
 "PO-Revision-Date: 2018-05-02 17:29+0200\n"
 "Last-Translator: Enrico Maria Crisostomo <[email protected]>\n"
 "Language-Team: Italian <[email protected]>\n"
@@ -361,7 +361,7 @@
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:480
 #: libfswatch/src/libfswatch/c++/fen_monitor.cpp:297
 #: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:293
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:515
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:525
 #: libfswatch/src/libfswatch/c++/kqueue_monitor.cpp:227
 #: libfswatch/src/libfswatch/c++/poll_monitor.cpp:169
 #, c-format
@@ -369,7 +369,7 @@
 msgstr "Errore del file system: %s"
 
 #: libfswatch/src/libfswatch/c++/fanotify_monitor.cpp:466
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:501
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:511
 #, c-format
 msgid "Synthetic event: processing directory: %s\n"
 msgstr "Evento sintetico: elaborazione directory: %s\n"
@@ -502,23 +502,23 @@
 msgid "Added: "
 msgstr "Aggiunto: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:373
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:383
 msgid "Generic event: "
 msgstr "Evento generico: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:465
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:475
 msgid "Removed: "
 msgstr "Eliminato: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:601
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:611
 msgid "Number of records: "
 msgstr "Numero di registri: "
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:607
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:617
 msgid "read() on inotify descriptor read 0 records."
 msgstr "read() sul descrittore inotify ha trovato 0 registri."
 
-#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:615
+#: libfswatch/src/libfswatch/c++/inotify_monitor.cpp:625
 msgid "read() on inotify descriptor returned -1."
 msgstr "read() sul descrittore inotify ha ritornato -1."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fswatch-1.21.0/scripts/release/build-static-linux-x86_64.zsh 
new/fswatch-1.22.0/scripts/release/build-static-linux-x86_64.zsh
--- old/fswatch-1.21.0/scripts/release/build-static-linux-x86_64.zsh    
1970-01-01 01:00:00.000000000 +0100
+++ new/fswatch-1.22.0/scripts/release/build-static-linux-x86_64.zsh    
2026-07-22 11:59:23.000000000 +0200
@@ -0,0 +1,164 @@
+#!/bin/zsh
+# -*- vim:fenc=utf-8:et:sw=2:ts=2:sts=2
+#
+# Copyright (c) 2026 Enrico M. Crisostomo
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program.  If not, see <http://www.gnu.org/licenses/>.
+
+setopt local_options
+setopt local_traps
+unsetopt glob_subst
+
+set -o errexit
+set -o nounset
+
+PROGNAME=${0:t}
+PROGDIR=${0:A:h}
+
+. "${PROGDIR}/lib.zsh"
+
+usage()
+{
+  print -- "Usage: ${PROGNAME} VERSION"
+  print
+  print -- "Build fswatch-VERSION-linux-x86_64-static.tar.gz."
+}
+
+(( $# == 1 )) || {
+  usage
+  exit 1
+}
+
+release_parse_version "$1"
+
+repo_root=$(release_repo_root)
+cd "${repo_root}"
+
+[[ "$(uname -s)" == "Linux" ]] ||
+  release_die "static convenience binary must be built on Linux"
+[[ "$(uname -m)" == "x86_64" ]] ||
+  release_die "static convenience binary must be built on x86_64"
+
+for required_command in file git ldd make readelf sha256sum tar
+do
+  command -v "${required_command}" > /dev/null ||
+    release_die "required command not found: ${required_command}"
+done
+
+artifact="fswatch-${RELEASE_VERSION}-linux-x86_64-static.tar.gz"
+work_root="${TMPDIR:-/tmp}/fswatch-static-linux-x86_64-${RELEASE_VERSION}-$$"
+source_dir="${work_root}/source"
+build_dir="${work_root}/build"
+stage_dir="${work_root}/stage"
+
+cleanup()
+{
+  rm -rf "${work_root}"
+}
+trap cleanup EXIT
+
+rm -f "${artifact}"
+mkdir -p "${source_dir}" "${build_dir}" "${stage_dir}"
+
+git ls-files -z |
+  tar --null -T - -cf - |
+  tar -C "${source_dir}" -xf -
+
+(
+  cd "${source_dir}"
+  ./autogen.sh
+)
+
+(
+  cd "${build_dir}"
+  "${source_dir}/configure" \
+    --disable-shared \
+    --enable-static \
+    --disable-nls \
+    CFLAGS="-O2" \
+    CXXFLAGS="-O2" \
+    LDFLAGS="-static"
+  jobs="${JOBS:-$(getconf _NPROCESSORS_ONLN 2> /dev/null || print 2)}"
+  make -j "${jobs}" -C libfswatch/src
+  make -j "${jobs}" -C fswatch/src \
+    AM_LDFLAGS="-all-static" \
+    LDFLAGS="-static -no-pie -static-libgcc -static-libstdc++"
+)
+
+built_fswatch="${build_dir}/fswatch/src/fswatch"
+if ! file "${built_fswatch}" | grep -Eq 'ELF 64-bit.*x86-64'
+then
+  if [[ -x "${build_dir}/fswatch/src/.libs/fswatch" ]]
+  then
+    built_fswatch="${build_dir}/fswatch/src/.libs/fswatch"
+  fi
+fi
+
+file "${built_fswatch}" | tee "${work_root}/file.txt"
+ldd "${built_fswatch}" > "${work_root}/ldd.txt" 2>&1 || true
+cat "${work_root}/ldd.txt"
+readelf -d "${built_fswatch}" > "${work_root}/readelf-d.txt" 2>&1 || true
+cat "${work_root}/readelf-d.txt"
+
+file "${built_fswatch}" | grep -Eq 'ELF 64-bit.*x86-64' ||
+  release_die "fswatch is not a Linux x86_64 ELF executable"
+
+if readelf -l "${built_fswatch}" | grep -q 'INTERP'
+then
+  release_die "fswatch has an ELF interpreter and is dynamically linked"
+fi
+
+if grep -q '(NEEDED)' "${work_root}/readelf-d.txt"
+then
+  release_die "fswatch has NEEDED shared library entries"
+fi
+
+if ! grep -Eiq 'not a dynamic executable|not a valid dynamic|statically 
linked' "${work_root}/ldd.txt"
+then
+  release_die "ldd did not identify fswatch as a static executable"
+fi
+
+cp "${built_fswatch}" "${stage_dir}/fswatch"
+cp "${source_dir}/COPYING" "${stage_dir}/COPYING"
+cat > "${stage_dir}/README.binary" <<EOF
+fswatch ${RELEASE_VERSION} Linux x86_64 static convenience binary
+
+This is an experimental convenience binary for Linux x86_64 systems only.
+It is built as a static executable, using a musl-based build environment in the
+GitHub release workflow.
+
+This binary is not the recommended installation path.  Package managers and
+distro packages remain the recommended way to install fswatch.  If you need
+integration with your distribution, use your distribution's fswatch package
+instead.
+
+This package intentionally contains only the fswatch executable and license
+metadata.  It does not include libfswatch ABI/API artifacts, headers,
+pkg-config files, man pages, shared libraries, or static libraries.
+EOF
+
+(
+  cd "${stage_dir}"
+  sha256sum fswatch COPYING README.binary > SHA256SUMS
+  tar -czf "${repo_root}/${artifact}" fswatch COPYING README.binary SHA256SUMS
+)
+
+tar -tzf "${artifact}" | sed '/./!d' > "${work_root}/tar-contents.txt"
+if ! cmp -s "${work_root}/tar-contents.txt" =(print -l fswatch COPYING 
README.binary SHA256SUMS)
+then
+  print -u2 -- "unexpected tarball contents:"
+  cat "${work_root}/tar-contents.txt" >&2
+  release_die "${artifact} does not contain exactly the expected files"
+fi
+
+release_info "created ${artifact}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/scripts/release/watch.zsh 
new/fswatch-1.22.0/scripts/release/watch.zsh
--- old/fswatch-1.21.0/scripts/release/watch.zsh        2026-05-09 
23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/scripts/release/watch.zsh        2026-07-22 
11:59:23.000000000 +0200
@@ -188,27 +188,32 @@
   release_die "GitHub release tag is ${release_tag}, expected 
${RELEASE_VERSION}"
 
 expected_tarball="fswatch-${RELEASE_VERSION}.tar.gz"
+expected_static_binary="fswatch-${RELEASE_VERSION}-linux-x86_64-static.tar.gz"
 expected_pdf="fswatch-${RELEASE_VERSION}.pdf"
+expected_doxygen_html="fswatch-${RELEASE_VERSION}-libfswatch-doxygen-html.tar.gz"
 typeset -i failures=0
 
-if print -r -- "${asset_names}" | grep -Fxq "${expected_tarball}"
-then
-  print -- "ok: release asset exists: ${expected_tarball}"
-else
-  print -u2 -- "FAIL: release asset is missing: ${expected_tarball}"
-  failures+=1
-fi
-
-if print -r -- "${asset_names}" | grep -Fxq "${expected_pdf}"
-then
-  print -- "ok: release asset exists: ${expected_pdf}"
-else
-  print -u2 -- "FAIL: release asset is missing: ${expected_pdf}"
-  failures+=1
-fi
+for expected_asset in \
+  "${expected_tarball}" \
+  "${expected_static_binary}" \
+  "${expected_pdf}" \
+  "${expected_doxygen_html}"
+do
+  if print -r -- "${asset_names}" | grep -Fxq "${expected_asset}"
+  then
+    print -- "ok: release asset exists: ${expected_asset}"
+  else
+    print -u2 -- "FAIL: release asset is missing: ${expected_asset}"
+    failures+=1
+  fi
+done
 
 extra_assets=$(print -r -- "${asset_names}" |
-  grep -Fvx -e "${expected_tarball}" -e "${expected_pdf}" || true)
+  grep -Fvx \
+    -e "${expected_tarball}" \
+    -e "${expected_static_binary}" \
+    -e "${expected_pdf}" \
+    -e "${expected_doxygen_html}" || true)
 
 if [[ -n "${extra_assets}" ]]
 then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fswatch-1.21.0/test/inotify_basic_events.sh 
new/fswatch-1.22.0/test/inotify_basic_events.sh
--- old/fswatch-1.21.0/test/inotify_basic_events.sh     2026-05-09 
23:51:20.000000000 +0200
+++ new/fswatch-1.22.0/test/inotify_basic_events.sh     2026-07-22 
11:59:23.000000000 +0200
@@ -43,23 +43,50 @@
 trap cleanup EXIT INT TERM
 
 TESTDIR="${WORKDIR}/watched"
-mkdir "${TESTDIR}"
+OUTSIDE_IN="${WORKDIR}/outside-in"
+OUTSIDE_OUT="${WORKDIR}/outside-out"
+SYMLINK_TARGET="${WORKDIR}/symlink-target"
+SYMLINK_ROOT="${WORKDIR}/watched-link"
+mkdir "${TESTDIR}" "${OUTSIDE_IN}" "${OUTSIDE_OUT}" "${SYMLINK_TARGET}"
+ln -s "${SYMLINK_TARGET}" "${SYMLINK_ROOT}"
 
-"${FSWATCH}" -m inotify_monitor -r --format '%p %f' "${TESTDIR}" \
+"${FSWATCH}" -m inotify_monitor -r --format '%p|%f|%c' \
+  "${TESTDIR}" "${SYMLINK_ROOT}" \
   > "${WORKDIR}/out.log" 2> "${WORKDIR}/err.log" &
 PID=$!
 
 sleep 1
 
 CREATE_FILE="${TESTDIR}/created.txt"
-MOVE_SOURCE="${TESTDIR}/move-source.txt"
-MOVE_TARGET="${TESTDIR}/move-target.txt"
+MOVE_IN_SOURCE="${OUTSIDE_IN}/move-in.txt"
+MOVE_IN_TARGET="${TESTDIR}/move-in.txt"
+DIR_MOVE_IN_SOURCE="${OUTSIDE_IN}/move-in-dir"
+DIR_MOVE_IN_TARGET="${TESTDIR}/move-in-dir"
+MOVE_OUT_SOURCE="${TESTDIR}/move-out.txt"
+MOVE_OUT_TARGET="${OUTSIDE_OUT}/move-out.txt"
+MOVE_SOURCE="${TESTDIR}/paired-from.txt"
+MOVE_TARGET="${TESTDIR}/paired-to.txt"
+REPLACEMENT_SOURCE="${TESTDIR}/replacement-source.txt"
+REPLACEMENT_TARGET="${TESTDIR}/replacement-target.txt"
+SYMLINK_SOURCE="${OUTSIDE_IN}/symlink-in.txt"
+SYMLINK_DESTINATION="${SYMLINK_TARGET}/symlink-in.txt"
 DELETE_FILE="${TESTDIR}/delete-me.txt"
 
 echo created > "${CREATE_FILE}"
 echo update >> "${CREATE_FILE}"
+echo move-in > "${MOVE_IN_SOURCE}"
+mv "${MOVE_IN_SOURCE}" "${MOVE_IN_TARGET}"
+mkdir "${DIR_MOVE_IN_SOURCE}"
+mv "${DIR_MOVE_IN_SOURCE}" "${DIR_MOVE_IN_TARGET}"
+echo move-out > "${MOVE_OUT_SOURCE}"
+mv "${MOVE_OUT_SOURCE}" "${MOVE_OUT_TARGET}"
 echo move > "${MOVE_SOURCE}"
 mv "${MOVE_SOURCE}" "${MOVE_TARGET}"
+echo original > "${REPLACEMENT_TARGET}"
+echo replacement > "${REPLACEMENT_SOURCE}"
+mv -f "${REPLACEMENT_SOURCE}" "${REPLACEMENT_TARGET}"
+echo symlink > "${SYMLINK_SOURCE}"
+mv "${SYMLINK_SOURCE}" "${SYMLINK_DESTINATION}"
 echo delete > "${DELETE_FILE}"
 rm "${DELETE_FILE}"
 
@@ -89,8 +116,47 @@
   fi
 }
 
-assert_event 'created\.txt .*Created' 'file creation'
-assert_event 'created\.txt .*(Updated|CloseWrite)' 'file update'
-assert_event '/watched .*MovedFrom' 'rename source'
-assert_event '/watched .*MovedTo' 'rename target'
-assert_event 'delete-me\.txt .*Removed' 'file deletion'
+assert_event 'created\.txt\|.*Created' 'file creation'
+assert_event 'created\.txt\|.*(Updated|CloseWrite)' 'file update'
+assert_event '/watched/move-in\.txt\|.*MovedTo.*\|[1-9][0-9]*$' 'one-sided 
move-in'
+assert_event '/watched/move-in-dir\|.*MovedTo.*\|[1-9][0-9]*$' 'one-sided 
directory move-in'
+assert_event '/watched/move-out\.txt\|.*MovedFrom.*\|[1-9][0-9]*$' 'one-sided 
move-out'
+assert_event '/watched/paired-from\.txt\|.*MovedFrom.*\|[1-9][0-9]*$' 'paired 
rename source'
+assert_event '/watched/paired-to\.txt\|.*MovedTo.*\|[1-9][0-9]*$' 'paired 
rename target'
+assert_event '/watched/replacement-source\.txt\|.*MovedFrom.*\|[1-9][0-9]*$' 
'replacement-by-rename source'
+assert_event '/watched/replacement-target\.txt\|.*MovedTo.*\|[1-9][0-9]*$' 
'replacement-by-rename target'
+assert_event '/watched-link/symlink-in\.txt\|.*MovedTo.*\|[1-9][0-9]*$' 
'symlinked watch root'
+assert_event 'delete-me\.txt\|.*Removed' 'file deletion'
+
+if ! awk -F '|' '
+  $1 ~ /\/watched\/move-in-dir$/ &&
+  $2 ~ /(^| )MovedTo( |$)/ &&
+  $2 ~ /(^| )IsDir( |$)/ &&
+  $3 ~ /^[1-9][0-9]*$/ { found = 1 }
+  END { exit !found }
+' "${WORKDIR}/out.log"; then
+  echo "missing complete one-sided directory move-in event" >&2
+  sed -n '1,160p' "${WORKDIR}/out.log" >&2
+  exit 1
+fi
+
+PAIRED_FROM_COOKIE=$(awk -F '|' '/\/watched\/paired-from\.txt\|.*MovedFrom/ { 
print $3; exit }' "${WORKDIR}/out.log")
+PAIRED_TO_COOKIE=$(awk -F '|' '/\/watched\/paired-to\.txt\|.*MovedTo/ { print 
$3; exit }' "${WORKDIR}/out.log")
+REPLACEMENT_FROM_COOKIE=$(awk -F '|' 
'/\/watched\/replacement-source\.txt\|.*MovedFrom/ { print $3; exit }' 
"${WORKDIR}/out.log")
+REPLACEMENT_TO_COOKIE=$(awk -F '|' 
'/\/watched\/replacement-target\.txt\|.*MovedTo/ { print $3; exit }' 
"${WORKDIR}/out.log")
+
+if [ -z "${PAIRED_FROM_COOKIE}" ] ||
+   [ "${PAIRED_FROM_COOKIE}" = 0 ] ||
+   [ "${PAIRED_FROM_COOKIE}" != "${PAIRED_TO_COOKIE}" ]; then
+  echo "inotify rename cookies do not match: from=${PAIRED_FROM_COOKIE}, 
to=${PAIRED_TO_COOKIE}" >&2
+  sed -n '1,160p' "${WORKDIR}/out.log" >&2
+  exit 1
+fi
+
+if [ -z "${REPLACEMENT_FROM_COOKIE}" ] ||
+   [ "${REPLACEMENT_FROM_COOKIE}" = 0 ] ||
+   [ "${REPLACEMENT_FROM_COOKIE}" != "${REPLACEMENT_TO_COOKIE}" ]; then
+  echo "inotify replacement cookies do not match: 
from=${REPLACEMENT_FROM_COOKIE}, to=${REPLACEMENT_TO_COOKIE}" >&2
+  sed -n '1,160p' "${WORKDIR}/out.log" >&2
+  exit 1
+fi

Reply via email to