]> git.eshelyaron.com Git - emacs.git/commitdiff
Minor adjustments to Android port
authorPo Lu <luangruo@yahoo.com>
Fri, 11 Aug 2023 06:55:21 +0000 (14:55 +0800)
committerPo Lu <luangruo@yahoo.com>
Fri, 11 Aug 2023 06:55:21 +0000 (14:55 +0800)
* java/org/gnu/emacs/EmacsService.java (readDirectoryEntry):
Also refrain from returning NULL or file names containing
non-representable NULL bytes.
* src/callproc.c (get_current_directory): Clean up by employing
android_is_special_directory.

java/org/gnu/emacs/EmacsService.java
src/callproc.c

index 379b1d30edac2084da52ef1a4606e837b9bb467b..cee823abc83299ebdc41f965a66d280ad0043186 100644 (file)
@@ -1503,9 +1503,13 @@ public final class EmacsService extends Service
            return entry;
          }
 
-       /* Skip this entry if its name cannot be represented.  */
+       /* Skip this entry if its name cannot be represented.  NAME
+          can still be null here, since some Cursors are permitted to
+          return NULL if INDEX is not a string.  */
 
-       if (name.equals ("..") || name.equals (".") || name.contains ("/"))
+       if (name == null || name.equals ("..")
+           || name.equals (".") || name.contains ("/")
+           || name.contains ("\0"))
          continue;
 
        /* Now, look for its type.  */
index 0645c2c3e183dfc8e2063d2a4e78813c4c822a45..dc37dfdc01f67865a7d228bf6860a8649c4b0bd4 100644 (file)
@@ -170,10 +170,11 @@ get_current_directory (bool encode)
   /* If DIR is an asset directory or a content directory, return
      the home directory instead.  */
 
-  if (encode && (!strcmp (SSDATA (dir), "/assets")
-                || !strncmp (SSDATA (dir), "/assets/", 8)
-                || !strcmp (SSDATA (dir), "/content")
-                || !strncmp (SSDATA (dir), "/content/", 9)))
+  if (encode
+      && (android_is_special_directory (SSDATA (dir),
+                                       "/assets")
+         || android_is_special_directory (SSDATA (dir),
+                                          "/content")))
     dir = build_string ("~");
 
 #endif /* HAVE_ANDROID && ANDROID_STUBIFY */