mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 20:32:00 -08:00
; Fix last change.
* lisp/net/eww.el (eww--list-buffers-display-table) (eww-buffers-mode): Fix coding conventions.
This commit is contained in:
parent
d3975cc925
commit
75fa0cc1ae
2 changed files with 145 additions and 31 deletions
|
|
@ -2617,7 +2617,7 @@ see)."
|
|||
(eww--list-buffers-display-table))
|
||||
(pop-to-buffer "*eww buffers*"))
|
||||
|
||||
(defun eww--list-buffers-display-table (&optional ignore-auto noconfirm)
|
||||
(defun eww--list-buffers-display-table (&optional _ignore-auto _noconfirm)
|
||||
"Display a table with the list of eww buffers.
|
||||
Will remove all buffer contents first. The parameters IGNORE-AUTO and
|
||||
NOCONFIRM are ignored, they are for compatibility with
|
||||
|
|
@ -2711,8 +2711,8 @@ The format of the data is (title url buffer), for use in of
|
|||
:interactive nil
|
||||
(buffer-disable-undo)
|
||||
(setq truncate-lines t
|
||||
;; this is set so that pressing "g" with point just below the
|
||||
;; table will still update the listing
|
||||
;; This is set so that pressing "g" with point just below the
|
||||
;; table will still update the listing.
|
||||
revert-buffer-function #'eww--list-buffers-display-table))
|
||||
|
||||
;;; Desktop support
|
||||
|
|
|
|||
|
|
@ -252,6 +252,27 @@ included in the completions."
|
|||
:type 'boolean
|
||||
:version "28.1")
|
||||
|
||||
;; The default is nil because only a VC user who also possesses a lot of
|
||||
;; Git-specific knowledge can know when it is okay to rewrite history,
|
||||
;; and we can't convey to a relatively Git-naïve user the potential
|
||||
;; risks in only the space of a minibuffer y/n prompt.
|
||||
(defcustom vc-git-allow-rewriting-history nil
|
||||
"When non-nil, permit Git operations that may rewrite published history.
|
||||
|
||||
Many Git commands can change your copy of published change history
|
||||
without warning. If this occurs, you won't be able to pull and push in
|
||||
the ordinary way until you take special action. See \"Recovering from
|
||||
Upstream Rebase\" in the Man page git-rebase(1).
|
||||
|
||||
Normally, Emacs refuses to run Git commands that it thinks will rewrite
|
||||
published history. If you customize this variable to a non-nil value,
|
||||
Emacs will instead prompt you to confirm that you really want to perform
|
||||
the rewrite. A value of `no-ask' means to proceed with no prompting."
|
||||
:type '(choice (const :tag "Don't allow" nil)
|
||||
(const :tag "Prompt to allow" t)
|
||||
(const :tag "Allow without prompting" no-ask))
|
||||
:version "31.1")
|
||||
|
||||
;; History of Git commands.
|
||||
(defvar vc-git-history nil)
|
||||
|
||||
|
|
@ -728,11 +749,13 @@ or an empty string if none."
|
|||
:files files
|
||||
:update-function update-function)))
|
||||
|
||||
(defun vc-git--current-branch ()
|
||||
(vc-git--out-match '("symbolic-ref" "HEAD")
|
||||
"^\\(refs/heads/\\)?\\(.+\\)$" 2))
|
||||
|
||||
(defun vc-git-dir--branch-headers ()
|
||||
"Return headers for branch-related information."
|
||||
(let ((branch (vc-git--out-match
|
||||
'("symbolic-ref" "HEAD")
|
||||
"^\\(refs/heads/\\)?\\(.+\\)$" 2))
|
||||
(let ((branch (vc-git--current-branch))
|
||||
tracking remote-url)
|
||||
(if branch
|
||||
(when-let ((branch-merge
|
||||
|
|
@ -1082,6 +1105,17 @@ It is based on `log-edit-mode', and has Git-specific extensions."
|
|||
|
||||
(autoload 'vc-switches "vc")
|
||||
|
||||
(defun vc-git--log-edit-extract-headers (comment)
|
||||
(cl-flet ((boolean-arg-fn (argument)
|
||||
(lambda (v) (and (equal v "yes") (list argument)))))
|
||||
(log-edit-extract-headers
|
||||
`(("Author" . "--author")
|
||||
("Date" . "--date")
|
||||
("Amend" . ,(boolean-arg-fn "--amend"))
|
||||
("No-Verify" . ,(boolean-arg-fn "--no-verify"))
|
||||
("Sign-Off" . ,(boolean-arg-fn "--signoff")))
|
||||
comment)))
|
||||
|
||||
(defun vc-git-checkin (files comment &optional _rev)
|
||||
(let* ((file1 (or (car files) default-directory))
|
||||
(root (vc-git-root file1))
|
||||
|
|
@ -1180,31 +1214,23 @@ It is based on `log-edit-mode', and has Git-specific extensions."
|
|||
(vc-git-command nil 0 patch-file "apply" "--cached")
|
||||
(delete-file patch-file))))
|
||||
(when to-stash (vc-git--stash-staged-changes files)))
|
||||
(cl-flet ((boolean-arg-fn
|
||||
(argument)
|
||||
(lambda (value) (when (equal value "yes") (list argument)))))
|
||||
;; When operating on the whole tree, better pass "-a" than ".", since "."
|
||||
;; fails when we're committing a merge.
|
||||
(apply #'vc-git-command nil 0 (if (and only (not vc-git-patch-string)) files)
|
||||
(nconc (if msg-file (list "commit" "-F"
|
||||
(file-local-name msg-file))
|
||||
(list "commit" "-m"))
|
||||
(let ((args
|
||||
(log-edit-extract-headers
|
||||
`(("Author" . "--author")
|
||||
("Date" . "--date")
|
||||
("Amend" . ,(boolean-arg-fn "--amend"))
|
||||
("No-Verify" . ,(boolean-arg-fn "--no-verify"))
|
||||
("Sign-Off" . ,(boolean-arg-fn "--signoff")))
|
||||
comment)))
|
||||
(when msg-file
|
||||
(let ((coding-system-for-write
|
||||
(or pcsw vc-git-commits-coding-system)))
|
||||
(write-region (car args) nil msg-file))
|
||||
(setq args (cdr args)))
|
||||
args)
|
||||
(unless vc-git-patch-string
|
||||
(if only (list "--only" "--") '("-a"))))))
|
||||
;; When operating on the whole tree, better pass "-a" than ".",
|
||||
;; since "." fails when we're committing a merge.
|
||||
(apply #'vc-git-command nil 0
|
||||
(if (and only (not vc-git-patch-string)) files)
|
||||
(nconc (if msg-file (list "commit" "-F"
|
||||
(file-local-name msg-file))
|
||||
(list "commit" "-m"))
|
||||
(let ((args
|
||||
(vc-git--log-edit-extract-headers comment)))
|
||||
(when msg-file
|
||||
(let ((coding-system-for-write
|
||||
(or pcsw vc-git-commits-coding-system)))
|
||||
(write-region (car args) nil msg-file))
|
||||
(setq args (cdr args)))
|
||||
args)
|
||||
(unless vc-git-patch-string
|
||||
(if only (list "--only" "--") '("-a")))))
|
||||
(if (and msg-file (file-exists-p msg-file)) (delete-file msg-file))
|
||||
(when to-stash
|
||||
(let ((cached (make-nearby-temp-file "git-cached")))
|
||||
|
|
@ -1960,6 +1986,94 @@ This requires git 1.8.4 or later, for the \"-L\" option of \"git log\"."
|
|||
(vc-git-command standard-output 1 nil
|
||||
"log" "--max-count=1" "--pretty=format:%B" rev)))
|
||||
|
||||
(defun vc-git--assert-allowed-rewrite (rev)
|
||||
(when (and (not (eq vc-git-allow-rewriting-history 'no-ask))
|
||||
;; Check there is an upstream.
|
||||
(with-temp-buffer
|
||||
(vc-git--out-ok "config" "--get"
|
||||
(format "branch.%s.merge"
|
||||
(vc-git--current-branch)))))
|
||||
(let ((outgoing (split-string
|
||||
(with-output-to-string
|
||||
(vc-git-command standard-output 0 nil "log"
|
||||
"--pretty=format:%H"
|
||||
"@{upstream}..HEAD")))))
|
||||
(unless (or (cl-member rev outgoing :test #'string-prefix-p)
|
||||
(and vc-git-allow-rewriting-history
|
||||
(yes-or-no-p
|
||||
(format
|
||||
"Commit %s looks to be published; are you sure you want to rewrite history?"
|
||||
rev))))
|
||||
(user-error "Will not rewrite likely-public Git history")))))
|
||||
|
||||
(defun vc-git-modify-change-comment (files rev comment)
|
||||
(vc-git--assert-allowed-rewrite rev)
|
||||
(let* ((args (delete "--amend"
|
||||
(vc-git--log-edit-extract-headers comment)))
|
||||
(message (format "amend! %s\n\n%s" rev (pop args)))
|
||||
(msg-file
|
||||
;; On MS-Windows, pass the message through a file, to work
|
||||
;; around how command line arguments must be in the system
|
||||
;; codepage, and therefore might not support non-ASCII.
|
||||
;;
|
||||
;; As our other arguments are static, we need not be concerned
|
||||
;; about the encoding of command line arguments in general.
|
||||
;; See `vc-git-checkin' for the more complex case.
|
||||
(and (eq system-type 'windows-nt)
|
||||
(let ((default-directory
|
||||
(or (file-name-directory (or (car files)
|
||||
default-directory))
|
||||
default-directory)))
|
||||
(make-nearby-temp-file "git-msg"))))
|
||||
(nothing-staged
|
||||
(zerop
|
||||
(vc-git-command nil t nil "diff" "--cached" "--quiet"))))
|
||||
;; We want to do just
|
||||
;;
|
||||
;; % git commit --only --allow-empty -m...
|
||||
;; % git rebase --autostash --autosquash -i REV~1
|
||||
;;
|
||||
;; because the first command is guaranteed to create an empty commit
|
||||
;; regardless of the state of the index and working tree. However,
|
||||
;; that requires git.git commit 319d835, released in Git 2.11.1.
|
||||
;; In order to support older Git we do this longer, slower sequence:
|
||||
;;
|
||||
;; % git stash push
|
||||
;; % git commit --allow-empty -m...
|
||||
;; % git rebase --autosquash -i REV~1
|
||||
;; % git stash pop
|
||||
;; (unless nothing-staged
|
||||
;; (vc-git-command nil 0 nil "stash" "push"))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(when (cl-intersection '("--author" "--date") args
|
||||
:test #'string=)
|
||||
;; 'git rebase --autosquash' cannot alter authorship.
|
||||
;; See the description of --fixup in git-commit(1).
|
||||
(error
|
||||
"Author: and Date: not supported when modifying existing commits"))
|
||||
(when msg-file
|
||||
(let ((coding-system-for-write
|
||||
(or coding-system-for-write
|
||||
vc-git-commits-coding-system)))
|
||||
(write-region message nil msg-file)))
|
||||
(apply #'vc-git-command nil 0 nil
|
||||
"commit" "--allow-empty"
|
||||
(nconc (if msg-file
|
||||
(list "-F" (file-local-name msg-file))
|
||||
(list "-m" message))
|
||||
args)))
|
||||
(when (and msg-file (file-exists-p msg-file))
|
||||
;; (delete-file msg-file)
|
||||
))
|
||||
;; (with-environment-variables (("GIT_SEQUENCE_EDITOR" "true"))
|
||||
;; (vc-git-command nil 0 nil "rebase" "--autosquash" "-i"
|
||||
;; (format "%s~1" rev)))
|
||||
;; (unless nothing-staged
|
||||
;; (vc-git-command nil 0 nil "stash" "pop" "--index"))
|
||||
(message "temporary file is: %s" msg-file)
|
||||
))
|
||||
|
||||
(defvar vc-git-extra-menu-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map [git-grep]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue