]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix Fdirectory_append check for whether strings have to be converted
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 24 Jul 2021 16:35:14 +0000 (18:35 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 24 Jul 2021 16:35:14 +0000 (18:35 +0200)
* src/coding.c (string_ascii_p): Make it non-static.

* src/fileio.c (Fdirectory_append): Fix check for whether we need
to convert to multibyte.

* src/fns.c (string_ascii_p): Remove copy.

* src/lisp.h: Declare string_ascii_p.

src/coding.c
src/fileio.c
src/fns.c
src/lisp.h

index 46e7fca0f430d58ade90d86f39aa13a98c580d9a..87b55aecc05b79bb9b26a49d34167754e3d2fbb1 100644 (file)
@@ -9476,7 +9476,7 @@ not fully specified.)  */)
 }
 
 /* Whether STRING only contains chars in the 0..127 range.  */
-static bool
+bool
 string_ascii_p (Lisp_Object string)
 {
   ptrdiff_t nbytes = SBYTES (string);
index 643fc3616896e1cddf8b45d434ff5edcc3191caa..60f5650302c5c26e64e854c5b51492f73d80cfad 100644 (file)
@@ -796,7 +796,7 @@ usage: (record DIRECTORY &rest COMPONENTS) */)
        {
          Lisp_Object arg = args[i];
          /* Use multibyte or all-ASCII strings as is. */
-         if (STRING_MULTIBYTE (arg) || SCHARS (arg) == SBYTES (arg))
+         if (STRING_MULTIBYTE (arg) || string_ascii_p (arg))
            elements[i] = arg;
          else
            elements[i] = make_multibyte_string (SSDATA (arg), SCHARS (arg),
index 7b9e3b0f7fc46589f3d22f385f95204066052c3c..932800a3a49640a53291ca1c34035c33c308833c 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -5769,16 +5769,6 @@ characters.  */ )
   return list3 (make_int (lines), make_int (longest), make_float (mean));
 }
 
-static bool
-string_ascii_p (Lisp_Object string)
-{
-  ptrdiff_t nbytes = SBYTES (string);
-  for (ptrdiff_t i = 0; i < nbytes; i++)
-    if (SREF (string, i) > 127)
-      return false;
-  return true;
-}
-
 DEFUN ("string-search", Fstring_search, Sstring_search, 2, 3, 0,
        doc: /* Search for the string NEEDLE in the string HAYSTACK.
 The return value is the position of the first occurrence of NEEDLE in
index 80efd7711394be44db6e52c167ca105357680437..15a42a44562786918a9ff104fb4da030733c850b 100644 (file)
@@ -3586,6 +3586,7 @@ extern Lisp_Object detect_coding_system (const unsigned char *, ptrdiff_t,
 extern void init_coding (void);
 extern void init_coding_once (void);
 extern void syms_of_coding (void);
+extern bool string_ascii_p (Lisp_Object);
 
 /* Defined in character.c.  */
 extern ptrdiff_t chars_in_text (const unsigned char *, ptrdiff_t);