[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: allow me to adjust URL before visiting
- From: Katsumi Yamaoka <yamaoka@xxxxxxx>
- Date: Fri, 17 Oct 2008 08:47:40 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 10403
- References: <87wsghiuuh.fsf@xxxxxxxxxxx> <b4mskr03t3m.fsf@xxxxxxx>
>>>>> In [emacs-w3m : No.10395] Katsumi Yamaoka wrote:
>>>>>> In [emacs-w3m : No.10389] jidanni@xxxxxxxxxxx wrote:
>> Often my cursor is sitting upon a URL, and I want to visit it, but
>> would like to modify it a little first before visiting it.
>> So I end up doing e.g.,
>> u g C-y C-b C-b...C-b C-k <return> (here I have deleted some
>> characters at the end of the URL)
>> I would rather do
>> X C-b C-b...C-b C-k <return>
>> where X is some new key-command.
>> Actually the g command already give the user the opportunity to adjust
>> the URL before hitting RET. The problem with g is that it acts the
>> same whether the cursor is sitting on top of a link or not.
> I vote to making the `g' command behave just as `X'. I.e., to
> make it offer the url of the link under the point as the default.
[...]
> Opinions?
I've installed the changes (attached below) in the emacs-w3m trunk.
Now not only `w3m-goto-url' but also `w3m-goto-url-new-session' and
`w3m-download' behave like the command `X'.
Regards,
--8<---------------cut here---------------start------------->8---
--- w3m.el~ 2008-10-08 22:32:07 +0000
+++ w3m.el 2008-10-16 23:45:24 +0000
@@ -4224,16 +4224,26 @@
(setq ffap-url-regexp (replace-match "\\1\\\\|nntp:\\2"
nil nil ffap-url-regexp)))))
-(defun w3m-active-region-or-url-at-point ()
+(defun w3m-active-region-or-url-at-point (&optional default=current)
"Return an active region or a url around the cursor.
-In Transient Mark mode, deactivate the mark."
+In Transient Mark mode, deactivate the mark. If DEFAULT=CURRENT is
+non-nil, return the url of the current page by default."
(if (w3m-region-active-p)
(prog1
(w3m-replace-in-string (buffer-substring-no-properties
(region-beginning) (region-end))
"[\t\r\f\n ]+" "")
(w3m-deactivate-region))
- (w3m-url-at-point)))
+ (or (w3m-url-at-point)
+ (w3m-anchor)
+ (unless w3m-display-inline-images
+ (w3m-image))
+ (and default=current
+ (stringp w3m-current-url)
+ (if (string-match "\\`about://\\(?:header\\|source\\)/"
+ w3m-current-url)
+ (substring w3m-current-url (match-end 0))
+ w3m-current-url)))))
(defsubst w3m-canonicalize-url (url &optional feeling-lucky)
"Add a scheme part to an URL or make an URL for \"I'm Feeling Lucky on Google\"
@@ -4262,7 +4272,7 @@
(unless default
(setq default w3m-home-page))
(unless initial
- (setq initial (w3m-active-region-or-url-at-point)))
+ (setq initial (w3m-active-region-or-url-at-point t)))
(if (and quick-start
default
(not initial))
@@ -4277,17 +4287,27 @@
'self-insert-command))
(unwind-protect
(completing-read
- (or prompt
- (if default
- (format "URL %s(default %s): "
- (if feeling-lucky
- "or Keyword "
- "")
- (if (stringp default)
- (if (eq default w3m-home-page)
- "HOME" default)
- (prin1-to-string default)))
- "URL: "))
+ (if prompt
+ (if (or initial (not default))
+ prompt
+ (when (string-match " *: *\\'" prompt)
+ (setq prompt (substring prompt 0
+ (match-beginning 0))))
+ (concat prompt " (default "
+ (if (equal default w3m-home-page)
+ "HOME"
+ default)
+ "): "))
+ (if default
+ (format "URL %s(default %s): "
+ (if feeling-lucky
+ "or Keyword "
+ "")
+ (if (stringp default)
+ (if (eq default w3m-home-page)
+ "HOME" default)
+ (prin1-to-string default)))
+ "URL: "))
'w3m-url-completion nil nil initial
'w3m-input-url-history)
(define-key minibuffer-local-completion-map " " ofunc))))
@@ -5453,14 +5473,7 @@
NO-CHACHE (which the prefix argument gives when called interactively)
specifies not using the cached data."
(interactive
- (let* ((url (w3m-input-url "Download URL (default HOME): "
- (when (stringp w3m-current-url)
- (if (string-match
- "\\`about://\\(?:header\\|source\\)/"
- w3m-current-url)
- (substring w3m-current-url (match-end 0))
- w3m-current-url))
- w3m-home-page))
+ (let* ((url (w3m-input-url "Download URL: "))
(basename (file-name-nondirectory (w3m-url-strip-query url))))
(if (string-match "^[\t ]*$" basename)
(list url
@@ -6404,7 +6417,7 @@
(if (w3m-display-graphic-p)
(w3m-toggle-inline-image)
(w3m-view-image)))
- ((setq url (w3m-active-region-or-url-at-point))
+ ((setq url (w3m-active-region-or-url-at-point t))
(unless (eq 'quit (setq url (w3m-input-url nil url 'quit nil
'feeling-lucky)))
(w3m-view-this-url-1 url arg new-session)))
@@ -8546,15 +8559,7 @@
corresponding to URL to be retrieved at this time, not for the url of
the current page."
(interactive
- (list (w3m-input-url
- nil
- (or (w3m-active-region-or-url-at-point)
- (when (stringp w3m-current-url)
- (if (string-match "\\`about://\\(?:header\\|source\\)/"
- w3m-current-url)
- (substring w3m-current-url (match-end 0))
- w3m-current-url)))
- nil nil 'feeling-lucky)
+ (list (w3m-input-url nil nil nil nil 'feeling-lucky)
current-prefix-arg
(w3m-static-if (fboundp 'universal-coding-system-argument)
coding-system-for-read)))
@@ -8882,15 +8887,7 @@
will be created by copying the current session. Otherwise, the new
session will start afresh."
(interactive
- (list (w3m-input-url
- nil
- (or (w3m-active-region-or-url-at-point)
- (when (stringp w3m-current-url)
- (if (string-match "\\`about://\\(?:header\\|source\\)/"
- w3m-current-url)
- (substring w3m-current-url (match-end 0))
- w3m-current-url)))
- nil nil 'feeling-lucky)
+ (list (w3m-input-url nil nil nil nil 'feeling-lucky)
current-prefix-arg
(w3m-static-if (fboundp 'universal-coding-system-argument)
coding-system-for-read)
--8<---------------cut here---------------end--------------->8---