From 64978d071f51ed3dd3f9945445e9b2ed82c35ab4 Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Sat, 2 Nov 2013 12:26:34 -0700 Subject: [PATCH] Preserve fragment ID when yanking short URLs. --- common/modules/buffer.jsm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/common/modules/buffer.jsm b/common/modules/buffer.jsm index 472b8c11..3a35f608 100644 --- a/common/modules/buffer.jsm +++ b/common/modules/buffer.jsm @@ -624,11 +624,20 @@ var Buffer = Module("Buffer", { get shortURL() { let { uri, doc } = this; + function hashify(url) { + let newURI = util.newURI(url); + + if (uri.hasRef && !newURI.hasRef) + newURI.ref = uri.ref; + + return newURI.spec; + } + for each (let shortener in Buffer.uriShorteners) try { let shortened = shortener(uri, doc); if (shortened) - return shortened.spec; + return hashify(shortened.spec); } catch (e) { util.reportError(e); @@ -637,7 +646,7 @@ var Buffer = Module("Buffer", { let link = DOM("link[href][rev=canonical], \ link[href][rel=shortlink]", doc); if (link) - return link.attr("href"); + return hashify(link.attr("href")); return null; },