diff lisp/files.el @ 16976:c7683cba14c7

(file-relative-name): Protect the match-data.
author Erik Naggum <erik@naggum.no>
date Wed, 05 Feb 1997 01:32:44 +0000
parents c1b9bc4c525b
children cd1d930a2c98
line wrap: on
line diff
--- a/lisp/files.el	Tue Feb 04 18:21:29 1997 +0000
+++ b/lisp/files.el	Wed Feb 05 01:32:44 1997 +0000
@@ -1830,14 +1830,15 @@
 
 (defun file-relative-name (filename &optional directory)
   "Convert FILENAME to be relative to DIRECTORY (default: default-directory)."
-  (setq filename (expand-file-name filename)
-	directory (file-name-as-directory (expand-file-name
-					   (or directory default-directory))))
-  (let ((ancestor ""))
-    (while (not (string-match (concat "^" (regexp-quote directory)) filename))
-      (setq directory (file-name-directory (substring directory 0 -1))
-	    ancestor (concat "../" ancestor)))
-    (concat ancestor (substring filename (match-end 0)))))
+  (save-match-data
+   (setq filename (expand-file-name filename)
+	 directory (file-name-as-directory
+		    (expand-file-name (or directory default-directory))))
+   (let ((ancestor ""))
+     (while (not (string-match (concat "^" (regexp-quote directory)) filename))
+       (setq directory (file-name-directory (substring directory 0 -1))
+	     ancestor (concat "../" ancestor)))
+     (concat ancestor (substring filename (match-end 0))))))
 
 (defun save-buffer (&optional args)
   "Save current buffer in visited file if modified.  Versions described below.