{
int c, inbuf_reap;
+ /*
+ * Optionally log the session traffic to a file. Useful for
+ * debugging and possibly also useful for actual logging.
+ */
+ if (cfg.logtype == LGTYP_DEBUG)
+ for (inbuf_reap = 0; inbuf_reap < inbuf_head; inbuf_reap++) {
+ logtraffic((unsigned char) inbuf[inbuf_reap], LGTYP_DEBUG);
+ }
+
for (inbuf_reap = 0; inbuf_reap < inbuf_head; inbuf_reap++) {
c = inbuf[inbuf_reap];
- /*
- * Optionally log the session traffic to a file. Useful for
- * debugging and possibly also useful for actual logging.
- */
- logtraffic((unsigned char) c, LGTYP_DEBUG);
-
/* Note only VT220+ are 8-bit VT102 is seven bit, it shouldn't even
* be able to display 8-bit characters, but I'll let that go 'cause
* of i18n.
case 4:
case 5:
if ((c & 0xC0) != 0x80) {
- inbuf_reap--; /* This causes the faulting character */
- c = UCSERR; /* to be logged twice - not really a */
- utf_state = 0; /* serious problem. */
+ inbuf_reap--;
+ c = UCSERR;
+ utf_state = 0;
break;
}
utf_char = (utf_char << 6) | (c & 0x3f);
{
pos selpoint;
unsigned long *ldata;
+ int raw_mouse = xterm_mouse && !(cfg.mouse_override && shift);
- if (y < 0)
+ if (y < 0) {
y = 0;
- if (y >= rows)
+ if (a == MA_DRAG && !raw_mouse)
+ term_scroll(0, -1);
+ }
+ if (y >= rows) {
y = rows - 1;
+ if (a == MA_DRAG && !raw_mouse)
+ term_scroll(0, +1);
+ }
if (x < 0) {
if (y > 0) {
x = cols - 1;
if ((ldata[cols] & LATTR_MODE) != LATTR_NORM)
selpoint.x /= 2;
- if (xterm_mouse && !(cfg.mouse_override && shift)) {
+ if (raw_mouse) {
int encstate = 0, r, c;
char abuf[16];
static int is_down = 0;