Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[request] Add patch column patch #34

Closed
siduck opened this issue Jul 22, 2021 · 55 comments · Fixed by #120
Closed

[request] Add patch column patch #34

siduck opened this issue Jul 22, 2021 · 55 comments · Fixed by #120

Comments

@siduck
Copy link

siduck commented Jul 22, 2021

Hi @bakkeby , st cuts text inside it when st's window is resized :/ . Most terminals dont do this. I didnt find any patches for it either.

I found a build which has this issue fixed , seems like it extends the patch column from here.

@BeyondMagic 's build didnt provide any patch for it tho , I found some useful commits BeyondMagic/flarity@4339de9.

( st without patch column and with it (beyondmagic's build) )

simplescreenrecorder-2021-07-22_07.54.21.mp4

It would be very nice if there was a patch for this :]

@siduck
Copy link
Author

siduck commented Jul 22, 2021

My friend made a patch for it https://github.com/coolabhays/st_custom/blob/master/patches/st-columnredraw-20210722-e40efda.diff , it works but sometimes forward scrolling crashes st

simplescreenrecorder-2021-07-22_23.24.39.mp4

@siduck
Copy link
Author

siduck commented Jul 25, 2021

FINALLY GOT A PATCH THAT WORKS!

https://github.com/nimaipatel/st/blob/master/patches/7672445bab01cb4e861651dc540566ac22e25812.diff

@siduck siduck closed this as completed Jul 25, 2021
bakkeby added a commit that referenced this issue Jul 26, 2021
@bakkeby
Copy link
Owner

bakkeby commented Jul 26, 2021

This certainly feels much more convenient, makes you wonder why it's not in st by default, it doesn't add many lines of code.

In practice this is the same feature as provided by the vim browse patch, but without all of the other features that the vim browse patch adds.

@siduck
Copy link
Author

siduck commented Jul 26, 2021

This certainly feels much more convenient, makes you wonder why it's not in st by default, it doesn't add many lines of code.

In practice this is the same feature as provided by the vim browse patch, but without all of the other features that the vim browse patch adds.

Vim browse removes the functionality of a rollback iirc , also this patch works unless you resize the window vertically which duplicates the prompt , check the issue in its repo.

@bakkeby
Copy link
Owner

bakkeby commented Jul 26, 2021

Maybe there is something special going on with the last lines printed (or the prompt). This is also the case if you don't have this patch though.

@siduck
Copy link
Author

siduck commented Aug 8, 2021

@bakkeby if you dont mind , could you update the patch column patch in your free time? Ive seen a build which has this patch and scrolling vertically doesnt cut the text too.

Example : My build ( with patch column patch) and this build(with modified patch column so vertically resizing doesnt cut the text)

simplescreenrecorder-2021-08-08_12.07.21.mp4

ashish-yadav11/st#1

@bakkeby
Copy link
Owner

bakkeby commented Aug 8, 2021

I saw that build, it is pretty slick. He has done a lot of changes in his build. I'm hoping he'll release a standalone patch at some point, otherwise I'll have to go through all his changes.

I'll get around to this eventually, I have quite a few things in my backlog.

Lars-Saetaberget added a commit to Lars-Saetaberget/stterm that referenced this issue Oct 15, 2021
mortezadadgar pushed a commit to mortezadadgar/st that referenced this issue Oct 18, 2021
mortezadadgar added a commit to mortezadadgar/st that referenced this issue Oct 18, 2021
Co-Authored: Lars-Sataberget <[email protected]>
Signed-off-by: mortezadadgar <[email protected]>
@BeyondMagic
Copy link

Did you all get far with vertical resizing?

I can finally give a look at it, after all those months.

@siduck
Copy link
Author

siduck commented Oct 21, 2021

Did you all get far with vertical resizing?

I can finally give a look at it, after all those months.

not yet ;(

@BeyondMagic
Copy link

BeyondMagic commented Oct 21, 2021

I'm trying to make it work basing on the ashish-yadav11 build, though I don't premise anything.

@BeyondMagic
Copy link

Yeah, I'm giving up. His build is coded in a way that is beyond my skills in C.

@bakkeby
Copy link
Owner

bakkeby commented Nov 3, 2021

Well, the good news is that he hasn't updated his build in the last three months which I take to mean that his work is pretty stable :)

So the build is here:

Trying it out I see that he added reflow to the main terminal as well.

Looking at the files changed tab here we can see all the custom changes that were made to this repository:
ashish-yadav11/st@4536f46...d84cd16

To be honest it is less changes than I expected, but the tricky part is figuring out which changes are relevant and what not.

@BeyondMagic
Copy link

its_fucking_working.mp4

@BeyondMagic
Copy link

I'll post the .diff in 7~ hours, gotta work.

@BeyondMagic

This comment has been minimized.

@siduck
Copy link
Author

siduck commented Nov 4, 2021

@BeyondMagic
image
;c

@BeyondMagic
Copy link

I'm surprised it actually got that far on your build.

@siduck
Copy link
Author

siduck commented Nov 4, 2021

I'm surprised it actually got that far on your build.

haha , btw could you make the patch for vanilla st? it'd be easy to patch then . Also you could submit the patch on the site too :D

@BeyondMagic
Copy link

Yeah, it just takes a long time to make it, but I"ll eventually do it.

@BeyondMagic
Copy link

BeyondMagic commented Nov 4, 2021

@BeyondMagic
image
;c

If it doesn't work, you can either patch the conflicts manually or just wait for the unpatched st patch

Here's the patch for unpatched st.

https://github.com/BeyondMagic/st/blob/master/patches/columns-rows-reflow-st-unpatched.patch

@UtkarshVerma
Copy link
Contributor

@bakkeby I'm also interested in the row-reflow patch. I tried to include the changes in st-flexipatch but it got out of hand very quickly. If possible, could you please have a look at it?

This is just a humble request from my end as it's a really useful feature for a terminal. Still, no problems if you're not feeling like doing it.

bakkeby added a commit that referenced this issue Dec 25, 2021
@bakkeby
Copy link
Owner

bakkeby commented Dec 25, 2021

Hi guys,

wow I think this is probably the most invasive of all the patches out there. It was more time consuming that I thought it would be.

I have added it on a branch columns_reflow for now as it will likely need some testing.

It may have conflicts with these patches:

VIM_BROWSE_PATCH
SCROLLBACK_PATCH
KEYBOARDSELECT_PATCH
COLUMNS_PATCH
SIXEL_PATCH
CSI_22_23_PATCH

For the sixel patch as an example the position of sixel images are not adjusted correctly when resizing the terminal window.

The vim browse patch I don't expect it to work.

The rest I don't expect any major issues, but I didn't test them all out.

Seasonal greetings to you all.


Regards,

-Stein

@UtkarshVerma
Copy link
Contributor

Thanks a lot, Stein. I'll test out the patch and let you know.

@UtkarshVerma
Copy link
Contributor

UtkarshVerma commented Dec 26, 2021

I checked out the patch and it works as expected. I'm no longer losing scrollback history on resizing vertically.
However, there's an issue with the wrapping of text. It doesn't recover properly sometimes.

st.mp4

@ashish-yadav11
Copy link

Can you describe a way to reproduce the single column bug (or show it in a video)?

@bakkeby
Copy link
Owner

bakkeby commented Dec 26, 2021

@ashish-yadav11 yes so if you do ls -l a few times to get some content, then resize the st window to its smallest width, then make it bigger again then some lines will be lost, if you do it again then there are less lines, eventually there is only your prompt left. This doesn't happen if I resize the st window to nearly the minimum (as in there still being two columns shown).

I can try and make a video if it is not clear.

@ashish-yadav11
Copy link

ashish-yadav11 commented Dec 26, 2021

It doesn't happen with me. Is it the prompt which eats the lines? Also what is the behaviour in other terminals with reflow (like alacritty)?

@bakkeby
Copy link
Owner

bakkeby commented Dec 26, 2021

@ashish-yadav11, yes it looks like it may be the prompt, or zsh. I tried bash and it does not happen there.

In zsh I tried setting export PS1=h (single character) and I can't reproduce it. If I set it to "hh" (two characters) then it eats one line at a time. I found that it could eat up to 4 lines at a time, but not more than that in my testing even with long prompts.

I couldn't replicate this in sh either, so yes maybe it is just something with zsh.

@UtkarshVerma
Copy link
Contributor

I was able to reproduce the loss of output. Here's a video comparing the behaviour between st and alacritty:

st.mp4

I wasn't able to scroll up in st

@ashish-yadav11
Copy link

ashish-yadav11 commented Dec 26, 2021

This is an issue with the prompt. The shell tries to handle the cursor position manually on resize, which conflicts with the terminal handling the cursor, which causes the issue. On comparison of resizing behaviour with prompts of primitive shells (like dash which do not themselve handle the cursor position), you will notice that the current patch handles cursor better than alacritty. Try typing something after the prompt and resizing to as small a size as possible on alacritty and st.

@bakkeby
Copy link
Owner

bakkeby commented Dec 26, 2021

@UtkarshVerma more so wrt the prompt if you are using zsh, this trick of using the precmd function would resolve that issue you are seeing as only the > prompt would redraw when resizing:
https://bbs.archlinux.org/viewtopic.php?pid=400608#p400608

@UtkarshVerma
Copy link
Contributor

UtkarshVerma commented Dec 27, 2021

I don't think it is an issue with the prompt. As you can see in the video, the neofetch output is lost in st(it's not visible in the video but I wasn't able to scroll up) while alacritty preserves the output.

I tried the same with dash with same results.

image

Glitches like this occur in dash as well with the $ as prompt.

Don't mind the shell mentioned as zsh in the output as my $SHELL is set to that.

@ashish-yadav11
Copy link

ashish-yadav11 commented Dec 27, 2021

recording.mp4

I am not able to reproduce. Same thing happens even with a longer PS1. The shell is dash btw. The issue only occurs with me if I use multiline prompts in zsh.

@UtkarshVerma
Copy link
Contributor

Yeah, I guess multiline strings with zsh are causing rows to be cut out. But I'm curious as to why the same doesn't happen with alacritty.

@ashish-yadav11
Copy link

simplescreenrecorder-2021-12-27_13.12.10.mp4

@UtkarshVerma
Copy link
Contributor

I see, thanks Ashish. I guess I'll have to look into workarounds for multiline prompts. The one @bakkeby mentioned above won't directly apply to me as I'm using p10k. As far as I've seen, everything else works fine.

Stein, please let me know if anything needs to be tested.

@gokberkgunes
Copy link

gokberkgunes commented Dec 27, 2021

Hi, I have reported the missing part of the patch on @BeyondMagic's repository but for the visibility I want to post the issue here as well. Original issue is located here.

Basically, the patch @BeyondMagic created from @ashish-yadav11's build has a small missing part that disallows scrolling in the terminal.

diff --git a/st.c b/st.c
void
@@ -3102,7 +3241,7 @@ drawregion(int x1, int y1, int x2, int y2)
 			continue;

 		term.dirty[y] = 0;
-		xdrawline(term.line[y], x1, y, x2);
+		xdrawline(TLINE(y), x1, y, x2);
 	}
 }

