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 zcmeCnSf0rn;LXg!#Q*~9niVJV%CcYAbPBkx=`_($iWwy0rwSLTS_u-Fti~t@7lJ67 zoWZCL6Pi4Y@eEj5Did66^JFFqM&WhMijJwjJGf(+7#Ipz85jf^WF{*Zh}3g3FhlJO zD6QaTU}X8q$iToN!oa|=HsoN?Z36+@+wmJ8PhRL(^LEO^0HY$Ct5$va7WX&cLRYh{$=|oJm2nL z;_G_SL9+B|K~MSlH%>WgXo z;_XJZYF)eD+C_%v#DD1FmAovwZq03}n}+X8W0!9thX`uKGK3#nVU*K|~Vds#G9bVB7e{?wTVtsT@|yBGIa+$x#?*fM|R^P2g#Q=(!3|n^7y$)@qg{}2~%8dd)7}(xZTV;)9U*B7|V)3 z9}XU7Kg_vdd(AQZ&t6leJ>A8iCbC&L@rH-TpJWLgh4s23IcgTaSEUDd?mHv4_0Oqi z!U1n0LJTf(r|GO;lUO=);*;adRp%;>wk^_l@<~FI@5cR-9i|c+ob^<@N|KKTCch9-NwMRMcP}u64_3D^SC1BxvOELf!Iz9?Vl1d%Ecxw z4s0Jbo!PpnqDf4|YW?ybvw9E8c`mqq{q$rdU#nG1w)?M1no^c-yF72T^@)l=nTgYa zFRfePHTnL%`Le(Im!JEwRCnWcTlE>_+TGp*pg{$t0x^^Qz7^9{6@30SAd)C=@> z+&);reC^=PijzB>CbVjO+2hD;ugKGl!a3aU@9elDw`@&=;QFP1oe$L5 zpRkuSOw`n@;CSu+F?K^tQL>Ai!|OR>%apCYm}qjnTig}5VWxz@#fdAHWnLy$)8l|Uvz=h=2sV)W{J-m{B|<%;U6iGNT}YiqLn zT~hXI_f}Q8D+xKTOs$%HrZ2ekV)hY*kn;zkC)XN#)*lf( z9nr!Vx}<*9v`g}niu~(5-o88#Jt;K7Yb_7Y#bai+vXM_556`dmJN0T0Q=aT~Ya1Wy zlXK0U#47UDD*5iYa6$fqf7*1_lfE1)4w~mIXUyltXEc-{%}()tbBN{?&W+oyU(?NIk9USjri{ zNJ8kh<@U*S##Of(7M-m(Si0%Tj0;@s8~ODNr<`zjZegsYbFiycLN0&*k(n`x;)-R_ zy3SKXBARnqH=O&l>(IGLbHkI`jE)r?6Say=b;#ws_1NU+0+vrRV81{G9X0>S{fwrscWWhGF}rHs9)t+ZJQ-DP5`kZ~gL<;$DZm z|C{%!DDsCW&ucz8#nSP5oSfO2MyrU+3GHoL9&P^c?ct**n_6mCbnbVyEc9S4U$^n$ zt(r+rlP~-33Sf!e@IT+?F2fGyDK6#{te#&=e7^dv%R{AQbuITb3j;2>E>P^;Am2Jy zKuy=8v0>F+!Glc2_m=FPH{bc)nQY(k`d`-FbC<85|NWbw?*A^mH+w2R?kV-Y{!K4V zab9t3ZTY=iW&g(9Aw`FYdW=uhST+2(yIeT^+9 zAql~qGg(aY0u?t+Tys{Xm#=6guL-;8ja`TSiiz)=y?OP*g51Pf)i<|}$$qol5aV&@ zX5oYSV{fz9-rU|jzgKMErR&}b3%QQi1$S!S`MEK*`1JPO|J=5Cp8s5G{dI0c`1IGa zy;i-R;T!IAdI!H*kGR3r#;qT@|8(5^P`|b|U3LA09ya@T{3@xb9u>T=4R7AKkiV0? za_g#NO9hv0F_YS&wf&(`aa+9K2j*w5Mbv#oE(!SVU)o;(_a*!6%PdQ-EHQhzxutHN zS?BUoyxrelO?psv*{r*5$B~KrFC4d4)kfU^a@n#r#QyS*BLW{}y3by?Q(1lTi|AVE zws-x9zA34ACc5QzZArJ7zvkT56n1uteVX5@J^O8|o)n#$_)GTG1tFK+j1vPlyF3ez zII-Po*YEi|c2xVz*Ot~t_DRpV8L{Ni*}jfhmn1LWJFs?Hr|cQ@m|nuDR>&qqzz!mtyN4FBAV!^YPvZuk#t_yRL7z>?a{sw<~YO zjl=B!!L<>*GMXIAqX}zMZSLi9X9PE@uJang1^M|Fih~6=t17|;Z>wrDfd$z$keYHL zlkGLwz``CH$}qLi7T)B34IP-!?&nr$d8Zm-6`keOFpl9-dDSCo<#8Ui&C zrge{@wD4pN28NvcH}J-Oyl!Dws_%M$*jEnhcZYYe=#|EwD9` zQ3QGUqk>Vg90LP`0s{ks1Ou{{cWN?Bw$+qI(qID8Afh6cJ&Botp_83~feS^0rWON3 zQEFmJZmM2MMG3M~^+6iJp$R2ep&A(&1Q^~r{?}!IB@2Y>AaQLh&19!H`JAyhIOJX! LE3m!O1DOE;>9TYf delta 3079 zcmZ3U*_Xi^;LXg!#Q*|{S#lG3W!cT5>;ufB>?ayZF(+loP4rV`H;0N;tptfoR%4Wd z3qcf3&R|rB2~D2Hcm}L2l?g7kc`}m)BVSUMoMXE8*4*~lTr<~w98d7G=F>f_V)AbKW*Z!bNDY3U+=0d&9t&HD|6u_uEzO6^@p1_Jdsaf za1A^hHEpR?&BXhvCXaX}^*QRN2rlh?UMaIYbUF7VH)pHn_(GYdpDn5!Uq$6M-s;QL z-VhtOU~A}dqZKWi{%sJtv*nCKx!2DBw*)pAtvuqEC}UW8rTd%8%g`@BUZmVRaKk8< z5(W4!li{dIFc+mQcrc77NB-OlS={URvKb79rB zd`o%m>5o;4H=eFJr{^xel(*b=I=jrz%fC+iI`ZjaVd>nIu)q5!{W){`^L7<}%SGP` zPF)th{oFR$xy|Rd>sI#ID{C(<+x*I4*N*k^AJ~Jl?i{>+{=9srl--L9K~_5+FnS-> zH}ti$Su>d@Rp|IPyYs>o>~&KUl5R0<|8pwX{Ca^zj8vBHtz#M8+24-c=4dT8KU%2F zbZau({Jk5k?*(j*&O7VBa>@*yZ(rA~U$;^C^}4$$j~@59{{^RHQ0n1e0Hw4eAR+q_@`S}=$tNP^wCI5 zKeVB9!jJyM4J~^%25i{*p#II~dCs~&wW7^F8AqRS*f@PrTW6e6a%C=W_NpEgd#Q`h z=UmUx>2g{Zr}U`fukVq$7dz$_Xa+73PPo`HY4NSsQTjYra*pv%o+Tcj5V5-WPt^gn z-cxHYXti2uSStittGtx;Y2A3@Xyno54Hzg)R`{QDsAcJ*2a0Ro9}PcPbh1~lk|XN< z76aQCN0Ng?Y+OW}6O0WLT+|ooU0(9oCSiG3y!XOo8>PZ0w4Lvq^SLXYTl0<9OP9AU zv#yGtSi3$e=;h%;9rV%F95%x4#y7Avls{{Dgg8Xi{eZx0{+G0)akF-gdIWoqTHOgkX+)2os> zJd|Ao^uz!Y)Y^C=mDW9cN z8x3#Wn7X{#Rc_0lozIu7I+y+6TH#*Dq+8zawkp1tvN%)UY4XwOaLs{wqur}K@|+r_ zY7aU}3CJ?AvsD!v32*ZF?8n*p?s>muT<^~>y!wj1X$QJfJ`}#cET!%xm6Nu~|5xnI zo<)IG2D`7FzIJlcWBz@4d`I*$cQfwlzVkQd&qDDFV$Y_X==~s?B= z9QyX)eeUsft+B7}f4y1X`eeFCZI%Ro`i}mR?M2$~x#E$9w&qK4H@1bu;=n%qLkr|MbE0ljf4|J`bOTTP_jY?Qr@v=lO#vr{>HR zX0MbCnIzG|@jLE@pq_7sqRcT zd7ystm+!at7p}cukYV`qiO!NA!fW%-Z2NghD{uR>kFry&Hf+1sFh3psEl8@`xI@m2>|N3j{uF8OA+*Kj= z7ekJTe2|Ggb0MX!_UISWTvKQJ;1*ezi7KsKzub$ybo?89jb?#Qb!e|y}& zZjQ{A^;yolr-ca|%y3cq%$;-JTK4Y$_?SEUm-p{mu5;Y^V9wjuKN=JQZkq;2`QORf zmG-M|{tGMB!fzSxC)D4ZAH6d1n!?MEk6&cv&bPniKhufVE?`IE(hn2wsb)1zOf}q+ z9pUsnPyH^h^zCbBSO3e{8y^&@epa=&sI1sy{=!?^!_EG#ICR-q<7LUFL5kD4M}utZIh2`sokLl!1D(NKgF(q2l+lAHWcLm43fZZJ*O(A0qmO^(*g z0P8=dsRtMPt!V)kGt*LliEWP6TEh$$z#sk f6t{s5@G_B>SqhVd#Y1v&G2EC&69u+VJ&@M{F)I_>