Subject: Re: bug#31927: 26.1; Fragment/bookmark part of URL omitted in default offered by `eww'

From: "N. Jackson" <[email-masked]>
Date: Sun, 29 Jul 2018 13:16:29 -0400

At 11:57 -0400 on Sunday 2018-07-29, Noam Postavsky wrote:

> Eli Zaretskii <[email-masked]> writes:
>
>>> From: Lars Ingebrigtsen <[email-masked]>
>>> Cc: [email-masked] (N. Jackson),  [email-masked]
>>> Date: Sun, 22 Jul 2018 15:10:42 +0200
>>> 
>>> >>   3. M-: (thing-at-point-url-at-point) RET
>>> >>   => https://en.wikipedia.org/wiki/Midsummer#History
>>> >> 
>>> >>   4. M-: (url-get-url-at-point) RET
>>> >>   => https://en.wikipedia.org/wiki/Midsummer
>>> >> 
>>> >> Is it expected for these two functions to behave
>>> >> differently here?
>>> >
>>> > Yes, that's the question. I hope Lars (CC'ed) could comment
>>> > on that.
>>> 
>>> I think the behaviour of `url-get-url-at-point' is suboptimal
>>> here. Perhaps we should just make eww use
>>> `thing-at-point-url-at-point' instead? And mark
>>> `url-get-url-at-point' as obsolete, as it doesn't seem very
>>> actively maintained and duplicates thingatpt functionality.
>>
>> Probably. Unless some functionality really needs to ignore the
>> parts after the hash, for some reason.
>
> If it's really needed, then it's probably better to parse the
> url and explicitly remove unwanted parts. I notice this bug is
> pretty similar to Bug#898 "ffap -> emacs-w3m dropping of
> #anchor"; it seems pretty clear that dropping the part after the
> hash is the wrong thing in web browsing contexts.

FWIW, in the Emacs codebase at least, `url-get-url-at-point' is
only used twice, both in eww.el:

    $ grep -rHn 'url-get-url-at-point' *
    ChangeLog.3:21009:      * lisp/url/url-util.el (url-get-url-at-point): Add missing group
    lisp/loaddefs.el~:11861:(defvar eww-suggest-uris '(eww-links-at-point url-get-url-at-point eww-current-url) "\
    Binary file lisp/net/eww.elc matches
    lisp/net/eww.el:32:(require 'url-util)                  ; for url-get-url-at-point
--> lisp/net/eww.el:67:    url-get-url-at-point
--> lisp/net/eww.el:77:             url-get-url-at-point
    Binary file lisp/url/url-util.elc matches
    lisp/url/url-util.el:544:(defun url-get-url-at-point (&optional pt)
    lisp/url/ChangeLog.1:742:       (url-get-url-at-point): Don't use eval-when-compile.
    lisp/url/ChangeLog.1:2799:      * url-util.el (url-get-url-at-point): Guard against 'url'
    lisp/url/ChangeLog.1:2859:      * url-util.el (url-get-url-at-point): Allow URLs wrapped in
    lisp/url/ChangeLog.1:2977:      * url-util.el (url-get-url-at-point): Re-integrated.
    lisp/loaddefs.el:11861:(defvar eww-suggest-uris '(eww-links-at-point url-get-url-at-point eww-current-url) "\
    lisp/ldefs-boot.el:11763:(defvar eww-suggest-uris '(eww-links-at-point url-get-url-at-point eww-current-url) "\
    Binary file src/emacs-master-2017-05-31 matches
    Binary file src/emacs matches
    Binary file src/emacs-25.3-2017-09-12 matches
    Binary file src/emacs-head-2017-12-29 matches
    Binary file src/emacs-27.0.50.1 matches
    Binary file src/emacs-master-2016-12-01 matches
    Binary file src/bootstrap-emacs matches