@BeyondMagic
Copy link

BeyondMagic commented Dec 27, 2021

mfw somehow I added it to the original build but forgot in the patch.

I will fix it right away and apply it the new changes from the original repo.

@ashish-yadav11
Copy link

FYI I cleaned a few things up. You guys might want to look at last few commits in my repository and update your builds/patches.

@bakkeby
Copy link
Owner

bakkeby commented Jan 14, 2022

Added some improvements wrt sixel compatibility and scroll / reflow. It is not by any means perfect. Also if the terminal window is small and you show a sixel image that is larger than the terminal and you try to resize (increase the size of) the terminal then st crashes. Maybe it is safest to just declare the sixel patch incompatible with the reflow patch.

@siduck
Copy link
Author

siduck commented Jan 14, 2022

@bakkeby why use sixel? just for the image viewing? if yes then you can just use ueberzug , this works on any terminal

image

@bakkeby
Copy link
Owner

bakkeby commented Jan 14, 2022

This is only about patch compatibility.

@siduck
Copy link
Author

siduck commented Jan 14, 2022

This is only about patch compatibility.

ohh, Ive faced alpha patch not working along sixel/w3m patch. Is there any way we could make both work?

@bakkeby
Copy link
Owner

bakkeby commented Jan 14, 2022

The alpha + sixel issue was fixed via #13 unless there are other issues I am not aware of. The w3m + alpha patch I am not entirely sure how possible that is. Does w3m still work at all in st?

