+2019-01-26 Bruno Haible <bruno@clisp.org>
+
+ mountlist: Use Linux code on Android.
+ * lib/mountlist.c (setmntent, endmntent): Define fallbacks.
+ (unescape_tab, read_file_system_list): Enable Linux code on Android
+ as well.
+ * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Test for setmntent
+ and endmntent.
+ * modules/mountlist (Depends-on): Add 'getline'.
+
2019-01-26 Bruno Haible <bruno@clisp.org>
localename tests: Fix test failure on Android.
# include <sys/mntent.h>
#endif
+#ifdef MOUNTED_GETMNTENT1
+# if !HAVE_SETMNTENT /* Android <= 4.4 */
+# define setmntent(fp,mode) fopen (fp, mode)
+# endif
+# if !HAVE_ENDMNTENT /* Android <= 4.4 */
+# define endmntent(fp) fclose (fp)
+# endif
+#endif
+
#ifndef HAVE_HASMNTOPT
# define hasmntopt(mnt, opt) ((char *) 0)
#endif
#endif
-#if defined MOUNTED_GETMNTENT1 && defined __linux__ /* GNU/Linux, Android */
+#if defined MOUNTED_GETMNTENT1 && (defined __linux__ || defined __ANDROID__) /* GNU/Linux, Android */
/* Unescape the paths in mount tables.
STR is updated in place. */
{
FILE *fp;
-# ifdef __linux__
+# if defined __linux__ || defined __ANDROID__
/* Try parsing mountinfo first, as that make device IDs available.
Note we could use libmount routines to simplify this parsing a little
(and that code is in previous versions of this function), however
goto free_then_fail;
}
else /* fallback to /proc/self/mounts (/etc/mtab). */
-# endif /* __linux __ */
+# endif /* __linux __ || __ANDROID__ */
{
struct mntent *mnt;
char const *table = MOUNTED;
-# serial 37
+# serial 38
# How to list mounted file systems.
# Copyright (C) 1998-2004, 2006, 2009-2019 Free Software Foundation, Inc.
[Define if there is a function named getmntent for reading the list
of mounted file systems, and that function takes a single argument.
(4.3BSD, SunOS, HP-UX, Irix)])
- AC_CHECK_FUNCS([hasmntopt])
+ AC_CHECK_FUNCS([setmntent endmntent hasmntopt])
fi
fi