From 970cdd37f511cb1477e41f53cf191d08e606541a Mon Sep 17 00:00:00 2001 From: "neil%parkwaycc.co.uk" Date: Sat, 29 Jul 2006 05:41:45 +0000 Subject: [PATCH] Bug 160055 Copy Email Address should unescape e.g. %40 to @ r=dean_tessman sr=bz a=asa git-svn-id: svn://10.0.0.236/trunk@205709 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/suite/common/nsContextMenu.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mozilla/suite/common/nsContextMenu.js b/mozilla/suite/common/nsContextMenu.js index ea5093eee3b..e2d77b84a26 100644 --- a/mozilla/suite/common/nsContextMenu.js +++ b/mozilla/suite/common/nsContextMenu.js @@ -640,6 +640,19 @@ nsContextMenu.prototype = { addresses = url.substr( 7 ); } + // Let's try to unescape it using a character set + // in case the address is not ASCII. + try { + var characterSet = Components.lookupMethod(this.target.ownerDocument, "characterSet") + .call(this.target.ownerDocument); + const textToSubURI = Components.classes["@mozilla.org/intl/texttosuburi;1"] + .getService(Components.interfaces.nsITextToSubURI); + addresses = textToSubURI.unEscapeNonAsciiURI(characterSet, addresses); + } + catch(ex) { + // Do nothing. + } + var clipboard = this.getService( "@mozilla.org/widget/clipboardhelper;1", Components.interfaces.nsIClipboardHelper ); clipboard.copyString(addresses);