@siduck
Copy link
Author

siduck commented Jan 14, 2022

The alpha + sixel issue was fixed via #13 unless there are other issues I am not aware of. The w3m + alpha patch I am not entirely sure how possible that is. Does w3m still work at all in st?

cool! btw w3m still works , its just that it stops working with alpha but nvm it. sixel is pretty solid :)

@UtkarshVerma
Copy link
Contributor

Over on wayland, I tried the foot terminal. It has good reflow and sixel support. Just dropping info here in case it helps.

@UtkarshVerma
Copy link
Contributor

@bakkeby The reflow branch works as expected. Could you please let me know the issues we're having currently so that I might have a look and work up a PR. My build is based on that branch and I want it merged upstream so that my fork doesn't go stale.

@bakkeby
Copy link
Owner

bakkeby commented Aug 30, 2022

@UtkarshVerma one issue that remains is that if you have a multi-line prompt and you resize the st window to the minimum (one column) and back then you can sometimes lose history. That in itself wouldn't be a blocker I think.

I think the main issue with this patch is that it is so enormous and so invasive that it is going to make patch compatibility and future maintenance very painful.

$ grep -rn COLUMNS_REFLOW_PATCH
st.h:38:#if SCROLLBACK_PATCH || COLUMNS_REFLOW_PATCH
st.h:40:#endif // SCROLLBACK_PATCH | COLUMNS_REFLOW_PATCH
st.h:41:#if COLUMNS_REFLOW_PATCH
st.h:43:#endif // COLUMNS_REFLOW_PATCH
st.h:71:	#if COLUMNS_REFLOW_PATCH
st.h:73:	#endif // COLUMNS_REFLOW_PATCH
st.h:154:	#if SCROLLBACK_PATCH || COLUMNS_REFLOW_PATCH
st.h:158:	#endif // SCROLLBACK_PATCH | COLUMNS_REFLOW_PATCH
st.h:159:	#if COLUMNS_REFLOW_PATCH
st.h:162:	#endif // COLUMNS_REFLOW_PATCH
st.c:65:#if COLUMNS_REFLOW_PATCH
st.c:74:#endif // COLUMNS_REFLOW_PATCH
st.c:191:#if COLUMNS_REFLOW_PATCH
st.c:195:#endif // COLUMNS_REFLOW_PATCH
st.c:201:#if COLUMNS_REFLOW_PATCH
st.c:205:#endif // COLUMNS_REFLOW_PATCH
st.c:214:#if COLUMNS_REFLOW_PATCH
st.c:223:#endif // COLUMNS_REFLOW_PATCH | SCROLLBACK_PATCH
st.c:238:#if COLUMNS_REFLOW_PATCH
st.c:242:#endif // COLUMNS_REFLOW_PATCH
st.c:467:#if COLUMNS_REFLOW_PATCH
st.c:498:#endif // COLUMNS_REFLOW_PATCH
st.c:702:	#if COLUMNS_REFLOW_PATCH
st.c:721:	#endif // COLUMNS_REFLOW_PATCH
st.c:728:	#if COLUMNS_REFLOW_PATCH
st.c:749:	#endif // COLUMNS_REFLOW_PATCH
st.c:757:	#if COLUMNS_REFLOW_PATCH
st.c:759:	#endif // COLUMNS_REFLOW_PATCH
st.c:763:	#if COLUMNS_REFLOW_PATCH
st.c:766:	#endif // COLUMNS_REFLOW_PATCH
st.c:774:		#if SCROLLBACK_PATCH || COLUMNS_REFLOW_PATCH
st.c:786:				#if COLUMNS_REFLOW_PATCH
st.c:790:				#endif // COLUMNS_REFLOW_PATCH
st.c:797:				#if SCROLLBACK_PATCH || COLUMNS_REFLOW_PATCH
st.c:805:			#if COLUMNS_REFLOW_PATCH
st.c:809:			#endif // COLUMNS_REFLOW_PATCH
st.c:812:			#if SCROLLBACK_PATCH || COLUMNS_REFLOW_PATCH
st.c:818:			#if COLUMNS_REFLOW_PATCH
st.c:824:			#endif // COLUMNS_REFLOW_PATCH
st.c:841:			#if COLUMNS_REFLOW_PATCH
st.c:857:			#endif // COLUMNS_REFLOW_PATCH
st.c:859:			#if COLUMNS_REFLOW_PATCH
st.c:875:			#endif // COLUMNS_REFLOW_PATCH
st.c:886:	#if COLUMNS_REFLOW_PATCH
st.c:892:	#endif // COLUMNS_REFLOW_PATCH | VIM_BROWSE_PATCH
st.c:893:	#if COLUMNS_REFLOW_PATCH
st.c:897:	#endif // COLUMNS_REFLOW_PATCH
st.c:899:	#if COLUMNS_REFLOW_PATCH
st.c:903:	#endif // COLUMNS_REFLOW_PATCH
st.c:906:	#if COLUMNS_REFLOW_PATCH
st.c:920:	#endif // COLUMNS_REFLOW_PATCH | VIM_BROWSE_PATCH
st.c:923:	#if VIM_BROWSE_PATCH && !COLUMNS_REFLOW_PATCH
st.c:929:		#if COLUMNS_REFLOW_PATCH
st.c:943:		#endif // COLUMNS_REFLOW_PATCH | VIM_BROWSE_PATCH
st.c:946:			#if COLUMNS_REFLOW_PATCH
st.c:954:			#endif // COLUMNS_REFLOW_PATCH | VIM_BROWSE_PATCH | SCROLLBACK_PATCH
st.c:957:			#if COLUMNS_REFLOW_PATCH
st.c:965:			#endif // COLUMNS_REFLOW_PATCH | VIM_BROWSE_PATCH | SCROLLBACK_PATCH
st.c:966:			#if VIM_BROWSE_PATCH && !COLUMNS_REFLOW_PATCH
st.c:972:		#if COLUMNS_REFLOW_PATCH
st.c:981:		#endif // COLUMNS_REFLOW_PATCH | VIM_BROWSE_PATCH | SCROLLBACK_PATCH
st.c:983:		#if !COLUMNS_REFLOW_PATCH
st.c:998:		#endif // COLUMNS_REFLOW_PATCH
st.c:1018:	#if COLUMNS_REFLOW_PATCH
st.c:1022:	#endif // COLUMNS_REFLOW_PATCH
st.c:1031:	#if COLUMNS_REFLOW_PATCH
st.c:1042:	#endif // COLUMNS_REFLOW_PATCH
st.c:1430:				#if COLUMNS_REFLOW_PATCH
st.c:1434:				#endif // COLUMNS_REFLOW_PATCH
st.c:1447:	#if COLUMNS_REFLOW_PATCH
st.c:1451:	#endif // COLUMNS_REFLOW_PATCH
st.c:1476:	#if COLUMNS_REFLOW_PATCH
st.c:1478:	#endif // COLUMNS_REFLOW_PATCH
st.c:1483:	#if COLUMNS_REFLOW_PATCH
st.c:1491:	#endif // COLUMNS_REFLOW_PATCH
st.c:1497:	#if COLUMNS_REFLOW_PATCH
st.c:1500:	#endif // COLUMNS_REFLOW_PATCH
st.c:1506:	#if COLUMNS_REFLOW_PATCH
st.c:1508:	#endif // COLUMNS_REFLOW_PATCH
st.c:1510:		#if COLUMNS_REFLOW_PATCH
st.c:1521:		#endif // COLUMNS_REFLOW_PATCH
st.c:1523:	#if COLUMNS_REFLOW_PATCH
st.c:1525:	#endif // COLUMNS_REFLOW_PATCH
st.c:1535:	#if COLUMNS_REFLOW_PATCH
st.c:1554:	#endif // COLUMNS_REFLOW_PATCH
st.c:1560:	#if COLUMNS_REFLOW_PATCH
st.c:1567:	#endif // COLUMNS_REFLOW_PATCH
st.c:1572:	#if COLUMNS_REFLOW_PATCH
st.c:1580:	#endif // COLUMNS_REFLOW_PATCH
st.c:1586:	#if !COLUMNS_REFLOW_PATCH
st.c:1588:	#endif // COLUMNS_REFLOW_PATCH
st.c:1592:#if COLUMNS_REFLOW_PATCH
st.c:1598:#endif // COLUMNS_REFLOW_PATCH | SCROLLBACK_PATCH
st.c:1600:	#if COLUMNS_REFLOW_PATCH
st.c:1605:	#endif // COLUMNS_REFLOW_PATCH | VIM_BROWSE_PATCH
st.c:1609:	#if COLUMNS_REFLOW_PATCH
st.c:1629:	#endif // COLUMNS_REFLOW_PATCH
st.c:1631:	#if COLUMNS_REFLOW_PATCH
st.c:1635:	#endif // COLUMNS_REFLOW_PATCH
st.c:1646:	#if COLUMNS_REFLOW_PATCH
st.c:1658:#if COLUMNS_REFLOW_PATCH
st.c:1664:#endif // COLUMNS_REFLOW_PATCH | SCROLLBACK_PATCH
st.c:1666:	#if COLUMNS_REFLOW_PATCH
st.c:1677:	#if COLUMNS_REFLOW_PATCH
st.c:1721:	#endif // COLUMNS_REFLOW_PATCH
st.c:1723:	#if COLUMNS_REFLOW_PATCH
st.c:1727:	#endif // COLUMNS_REFLOW_PATCH
st.c:1734:	#if COLUMNS_REFLOW_PATCH
st.c:1762:#if COLUMNS_REFLOW_PATCH
st.c:1797:#endif // COLUMNS_REFLOW_PATCH
st.c:1805:		#if COLUMNS_REFLOW_PATCH
st.c:1933:	#if COLUMNS_REFLOW_PATCH
st.c:1935:	#endif // COLUMNS_REFLOW_PATCH
st.c:1943:#if COLUMNS_REFLOW_PATCH
st.c:1997:#endif // COLUMNS_REFLOW_PATCH
st.c:1999:#if COLUMNS_REFLOW_PATCH
st.c:2035:#endif // COLUMNS_REFLOW_PATCH
st.c:2037:#if COLUMNS_REFLOW_PATCH
st.c:2072:#endif // COLUMNS_REFLOW_PATCH
st.c:2078:		#if SCROLLBACK_PATCH && !COLUMNS_REFLOW_PATCH
st.c:2089:		#if COLUMNS_REFLOW_PATCH
st.c:2095:		#endif // COLUMNS_REFLOW_PATCH | SCROLLBACK_PATCH
st.c:2324:	#if !COLUMNS_REFLOW_PATCH
st.c:2326:	#endif // COLUMNS_REFLOW_PATCH
st.c:2388:				#if !COLUMNS_REFLOW_PATCH
st.c:2393:				#endif // COLUMNS_REFLOW_PATCH
st.c:2398:				#if COLUMNS_REFLOW_PATCH
st.c:2415:				#endif // COLUMNS_REFLOW_PATCH
st.c:2417:				#if COLUMNS_REFLOW_PATCH
st.c:2420:				#endif // COLUMNS_REFLOW_PATCH
st.c:2472:	#if COLUMNS_REFLOW_PATCH
st.c:2476:	#endif // COLUMNS_REFLOW_PATCH
st.c:2577:			#if COLUMNS_REFLOW_PATCH
st.c:2581:			#endif // COLUMNS_REFLOW_PATCH
st.c:2583:				#if COLUMNS_REFLOW_PATCH
st.c:2588:				#endif // COLUMNS_REFLOW_PATCH
st.c:2592:			#if COLUMNS_REFLOW_PATCH
st.c:2600:			#endif // COLUMNS_REFLOW_PATCH
st.c:2603:			#if COLUMNS_REFLOW_PATCH
st.c:2607:			#endif // COLUMNS_REFLOW_PATCH
st.c:2610:			#if COLUMNS_REFLOW_PATCH
st.c:2632:			#endif // COLUMNS_REFLOW_PATCH
st.c:2646:			#if COLUMNS_REFLOW_PATCH
st.c:2650:			#endif // COLUMNS_REFLOW_PATCH
st.c:2653:			#if COLUMNS_REFLOW_PATCH
st.c:2657:			#endif // COLUMNS_REFLOW_PATCH
st.c:2660:			#if COLUMNS_REFLOW_PATCH
st.c:2664:			#endif // COLUMNS_REFLOW_PATCH
st.c:2670:		#if COLUMNS_REFLOW_PATCH
st.c:2679:		#endif // COLUMNS_REFLOW_PATCH | SIXEL_PATCH | SCROLLBACK_PATCH
st.c:2683:		#if COLUMNS_REFLOW_PATCH
st.c:2705:		#if COLUMNS_REFLOW_PATCH
st.c:2715:		#endif // COLUMNS_REFLOW_PATCH
st.c:2737:			#if COLUMNS_REFLOW_PATCH
st.c:2745:			#endif // COLUMNS_REFLOW_PATCH
st.c:2884:	#if COLUMNS_REFLOW_PATCH
st.c:2889:	#endif // COLUMNS_REFLOW_PATCH
st.c:2893:		#if COLUMNS_REFLOW_PATCH
st.c:2896:		#endif // COLUMNS_REFLOW_PATCH
st.c:2901:				#if COLUMNS_REFLOW_PATCH && CSI_22_23_PATCH
st.c:2903:				#elif COLUMNS_REFLOW_PATCH
st.c:2909:				#endif // COLUMNS_REFLOW_PATCH | CSI_22_23_PATCH
st.c:2910:				#if COLUMNS_REFLOW_PATCH
st.c:2914:				#endif // COLUMNS_REFLOW_PATCH
st.c:2919:				#if COLUMNS_REFLOW_PATCH
st.c:2923:				#endif // COLUMNS_REFLOW_PATCH
st.c:2927:				#if COLUMNS_REFLOW_PATCH && CSI_22_23_PATCH
st.c:2929:				#elif COLUMNS_REFLOW_PATCH
st.c:2935:				#endif // COLUMNS_REFLOW_PATCH | CSI_22_23_PATCH
st.c:2939:				#if COLUMNS_REFLOW_PATCH
st.c:2943:				#endif // COLUMNS_REFLOW_PATCH
st.c:2994:			#if COLUMNS_REFLOW_PATCH
st.c:2998:			#endif // COLUMNS_REFLOW_PATCH
st.c:3008:				#if COLUMNS_REFLOW_PATCH
st.c:3012:				#endif // COLUMNS_REFLOW_PATCH
st.c:3030:		#if COLUMNS_REFLOW_PATCH && CSI_22_23_PATCH
st.c:3032:		#elif COLUMNS_REFLOW_PATCH
st.c:3068:				#if COLUMNS_REFLOW_PATCH
st.c:3072:				#endif // COLUMNS_REFLOW_PATCH
st.c:3105:	#if !COLUMNS_REFLOW_PATCH
st.c:3107:	#endif // COLUMNS_REFLOW_PATCH
st.c:3113:		#if !COLUMNS_REFLOW_PATCH
st.c:3115:		#endif // COLUMNS_REFLOW_PATCH
st.c:3118:		#if COLUMNS_REFLOW_PATCH
st.c:3120:		#endif // COLUMNS_REFLOW_PATCH
st.c:3123:		#if COLUMNS_REFLOW_PATCH
st.c:3127:		#endif // COLUMNS_REFLOW_PATCH
st.c:3213:#if COLUMNS_REFLOW_PATCH
st.c:3236:#endif // COLUMNS_REFLOW_PATCH
st.c:3468:			#if COLUMNS_REFLOW_PATCH
st.c:3474:			#endif // COLUMNS_REFLOW_PATCH | SCROLLBACK_PATCH
st.c:3487:			#if SCROLLBACK_PATCH && !COLUMNS_REFLOW_PATCH
st.c:3664:	#if COLUMNS_REFLOW_PATCH
st.c:3704:		#if COLUMNS_REFLOW_PATCH
st.c:3706:		#endif // COLUMNS_REFLOW_PATCH
st.c:3759:#if COLUMNS_REFLOW_PATCH
st.c:3997:		#if SCROLLBACK_PATCH || COLUMNS_REFLOW_PATCH
st.c:4001:		#endif // SCROLLBACK_PATCH | COLUMNS_REFLOW_PATCH
patches.h:101:#define COLUMNS_REFLOW_PATCH 1
patches.def.h:89:#define COLUMNS_REFLOW_PATCH 0
config.def.h:393:	#if SCROLLBACK_PATCH || COLUMNS_REFLOW_PATCH
config.def.h:396:	#endif // SCROLLBACK_PATCH | COLUMNS_REFLOW_PATCH
patch/scrollback.c:6:	#if COLUMNS_REFLOW_PATCH
patch/scrollback.c:35:	#endif // COLUMNS_REFLOW_PATCH
patch/scrollback.c:47:	#if COLUMNS_REFLOW_PATCH
patch/scrollback.c:73:	#endif // COLUMNS_REFLOW_PATCH
patch/st_include.h:20:#if COLUMNS_REFLOW_PATCH
patch/st_include.h:23:#if SCROLLBACK_PATCH || SCROLLBACK_MOUSE_PATCH || SCROLLBACK_MOUSE_ALTSCREEN_PATCH || COLUMNS_REFLOW_PATCH
patch/scrollback.h:5:#if COLUMNS_REFLOW_PATCH
patch/scrollback.h:15:#endif // COLUMNS_REFLOW_PATCH
patch/st_include.c:20:#if COLUMNS_REFLOW_PATCH
patch/st_include.c:23:#if SCROLLBACK_PATCH || SCROLLBACK_MOUSE_PATCH || SCROLLBACK_MOUSE_ALTSCREEN_PATCH || COLUMNS_REFLOW_PATCH

There are bound to be compatibility issues between reflow and other patches. Would be good to hear if anyone else has any concerns before merging this into main st-flexipatch.

@veltza
Copy link
Contributor

veltza commented Sep 2, 2022

There are bound to be compatibility issues between reflow and other patches. Would be good to hear if anyone else has any concerns before merging this into main st-flexipatch.

I have concerns because there are bugs in the vanilla st (and st-flexipatch too) that break the reflow patch when there are wide glyph characters in the line buffer. I'll explain them in the next post, but before that, should we have our own repository for the reflow patch (st-flexipatch-reflow or something)? In there we'd have the reflow patch fully integrated (you can't disable it) and patches that are compatible with it, and over time we'll add more of them. Eventually, those two st-flexipatch repos will grow apart and cause maintenance issues too, but it would be a better solution than using branches, I think.

@UtkarshVerma
Copy link
Contributor

Since the reflow patch is very invasive, I guess I'll completely integrate it to my fork and maintain it for personal use. People are free to use it and can make PRs based on it. I'll be including changes from this repo to that fork from time to time I guess.

Would that be okay? @bakkeby

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants