diff options
author | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2012-09-24 10:29:37 +0200 |
---|---|---|
committer | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2012-09-24 10:29:37 +0200 |
commit | 74d6abfee5a1455c7c126d6b78760efd65d9d7c3 (patch) | |
tree | 0a4e8673008ea81eb0dcb1f8b4d7f6d534ac0433 | |
parent | c3b6345595c6b5ec5925544a2f462458f16cbf6a (diff) | |
download | st-74d6abfee5a1455c7c126d6b78760efd65d9d7c3.tar.gz st-74d6abfee5a1455c7c126d6b78760efd65d9d7c3.zip |
Add some documentetion to tsetmode
The names of the terminal modes supported by vt102 are (taken from the VT220
programmer reference manual):
Table 4-7 ANSI-Standardized Modes
Name Mnemonic Parameter (Ps)
Error (ignored) - 0 (3/0)
Keyboard action KAM 2 (3/2)
Insert/replace IRM 4 (3/4)
Send/receive SRM 12 (3/1 3/2)
Line feed/new line LNM 20 (3/2 3/0)
Table 4-8 ANSI-Compatible DEC Private Modes
Name Mnemonic Parameter (Ps)
Error (ignored) - 0 (3/0)
Cursor key DECCKM 1 (3/1)
ANSI/VT52 DECANM 2 (3/2)
Column DECCOLM 3 (3/3)
Scroll DECSCLM 4 (3/4)
Screen DECSCNM 5 (3/5)
Origin DECOM 6 (3/6)
Auto wrap DECAWM 7 (3/7)
Auto repeat DECARM 8 (3/8)
Printer form feed DECPFF 18 (3/1 3/8)
Printer extent DECPEX 19 (3/1 3/9)
Text cursor enable DECTCEM 25 (3/2 3/5)
National replacement character sets DECNRCM 42 (3/4 3/2)
This patch adds a comment for each one of these sequences.
---
st.c | 26 +++++++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)
-rw-r--r-- | st.c | 26 |
1 files changed, 21 insertions, 5 deletions
@@ -1280,7 +1280,8 @@ tsetmode(bool priv, bool set, int *args, int narg) { | |||
1280 | for(lim = args + narg; args < lim; ++args) { | 1280 | for(lim = args + narg; args < lim; ++args) { |
1281 | if(priv) { | 1281 | if(priv) { |
1282 | switch(*args) { | 1282 | switch(*args) { |
1283 | case 1: | 1283 | break; |
1284 | case 1: /* DECCKM -- Cursor key */ | ||
1284 | MODBIT(term.mode, set, MODE_APPKEYPAD); | 1285 | MODBIT(term.mode, set, MODE_APPKEYPAD); |
1285 | break; | 1286 | break; |
1286 | case 5: /* DECSCNM -- Reverve video */ | 1287 | case 5: /* DECSCNM -- Reverve video */ |
@@ -1289,9 +1290,14 @@ tsetmode(bool priv, bool set, int *args, int narg) { | |||
1289 | if(mode != term.mode) | 1290 | if(mode != term.mode) |
1290 | redraw(); | 1291 | redraw(); |
1291 | break; | 1292 | break; |
1292 | case 7: | 1293 | case 6: /* XXX: DECOM -- Origin */ |
1294 | break; | ||
1295 | case 7: /* DECAWM -- Auto wrap */ | ||
1293 | MODBIT(term.mode, set, MODE_WRAP); | 1296 | MODBIT(term.mode, set, MODE_WRAP); |
1294 | break; | 1297 | break; |
1298 | case 8: /* XXX: DECARM -- Auto repeat */ | ||
1299 | break; | ||
1300 | case 0: /* Error (IGNORED) */ | ||
1295 | case 12: /* att610 -- Start blinking cursor (IGNORED) */ | 1301 | case 12: /* att610 -- Start blinking cursor (IGNORED) */ |
1296 | break; | 1302 | break; |
1297 | case 25: | 1303 | case 25: |
@@ -1319,6 +1325,12 @@ tsetmode(bool priv, bool set, int *args, int narg) { | |||
1319 | tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD); | 1325 | tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD); |
1320 | break; | 1326 | break; |
1321 | default: | 1327 | default: |
1328 | /* case 2: DECANM -- ANSI/VT52 (NOT SUPPOURTED) */ | ||
1329 | /* case 3: DECCOLM -- Column (NOT SUPPORTED) */ | ||
1330 | /* case 4: DECSCLM -- Scroll (NOT SUPPORTED) */ | ||
1331 | /* case 18: DECPFF -- Printer feed (NOT SUPPORTED) */ | ||
1332 | /* case 19: DECPEX -- Printer extent (NOT SUPPORTED) */ | ||
1333 | /* case 42: DECNRCM -- National characters (NOT SUPPORTED) */ | ||
1322 | fprintf(stderr, | 1334 | fprintf(stderr, |
1323 | "erresc: unknown private set/reset mode %d\n", | 1335 | "erresc: unknown private set/reset mode %d\n", |
1324 | *args); | 1336 | *args); |
@@ -1326,13 +1338,17 @@ tsetmode(bool priv, bool set, int *args, int narg) { | |||
1326 | } | 1338 | } |
1327 | } else { | 1339 | } else { |
1328 | switch(*args) { | 1340 | switch(*args) { |
1329 | case 2: | 1341 | case 0: /* Error (IGNORED) */ |
1342 | break; | ||
1343 | case 2: /* KAM -- keyboard action */ | ||
1330 | MODBIT(term.mode, set, MODE_KBDLOCK); | 1344 | MODBIT(term.mode, set, MODE_KBDLOCK); |
1331 | break; | 1345 | break; |
1332 | case 4: | 1346 | case 4: /* IRM -- Insertion-replacement */ |
1333 | MODBIT(term.mode, set, MODE_INSERT); | 1347 | MODBIT(term.mode, set, MODE_INSERT); |
1334 | break; | 1348 | break; |
1335 | case 20: | 1349 | case 12: /* XXX: SRM -- Send/Receive */ |
1350 | break; | ||
1351 | case 20: /* LNM -- Linefeed/new line */ | ||
1336 | MODBIT(term.mode, set, MODE_CRLF); | 1352 | MODBIT(term.mode, set, MODE_CRLF); |
1337 | break; | 1353 | break; |
1338 | default: | 1354 | default: |