diff options
Diffstat (limited to 'st.c')
| -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: |
