Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It can be any single byte, except probably not 0x00.

It cannot be a multi-byte sequence, which means it cannot be any keyboard key.

On SCO systems intr/break is the Del key, which on a scoansi terminal emits ^? (I don't remember the ascii value just that ctrl-? is another way to produce it) So to break out of programs is the Del key instead of Ctrl-C.

But on a vtxx terminal like the linux console or xterm, even if you were perverse enough to want to, you can not assign break/intr to the Del key like that, because on a vtxx terminal the Del key emits a multi byte escape sequence, not a single byte.

hot keys like ctrl-c require multiple fingers, but what's produced is a single byte.

(you can actually modify both the console and xterm to change what a key emits, but then the resulting terminal no longer matches the definition of a linux or xterm terminal)



> Del key, which on a scoansi terminal emits ^?

^? = ASCII DEL[elete] = 0x7F. Terminals where the Delete key sends Delete are doing it right.

Why is DEL 0x7F, when other control codes are <0x20? Because the American Standard Code for Information Interchange descended from teletype codes, and teletypes often used paper tape ‘storage’ where a 1 bit was a hole. So teletype codes would normally have a delete function punch all holes, because that would obliterate any other possible character (and typical of punches, advance to the next position, making DEL semantically a forward delete operation).

> on a vtxx terminal the Del key emits a multi byte escape sequence

Only VTxxx where xxx ≥ 200. The VT100 series and earlier had ASCII Delete and Backspace keys, but in the VT2xx era DEC got some funny ideas and provided only a ⌫ key, which left us an enduring mess.


> It can be any single byte, except probably not 0x00.

At least on Linux, indeed you can't use 0x00 (aka ^@), because _POSIX_VDISABLE (the thing you use for disabling special characters) is 0.


^? = 0x7F




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: