… | |
… | |
33 | |
33 | |
34 | #include "../config.h" /* NECESSARY */ |
34 | #include "../config.h" /* NECESSARY */ |
35 | #include "rxvt.h" /* NECESSARY */ |
35 | #include "rxvt.h" /* NECESSARY */ |
36 | #include "rxvtutil.h" |
36 | #include "rxvtutil.h" |
37 | #include "init.h" |
37 | #include "init.h" |
|
|
38 | |
|
|
39 | #include <limits> |
38 | |
40 | |
39 | #include <csignal> |
41 | #include <csignal> |
40 | |
42 | |
41 | const char *const def_colorName[] = |
43 | const char *const def_colorName[] = |
42 | { |
44 | { |
… | |
… | |
369 | if (!rs[Rs_iconName]) |
371 | if (!rs[Rs_iconName]) |
370 | rs[Rs_iconName] = rs[Rs_name]; |
372 | rs[Rs_iconName] = rs[Rs_name]; |
371 | } |
373 | } |
372 | |
374 | |
373 | if (rs[Rs_saveLines] && (i = atoi (rs[Rs_saveLines])) >= 0) |
375 | if (rs[Rs_saveLines] && (i = atoi (rs[Rs_saveLines])) >= 0) |
374 | saveLines = min (i, MAX_POSITIVE_INT16); |
376 | saveLines = min (i, MAX_SAVELINES); |
375 | |
377 | |
376 | #if ENABLE_FRILLS |
378 | #if ENABLE_FRILLS |
377 | if (rs[Rs_int_bwidth] && (i = atoi (rs[Rs_int_bwidth])) >= 0) |
379 | if (rs[Rs_int_bwidth] && (i = atoi (rs[Rs_int_bwidth])) >= 0) |
378 | int_bwidth = min (i, MAX_POSITIVE_INT16); |
380 | int_bwidth = min (i, std::numeric_limits<int16_t>::max ()); |
379 | |
381 | |
380 | if (rs[Rs_ext_bwidth] && (i = atoi (rs[Rs_ext_bwidth])) >= 0) |
382 | if (rs[Rs_ext_bwidth] && (i = atoi (rs[Rs_ext_bwidth])) >= 0) |
381 | ext_bwidth = min (i, MAX_POSITIVE_INT16); |
383 | ext_bwidth = min (i, std::numeric_limits<int16_t>::max ()); |
382 | |
384 | |
383 | if (rs[Rs_lineSpace] && (i = atoi (rs[Rs_lineSpace])) >= 0) |
385 | if (rs[Rs_lineSpace] && (i = atoi (rs[Rs_lineSpace])) >= 0) |
384 | lineSpace = min (i, MAX_POSITIVE_INT16); |
386 | lineSpace = min (i, std::numeric_limits<int16_t>::max ()); |
385 | #endif |
387 | #endif |
386 | |
388 | |
387 | #ifdef POINTER_BLANK |
389 | #ifdef POINTER_BLANK |
388 | if (rs[Rs_pointerBlankDelay] && (i = atoi (rs[Rs_pointerBlankDelay])) >= 0) |
390 | if (rs[Rs_pointerBlankDelay] && (i = atoi (rs[Rs_pointerBlankDelay])) >= 0) |
389 | pointerBlankDelay = i; |
391 | pointerBlankDelay = i; |
… | |
… | |
1195 | /* |
1197 | /* |
1196 | * standard System V termios interface |
1198 | * standard System V termios interface |
1197 | */ |
1199 | */ |
1198 | if (GET_TERMIOS (STDIN_FILENO, tio) < 0) |
1200 | if (GET_TERMIOS (STDIN_FILENO, tio) < 0) |
1199 | { |
1201 | { |
1200 | /* return error - use system defaults */ |
1202 | // return error - use system defaults, |
|
|
1203 | // where possible, and zero elsewhere |
|
|
1204 | memset (tio, 0, sizeof (ttymode_t)); |
|
|
1205 | |
1201 | tio->c_cc[VINTR] = CINTR; |
1206 | tio->c_cc[VINTR] = CINTR; |
1202 | tio->c_cc[VQUIT] = CQUIT; |
1207 | tio->c_cc[VQUIT] = CQUIT; |
1203 | tio->c_cc[VERASE] = CERASE; |
1208 | tio->c_cc[VERASE] = CERASE; |
|
|
1209 | #ifdef VERASE2 |
|
|
1210 | tio->c_cc[VERASE2] = CERASE2; |
|
|
1211 | #endif |
1204 | tio->c_cc[VKILL] = CKILL; |
1212 | tio->c_cc[VKILL] = CKILL; |
1205 | tio->c_cc[VSTART] = CSTART; |
1213 | tio->c_cc[VSTART] = CSTART; |
1206 | tio->c_cc[VSTOP] = CSTOP; |
1214 | tio->c_cc[VSTOP] = CSTOP; |
1207 | tio->c_cc[VSUSP] = CSUSP; |
1215 | tio->c_cc[VSUSP] = CSUSP; |
1208 | # ifdef VDSUSP |
1216 | # ifdef VDSUSP |
… | |
… | |
1402 | { |
1410 | { |
1403 | #if ENABLE_FRILLS |
1411 | #if ENABLE_FRILLS |
1404 | if (rs[Rs_pty_fd]) |
1412 | if (rs[Rs_pty_fd]) |
1405 | { |
1413 | { |
1406 | pty.pty = atoi (rs[Rs_pty_fd]); |
1414 | pty.pty = atoi (rs[Rs_pty_fd]); |
|
|
1415 | |
|
|
1416 | if (getfd_hook) |
|
|
1417 | pty.pty = (*getfd_hook) (pty.pty); |
|
|
1418 | |
1407 | fcntl (pty.pty, F_SETFL, O_NONBLOCK); |
1419 | if (pty.pty < 0 || fcntl (pty.pty, F_SETFL, O_NONBLOCK)) |
|
|
1420 | rxvt_fatal ("unusable pty-fd filehandle, aborting.\n"); |
1408 | } |
1421 | } |
1409 | else |
1422 | else |
1410 | #endif |
1423 | #endif |
1411 | if (!pty.get ()) |
1424 | if (!pty.get ()) |
1412 | rxvt_fatal ("can't initialize pseudo-tty, aborting.\n"); |
1425 | rxvt_fatal ("can't initialize pseudo-tty, aborting.\n"); |