From: Lin Sun via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 65346@debbugs.gnu.org
Subject: bug#65346: 30.0.50; *lisp/net/eww.el: new function 'eww-open-in-new-buffer-background'
Date: Fri, 18 Aug 2023 19:03:08 +0000 [thread overview]
Message-ID: <CABCREdqPgihFemWG0vHG74owu1mFhfJs7MRZT4BJpkbV7Et1iQ@mail.gmail.com> (raw)
In-Reply-To: <83sf8g523j.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 801 bytes --]
On Fri, Aug 18, 2023 at 5:52 AM Eli Zaretskii <eliz@gnu.org> wrote:
> This changes the API of a public function in incompatible ways, which
> we try very hard not to do. Instead, the signature or
> eww-open-in-new-buffer should be like this:
>
> (defun eww-open-in-new-buffer (&optional no-select)
>
> and the new NO-SELECT argument should be set non-nil by C-u.
>
> > + (user-error "No avaliable link")))
>
> This also changes the text of the error message in this case. Was
> that really necessary? The original text was more accurate, I think.
>
> Also, this new feature needs a NEWS entry and a suitable addition to
> the EWW manual.
The attached patch included changes for the function, error message,
NEWS and EWW manual.
Please help review it.
Thanks. Regards
[-- Attachment #2: 0001-lisp-net-eww.el-eww-open-in-new-buffer-able-to-stay-.patch --]
[-- Type: text/x-patch, Size: 3813 bytes --]
From 2fb95d761d4d53e8b34253d89fd06ea267f3eb0d Mon Sep 17 00:00:00 2001
From: Lin Sun <sunlin7@hotmail.com>
Date: Wed, 16 Aug 2023 01:00:07 +0000
Subject: [PATCH] *lisp/net/eww.el: `eww-open-in-new-buffer' able to stay on
current buffer
---
doc/misc/eww.texi | 3 ++-
etc/NEWS | 5 +++++
lisp/net/eww.el | 49 ++++++++++++++++++++++++++++++-----------------
3 files changed, 38 insertions(+), 19 deletions(-)
diff --git a/doc/misc/eww.texi b/doc/misc/eww.texi
index b67624af9f..2181355a57 100644
--- a/doc/misc/eww.texi
+++ b/doc/misc/eww.texi
@@ -137,7 +137,8 @@ Basics
``tab'' in other browsers. When @code{global-tab-line-mode} is
enabled, this buffer is displayed in the tab on the window tab line.
When @code{tab-bar-mode} is enabled, a new tab is created on the frame
-tab bar.
+tab bar. If the prefix key @kbd{C-u} is avaliable, it will stay on
+current buffer.
@findex eww-readable
@kindex R
diff --git a/etc/NEWS b/etc/NEWS
index 808b599672..13aedee2d5 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -452,6 +452,11 @@ the kill ring. Alternate links are optional metadata that HTML pages
use for linking to their alternative representations, such as
translated versions or associated RSS feeds.
++++
+*** 'eww-open-in-new-buffer' support prefix key "C-u" to stay current buffer.
+The command accept the prefix key "C-u" to open the url in a new
+buffer but stay in current buffer, won't jump to the new buffer.
+
** go-ts-mode
+++
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index cb73926f46..f2ed60f172 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -542,24 +542,37 @@ eww-search-words
(call-interactively #'eww)))
(call-interactively #'eww)))
-(defun eww-open-in-new-buffer ()
- "Fetch link at point in a new EWW buffer."
- (interactive)
- (let ((url (eww-suggested-uris)))
- (if (null url) (user-error "No link at point")
- (when (or (eq eww-browse-url-new-window-is-tab t)
- (and (eq eww-browse-url-new-window-is-tab 'tab-bar)
- tab-bar-mode))
- (let ((tab-bar-new-tab-choice t))
- (tab-new)))
- ;; clone useful to keep history, but
- ;; should not clone from non-eww buffer
- (with-current-buffer
- (if (eq major-mode 'eww-mode) (clone-buffer)
- (generate-new-buffer "*eww*"))
- (unless (equal url (eww-current-url))
- (eww-mode)
- (eww (if (consp url) (car url) url)))))))
+(defun eww--open-url-in-new-buffer (url)
+ "Open the URL in a new EWW buffer."
+ ;; clone useful to keep history, but
+ ;; should not clone from non-eww buffer
+ (with-current-buffer
+ (if (eq major-mode 'eww-mode) (clone-buffer)
+ (generate-new-buffer "*eww*"))
+ (unless (equal url (eww-current-url))
+ (eww-mode)
+ (eww (if (consp url) (car url) url)))))
+
+(defun eww-open-in-new-buffer (&optional no-select url)
+ "Fetch URL in a new EWW buffer.
+
+If the NO-SELECT is not `nil', the forcus will stay on current buffer.
+
+If the URL is `nil', it will try `eww-suggested-uris' under current cursor."
+ (interactive "P")
+ (if-let ((url (or url (eww-suggested-uris))))
+ (if (or (eq eww-browse-url-new-window-is-tab t)
+ (and (eq eww-browse-url-new-window-is-tab 'tab-bar)
+ tab-bar-mode))
+ (let ((tab-bar-new-tab-choice t))
+ (tab-new)
+ (eww--open-url-in-new-buffer url)
+ (when no-select
+ (tab-bar-switch-to-prev-tab)))
+ (if no-select
+ (save-window-excursion (eww--open-url-in-new-buffer url))
+ (eww--open-url-in-new-buffer url)))
+ (user-error "No link at point")))
(defun eww-html-p (content-type)
"Return non-nil if CONTENT-TYPE designates an HTML content type.
--
2.20.5
next prev parent reply other threads:[~2023-08-18 19:03 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1181651021.466162.1581309285621.ref@mail.yahoo.com>
2020-02-10 4:34 ` bug#39539: 27.0.60; [PATCH] Fix error message "Invalid function: with-connection-local-variables" Sun Lin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-02-10 6:46 ` bug#39539: Acknowledgement (27.0.60; [PATCH] Fix error message "Invalid function: with-connection-local-variables") Sun Lin
2020-02-10 8:23 ` Sun Lin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-02-10 16:04 ` Sun Lin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-02-10 16:22 ` Stefan Kangas
2020-02-10 16:44 ` Eli Zaretskii
2022-09-27 21:10 ` bug#58127: 29.0.50; [PATCH] Fix the calc load calc-loaddefs.el without suffix sensitive lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-27 21:15 ` Lars Ingebrigtsen
2022-09-27 22:23 ` bug#58129: 29.0.50; [PATCH] Fix (package-update) always install package due to invalid version comparison lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-28 11:05 ` Lars Ingebrigtsen
2022-10-22 5:16 ` bug#58708: 29.0.50; [PATCH] Fix build error that gflags.will_dump_ not surround by the directives as its definition lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-22 7:00 ` Eli Zaretskii
2022-10-25 5:32 ` lin Sun
2022-10-25 11:57 ` Eli Zaretskii
2022-10-25 22:03 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-29 5:01 ` bug#58860: 29.0.50; [PATCH] semantic/fw.el: speed up the 'semantic-find-file-noselect' lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-29 6:31 ` Eli Zaretskii
2022-10-29 15:06 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-30 6:56 ` Eli Zaretskii
2022-10-30 12:37 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-30 17:13 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-31 13:22 ` Eli Zaretskii
2022-11-13 4:26 ` bug#59236: 29.0.50; [PATCH] bytecomp.el: (byte-recompile-directory): Fix negated ignore lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-13 7:12 ` Eli Zaretskii
2022-11-13 7:22 ` Philip Kaludercic
2022-11-09 1:19 ` bug#59139: 29.0.50; batch-byte-recompile-directory doesn't recompile file as expected David Ponce
2022-11-09 9:41 ` bug#59139: Acknowledgement (29.0.50; batch-byte-recompile-directory doesn't recompile file as expected) David Ponce
2022-11-12 16:01 ` bug#59139: 29.0.50; batch-byte-recompile-directory doesn't recompile file as expected David Ponce
[not found] ` <handler.59139.D59236.16683241653696.notifdone@debbugs.gnu.org>
2022-11-13 10:12 ` bug#59139: closed (Re: bug#59236: 29.0.50; [PATCH] bytecomp.el: (byte-recompile-directory): Fix negated ignore) David Ponce
2022-11-14 11:50 ` Philip Kaludercic
2022-11-13 7:45 ` bug#59236: 29.0.50; [PATCH] bytecomp.el: (byte-recompile-directory): Fix negated ignore lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-14 17:52 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-16 19:21 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-16 19:30 ` Philip Kaludercic
2022-11-16 19:43 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-19 22:39 ` bug#60209: 29.0.50; [PATCH] lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-02 5:13 ` bug#62609: 29.0.60; [PATCH] src/comp.c: New variable `comp-el-to-eln-strip-prefix` for `comp-el-to-eln-rel-filename` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-02 6:02 ` Eli Zaretskii
2023-04-03 0:53 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-03 12:33 ` Eli Zaretskii
2023-04-03 14:08 ` Andrea Corallo
2023-04-03 14:37 ` Eli Zaretskii
2023-04-11 5:15 ` bug#62767: 29.0.90; [PATCH] *lisp/emacs-lisp/package.el: set variables after info package lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-14 20:07 ` Philip Kaludercic
2023-04-14 22:12 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-15 9:15 ` Eli Zaretskii
2023-04-15 10:43 ` Philip Kaludercic
2023-04-15 10:58 ` Eli Zaretskii
2023-04-17 6:13 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-17 6:53 ` Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-17 6:59 ` Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-17 13:24 ` Philip Kaludercic
2023-04-17 15:27 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-17 16:03 ` Philip Kaludercic
2023-04-17 17:25 ` Eli Zaretskii
2023-04-17 16:30 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-19 5:11 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-20 9:12 ` Eli Zaretskii
2023-04-20 16:16 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-23 22:11 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
[not found] ` <CABCREdpha5W_phrK8iLVN973-m5BjahNgMhpHDC=oA-X4Vvj9A@mail.gmail.com>
2023-05-24 2:53 ` lin Sun
2023-05-24 11:32 ` Eli Zaretskii
2023-05-25 0:46 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-26 9:37 ` Eli Zaretskii
2023-05-30 3:56 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-30 10:25 ` Eli Zaretskii
2023-05-23 4:28 ` bug#63653: 29.0.91; [PATCH] More fix for loading SQLite extensions lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-23 4:36 ` lin Sun
2023-05-23 11:33 ` Eli Zaretskii
2023-05-23 13:40 ` lin Sun
2023-05-23 14:54 ` Eli Zaretskii
2023-05-23 15:01 ` lin Sun
2023-05-23 4:52 ` lin Sun
[not found] ` <CABCREdoXGHXZPJJK7255c=DEAGqUtMc67Yj0VxwbS+GGXqciZQ@mail.gmail.com>
2023-06-30 21:55 ` bug#64386: 29.0.91; [PATCH] *src/emacs.c: a comma for elements of usage_message Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-01 1:34 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-01 4:43 ` Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-01 18:56 ` Stefan Kangas
2023-07-01 6:10 ` Eli Zaretskii
2023-08-16 19:39 ` bug#65346: 30.0.50; *lisp/net/eww.el: new function 'eww-open-in-new-buffer-background' Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-17 7:49 ` Eli Zaretskii
2023-08-17 22:51 ` Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 5:52 ` Eli Zaretskii
2023-08-18 19:03 ` Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2023-08-20 8:50 ` Eli Zaretskii
2023-08-20 14:29 ` Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-20 16:44 ` Juri Linkov
2023-08-27 16:40 ` Eli Zaretskii
2023-08-18 2:15 ` Michael Heerdegen
2023-08-18 6:07 ` Eli Zaretskii
2023-10-23 17:15 ` bug#66710: 29.0.1; [PATCH] *doc/misc/gnus.texi: Fix unmatched quote in gnus doc Lin Sun
2023-10-23 18:57 ` Eli Zaretskii
2023-10-23 23:30 ` bug#62767: " Lin Sun
2023-09-01 19:58 ` bug#60209: 29.0.50; [PATCH] lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el Stefan Kangas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CABCREdqPgihFemWG0vHG74owu1mFhfJs7MRZT4BJpkbV7Et1iQ@mail.gmail.com \
--to=bug-gnu-emacs@gnu.org \
--cc=65346@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=sunlin7@yahoo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.