diff lisp/files.el @ 54573:1d3d777fda3f

(file-relative-name): Use compare-strings.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 26 Mar 2004 15:04:35 +0000
parents 1aa9a08f7ca7
children 3a4518b4fa64
line wrap: on
line diff
--- a/lisp/files.el	Fri Mar 26 14:54:17 2004 +0000
+++ b/lisp/files.el	Fri Mar 26 15:04:35 2004 +0000
@@ -1,6 +1,6 @@
 ;;; files.el --- file input and output commands for Emacs
 
-;; Copyright (C) 1985,86,87,92,93,94,95,96,97,98,99,2000,01,02,2003
+;; Copyright (C) 1985,86,87,92,93,94,95,96,97,98,99,2000,01,02,03,2004
 ;;;   Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -2905,9 +2905,9 @@
 	  (or
 	   ;; Test for different drives on DOS/Windows
 	   (and
+	    ;; Should `cygwin' really be included here?  --stef
 	    (memq system-type '(ms-dos cygwin windows-nt))
-	    (not (string-equal (substring filename  0 2)
-			       (substring directory 0 2))))
+	    (not (eq t (compare-strings filename 0 2 directory 0 2))))
 	   ;; Test for different remote file handlers
 	   (not (eq hf hd))
 	   ;; Test for different remote file system identification
@@ -2925,18 +2925,19 @@
 	  filename
         (let ((ancestor ".")
 	      (filename-dir (file-name-as-directory filename)))
-          (while
-	      (and
-	       (not (string-match (concat "\\`" (regexp-quote directory))
-				  filename-dir))
-	       (not (string-match (concat "\\`" (regexp-quote directory))
-				  filename)))
+          (while (not
+		  (or
+		   (eq t (compare-strings filename-dir nil (length directory)
+					  directory nil nil case-fold-search))
+		   (eq t (compare-strings filename nil (length directory)
+					  directory nil nil case-fold-search))))
             (setq directory (file-name-directory (substring directory 0 -1))
 		  ancestor (if (equal ancestor ".")
 			       ".."
 			     (concat "../" ancestor))))
           ;; Now ancestor is empty, or .., or ../.., etc.
-          (if (string-match (concat "^" (regexp-quote directory)) filename)
+          (if (eq t (compare-strings filename nil (length directory)
+				     directory nil nil case-fold-search))
 	      ;; We matched within FILENAME's directory part.
 	      ;; Add the rest of FILENAME onto ANCESTOR.
 	      (let ((rest (substring filename (match-end 0))))