Mon Jun 26 16:54:04 PDT 2000 Michael Jennings <mej@eterm.org>

Between myself and Marius Gedminas <mgedmin@takas.lt>, I think we
	licked that BCE issue that was talked about on the mutt-dev list.


SVN revision: 2891
This commit is contained in:
Michael Jennings 2000-06-26 23:37:05 +00:00
parent 20dd18b325
commit e458986d63
6 changed files with 74 additions and 24 deletions

View File

@ -3711,3 +3711,9 @@ Mon Jun 26 09:50:37 PDT 2000 Michael Jennings <mej@eterm.org>
<namsh@lgic.co.kr>. <namsh@lgic.co.kr>.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Mon Jun 26 16:54:04 PDT 2000 Michael Jennings <mej@eterm.org>
Between myself and Marius Gedminas <mgedmin@takas.lt>, I think we
licked that BCE issue that was talked about on the mutt-dev list.
-------------------------------------------------------------------------------

View File

@ -162,7 +162,7 @@ dnl# Utility stuff
dnl# dnl#
dnl# Did they want debugging? dnl# Did they want debugging?
AC_MSG_CHECKING(for debugging level) AC_MSG_CHECKING(for debugging level)
AC_ARG_WITH(debugging, [ --with-debugging[=num] enable debugging output, num is an optional level], AC_ARG_WITH(debugging, [ --with-debugging[=num] enable debugging output, num is an integer 0-9],
if test "$withval" = "yes"; then if test "$withval" = "yes"; then
withval=4 withval=4
else else

View File

@ -955,6 +955,20 @@ request_code_to_name(int code)
return "Unknown"; return "Unknown";
} }
const char *
get_ctrl_char_name(char c)
{
const char *lookup[] =
{
"NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", /* 0-7 */
"BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI", /* 8-15 */
"DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", /* 16-23 */
"CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US" /* 24-31 */
};
return ((c < ' ') ? (lookup[(int) c]) : (""));
}
static void static void
hard_exit(void) { hard_exit(void) {
@ -2600,6 +2614,15 @@ main_loop(void)
while (cmdbuf_ptr < cmdbuf_endp) { while (cmdbuf_ptr < cmdbuf_endp) {
ch = *cmdbuf_ptr++; ch = *cmdbuf_ptr++;
#if DEBUG >= DEBUG_VT
if (debug_level >= DEBUG_VT) {
if (ch < 32) {
D_VT(("\'%s\' (%d 0x%02x %03o)\n", get_ctrl_char_name(ch), ch, ch, ch));
} else {
D_VT(("\'%c\' (%d 0x%02x %03o)\n", ch, ch, ch, ch));
}
}
#endif
if (ch >= ' ' || ch == '\t' || ch == '\r') { if (ch >= ' ' || ch == '\t' || ch == '\r') {
/* nothing */ /* nothing */
} else if (ch == '\n') { } else if (ch == '\n') {

View File

@ -268,7 +268,13 @@ if (test) PrivateModes |= (bit); else PrivateModes &= ~(bit);} while (0)
#define CHARS_READ() (cmdbuf_ptr < cmdbuf_endp) #define CHARS_READ() (cmdbuf_ptr < cmdbuf_endp)
#define CHARS_BUFFERED() (count != CMD_BUF_SIZE) #define CHARS_BUFFERED() (count != CMD_BUF_SIZE)
#define RETURN_CHAR() do { refreshed = 0; return (*cmdbuf_ptr++); } while (0) #define RETURN_CHAR() do { \
char c = *cmdbuf_ptr++; \
refreshed = 0; \
if (c < 32) D_VT(("RETURN_CHAR(): \'%s\' (%d 0x%02x %03o)\n", get_ctrl_char_name(c), c, c, c)); \
else D_VT(("RETURN_CHAR(): \'%c\' (%d 0x%02x %03o)\n", c, c, c, c)); \
return (c); \
} while (0)
#ifdef REFRESH_DELAY #ifdef REFRESH_DELAY
# define REFRESH_DELAY_USEC (1000000/25) # define REFRESH_DELAY_USEC (1000000/25)
@ -341,6 +347,7 @@ extern void privileges(int);
extern char *sig_to_str(int); extern char *sig_to_str(int);
extern const char *event_type_to_name(int); extern const char *event_type_to_name(int);
extern const char *request_code_to_name(int); extern const char *request_code_to_name(int);
extern const char *get_ctrl_char_name(char);
extern void dump_stack_trace(void); extern void dump_stack_trace(void);
extern void install_handlers(void); extern void install_handlers(void);
extern void clean_exit(void); extern void clean_exit(void);

View File

@ -107,6 +107,10 @@ extern unsigned int debug_level;
# define DPRINTF3(x) do { if (debug_level >= 3) {__DEBUG(); real_dprintf x;} } while (0) # define DPRINTF3(x) do { if (debug_level >= 3) {__DEBUG(); real_dprintf x;} } while (0)
# define DPRINTF4(x) do { if (debug_level >= 4) {__DEBUG(); real_dprintf x;} } while (0) # define DPRINTF4(x) do { if (debug_level >= 4) {__DEBUG(); real_dprintf x;} } while (0)
# define DPRINTF5(x) do { if (debug_level >= 5) {__DEBUG(); real_dprintf x;} } while (0) # define DPRINTF5(x) do { if (debug_level >= 5) {__DEBUG(); real_dprintf x;} } while (0)
# define DPRINTF6(x) do { if (debug_level >= 6) {__DEBUG(); real_dprintf x;} } while (0)
# define DPRINTF7(x) do { if (debug_level >= 7) {__DEBUG(); real_dprintf x;} } while (0)
# define DPRINTF8(x) do { if (debug_level >= 8) {__DEBUG(); real_dprintf x;} } while (0)
# define DPRINTF9(x) do { if (debug_level >= 9) {__DEBUG(); real_dprintf x;} } while (0)
# else # else
# ifndef DPRINTF # ifndef DPRINTF
# define DPRINTF(x) NOP # define DPRINTF(x) NOP
@ -116,6 +120,10 @@ extern unsigned int debug_level;
# define DPRINTF3(x) NOP # define DPRINTF3(x) NOP
# define DPRINTF4(x) NOP # define DPRINTF4(x) NOP
# define DPRINTF5(x) NOP # define DPRINTF5(x) NOP
# define DPRINTF6(x) NOP
# define DPRINTF7(x) NOP
# define DPRINTF8(x) NOP
# define DPRINTF9(x) NOP
# endif # endif
/* Use this for stuff that you only want turned on in dire situations */ /* Use this for stuff that you only want turned on in dire situations */
@ -171,7 +179,10 @@ extern unsigned int debug_level;
# define DEBUG_PROFILE 4 # define DEBUG_PROFILE 4
# define D_PROFILE(x) DPRINTF4(x) # define D_PROFILE(x) DPRINTF4(x)
# define DEBUG_X 5 # define DEBUG_VT 5
# define D_VT(x) DPRINTF5(x)
# define DEBUG_X 9
# define DEBUG_PARSE 9999 # define DEBUG_PARSE 9999
# define D_PARSE(x) D_NEVER(x) # define D_PARSE(x) D_NEVER(x)

View File

@ -768,7 +768,7 @@ scr_add_lines(const unsigned char *str, int nlines, int len)
if (screen.row == screen.bscroll) { if (screen.row == screen.bscroll) {
scroll_text(screen.tscroll, screen.bscroll, 1, 0); scroll_text(screen.tscroll, screen.bscroll, 1, 0);
j = screen.bscroll + TermWin.saveLines; j = screen.bscroll + TermWin.saveLines;
blank_screen_mem(screen.text, screen.rend, j, DEFAULT_RSTYLE | ((rstyle & RS_RVid) ? (RS_RVid) : (0))); blank_screen_mem(screen.text, screen.rend, j, rstyle & ~RS_Uline);
} else if (screen.row < (TermWin.nrow - 1)) { } else if (screen.row < (TermWin.nrow - 1)) {
screen.row++; screen.row++;
row = screen.row + TermWin.saveLines; row = screen.row + TermWin.saveLines;
@ -797,7 +797,7 @@ scr_add_lines(const unsigned char *str, int nlines, int len)
j = screen.bscroll + TermWin.saveLines; j = screen.bscroll + TermWin.saveLines;
/* blank_line(screen.text[j], screen.rend[j], TermWin.ncol, /* blank_line(screen.text[j], screen.rend[j], TermWin.ncol,
rstyle); Bug fix from John Ellison - need to reset rstyle */ rstyle); Bug fix from John Ellison - need to reset rstyle */
blank_screen_mem(screen.text, screen.rend, j, DEFAULT_RSTYLE | ((rstyle & RS_RVid) ? (RS_RVid) : (0))); blank_screen_mem(screen.text, screen.rend, j, rstyle & ~RS_Uline);
} else if (screen.row < (TermWin.nrow - 1)) { } else if (screen.row < (TermWin.nrow - 1)) {
screen.row++; screen.row++;
row = screen.row + TermWin.saveLines; row = screen.row + TermWin.saveLines;
@ -985,26 +985,29 @@ scr_erase_line(int mode)
screen.flags &= ~Screen_WrapNext; screen.flags &= ~Screen_WrapNext;
row = TermWin.saveLines + screen.row; row = TermWin.saveLines + screen.row;
switch (mode) { if (screen.text[row]) {
case 0: /* erase to end of line */ switch (mode) {
col = screen.col; case 0: /* erase to end of line */
num = TermWin.ncol - col; col = screen.col;
MIN_IT(screen.text[row][TermWin.ncol], col); num = TermWin.ncol - col;
break; MIN_IT(screen.text[row][TermWin.ncol], col);
case 1: /* erase to beginning of line */ break;
col = 0; case 1: /* erase to beginning of line */
num = screen.col + 1; col = 0;
break; num = screen.col + 1;
case 2: /* erase whole line */ break;
col = 0; case 2: /* erase whole line */
num = TermWin.ncol; col = 0;
screen.text[row][TermWin.ncol] = 0; num = TermWin.ncol;
break; screen.text[row][TermWin.ncol] = 0;
default: break;
return; default:
return;
}
blank_line(&(screen.text[row][col]), &(screen.rend[row][col]), num, rstyle & ~RS_Uline);
} else {
blank_screen_mem(screen.text, screen.rend, row, rstyle & ~RS_Uline);
} }
blank_line(&(screen.text[row][col]), &(screen.rend[row][col]), num,
rstyle & ~(RS_RVid | RS_Uline));
} }
/* /*