]> code.delx.au - gnu-emacs/commitdiff
Fix dired.c typo with ptrdiff_t vs Lisp_Object
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 23 Dec 2015 19:47:52 +0000 (11:47 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 23 Dec 2015 19:49:22 +0000 (11:49 -0800)
* src/dired.c (file_name_completion): Don't assume Lisp_Object is
an integer type, fixing a problem introduced in the recent fix for
Bug#22169.

src/dired.c

index 89bd908c1e75497fd5bcf60af450c353e68d479d..6c34dfdfcb05924314656b308dd2235ac95134c6 100644 (file)
@@ -664,13 +664,15 @@ file_name_completion (Lisp_Object file, Lisp_Object dirname, bool all_flag,
          decoded don't.  For example, "a" should not match "a-ring" on
          file systems that store decomposed characters. */
       Lisp_Object zero = make_number (0);
-      Lisp_Object compare;
-      Lisp_Object cmp;
+
       if (check_decoded && SCHARS (file) <= SCHARS (name))
        {
-         compare = make_number (SCHARS (file));
-         cmp = Fcompare_strings (name, zero, compare, file, zero, compare,
-                                 completion_ignore_case ? Qt : Qnil);
+         /* FIXME: This is a copy of the code below.  */
+         ptrdiff_t compare = SCHARS (file);
+         Lisp_Object cmp
+           = Fcompare_strings (name, zero, make_number (compare),
+                               file, zero, make_number (compare),
+                               completion_ignore_case ? Qt : Qnil);
          if (!EQ (cmp, Qt))
            continue;
        }
@@ -689,12 +691,11 @@ file_name_completion (Lisp_Object file, Lisp_Object dirname, bool all_flag,
       else
        {
          /* FIXME: This is a copy of the code in Ftry_completion.  */
-         compare = min (bestmatchsize, SCHARS (name));
-         cmp = Fcompare_strings (bestmatch, zero,
-                                 make_number (compare),
-                                 name, zero,
-                                 make_number (compare),
-                                 completion_ignore_case ? Qt : Qnil);
+         ptrdiff_t compare = min (bestmatchsize, SCHARS (name));
+         Lisp_Object cmp
+           = Fcompare_strings (bestmatch, zero, make_number (compare),
+                               name, zero, make_number (compare),
+                               completion_ignore_case ? Qt : Qnil);
          ptrdiff_t matchsize = EQ (cmp, Qt) ? compare : eabs (XINT (cmp)) - 1;
 
          if (completion_ignore_case)