Yes, I was in general talking about cannonical input mode processing in
a kernel's line discipline terminal module and in the kernel module, 
again, yes, the erase is usually done by as you mentioned, i.e., by using
'\b' and also writing necessary amount of ' 's (0x20 characters) to kind of
"erase".

With regards,

Ienup

PS. Some terminals/terminal emulators do maintain line buffer for some
additional processings as I mentioned.


] Date: Fri, 26 Jan 2001 23:51:43 +0100 (CET)
] From: Bruno Haible <[EMAIL PROTECTED]>
] Subject: Re: backspace, erase modes
] To: [EMAIL PROTECTED]
] MIME-version: 1.0
] Content-transfer-encoding: 7bit
] 
] Ienup Sung writes:
] 
] > - Display cell erase mode:
] > ...
] >   In this erase mode, no matter how many characters are in a display cell,
] >   the display cell will be erase and thus all characters in the display cell
] >   will also be erased from the line buffer. For instance,
] >   if we have A, a combinging diacritical mark accute, and a combining
] >   diacritical mark breve in a single column display cell and also in
] >   a line buffer, a backspace operation will erase all the characters in
] >   the display cell from the screen and also the line buffer.
] >   
] > - Character/character element erase mode:
] >   In this erase mode, the last character in the current display cell will be
] >   erased and depending on the context, the display cell could be erased (if
] >   the character erased is the last remaining one in the display cell) or
] >   that particular character only will be erased while the other characters 
in
] >   the display cell still show up in the display cell. For instance,
] >   if we have A, a combinging diacritical mark accute, and a combining
] >   diacritical mark breve in a single column display cell and also in
] >   a line buffer, a backspace operation will erase only the combining
] >   diacritical mark breve and thus the display cell will be re-displayed with
] >   the A with the combining diacritical mark accute only.
] 
] You mention a "line buffer". A terminal emulator has no line buffer.
] It has only a screen contents and a cursor position. Therefore I think
] you are talking about line editing facilities, not about terminal
] emulators.
] 
] I agree with you that a line editing facility, e.g. readline, could
] provide both modes.
] 
] How about a third mode, let me call it "emacs erase mode":
]  - If, since the last character was input, no other keystroke has
]    been entered and the cursor has not been moved, the last character
]    element is erased. Otherwise, the entire last display cell is
]    erased.
] 
] This is what the user sees. However, the primitive cursor positioning
] operation (echo '\b') must be "move left by one column". The line
] editor's three erase modes can be implemented on top of that (assuming
] a consistent wcwidth()). OTOH, if the terminal would be doing more
] complicated things than simple cursor positioning, it would be very
] hard or impossible to implement a reliable ncurses library.
] 
] Bruno
] -
] Linux-UTF8:   i18n of Linux on all levels
] Archive:      http://mail.nl.linux.org/lists/
-
Linux-UTF8:   i18n of Linux on all levels
Archive:      http://mail.nl.linux.org/lists/

Reply via email to