diff options
| author | Joakim Verona | 2011-07-15 04:39:29 +0200 |
|---|---|---|
| committer | Joakim Verona | 2011-07-15 04:39:29 +0200 |
| commit | 4f616a2e7ed1db28da98df90266e9751a8ae9ee1 (patch) | |
| tree | 74a9dcbe13e945e712ae04a4a94c2202ca720591 /src/term.c | |
| parent | ff2be00005c3aeda6e11d7ed264ce86f02b60958 (diff) | |
| parent | ec2bc542a4d0127425625e8cb458684bd825675a (diff) | |
| download | emacs-4f616a2e7ed1db28da98df90266e9751a8ae9ee1.tar.gz emacs-4f616a2e7ed1db28da98df90266e9751a8ae9ee1.zip | |
merge from upstream
Diffstat (limited to 'src/term.c')
| -rw-r--r-- | src/term.c | 53 |
1 files changed, 2 insertions, 51 deletions
diff --git a/src/term.c b/src/term.c index 9205719b5f4..22056451cb9 100644 --- a/src/term.c +++ b/src/term.c | |||
| @@ -1546,7 +1546,8 @@ produce_glyphs (struct it *it) | |||
| 1546 | /* Nothing but characters are supported on terminal frames. */ | 1546 | /* Nothing but characters are supported on terminal frames. */ |
| 1547 | xassert (it->what == IT_CHARACTER | 1547 | xassert (it->what == IT_CHARACTER |
| 1548 | || it->what == IT_COMPOSITION | 1548 | || it->what == IT_COMPOSITION |
| 1549 | || it->what == IT_STRETCH); | 1549 | || it->what == IT_STRETCH |
| 1550 | || it->what == IT_GLYPHLESS); | ||
| 1550 | 1551 | ||
| 1551 | if (it->what == IT_STRETCH) | 1552 | if (it->what == IT_STRETCH) |
| 1552 | { | 1553 | { |
| @@ -3096,7 +3097,6 @@ init_tty (const char *name, const char *terminal_type, int must_succeed) | |||
| 3096 | char *area = NULL; | 3097 | char *area = NULL; |
| 3097 | char **address = &area; | 3098 | char **address = &area; |
| 3098 | int buffer_size = 4096; | 3099 | int buffer_size = 4096; |
| 3099 | register char *p = NULL; | ||
| 3100 | int status; | 3100 | int status; |
| 3101 | struct tty_display_info *tty = NULL; | 3101 | struct tty_display_info *tty = NULL; |
| 3102 | struct terminal *terminal = NULL; | 3102 | struct terminal *terminal = NULL; |
| @@ -3504,55 +3504,6 @@ use the Bourne shell command `TERM=... export TERM' (C-shell:\n\ | |||
| 3504 | Down (tty) = 0; | 3504 | Down (tty) = 0; |
| 3505 | } | 3505 | } |
| 3506 | 3506 | ||
| 3507 | /* Special handling for certain terminal types known to need it */ | ||
| 3508 | |||
| 3509 | if (!strcmp (terminal_type, "supdup")) | ||
| 3510 | { | ||
| 3511 | terminal->memory_below_frame = 1; | ||
| 3512 | tty->Wcm->cm_losewrap = 1; | ||
| 3513 | } | ||
| 3514 | if (!strncmp (terminal_type, "c10", 3) | ||
| 3515 | || !strcmp (terminal_type, "perq")) | ||
| 3516 | { | ||
| 3517 | /* Supply a makeshift :wi string. | ||
| 3518 | This string is not valid in general since it works only | ||
| 3519 | for windows starting at the upper left corner; | ||
| 3520 | but that is all Emacs uses. | ||
| 3521 | |||
| 3522 | This string works only if the frame is using | ||
| 3523 | the top of the video memory, because addressing is memory-relative. | ||
| 3524 | So first check the :ti string to see if that is true. | ||
| 3525 | |||
| 3526 | It would be simpler if the :wi string could go in the termcap | ||
| 3527 | entry, but it can't because it is not fully valid. | ||
| 3528 | If it were in the termcap entry, it would confuse other programs. */ | ||
| 3529 | if (!tty->TS_set_window) | ||
| 3530 | { | ||
| 3531 | const char *m = tty->TS_termcap_modes; | ||
| 3532 | while (*m && strcmp (m, "\033v ")) | ||
| 3533 | m++; | ||
| 3534 | if (*m) | ||
| 3535 | tty->TS_set_window = "\033v%C %C %C %C "; | ||
| 3536 | } | ||
| 3537 | /* Termcap entry often fails to have :in: flag */ | ||
| 3538 | terminal->must_write_spaces = 1; | ||
| 3539 | /* :ti string typically fails to have \E^G! in it */ | ||
| 3540 | /* This limits scope of insert-char to one line. */ | ||
| 3541 | strcpy (area, tty->TS_termcap_modes); | ||
| 3542 | strcat (area, "\033\007!"); | ||
| 3543 | tty->TS_termcap_modes = area; | ||
| 3544 | area += strlen (area) + 1; | ||
| 3545 | p = AbsPosition (tty); | ||
| 3546 | /* Change all %+ parameters to %C, to handle | ||
| 3547 | values above 96 correctly for the C100. */ | ||
| 3548 | while (*p) | ||
| 3549 | { | ||
| 3550 | if (p[0] == '%' && p[1] == '+') | ||
| 3551 | p[1] = 'C'; | ||
| 3552 | p++; | ||
| 3553 | } | ||
| 3554 | } | ||
| 3555 | |||
| 3556 | tty->specified_window = FrameRows (tty); | 3507 | tty->specified_window = FrameRows (tty); |
| 3557 | 3508 | ||
| 3558 | if (Wcm_init (tty) == -1) /* can't do cursor motion */ | 3509 | if (Wcm_init (tty) == -1) /* can't do cursor motion */ |