On 11/26/20 11:35 AM, Tony Aiuto via cctalk wrote:
Every time I see discussions about terminal control sequences and Unix, I can not help but be reminded of Johnny Zweig's eloquent analysis, as quoted in The Unix Haters Handboodk. https://web.mit.edu/~simsong/www/ugh.pdf

~chuckle~

I'm going to leave that one alone.

Forcing programmers to be aware of how their programs talk to terminals is medieval, to say the least. Johnny Zweig put it rather bluntly:

I don't know if that's a fair characterization. Especially when my use case context is either a shell echo or an awk print(f) statement. The "how do I give the terminal data?" question is relatively easy.

Perhaps the "how" refers more to "what is said" to the terminal. As in "^[[34m;bob^[[0m;" vs "bob".

Somewhat ironically, it's my caring about doing things properly that has me asking the question that prompted reference to Unix Haters Handbook. ;-) If I didn't care, I'd just put out the colorized version and be done with it.

Aside: I wonder how much similarity there is related to controlling old serial terminals and controlling various web browsers from the 90s-2010s. After all, web browsers are doing (at least) much the same thing that terminals used to do; displaying data with some amount of formatting.

Do to time constraints, I opted to just putting the raw ANSI control codes directly in the functions that do the printing. But I have the code structured so that I can easily insert a minimal amount of code to interface with something like tput.

I do like how tput deals with all the smoke and mirrors of what control sequences need to be used, or not, so that I don't need to.

I do have a real world (at least for me) example of two different terminals that behave differently. XTerm (et al.) do what I want them to do. However, the Linux (virtual) console seems to be a subset thereof. Notably the terminal control sequences meant to set the window title have an undesired behavior in on the Linux (virtual) console. As such I do have some code in my profile to account for that when building PS1. -- Should I need to do that? Probably not. Is it insurmountable? No. Would it be nicer to integrate something to make that decision for me? Yes. Would that be a worthwhile dependency? I doubt it.



--
Grant. . . .
unix || die

Reply via email to