diff options
author | Karl Heuer <kwzh@gnu.org> | 1995-01-17 00:18:20 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1995-01-17 00:18:20 +0000 |
commit | 902a3b86a41b7142ba27c0430a9dff06e878fc14 (patch) | |
tree | 7b35ab52d3fa57bf5845bdd3993796bb747619e6 /src/cm.c | |
parent | 2b803765ef411feae2470f5a932123792b223c62 (diff) | |
download | emacs-902a3b86a41b7142ba27c0430a9dff06e878fc14.tar.gz |
(cmcheckmagic): New function.
Diffstat (limited to 'src/cm.c')
-rw-r--r-- | src/cm.c | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -100,6 +100,35 @@ addcol (n) { #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>.) |