Mercurial > emacs
changeset 10437:3021721d1d69
(cmcheckmagic): New function.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Tue, 17 Jan 1995 00:18:20 +0000 |
parents | c9ba2babe54e |
children | 9e090c50cead |
files | src/cm.c |
diffstat | 1 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cm.c Mon Jan 16 22:59:42 1995 +0000 +++ b/src/cm.c Tue Jan 17 00:18:20 1995 +0000 @@ -100,6 +100,35 @@ #endif /* + * Terminals with magicwrap (xn) don't all behave identically. + * The VT100 leaves the cursor in the last column but will wrap before + * printing the next character. I hear that the Concept terminal does + * the wrap immediately but ignores the next newline it sees. And some + * terminals just have buggy firmware, and think that the cursor is still + * in limbo if we use direct cursor addressing from the phantom column. + * The only guaranteed safe thing to do is to emit a CRLF immediately + * after we reach the last column; this takes us to a known state. + */ +void +cmcheckmagic () +{ + if (curX == FrameCols) + { + if (!MagicWrap || curY >= FrameRows - 1) + abort (); + if (termscript) + putc ('\r', termscript); + putchar ('\r'); + if (termscript) + putc ('\n', termscript); + putchar ('\n'); + curX = 0; + curY++; + } +} + + +/* * (Re)Initialize the cost factors, given the output speed of the terminal * in the variable ospeed. (Note: this holds B300, B9600, etc -- ie stuff * out of <sgtty.h>.)