[PATCH] Document Win32 symlink behaviour; adjust tests to take it into a/c.

Aidan Kehoe kehoea at parhasard.net
Wed May 21 10:58:01 EDT 2008


# HG changeset patch
# User Aidan Kehoe <kehoea at parhasard.net>
# Date 1211381714 -7200
# Node ID 71ed788e426a73ebf645b5e1b3f747a76c21f5f9
# Parent  2805dd83a47588e02914012aa1154264f9b2b5f7
Document Win32 symlink behaviour; adjust tests to take it into a/c.

src/ChangeLog addition:

2008-05-21  Aidan Kehoe  <kehoea at parhasard.net>

	* fileio.c (Fmake_symbolic_link):
	Document behaviour when the underlying OS doesn't support symbolic
	links.

tests/ChangeLog addition:

2008-05-21  Aidan Kehoe  <kehoea at parhasard.net>

	* automated/mule-tests.el (featurep):
	Make sure that working symlinks are available before testing
	their functionality.
	Also, don't bomb out on deleting the other temporary files if
	deleting the first threw an error.

diff -r 2805dd83a475 -r 71ed788e426a src/ChangeLog
--- a/src/ChangeLog	Wed May 21 15:40:06 2008 +0200
+++ b/src/ChangeLog	Wed May 21 16:55:14 2008 +0200
@@ -1,3 +1,9 @@ 2008-05-13  Aidan Kehoe  <kehoea at parhasa
+2008-05-21  Aidan Kehoe  <kehoea at parhasard.net>
+
+	* fileio.c (Fmake_symbolic_link):
+	Document behaviour when the underlying OS doesn't support symbolic
+	links. 
+
 2008-05-13  Aidan Kehoe  <kehoea at parhasard.net>
 
 	* emacs.c (SHEBANG_EXE_PROGNAME_LENGTH):
diff -r 2805dd83a475 -r 71ed788e426a src/fileio.c
--- a/src/fileio.c	Wed May 21 15:40:06 2008 +0200
+++ b/src/fileio.c	Wed May 21 16:55:14 2008 +0200
@@ -2199,6 +2199,10 @@ unless optional third argument OK-IF-ALR
 unless optional third argument OK-IF-ALREADY-EXISTS is non-nil.
 A number as third arg means request confirmation if LINKNAME already exists.
 This happens for interactive use with M-x.
+
+On platforms where symbolic links are not available, any file handlers will
+be run, but the check for the existence of LINKNAME will not be done, and
+the symbolic link will not be created.
 */
        (filename, linkname, ok_if_already_exists))
 {
diff -r 2805dd83a475 -r 71ed788e426a tests/ChangeLog
--- a/tests/ChangeLog	Wed May 21 15:40:06 2008 +0200
+++ b/tests/ChangeLog	Wed May 21 16:55:14 2008 +0200
@@ -1,3 +1,11 @@ 2008-02-14  Aidan Kehoe  <kehoea at parhasa
+2008-05-21  Aidan Kehoe  <kehoea at parhasard.net>
+
+	* automated/mule-tests.el (featurep): 
+	Make sure that working symlinks are available before testing
+	their functionality.
+	Also, don't bomb out on deleting the other temporary files if
+	deleting the first threw an error. 
+
 2008-02-14  Aidan Kehoe  <kehoea at parhasard.net>
 
 	* automated/case-tests.el (let):
diff -r 2805dd83a475 -r 71ed788e426a tests/automated/mule-tests.el
--- a/tests/automated/mule-tests.el	Wed May 21 15:40:06 2008 +0200
+++ b/tests/automated/mule-tests.el	Wed May 21 16:55:14 2008 +0200
@@ -372,19 +372,32 @@ This is a naive implementation in Lisp. 
          ;; used scaron as the Latin-2 character, and make-temp-name errored
          ;; on OS X. LATIN CAPITAL LETTER D WITH STROKE does not decompose.
          (name1 (make-temp-name prefix))
-         (name2 (make-temp-name prefix)))
-    ;; This is how you suppress output from `message', called by `write-region'
+         (name2 (make-temp-name prefix))
+         (name3 (make-temp-name prefix))
+         working-symlinks)
     (Assert (not (equal name1 name2)))
     (Assert (not (file-exists-p name1)))
+    ;; This is how you suppress output from `message', called by `write-region'
     (Silence-Message
      (write-region (point-min) (point-max) name1))
     (Assert (file-exists-p name1))
-    (when (fboundp 'make-symbolic-link)
+    (Silence-Message 
+     (write-region (point-min) (point-max) name3))
+    (Assert (file-exists-p name3))
+    (condition-case nil
+        (make-symbolic-link name1 name3)
+      (file-already-exists
+       ;; If we actually have functioning symlinks, we end up here, since
+       ;; name3 already exists and OK-IF-ALREADY-EXISTS was not specified.
+       (setq working-symlinks t)))
+    (when working-symlinks
       (make-symbolic-link name1 name2)
       (Assert (file-exists-p name2))
       (Assert (equal (file-truename name2) name1))
       (Assert (equal (file-truename name1) name1)))
-    (ignore-file-errors (delete-file name1) (delete-file name2)))
+    (ignore-file-errors (delete-file name1))
+    (ignore-file-errors (delete-file name2))
+    (ignore-file-errors (delete-file name3)))
 
   ;; Add many more file operation tests here...
 

-- 
¿Dónde estará ahora mi sobrino Yoghurtu Nghé, que tuvo que huir
precipitadamente de la aldea por culpa de la escasez de rinocerontes?



More information about the XEmacs-Patches mailing list