diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2016-04-11 09:07:16 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2016-04-11 09:07:16 -0700 |
commit | d1e2b10afa2df313e029b3faeeb0d694fd6e0fbc (patch) | |
tree | 8584e88dc40f4617ead97664b3732d041c21982d | |
parent | 7b45cc583c4f16cc070a9925431ca944f510a685 (diff) | |
parent | 96d9e78bd40edff9c901eee1c95ea56d93b55acb (diff) | |
download | emacs-d1e2b10afa2df313e029b3faeeb0d694fd6e0fbc.tar.gz |
Merge from origin/emacs-25
96d9e78 Fix "Beginning of buffer" error in forward-page
20686f7 Add a `transient' project type
-rw-r--r-- | lisp/progmodes/project.el | 10 | ||||
-rw-r--r-- | lisp/textmodes/page.el | 13 |
2 files changed, 15 insertions, 8 deletions
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 1251bca2491..9c8a88c80fc 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -101,7 +101,9 @@ that it is not applicable, or a project instance.") (defun project-current (&optional maybe-prompt dir) "Return the project instance in DIR or `default-directory'. When no project found in DIR, and MAYBE-PROMPT is non-nil, ask -the user for a different directory to look in." +the user for a different directory to look in. If that directory +is not a part of a detectable project either, return a +`transient' project instance rooted in it." (unless dir (setq dir default-directory)) (let ((pr (project--find-in-directory dir))) (cond @@ -110,7 +112,8 @@ the user for a different directory to look in." (setq dir (read-directory-name "Choose the project directory: " dir nil t) pr (project--find-in-directory dir)) (unless pr - (user-error "No project found in `%s'" dir)))) + (message "Using '%s' as a transient project root" dir) + (setq pr (cons 'transient dir))))) pr)) (defun project--find-in-directory (dir) @@ -182,6 +185,9 @@ to find the list of ignores for each directory." (t (complete-with-action action all-files string pred)))))) +(cl-defmethod project-roots ((project (head transient))) + (list (cdr project))) + (defgroup project-vc nil "Project implementation using the VC package." :version "25.1" diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el index 17fda677754..22c73591b91 100644 --- a/lisp/textmodes/page.el +++ b/lisp/textmodes/page.el @@ -48,12 +48,13 @@ A page boundary is any line whose beginning matches the regexp (and (save-excursion (re-search-backward page-delimiter nil t)) (= (match-end 0) (point)) (goto-char (match-beginning 0))) - (forward-char -1) - (if (re-search-backward page-delimiter nil t) - ;; We found one--move to the end of it. - (goto-char (match-end 0)) - ;; We found nothing--go to beg of buffer. - (goto-char (point-min))) + (unless (bobp) + (forward-char -1) + (if (re-search-backward page-delimiter nil t) + ;; We found one--move to the end of it. + (goto-char (match-end 0)) + ;; We found nothing--go to beg of buffer. + (goto-char (point-min)))) (setq count (1+ count)))) (defun backward-page (&optional count) |