From a8be16b1ee80f5d1d89b66494ec74af999652c2a Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sat, 13 May 2023 23:50:14 -0400 Subject: [PATCH] debug shortcuts plugin --- config.h | 2 +- makefile | 2 +- plugins/libre_redirect/libre_redirect.c | 8 +------- plugins/libre_redirect/str_init.c | 7 +++++++ plugins/libre_redirect/str_init.h | 1 + plugins/shortcuts/README.md | 4 ++++ plugins/shortcuts/shortcuts.c | 11 +++-------- plugins/shortcuts/shortcuts.h | 3 +-- rose | Bin 43656 -> 47904 bytes rose.c | 15 --------------- 10 files changed, 19 insertions(+), 34 deletions(-) create mode 100644 plugins/libre_redirect/str_init.c create mode 100644 plugins/libre_redirect/str_init.h diff --git a/config.h b/config.h index d8aaca9..b04ebe7 100644 --- a/config.h +++ b/config.h @@ -20,7 +20,7 @@ #define ZOOM 1.6 /* Starting zoom level.*/ #define ZOOM_VAL .1 /* Zooming value in zoomin/zoomout functions */ #define BG_COLOR "#FEFEFE" /* "FEFEFE", "#1E1E2E" */ -#define DEBUG false +#define DEBUG false typedef enum { goback, diff --git a/makefile b/makefile index 5650d05..43f8eb5 100644 --- a/makefile +++ b/makefile @@ -24,7 +24,7 @@ LIBS=`pkg-config --libs ${DEPS}` ADBLOCK=#'-L/usr/lib/wyebrowser/adblock.so' ## Plugins -LIBRE_REDIRECT=./plugins/libre_redirect/libre_redirect.c ./plugins/libre_redirect/str_replace_start.c +LIBRE_REDIRECT=./plugins/libre_redirect/libre_redirect.c ./plugins/libre_redirect/str_replace_start.c ./plugins/libre_redirect/str_init.c CUSTOM_STYLES=./plugins/style/style.c READABILITY=./plugins/readability/readability.c SHORTCUTS=./plugins/shortcuts/shortcuts.c diff --git a/plugins/libre_redirect/libre_redirect.c b/plugins/libre_redirect/libre_redirect.c index 134eabe..5f384d9 100644 --- a/plugins/libre_redirect/libre_redirect.c +++ b/plugins/libre_redirect/libre_redirect.c @@ -2,6 +2,7 @@ #include #include +#include "str_init.h" #include "str_replace_start.h" #define LIBRE_N 19 @@ -11,13 +12,6 @@ /* Inspired by https://libredirect.github.io/, but in C. */ -void str_init(char* str, int n) -{ - for (int i = 0; i < n; i++) - str[i] = ' '; - str[n] = '\0'; -} // could also use - int libre_redirect(const char* uri, char* output) { int l1 = strlen(uri); diff --git a/plugins/libre_redirect/str_init.c b/plugins/libre_redirect/str_init.c new file mode 100644 index 0000000..edbe2ab --- /dev/null +++ b/plugins/libre_redirect/str_init.c @@ -0,0 +1,7 @@ +void str_init(char* str, int n) +{ + for (int i = 0; i < n; i++) + str[i] = ' '; + str[n] = '\0'; +} // could also use + diff --git a/plugins/libre_redirect/str_init.h b/plugins/libre_redirect/str_init.h new file mode 100644 index 0000000..b282b7f --- /dev/null +++ b/plugins/libre_redirect/str_init.h @@ -0,0 +1 @@ +void str_init(char* str, int n); diff --git a/plugins/shortcuts/README.md b/plugins/shortcuts/README.md index 724c5d6..9718c4d 100644 --- a/plugins/shortcuts/README.md +++ b/plugins/shortcuts/README.md @@ -1,3 +1,7 @@ ## About This code automatically redirects shortcuts to their longer expansions. Similar to DuckDuckGo's bangs () + +Note that Whoogle (the default search engine) also has its own bangs! +- See: https://github.com/benbusby/whoogle-search/blob/main/app/utils/bangs.py +- and https://duckduckgo.com/bang.v255.js diff --git a/plugins/shortcuts/shortcuts.c b/plugins/shortcuts/shortcuts.c index bc25bbf..1af4fda 100644 --- a/plugins/shortcuts/shortcuts.c +++ b/plugins/shortcuts/shortcuts.c @@ -3,23 +3,18 @@ #include #include "../libre_redirect/str_replace_start.h" +#include "../libre_redirect/str_init.h" -#define SHORTCUT_N 20 +#define SHORTCUT_N 41 /* Uncomment for debug */ /* #define DEBUG */ /* Inspired by https://duckduckgo.com/bangs */ -void str_init(char* str, int n) -{ - for (int i = 0; i < n; i++) - str[i] = ' '; - str[n] = '\0'; -} // could also use - int shortcut_expand(const char* uri, char* output) { + printf("SHORTCUT EXPAND!"); int l1 = strlen(uri); int l2 = strlen(output); int len; diff --git a/plugins/shortcuts/shortcuts.h b/plugins/shortcuts/shortcuts.h index 00d08bd..5276281 100644 --- a/plugins/shortcuts/shortcuts.h +++ b/plugins/shortcuts/shortcuts.h @@ -1,6 +1,5 @@ #pragma once -#define SHORTCUT_N 20 +#define SHORTCUT_N 41 int shortcut_expand(const char* uri, char* output); -void str_init(char* str, int n); diff --git a/rose b/rose index 49d33bd3110db6980a60082641632ad54c94c70f..a838514c4cdab9fbbb7f403ae44cbba471fb140b 100755 GIT binary patch literal 47904 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 S-xWr*@&|%bSLHBlVo5r6XrpPg2u*J z#xWXOQQBL3W3^ZMtG4vkTC`PzsG;q(H(Io)Sfip&3VLHio3>)^cdfnmnLQ_Sy#4)t z_ujua`JAk?zI*Mp*IN5=_CDv#IXAf~mS$&V8EVThE;Wejx^w8)LzbVN9f#3W8Lz?axl9xf0I-rF@g=AOoEuU_()5AyLX_w+&7gDT*2ef~R~A zIxG>qmHx0;;EL+`xV*J8pN00FAaF(Xd=#72*NgPkx24m)l!z_&I6+lD3Ku0c%6yG7 zpQ5EQo{Fk?l8v;_lkv1tC(>wh@_&>osmixn=CjfzQch8lr)}lC(K<<~>R|^r3d2y8+6isN0e{VfbBY6X zg#mvswyAK_ybB92oKqAD6-No3P)Ey#qUKTd}XZ>ARbk zjyd@UeWz@_v+$Fd*KOYxy627W{rTTt-LQJf6YqR$^QAZ5v-y$B-|1O*{Nh(!&s{d5 z*Y}OH7r9K4U2QmbiMlBRo*oP z-}%*(s>iZ@)_?g3*hy9p{6h#uCVU+FYbJc{@tN^us2pbo{Tpq{y&sJ-aHh%Tk*x6~L{|%dV`?QVx zYc~4Nv$1EMO?$|;Dfb+k`25%=4uv*x-egmcciP~;vC-3QBR^bKCQorG-SaE}chwz20Z>~~_fZjad1%SAT& zAFzq@bvE%_X%`2Zav!rPci2Y%J{vtnHu7)V)bH~)_%9K#Ozm*2jh!29>hX|`oeON@ z*=tkoQ5!v{*x)~~@oUJY+?h6d3T)zetBsy_xE&T4FJC8G++x}Ap5yaNfl*K)fGbfR zZSPCGb)n#w31a-@M8lY1oN5%@B>;q-xATFYgqimYFm?!e?^`5rB|jNB>Cd(3 zUoG)*7W@XO=WjA@PsnmhWVyR41)$bot0ey8YXq+1(Qg7hJry~ZPZiejd~5pc>FC8$@rDhLr=ckn z^hBcGaMa^ru|}V_&KLF|)f4o!$eeXlbfhr^-V>@>M^-|Qp4jNG^Dz%R>JK(V*sMBV zy*Cz!8lLj1<({yw!5@kG!d1%`2SPz#mA57!vb6YFKa~+}ZBE0;+KB&pA2M%<`65yi z47Af#8;N+D!=a5ZC*=S|$LkLQNtFSo!=6SjN&D*kn^KOYyyhrc*jP{xYkJ)%Z>jE5 zMSAP%WT04|X@O`Ao>&BCMWU^!$Vj6P?oxp=4Fq-VYoTDHMrzkLghR1l9h3(`;ZZ`Q zxgJ%|Wrst7fN!)+*cS+S>oR8LMlm`i#04vyt(A?<)8q|$8(=*=)ICtLruCvwPfcsH z7qwICt!?y;l4%He>OU;qu6!dQNH+Z9d zbSrNy6RH>0e6@;I<-rV3i$B`v$z-I`YR1yqd|-#@Ze$SG4%`l!QL?lLb}r)chHD!= zQMjShXRKB&KC!T0xxgyGtE{F0rXLDX5~l5B;`O0WlPBQYmMOJ?9?;#{25x9x3<>TjD{8p_-k8fM5m#AHVxz@JW%uK-0TfU z#2}V77_s{LFx+qUMjLrZ2!^7*8nk0>O|`Lbn3`@gwOblO%v7_^357_w)l(CzuUEqv zg@RJ#uuoBzBM}dsGR+*qJ>CFL9j2xX%1J|Wz+3BU3kdQxU)VMX2=PrzH_3uI79>2&V#M7=d4s~9d-2cqG}9P%-U$kU}B6LL~J6`Dnd zeNCZ_z6>F!Mv?)hE+IlK!U?tNTnvwzaE{R;tJje_t(he&r^CKb7%?`_h1%)Yre?eW zOc$D{kEg1{?0ce2PBDw}HaGilRv6u`%)r*L4V+6WpOR5oQM6cbZb+*&vMz{G%T$}z zFjb&TBdEisWJLvJQ40{b!Jzijwhxeg%^l<6uKYJ9XvR<)Y8leQ<`9{ z4<{SU8Au#^N)}8lb=nIJOaf|~TMgeP%(Uu5h!dtn$O;v;jq5%2UVp%-haI&f7(i;1 zuc@}F*{H7#gwV&E(3L`zh8heT^(|qXW1ygRlb24!sHp3SrP4?#rdZrUBEjacKNzhy z>M^S`JU*W9c|0{Zldu$^V4czE4c1{!fSI2cCoZaBG=HV7HWH%}{08bM)@)RiFIwU9 ztZ*$UU*TF@<#An6wy46j1j3|RD#b9zQwgdWn)-x&+{I<88FbNDjP<@&bb(03K=JD2 zzK*y$f0$-}{(6r$7!0*yrf2ZLRttL@e08jv=dIFjvXps5AxzUap}^n{O;gYnuCgU% zi^?m?tJau?OW$FHVH!rQLHc0G@r3m*u3lMn<#Nx;sx=iZQ-PU_MdS&OPRAP&OyLtb z=B@Du{LxkqJoA)aiBQz}gLD$DGo;q)m97<@vSqF-s*Gg_@?y^gMRUxf3yS8-HG*6k zNiO|95P@>3l9ryGcDE>9Lpo<>vpFE?e>6vWsX}2YZ?e@f3+3td9tbo#sbsw((o=w5j{7YMtCH*WYVz6X^;sk$A3Lw<}!neRm3Z zT>cREjRkA$*KoRbrnY_!KTUz4NevHa_@IW%r7@=tYq(sZGOn%*(7HXQ>FK#$Fu3d@ zBPRI08lI{d!|2m+y*=&MaCL2iH1%sZ#X@aK4X3izHmKn$rj$0U;i$0G)+r822bRL- zmaE~iYB{Yy!^fG@c#c5B$7{G#!}BzJx`yX#c!`FqHb=?xG<-=*PaYIu)^pQYh@HT-N1@6+&eGpg zEDfKh;TLFlsfN$iaJPof(eO$QSLZ!SUajF5YVvC}{2~o+)Nr~-rnY7cpRYjBO&Wf& zhPP?>0uA4);qp=^r*>($JcTg6UBfTc^mJ?ZWg5Oi!%H=Mr-qkl_%01!q~SdpzF5Qe zYPd_o`!rl$BIeZn8oo@E@7Hj*h9@<=T*C)7{Hq#1tl^hyxFOGX)cz|pJXgc7(C`8c zzf!{|Yj~xGJ2m_&4WF*zD>S@B!{w!QPMxRWRhoRMhF5F2Tfe?z z{+qk~aIQPycoFAwcSlb&d!*0Z{%r0Z4$sKk+b~@i8aXEcl0S{*8!2UI;H{C7kuJ*L zNSA7c23|CIy5KN0u-oKwnE#o{(*=g1f%{FKE@})7+-34~pIF~&rF^c{_x-AX~7TwO`aC|@ZaQVfe-&po)-4--{fgQ z5C2V`EfFByjGI?6K4-I^DRQc~@{wuf0I9p`Jb6QEy&@&$f1vTp5f9~M*W*SEtKKE$in>;OW;lIh#!WRCU{3XnvVe+()h5sf` z3s}^@$7NYRq|LAYZe_CLo z{!N}1mhj)?X+a79O`aB#sDG2E1tjX<?C zo)(1g-{ff_2>(qULpk^}Or92gsDG2E1t0u3d0Ob9{{O1{U(5VkCQl1H_^)`JEw;d< z{As9XIzMFKU2suPUufayTKGZ>e~yKpYT+kY`0*CrVd0OW3UqruvG5;Q_;)S*8y5a$ z3;%+Jf6l@`Y2kli;UBT^KeX`oS@>-hzSF{YSokd#K4#&YEWFRcUu)s3E&Or|@3Qa< zE&N;yUufaavG7wZ{3HuM-oiU9{84ntwEDO3A6WQzE&Ll6{$&gQf`xz1!ar%@e_`Pt zvG6~%@b_8xZ5F=M!gpBsEfzjz;hQYH&%$48;j1nDatrUW@Cz;cTnk@l;m@(~Q!V@? z3qRh%J1qQB4AE)zZ{a_%@b6mqH!S?i7XAeb|D1(?(!&43!ari+e`w+Fv+&z2e5Zx) zu<%inz^%HuCy=Z?SaZa+9!Syj>Lcn>p5cjx#J zlZ8`3MkZZ=EJwQBoeS5XF5R7u6-4F_M<-z^^C`~2w3Io1q(6UJ8_rI~9!ViTgXQO* zNo2<7?)ad4_lK9ccMs>dvz~Xq_<3|96uco7$bGuOa>3r6<@B@@>#Aa5z+ZTR| zPWJBjyU}s(#KOnGB>y@*GLo#r;^BG6bCAor7J1F`DgQtV66v5C`P}g>$$0Ewuj?~1 z^U%bE>oa$4pF817y0iM8H=OOR&$56ma2?!yFyT6=rx{(>?on#WzE-xXth%gfrTgZ? z``Mx=r=t{i{1;A;I(K5sIW%i_$6b48^|<5x?)V;eqC<%ECf~!UJKk{#Wk_^T26wzS zN$2x;#}aS}{@+=d72ifI+0g#yEO&fcrR3t<3h1b}V=@T&K_c;Oh5&OFxcv!QIdR^s zzQ^hK2^Rj#NAC4K1@8DW?wj8>2C4M7+%sNu$A9adzb|?cJfd6u?)KZy9;TJpp#ezV z{PqZr-81&3jyqn87M#OqdotIZ)$eZ4g})#@ARVh=gsmTI$hz0I-8?T9CqVylQ`Ug!#l*` zP8|M99PYy5esS2-+u??GhhZ4K9i=$Jficj9e+g#Y+uez(=ekqOqtCHziB9PPRUJ9@ zb7YBkRDf%LlKyAMj@y+D>`;r~v%phm4mG6Q7kN1@XZ!^%Kr~>{$VIp!Smv~|Az8wN z1#E8q?blJUiEXSw^$J$B|I?9?T_^`pJm5}TySL6gdkXiis3Unk(%hZC{a2S=Q+93H zb!DDZ7sX|kO7!-^x>aOSlGSx{k!3Nw|iy`sTYn+nmee#NZa$Kt6_ry{-ckkzQ9n{u_s8C0zYt1lfzx zCI7Jk=J#^3S$p#zGv+-LJsx>jcwD=yA45<70@snvz3p2L82PtsMMAIZASa(?jz+tn zD^ZQ1>9_7g^-g!zZ=q;wcDw5!avxma8s7XeOpLpd30UhoeCXVS>u}15M0Ijh#$;Bz z>o77OUf>$s{2~p7JR(9hMnpr@`DBzuh9e?eDT_ammGT>NOhmw)G`zYy=Wf9z4GjG^ zf+Wi^u3;P;cDHXCHe%;tv_Az4K6iZg6BFUsQxq?V{*pv*9ENDGE6EP8=yeV9!DK|9 z2E*z>VHb_miRvR;3t-MLRnWb#CGI-XzU9bB><x0*~wR@MoxWlvzO!Z(&>1DDl5(-d~ZhyFb;A1lay>kPjI(C$tR`Q*%<8U2nsl-u5rc-SGh~Air%_b_n)A8-oDK@UQUY;h) zz)+eIJr3uNHY0Wh`b-=0aRw2R?+sE&rbB9An`kba!}OI!g|8bvq>#9_vMwcnsh3Dy zDN?)8W45{%xVpmSRypB%2KDT^tBblU+Qe^BNh!a{GBNKbzuzPiRey19rv`BvJKf#e zF^4>57q)B{9(NnDFT>+*n6zCEAdjHF;w(B4SF)xn+oda8KVV09z=3YVOzoDb>qP2K zXx#xvcZL^R<=9aeVP=J))bi=v&n~`?pr>3U!xL;1Mno7a)+PyFn@F?&1!fO?KnAOo zPysSgA3kuH>c06rS{Ak^vBq)jDvy6ERt4qpBVtLgtAKq)a@OGg?lK0`L*)<66kl|A zPRc%&+~^g<@*`w^q8d`VyT9bNbb#6tO;*KH5R=uL4w17NC#$I;xBc)ujNm&kYwfm< zv@&?EZi?Iwpsc-TV%)WpDn>04G0pvl)>Z%8VWf#FCflOZHlzKBsF5o?oqUk`vFp+H zEsti$FfE~oqIrt6MsBgA!&&m@FAgUb=k14^5zOuJ*xgtGY}Mnre^yWXmb-KEZ`q8o zh>yPcDMoA@W#`{Q6LLQK=Gy`@qWR#n@^85dDFZJ6OgI+eHVaz(RZstAEM^4l)Dq&Z zKG@ACr*G3)p2iYX)wRQvhBN-?$$~rne6o?6h0Jy!iO%GBZ4s%?zvWsKgcS6C%tts1 zG@DR^K@V=24P4B&{77af)-t@v7U>!8qzvOY!zRu^-BoCRaFlQjgcFX{Qt_*Zl5q69 zWGyahAm?7P>;KS9LpmCzIWarB*E%aAM{lAEli5CgAGWm9c_7|j9)DKZF@;3Xrh8ov zqn{ZG*Td~SSy-{kvBBi!db*d-1rRhP%j3_B(L;&;!`DFGanJaJJO0{#-!%}780}kj z8qw-r*A6oA&>U*h=F%$vv0Q5Cgl*qCF58l3+|m=xYj^FyvTVl!*Tb8iJ(Pv&@Lil6V;EB2g0S5 zC?lDt3Nlp%xD@sj=iWRH3!A=@!#L?6t99+IcjpH&H|b6O4lS3OGp&-$6Yp5qnAVV- z)P@s|?=R$Wwu8DS@+3*YPOkjk`2}umUjTCw5VG1*3zyekoAOLj(G2`<6i?ishK-y5$HtyR@Bj zCYGZ=bHq1LMJF7$5!yNTcFf7hjYDt2ja8-{*QD(D8B$2%Hz+1K$CUVLO5#qIAoHiD zz^_sTrYeih;nU+=4q!gihl^q-<$v=%Jl>RW9dLI}?0|Ey#c>>LNsP(HX`*w|-{~@S zR^O!~{qTp+#Bb7U19oJgw1FQXvr2egChYG=LYJ2Ch)gJkDFZE9!re0ALWF4GIxXP_ zO6Z(>1r?5>ehzlvQlt;%7mPn+0aHgAtQ^W;y?ZEsf@3@|cVg;TCc?~l$V07o4=HdU z)&oazriKDX|HVQPU6miozlIh38!#w%j)_q47fiBE1<#U&zm^J~hFMhVy&_YWmgyNi z)18#*o5-Xh^b}f3M^Efb#eWFCvyvKrpJ>eYp_va!IYl@1AkqiuTB|bcV~W`CG$5M_M%z-R zK7(3T!e2oerfw&+4`)U52eu*C(_~5VsXs|GlwDIH*fkJ^K>lNn?Jx#s${F;Pg7I2;i&%7$jNZ!DGnlHlf zaQY?<>C(q)VHVhArs?5YQA3<<-x~-#-(A49sp;CaDGUcC`UFJY$Q!s#Sk|9#Pm#Cu za4jvXhZeoN`?L9Sn&W{Bd7PNPJ9af}fGDmk^WDGEqES<{#8zgtkil7vrZI?=8x?hE zlDvb6TSxh~uER2S7X>qYK%1;QNH|W%!)EAWGtq{oHp1|1)f~@CDh;H(JbM$?PRq)K> zv)4t7nS*Rymdk=X6vOiU$@h@oEv~dCpCI=z_PvCsK*^4a(I}HX7NFjT+GNEKu;M+* z8&JtlIBDn1qfb`SC;Kcp5CrxV7Ql*#4L z`~-RU)Xp(N_AeyM{hej^&n1|xn95d=f}f|rtz_}HP1WB?rF{6BDsOWN93UMD$2SN; z)sLR=o%A^bI_JJ~ys&1zkiXbgo*s;Z{I8|_@k0It8~Mbf?%7b>Irn=~{#6)BRb}ZV z1*j>^Mq)H2A2$2^XYe%*SU@$Ez^xUY&~T6vSkYO|!1Jiu<1yU*t=^klO*-Ox#E?0Y zn;o~Ro>vKXTr~%^_@HQw$-^9QPQIU$UHg-6ZXA1(%}hD1LuCCjWu^LrdetcYDHqrz zv=Z51zAi-njvyrO;QB#NaU7pro{e~M4^=Mfx^G+8!N~FbHKk8MdSV=jp~Qaqx*}PK}~#)J2Zs>V`rj3vp9^Y zv3Z+u-{#*_tDBcTHap{64x`cabM1*1GN0-JH#-u`4@1|mm`wgN0-n4KR>{#Zf7&fn zEI+?k_O*)6g){LGaoH+*LZG@l{z+L?S^TqVcW2=gz$+_e9K~rMH~G^(Xx@D^CpvA` z>+*S%iuh1P{KF;j_sd2mzUgk?ljWZOM(oe9GxzFi)h*&Z_4P%1d3$8Jq?06x|DW3E z{R*@-Mx)J67;w5;85xsyXQd}Df`-&r>`Y2vp<}1egTq2Fdi;KhXxUeQ1 zYQd}Bm`*56beNf3lVp`SdQNMBJnzUl^3iH7vcp!VQ)m?^tQS}`9`Gn|VX@op_&@hnn6f6kTOdT-b- zvlv?a74a+RxMqwxe`I|j^M&HgG@)>-QR77g(z|o4m{kx}gF4>muk{tSgu?3)1@U6S zFuwpUqGdNi_4SCGuMjWT!OO!qeN?%4nUFV7DBoSDW%fs#buL)v+l1a#qhXDaXk?VS zx=_<7%q9+K$@Ip%NKs@1-iYHfZY)NJ4%Yh{I7+gW;B{sOy(zAc-@Fx!7Rna@(wo!- zhBuMnjYRxHIvyr4E}6rHLCu)}Zws>rT)<>=Wn~D)yz=vw=T^o$ge=f&Fvr^a#WT>}#--0mZRMxH!^C<3zO4*W|-M zfMG(5tYN;N2=6^Ag$@6h(w%LIM=vOAyo<3r}rB6W|=Ar)V(l0^! zvqEm3Gj(%m;8=qRZh->Y={$Cu0i_!SRV7ctW`Sv&&eKRmO*X36BnFzL*6VS zdl#pZj&7tEVLagpzosMmVHPn+=2^%*3mJZQvL=&rpNI+hl7!6V=qnXCPL;FREGHLz zqy_0|bxF2PVRyN`oDUg1`Zlsy*KxhDV+pVdr0+nwkJ6Xs72KI!o;Uf999N#RbBrr* z`t6P-c_p`wb?41%KWD1dc`ESOktm;8+BXMc`Njjz!>D1dc`ESOos}BcR^9t=_YZODMcq=^y0c zUE!DFCNgb`udwhpSa^CjIBnwuF~9FTUh>;L;^0)ttM`MSE_u3UMjKtTq)ojioUVn? zrqVz8d?ZACH?BF*rmi{cq^B6LsY`S_aIKIwb;IQqJT5?+B*tXH8j~bdM5;A*+%6DY zhT*M5`bXCTX~Vr@-cFIUXPP)rc;A-=uk5DBbZC=m%<`p}>EGXRX`18^cg~7?%EDhM zh{qXJI*HM*w3)wkDzgSIlQOUT5a@s3fA#%qtHzQNfs{&GDd}2Cn8?D`~T&ZIX6L+AZl$NqZ#ileAybK}ikVL#M4k zQm3RPl9ozZDd}2CnmZI-l6(k@B6CEY1$kEDH)_Deb_se$KS zl9otXDyfkAzyGhkdtl8;!&##Q>3AJ>8k^}jjGe|Q8Vgror@l|eZtRp!J02M3v5}4o zvC}w3$JDK8prPYx+}Wb>l8#s5n8qqPj$&8GEjU(V=w8TBIV2OnPGdhEug89pJgx_& za{%E%?0MKJ4}R%wGFA#lp|#aj+anVeyO%s~|AWyEs~x@TqGa$x=DjJU%*Kk0dLPy_0`l#U-~ zsPk7ko@=OaJsm&Z=vF5VEg=WBr_MVXjP`J%q0Ud~IBHCdt6D-1YRs7t&oe4BwC^0$ zWOGKm!05U}Q!Ed2P}^!gpr__gt68ff;yA}R*{Gm~WZ80X*KT@)1q7Rev$~pJ=&3oz zm&|!ZI(~|g>AaSMv$UEAq|0L#)1@QgI7j{%J&&;*?HtN9|y($cD10Q3I zw*N;q_>(sH?`-ft*x;`L&%$>=oihFh!PE98cJjAG`b*;qZGXm2_&ka8qzc$n3}}Rx zTJVpgyxW4G356tIX~92Z`BRO_7W_B_oa9$aT*aSgrnsHX@)M1Jqk-MBWs;x4@`!`f zud*a?BFN6rzvi+5lSZ}wr4qOHmo=<^bo&o6KDxhb!bu^U&H$EigT7ymyZfX1Z-VvU zd#;v#6vTK+-xaogw|G0`>6~KSer|)?eP^A136M$8eX?9NUKPuN-h;f;S}6EJoG8go z>-T-L5&um3&$PkIZ1AgX@b!!r7}oFC-YjwJcZKh=(escE{Ky}%1FZdk|d2U)(ruznYLC(DoiUbWr#<6p5U zcgO}m5#vdwb~3{TFSEhd+Tgd@;P)|JU|7FDNU|7F< z{eq4BkPUtkE@)(GC+FJWWj1)F4en)p^!MO5+Q`R&Q$Mnvce;RQ`ab%DHhT8j;QwKR zPr-sEQyea|!7FWWpAFt(gFj${?`FKfuztV%_crn$*xkwp`B^a>{q6j^Za2_~lV8 z9t;;hH=u8HH+k?);vjxlfv^6CJPmH5r)XZug|jjX z@h62n-f-C4Dn2ugFBE&5e4e^kQ&TIlXdHjjH%&DC`@S%4)JKMaX}^78iB|drl0gr` zgW$1u`uPZb-n=PP=QG69{rEuvf36;1wl?VF@kJNSzG(J5!yoa~#{vQIQE$fP!@{L2 z%9hhtfR}hY;Hs7{Hjn8;z^1)*NYnuN)#YUsS1u~6@Laic=}K3Xr;5Iz3@uC6Tv4{X zd@*t?yQ13Ta?3K@OI84?i-bJlW5uJsCf^Y9$e+JtN}`{~e9^x)@fCMfz3_x8 zw~9X#j$d1>hch4%{8U4H<5~U^gT52ZpYax9q%U}X!H3-GqtY#Ye8XG&YIuvEzii%! zpH2OPpP;6%f{UusYJ|USU0SL>noOTcCOP%v5D$ILS$?D*VbnjEot`P>t4DqAowABw ztKf6mL2rXEEWd)?fY04G;H%pt8KjR?^M|!*ELesw$*g*j}8nM-`1TYO3V3w_{hvRzv}TIl=7qU;`8h(;NCiXJU$%Sh$a!HHti9ejtda&j9iJ*C+B~wB}W>46dduTa(tgXUEUH4`7!o%8HzN2`#UY< zVP8{dqfZ3S{K7f6%P2;ol#`}E)>xT6Mnz8xg6KrtvPCT9XWr8dqY)6%pyKd@KdC?U z`#2B%2ng{a3&Oq)G5qo;z5cl>y)~YIx5gLnL{&S*PqR|yrw;!@AWXKHr*5X;d*>D-4_n0CrP(JJltWz_=zCgu4!%d!cP7XopRmM zk5mW5ua`FZLoqW#=^dWN5f6TI81YA*PkRcDnz_-aC z&FB(0Qu*^YHT-y}gJ=ymJ)~4pZ7dunJDbT!4n-}_8V&f)yw$F7Ea+M1-RPy?w>G2d zQCFh3i55ZCw$UGnc?0Q%s8$j7g~F%~K24-mELjoc@*~_yxo^nAGsMR`9LIY6<`Zs38x6KW8{f>vNBU{v;0e%ARdLd#-yyPTvL1!i zjp&##85&Y%uW*$uDO*%tQC_tM6A79SEHRqA0sKrey>W;sfCod0VGd3dao9lZKh0YT z6;!C8^4tS0$!{GL`4_RNcx&dV?rj!Dokg@QYjffl#ln8QovC4+;(}ql)`y_dd@G;} zaknK2ny55{Loq&0214fP!`g4jU3v24K}lMYvA-w>^hlCYVlK?@Lvv-epj{ z7}=;?im#?27EDb{m7Ne#!#TGuOBO1$9zQBaOHA+ZYKlba&FVINt#1iq0+`+un|w{R zP0i_;FplSS)Jv36NL#GaQwj8W1p2G9so8 zYWc5nd3QyTG*A-QIH%rBcen~$% z9A+?SrYHK29wit?m9OfIHJe$;?6eU*t#&9?j72;Yt_aEM+gV_6 zsnyJ{p65{1sSD#6mmSkKdW=EOzZ%!AXjAlT!J7ZobqEEN<3P`^o)1yfsRSjp=KmUS z`~*6r{O^|KD>_CxjLYP_S?%`%#U&%tfAzeHqPe&ZK^xgfs#JdUJft5O6{*Ts&!s4; zo}+{aZ`Sy407}m&s{HEt6-B>fv0uq4dL#1FGmnZ_&$%e7ZZBKy7uMjnxj3Mhs{HDC z7)1xApf!HV|9fTrMN&>ZH>0R}4wUj!9&7yW2SzR`{pS5}X}I-C5NrK^&yrs~hofkT zsThLT3Is9fL*VuD)$=-vI;FfK*8Dpy`PFkhiaP&`@*lV4SNGEubx;S@HdVfYp2mT0 zzj{tcQQ3TzIM=nw;NUr#U)8^{R;Ef?VXCAHSy>z4fL z`6NYm$o{OwA*tiE34u*xf5(T^ZT&(*2?>N)DQ|6u;3$V(wo`PFk# zjWU0!3=H)@+Elr!9)Aps;-~Vf=cjgTCh62TD!5dBrDrTM>-o+5^=%@DlM=PfsU6cH zz3YN>sq)o*O6Sc&uv8H9ztcPt2NRH=iYT$*D*sFiPO`M=RJ9$EBK}w2Ea(n-@p&p( vx&@~ER^tzD^O&}a9OD1*w*}p4=>V!+B|8BJ%6Ekk-EqI*PP1gNu*QD^)%P}q diff --git a/rose.c b/rose.c index fcac2c9..5aedc6a 100644 --- a/rose.c +++ b/rose.c @@ -92,20 +92,6 @@ WebKitWebView* notebook_get_webview(GtkNotebook* notebook) notebook, gtk_notebook_get_current_page(notebook))); } - -void redirect_if_annoying(WebKitWebView* view, const char* uri) -{ - int l = LIBRE_N + strlen(uri) + 1; - char uri_filtered[l]; - str_init(uri_filtered, l); - - int check = libre_redirect(uri, uri_filtered); - - if (check == 2) { - webkit_web_view_load_uri(view, uri_filtered); - } -} - void load_uri(WebKitWebView* view, const char* uri) { if (g_str_has_prefix(uri, "http://") || g_str_has_prefix(uri, "https://") || g_str_has_prefix(uri, "file://") || g_str_has_prefix(uri, "about:")) { @@ -116,7 +102,6 @@ void load_uri(WebKitWebView* view, const char* uri) char uri_expanded[l]; str_init(uri_expanded, l); int check = shortcut_expand(uri, uri_expanded); - if (check == 2) { webkit_web_view_load_uri(view, uri_expanded); } else {