changeset 42169:5e1f90b72764

(scmp): Function moved from minibuf.c. Delete multibyte handling--used only on encoded strings.
author Richard M. Stallman <rms@gnu.org>
date Tue, 18 Dec 2001 22:50:26 +0000
parents e08cd63afb2e
children 4cbdf5148953
files src/dired.c
diffstat 1 files changed, 30 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/dired.c	Tue Dec 18 22:49:19 2001 +0000
+++ b/src/dired.c	Tue Dec 18 22:50:26 2001 +0000
@@ -117,6 +117,8 @@
 Lisp_Object Qfile_name_all_completions;
 Lisp_Object Qfile_attributes;
 Lisp_Object Qfile_attributes_lessp;
+
+static int scmp P_ ((unsigned char *, unsigned char *, int));
 
 
 Lisp_Object
@@ -734,6 +736,34 @@
   return Fsignal (Qquit, Qnil);
 }
 
+/* Compare exactly LEN chars of strings at S1 and S2,
+   ignoring case if appropriate.
+   Return -1 if strings match,
+   else number of chars that match at the beginning.  */
+
+static int
+scmp (s1, s2, len)
+     register unsigned char *s1, *s2;
+     int len;
+{
+  register int l = len;
+
+  if (completion_ignore_case)
+    {
+      while (l && DOWNCASE (*s1++) == DOWNCASE (*s2++))
+	l--;
+    }
+  else
+    {
+      while (l && *s1++ == *s2++)
+	l--;
+    }
+  if (l == 0)
+    return -1;
+  else
+    return len - l;
+}
+
 static int
 file_name_completion_stat (dirname, dp, st_addr)
      Lisp_Object dirname;