[Gambas-user] removing xterm escape codes from terminal text

Bruce Steers bsteers4 at gmail.com
Wed Jun 8 15:53:23 CEST 2022


On Wed, 8 Jun 2022 at 13:19, Bruce Steers <bsteers4 at gmail.com> wrote:

>
>
> On Wed, 8 Jun 2022 at 05:06, Brian G <brian at westwoodsvcs.com> wrote:
>
>> I think there is, I will check it in the morning
>>
>> --
>> Thanks
>> Brian G
>> Tuesday, 07 June 2022, 01:20PM -07:00 from Bruce Steers
>> bsteers4 at gmail.com:
>>
>> Has anyone made a routine to strip xterm escape codes from a terminal
>> text?
>>
>> I'm looking at having to have a close study of the
>> TerminalFilter_VT100.class and try to account for all possible code
>> combinations to strip them.
>>
>> I thought before i spent hours doing it i'd ask if anyone already has and
>> could share the code.
>>
>> Or if there is already a way either an existing function somewhere or
>> possibly in gb.form.terminal or some other class a function that could do
>> it.
>>
>> I'm looking at TerminalFilter_VT100.class and the function OutputTo()
>> looks like it could do it , it seems to do all the right processing but for
>> other reasons. maybe by printing to a stream i could get plain text but i
>> do not know how to do that :(
>>
>> Any thoughts/suggestions?
>> Many thanks
>> All the best
>> BruceS
>>
>>
> Cheers Brian.
>
> I have managed this so far but it seems bulky.
> I added it to TerminalView.class ,
> Bulky because it makes a whole new hidden form/terminalview and uses it's
> OutputTo() to print text to it then uses TerminalView.Text,
> trouble is OutputTo() needs a terminalview object in it's arguments.
>
> Could be easier to just use the normal TerminalView.Text and process all
> the text not one line at a time as it's output. :-/
>
> Or maybe I should copy the OutputTo() and Escape() methods and edit them
> to not print text to a TerminalView stream but return it instead.
>

I did the above mentioned, copied OutputTo() and Escape() from
TerminalFilter_VT100.class and removed all functionality and made all Print
statements assign to a return string instead.

I'll attach the project in case anyone is interested. (feel free to
optimize/improve the code ;) )

the aim of the project is to enable/disable a private root shell inside an
application for issuing multiple commands with only one authorization
request.
Easy enough to to with a TerminalView and bash but not so easy to get some
kind of "Wait" ability and getting return values and text from inside the
bash shell.

It relies on monitoring the process text output, is starts bash and echos a
"shell-ready" then after the command completes it echos "com-done:$?"
giving the return value.

Wishing well
BruceS
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20220608/6c4a2bf9/attachment-0001.htm>
-------------- next part --------------
<salt FCKGM-0001-BC13-778C-085B>
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
WkbLaBkto2W0jJbR8s+X/wP5BiYVAMgAAA==
</salt>


More information about the User mailing list