Aloha, Either of your suggested solutions would work, of course, and limit effects to org-xxx-copy-for-org-mode. I didn't go that way because I didn't want to have to continually modify the core product on my own :)
The idea of (if (org-string-nw-p link-location etc. may be best because we can have a guaranteed nil on a bad link, rather than ignore-errors which (I think?) may have a different return. I didn't put an error message in my 'advice' workaround but it would be a good idea. Regards, Bob On Sat, Apr 14, 2018 at 3:17 AM, Nicolas Goaziou <m...@nicolasgoaziou.fr> wrote: > Hello, > > Bob Newell <bobnew...@bobnewell.net> writes: > >> The problem? When org-make-link-string encounters an empty link (it >> doesn't happen often but it does happen), it uses the 'error' function >> to say that the link is empty. This means that the entire call to >> org-xxx-copy-for-org-mode is aborted, and consequently nothing is >> captured. >> >> Should this be the desired behavior? > > Your question is twofold. > > OTOH, it seems sane to expect `org-make-link-string' to throw an error > if you try to apply it on garbage. OTOH, I agree it is not desirable to > throw away all captured information because of a bad link. > > I think the problem lies in the logic of `org-eww-copy-for-org-mode' and > `org-w3m-copy-for-org-mode', which should handle better errors from > `org-make-link-string'. > > For example, > > (if (stringp link-location) > ;; hint: link-location is different for form-elements. > (org-make-link-string link-location link-title) > link-title) > > could be replaced with > > (if (org-string-nw-p link-location) > ...) > > or even > > (or (ignore-errors (org-make-link-string ...)) > link-title) > > WDYT? > > Regards, > > -- > Nicolas Goaziou -- Bob Newell Honolulu, Hawai`i Sent via Linux Mint 17.