contrib/mercurial.el
changeset 2453 b5902db74ba3
parent 2452 d1a7c8a5b835
child 2456 aa16b42628b8
equal deleted inserted replaced
2452:d1a7c8a5b835 2453:b5902db74ba3
   378 (defun hg-read-file-name (&optional prompt default)
   378 (defun hg-read-file-name (&optional prompt default)
   379   "Read a file or directory name, or a pattern, to use with a command."
   379   "Read a file or directory name, or a pattern, to use with a command."
   380   (save-excursion
   380   (save-excursion
   381     (while hg-prev-buffer
   381     (while hg-prev-buffer
   382       (set-buffer hg-prev-buffer))
   382       (set-buffer hg-prev-buffer))
   383     (let ((path (or default (buffer-file-name))))
   383     (let ((path (or default (buffer-file-name) default-directory)))
   384       (if (or (not path) current-prefix-arg)
   384       (if (or (not path) current-prefix-arg)
   385           (expand-file-name
   385           (expand-file-name
   386            (eval (list* 'read-file-name
   386            (eval (list* 'read-file-name
   387                         (format "File, directory or pattern%s: "
   387                         (format "File, directory or pattern%s: "
   388                                 (or prompt ""))
   388                                 (or prompt ""))
  1084 When called interactively, the root is printed.  A prefix argument
  1084 When called interactively, the root is printed.  A prefix argument
  1085 prompts for a path to check."
  1085 prompts for a path to check."
  1086   (interactive (list (hg-read-file-name)))
  1086   (interactive (list (hg-read-file-name)))
  1087   (if (or path (not hg-root))
  1087   (if (or path (not hg-root))
  1088       (let ((root (do ((prev nil dir)
  1088       (let ((root (do ((prev nil dir)
  1089 		       (dir (file-name-directory (or path buffer-file-name ""))
  1089 		       (dir (file-name-directory
       
  1090                              (or
       
  1091                               path
       
  1092                               buffer-file-name
       
  1093                               (expand-file-name default-directory)))
  1090 			    (file-name-directory (directory-file-name dir))))
  1094 			    (file-name-directory (directory-file-name dir))))
  1091 		      ((equal prev dir))
  1095 		      ((equal prev dir))
  1092 		    (when (file-directory-p (concat dir ".hg"))
  1096 		    (when (file-directory-p (concat dir ".hg"))
  1093 		      (return dir)))))
  1097 		      (return dir)))))
  1094 	(when (interactive-p)
  1098 	(when (interactive-p)