From: Po Lu Date: Sun, 23 Jun 2024 08:41:36 +0000 (+0800) Subject: Disable Ffile_system_info for Android special directories X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=00de3fd4fb9ea7beea095fd71647c2e59b170944;p=emacs.git Disable Ffile_system_info for Android special directories * src/fileio.c (Ffile_system_info): Return Qnil if FILENAME refers to a special directory. (cherry picked from commit 60475a73d17d293f5c1e82bc5b3c058b414266e8) --- diff --git a/src/fileio.c b/src/fileio.c index 9955f83e625..7afe3e75737 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -6531,7 +6531,18 @@ If the underlying system call fails, value is nil. */) || defined STAT_STATFS4 || defined STAT_STATVFS \ || defined STAT_STATVFS64 struct fs_usage u; - if (get_fs_usage (SSDATA (ENCODE_FILE (filename)), NULL, &u) != 0) + const char *name; + + name = SSDATA (ENCODE_FILE (filename)); + +#if defined HAVE_ANDROID && !defined ANDROID_STUBIFY + /* With special directories, this information is unavailable. */ + if (android_is_special_directory (name, "/assets") + || android_is_special_directory (name, "/content")) + return Qnil; +#endif /* defined HAVE_ANDROID && !defined ANDROID_STUBIFY */ + + if (get_fs_usage (name, NULL, &u) != 0) return errno == ENOSYS ? Qnil : file_attribute_errno (filename, errno); return list3 (blocks_to_bytes (u.fsu_blocksize, u.fsu_blocks, false), blocks_to_bytes (u.fsu_blocksize, u.fsu_bfree, false),