From 0d4ea62ef8a767ea9ed603af489af341501d098e Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sat, 1 Sep 2012 16:31:21 +0100 Subject: [PATCH] TiddlyFox update to work with Unicode paths --- tiddlyfox/extension/content/inject.js | 11 ++++++++--- tiddlyfox/extension/content/overlay.js | 12 ++++++++++-- tiddlyfox/extension/tiddlyfox.xpi | Bin 13326 -> 13479 bytes 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/tiddlyfox/extension/content/inject.js b/tiddlyfox/extension/content/inject.js index caa732290..99673c4d1 100644 --- a/tiddlyfox/extension/content/inject.js +++ b/tiddlyfox/extension/content/inject.js @@ -13,8 +13,8 @@ The JavaScript in this file is injected into each TiddlyWiki page that loads if(messageBox) { // Create the message element and put it in the message box var message = document.createElement("div"); - message.setAttribute("tiddlyfox-path",path); - message.setAttribute("tiddlyfox-content",content); + message.setAttribute("data-tiddlyfox-path",path); + message.setAttribute("data-tiddlyfox-content",content); messageBox.appendChild(message); // Create and dispatch the custom event to the extension var event = document.createEvent("Events"); @@ -31,7 +31,7 @@ The JavaScript in this file is injected into each TiddlyWiki page that loads try { // Just the read the file synchronously var xhReq = new XMLHttpRequest(); - xhReq.open("GET", "file://" + path, false); + xhReq.open("GET", "file://" + escape(path), false); xhReq.send(null); return xhReq.responseText; } catch(ex) { @@ -39,7 +39,12 @@ The JavaScript in this file is injected into each TiddlyWiki page that loads } }; + var injectedConvertUriToUTF8 = function(path) { + return path; + } + window.mozillaSaveFile = injectedSaveFile; window.mozillaLoadFile = injectedLoadFile; + window.convertUriToUTF8 = injectedConvertUriToUTF8; })(); \ No newline at end of file diff --git a/tiddlyfox/extension/content/overlay.js b/tiddlyfox/extension/content/overlay.js index 7a6ec8caa..e177ba48f 100644 --- a/tiddlyfox/extension/content/overlay.js +++ b/tiddlyfox/extension/content/overlay.js @@ -62,6 +62,14 @@ var TiddlyFox = { }, saveFile: function(filePath,content) { + // Attempt to convert the filepath to a proper UTF-8 string + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var converter = Components.classes["@mozilla.org/intl/utf8converterservice;1"].getService(Components.interfaces.nsIUTF8ConverterService); + filePath = converter.convertURISpecToUTF8(filePath,"UTF-8"); + } catch(ex) { + } + // Save the file try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); @@ -82,8 +90,8 @@ var TiddlyFox = { onSaveFile: function(event) { // Get the details from the message var message = event.target, - path = message.getAttribute("tiddlyfox-path"), - content = message.getAttribute("tiddlyfox-content"); + path = message.getAttribute("data-tiddlyfox-path"), + content = message.getAttribute("data-tiddlyfox-content"); // Save the file TiddlyFox.saveFile(path,content); // Remove the message element from the message box diff --git a/tiddlyfox/extension/tiddlyfox.xpi b/tiddlyfox/extension/tiddlyfox.xpi index 03193631900ad2980372f5b6b88d5e0310824b65..f57670018adb6dc6e30402e0dc3c45e43f0d4e15 100644 GIT binary patch delta 3226 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