equal
deleted
inserted
replaced
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) |