From cbc47d179c9344e8fac6de2f60dfbc33b5e984cc Mon Sep 17 00:00:00 2001 From: Remi Akirazar Date: Wed, 26 Nov 2025 03:01:37 -0500 Subject: [PATCH] added w3m patch --- patches/st-w3m-0.8.3.diff | 42 ++++++++++++++++++++++++++++++++++++++ st | Bin 105680 -> 105680 bytes x.c | 2 ++ 3 files changed, 44 insertions(+) create mode 100644 patches/st-w3m-0.8.3.diff diff --git a/patches/st-w3m-0.8.3.diff b/patches/st-w3m-0.8.3.diff new file mode 100644 index 0000000..a4e104b --- /dev/null +++ b/patches/st-w3m-0.8.3.diff @@ -0,0 +1,42 @@ +From 69cffc587b54b0a9cd81adb87abad8e526d5b25b Mon Sep 17 00:00:00 2001 +From: "Avi Halachmi (:avih)" +Date: Thu, 4 Jun 2020 17:35:08 +0300 +Subject: [PATCH] support w3m images + +w3m images are a hack which renders on top of the terminal's drawable, +which didn't work in st because when using double buffering, the front +buffer (on which w3m draws its images) is ignored, and st draws only +on the back buffer, which is then copied to the front buffer. + +There's a patch to make it work at the FAQ already, but that patch +canceles double-buffering, which can have negative side effects on +some cases such as flickering. + +This patch achieves the same goal but instead of canceling the double +buffer it first copies the front buffer to the back buffer. + +This has the same issues as the FAQ patch in that the cursor line is +deleted at the image (because st renders always full lines), but +otherwise it's simpler and does keeps double buffering. +--- + x.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/x.c b/x.c +index e5f1737..b6ae162 100644 +--- a/x.c ++++ b/x.c +@@ -1594,6 +1594,8 @@ xsettitle(char *p) + int + xstartdraw(void) + { ++ if (IS_SET(MODE_VISIBLE)) ++ XCopyArea(xw.dpy, xw.win, xw.buf, dc.gc, 0, 0, win.w, win.h, 0, 0); + return IS_SET(MODE_VISIBLE); + } + + +base-commit: 43a395ae91f7d67ce694e65edeaa7bbc720dd027 +-- +2.17.1 + diff --git a/st b/st index 79b355ef5c1a8dd5958bb548207a0ce1b4b33ae4..20e7195b61b3cb5ca263f381056ccb214240ef6c 100755 GIT binary patch delta 3590 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 delta 3544 zcmb7HdsGzH8K1i_f{$gF>iUSHfGBbjA5phTl4&7b%@Bz}B}S|9ML9lR=-p#B4>27Y-jbW>2;t1fH@8LaBfNF6D-{g^+QC zL?R*~Yt;|euXbAqKMYbCCDIPA17m3UgW**g3JIp59)p0pm%8~;YB3E%5rbkMC2DFf zb?&3ow`piMs4H%0TZtRjQ)b+w%yb$GTg;#fh)DA(6(UV!CLx^&R4QO*lz1v3mkcD> zM50w~!#8YRkw2$!u;tofd-1K9_yjCUzE9+Pm%M=b5f|P4BK(3z6CR^wPYyLCb&E` z44|`=z#4$g41h+ZC}A0Cz0NU%VU${#!BGj1x*$$*~hIvDvn zGjeI~)%HkFF|46S582pXk-|YTDy!-i2MQQia!k6p18%70S0|0X51gJ_v8%V&+S4nu zz@fQy#O6V$|E3zzHk|!Mjc=1#K;71s;?8fP`D=-u>rD1$hRQr46f0`Wn+;9-5bfPM zUDwvF*7X^A*MC3AV0li5(jY`u#y>}5k7R=pY`KZS7K*K zBg|!W6Y`+cTt<1hvSt4ATuTa<`P_ke0UXoo1`9qNC16S*2}#~pvf$Ws}tIJTl=J3f9J zjCV$`BEF6ew^l*lU186eAg4J$rC1f$LJ;pLoU%K}uVL}{Z->TR;Ep};dQ%7AR~$PH zO(ba?IfkYc8tW#~1pUE~%pDO|$;C91xGeV-aUptKta^nK;1~soYe>iOF2t`$rikCd z)QacPGUSwN#m+`I3jWh*(8O4iLo?$}iy@WzW1w|s(Uec4;?&DfVgKf~U|W?S1gIw%ok{(tAW$ zV7OH!sY4;D(h2nrQvb{-q6U-Li6PGDq~!QETW$%mLAZ=0*7<0YmDZj@wX;YVC;&k{ z9~f!>9q!tIeh<6(*l9G1+NecIwzz^r?Feu%WUevfW8aYhm6uBr#3?1uJdd`vH%Xj4H8OhgaoIIxkdSFE>z z?vc(wCFBgivK68iI6zJ={)1xS+7z)n+OL3p2<-L-gg<5z+=4clLU$U0q(Zo~C<4M! zym`-Kxz=6Ob>k*2p&d|44c2`GO4n9mp#phWq+~wE1AsekqlNcA(rRb0SFq0O0rhNy zRBQud7wm%H#bZP_EVq75Qb!d@jcrgt>SS6BMLexO+aBxQ2LxfalcQyo;n;<@3}^#+ z(!|9iu4oRCgLcq~aq)!d+!_QQcl`7n5uLv#Z5x%Oi1W!Ie!S4o(D`|RMf4leb-l!xm)E(( zph~rb&oz#ucm@3j?&nPRL2^$q-G6(?9dEi7at|`ypFiY|HQia{zD@7brHK16C^l{@ zuVWkfn86~$NG_s%l<~jX?hY^(`w7DR#&)R0TTNFRu8+#Jnwsu<_-L!tiXWki@2Q~8 z{{TnmWm;A4yao{O>nza@BlLrPT}nWJUZ6K(7jf`;qoOot8etpk<|sBzUEcYa`$e;m z91`iqZmG88xRs280$&)aYA6Nqei&0o5VtNghK^_mOA`rFnohys!?yzSGp4UJ;&_T6 zX!$5id*@9w9anW-5N_E<{+l+W@sA5cMRz(wnc6jT!Dn52hq;@YbbU$l|M%zp-sD&I z*w9N@ibh?(fj^2RJrr|uPyf%b$q(T@Im7e^1tdaf_mAnvrUgq+T)?so5rkCSB70#k z!&bvS^_{L?g3W`y16u@ZA1VlEU}Ipf!9L?J2xFrMM&Tk9A_oF1)%AX~Sa_20Hx<|= zVB>sI5p1k)U^I&obAg@o#YeN)h(dJ3D|G!8;-`e!EwjQx5m~4MKHs-Fnhi<1if$e# z6NvI^m^~>hRG@74fPVlS|1lcRAhdQg`+!9dGCRyZ8{94Ejst$ce>s}Xv+W78`zK9i zb^Y0H|4$ODf0Fg{pMQ<5v|t>+o`o>W$!7nv8(2m#v-%HhWIo2y{fV2Ho3W>T6>qR1 zmP@U^hBw&TY>t1`n}98qSNuP`#kPxVtv`Dk(;aNKFMBV3lI^Bn7_PtpJfy1w diff --git a/x.c b/x.c index d73152b..ab7ec96 100644 --- a/x.c +++ b/x.c @@ -1651,6 +1651,8 @@ xsettitle(char *p) int xstartdraw(void) { + if (IS_SET(MODE_VISIBLE)) + XCopyArea(xw.dpy, xw.win, xw.buf, dc.gc, 0, 0, win.w, win.h, 0, 0); return IS_SET(MODE_VISIBLE); }