[gccsdk] ^H^H^H

Ron gettingchoppy at gmail.com
Sun Nov 8 22:54:35 PST 2015


In message <5bef071f55.gavin at wra1th.plus.com>
          Gavin Wraith <gavin at wra1th.plus.com> wrote:

> In message <20151107203634.GE17806 at chiark.greenend.org.uk>
>           Theo Markettos <theo at markettos.org.uk> wrote:
>
> >It's slightly complicated.  There is a code for backspace (ASCII 8, aka
> >Ctrl-H) and there is a code for Delete (127).  There has been an eternal
> >argument in Unix terminal circles which should be backspace and which should
> >be delete:
> >http://www.ibb.net/~anne/keyboard.html
> >
> >In Unix, you fix this in your termcap or with stty - ie you can configure it
> >on a per-terminal basis.  The reason you may wish to configure it is that if
> >you set Backspace=Delete then you can no longer tell the difference: this
> >might not be a problem for command line editing, but becomes more of an
> >issue for full-screen console programs where you want to pass keypresses
> >through unchanged and let the program deal with them.
>
> Many thanks for this explanation.  I set Backspace=Delete in StrongED which
> is enough for my purposes. The RiscLua lexer sees hard spaces (0xa0) as
> soft ones (0x20) already, but not in strings, so all 256 codes are still
> representable and distinct in Lua strings.
> --

I'm unsure wether my post is getting to the list, as I dont get it echoed.
Gavin got my last post one way or the other, however I'll try to cc it as well.

If the Backspace is the /only/ key of concern, this may allow you to have
the erase on Delete in the CLI and other taskwindow clients but at the cost
of the Delete key now outputting literal ^?
you can set in
arm-unknown-riscos.include.termios/h or
cross/arm-unknown-riscos/include/termios/h

#define<tab>CERASE<tabtab>010   /*or CTRL ('h')*/

instead of the default 177

This will change erase from the Delete key to the Backspace key,
and now Delete key will output the literal ^? because 177 is not assigned to
anything.
termios.h seems to be limited to single byte values and one value per
function (eg CERASE)

On a personal compiler basis, it may be possible to change the get/put
functions for the lengthier ones that are compatible with RISC OS,
Ideally, they would then work with Olly Betts Line Editor module also,
saving linking with the bulkier linux lineedit libs.

You would need to patch the relavent (cross)compiler files so the
change works for every port rather than editting all of the sources.
then the action can be reversed for when clunky termios is needed.
Dont think we have termios handling hardware very well, I doubt if it
would be a loss.

HTH  Ron M.











More information about the gcc mailing list