[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/android b91e8ada70e 3/5: Fix auto-revert-mode on Android
From: |
Po Lu |
Subject: |
feature/android b91e8ada70e 3/5: Fix auto-revert-mode on Android |
Date: |
Fri, 24 Feb 2023 08:23:44 -0500 (EST) |
branch: feature/android
commit b91e8ada70ed1ddc40b43d1c5d606197bbdcb48b
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Fix auto-revert-mode on Android
* src/inotify.c (Finotify_add_watch): Handle asset files.
---
src/inotify.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/inotify.c b/src/inotify.c
index 7562ffb1701..b2a48884efa 100644
--- a/src/inotify.c
+++ b/src/inotify.c
@@ -419,6 +419,7 @@ IN_ONESHOT */)
int wd = -1;
uint32_t imask = aspect_to_inotifymask (aspect);
uint32_t mask = imask | IN_MASK_ADD | IN_EXCL_UNLINK;
+ char *name;
CHECK_STRING (filename);
@@ -432,7 +433,23 @@ IN_ONESHOT */)
}
encoded_file_name = ENCODE_FILE (filename);
- wd = inotify_add_watch (inotifyfd, SSDATA (encoded_file_name), mask);
+ name = SSDATA (encoded_file_name);
+
+#if defined HAVE_ANDROID && !defined ANDROID_STUBIFY
+ /* If FILENAME actually lies in a special directory, return now
+ instead of letting inotify fail. These directories cannot
+ receive file notifications as they are read only. */
+
+ if (strcmp (name, "/assets")
+ || strcmp (name, "/assets/")
+ || strcmp (name, "/content")
+ || strcmp (name, "/content/")
+ || strncmp (name, "/assets/", sizeof "/assets")
+ || strncmp (name, "/content", sizeof "/content"))
+ return Qnil;
+#endif
+
+ wd = inotify_add_watch (inotifyfd, name, mask);
if (wd < 0)
report_file_notify_error ("Could not add watch for file", filename);