Skip to content
Snippets Groups Projects
Commit 0e7118fa authored by rswindell's avatar rswindell
Browse files

Improvements in auto-screen pausing:

- If the first lines sent after a key-press are blank lines, don't count them
  in the line-counter (lncntr) - maximize the viewable data before pause.
- Assume tabs chars are expanded to 8-space tab-stops when detecting auto
  line-wrapped output (e.g. when ;LISTing text files with tabs)
parent 03c70692
No related branches found
No related tags found
No related merge requests found
......@@ -239,17 +239,26 @@ void sbbs_t::outchar(char ch)
if(!outchar_esc) {
if((uchar)ch>=' ')
column++;
else if(ch=='\r')
else if(ch=='\r') {
lastlinelen = column;
column=0;
}
else if(ch=='\b') {
if(column)
column--;
}
else if(ch=='\t') {
column++;
while(column%8)
column++;
}
}
if(ch==LF || column>=cols) {
lncntr++;
if(lncntr || lastlinelen)
lncntr++;
lbuflen=0;
tos=0;
lastlinelen = column;
column=0;
} else if(ch==FF) {
lncntr=0;
......
......@@ -3155,6 +3155,7 @@ sbbs_t::sbbs_t(ushort node_num, union xp_sockaddr *addr, size_t addr_len, const
sys_status=lncntr=tos=criterrs=slcnt=0L;
column=0;
lastlinelen=0;
curatr=LIGHTGRAY;
attr_sp=0; /* attribute stack pointer */
errorlevel=0;
......
......@@ -451,6 +451,7 @@ public:
long rows; /* Current number of Rows for User */
long cols; /* Current number of Columns for User */
long column; /* Current column counter (for line counter) */
long lastlinelen; /* The previously displayed line length */
long autoterm; /* Autodetected terminal type */
char slbuf[SAVE_LINES][LINE_BUFSIZE+1]; /* Saved for redisplay */
char slatr[SAVE_LINES]; /* Starting attribute of each line */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment