Add info about Backspace and Delete to the FAQ - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit f210ea26c444607980d5de17ed7d4e62bb813631
 (DIR) parent 8306568bd0b9d082c58ad897b4562ffe6822e585
 (HTM) Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
       Date:   Thu, 24 Jul 2014 19:56:58 +0200
       
       Add info about Backspace and Delete to the FAQ
       
       Diffstat:
         M FAQ                                 |      58 ++++++++++++++++++++++++++++++
       
       1 file changed, 58 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/FAQ b/FAQ
       @@ -98,3 +98,61 @@ If you want to compile st for OpenBSD you have to remove -lrt from config.mk, an
        st will compile without any loss of functionality, because all the functions are
        included in libc on this platform.
        
       +## Backspace key does not work
       +
       +This is an issue that was discussed in suckless mailing list
       +<http://lists.suckless.org/dev/1404/20697.html>:
       +
       +        Well, I am going to comment why I want to change the behaviour
       +        of this key. When ascii was defined in 1968 communication
       +        with computers were done using punched cards, or hardcopy
       +        terminals (basically a typewritter machine connected with
       +        the computer using a serial port). Due to this, ascii defines
       +        DELETE as 7F, because in the puched cards, it means all the
       +        holes of the card punched, so it is a kind of 'phisical
       +        delete'. In the same way, BACKSPACE key was a non destructive
       +        back space, as in typewriter machines.  So, if you wanted
       +        to delete a character, you had to BACKSPACE and then DELETE.
       +        Other use of BACKSPACE was accented characters, for example
       +        'a BACKSPACE `'. The VT100 had no BACKSPACE key, it was
       +        generated using the CONTROL key as another control character
       +        (CONTROL key sets to 0 b7 b6 b5, so it converts H (code
       +        0x48) into BACKSPACE (code 0x08)), but it had a DELETE key
       +        in a similar position where BACKSPACE key is located today
       +        in common PC keyboards. All the terminal emulators emulated
       +        correctly the difference between these keys, and backspace
       +        key generated a BACKSPACE (^H) and delete key generated a
       +        DELETE (^?).
       +
       +        But the problem arised when Linus Torvald wrote Linux, and
       +        he did that the virtual terminal (the terminal emulator
       +        integrated in the kernel) returns a DELETE when backspace
       +        was pressed, due to the fact of the key in that position
       +        in VT100 was a delete key. This created a lot of problems
       +        (you can see it in [1] and [2]), and how Linux became the
       +        king, a lot of terminal emulators today generate a DELETE
       +        when backspace key is pressed in order to avoid problems
       +        with linux. It causes that the only way of generating a
       +        BACKSPACE in these systems is using CONTROL + H. I also
       +        think that emacs had an important point here because CONTROL
       +        + H prefix is used in emacs in some commands (help commands).
       +
       +        From point of view of the kernel, you can change the key
       +        for deleting a previous character with stty erase. When you
       +        connect a real terminal into a machine you describe the
       +        type of terminal, so getty configure the correct value of
       +        stty erase for this terminal, but in the case of terminal
       +        emulators you don't have any getty that can set the correct
       +        value of stty erase, so you always get the default value.
       +        So it means that in case of changing the value of the
       +        backspace keyboard, you have to add a 'stty erase ^H' into
       +        your profile. Of course, other solution can be that st
       +        itself modify the value of stty erase.  I have usually the
       +        inverse problem, when I connect with non Unix machines, and
       +        I have to press control + h to get a BACKSPACE, or the
       +        inverse, when a user connects to my unix machines from a
       +        different system with a correct backspace key.
       +
       +        [1] http://www.ibb.net/~anne/keyboard.html
       +        [2] http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-5.html
       +