# HG changeset patch # User Stefan Monnier # Date 1080313475 0 # Node ID 1d3d777fda3f12ef911754a668492be46d77781c # Parent 2f882266c186f5dbf7cb8a14fd82466e3025dbb0 (file-relative-name): Use compare-strings. diff -r 2f882266c186 -r 1d3d777fda3f lisp/files.el --- 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))))