vt newcons 3 clicks mouse paste issue FIXED
Date: Tue, 02 Aug 2022 12:34:22 UTC
Hi guys Currently , if you click 3 times in order to select the entire row, its just not working as it should. i fixed that please find below and attached the patches With this change now we can do a 3 clicks and paste , i dont know, in some command, and it will be executed just fine, like it was in syscons, and still is in xterm/ linux etc now if the event is a 3 mouse clickss select, the space trim is made on the right and an <enter> is included thanks --tzk -------------------- --- sys/dev/vt/vt_buf.c.orig 2022-08-02 08:44:27.229782000 -0300 +++ sys/dev/vt/vt_buf.c 2022-08-02 08:45:02.703697000 -0300 @@ -771,7 +771,7 @@ } void -vtbuf_extract_marked(struct vt_buf *vb, term_char_t *buf, int sz) +vtbuf_extract_marked(struct vt_buf *vb, term_char_t *buf, int sz, int mark) { int i, j, r, c, cs, ce; term_pos_t s, e; @@ -799,7 +799,7 @@ buf[i++] = vb->vb_rows[r][c]; /* For all rows, but the last one. */ - if (r != e.tp_row) { + if (r != e.tp_row || mark == VTB_MARK_ROW) { /* Trim trailing word separators, if any. */ for (; i != j; i--) { if (!tchar_is_word_separator(buf[i - 1])) -------------------- --- sys/dev/vt/vt_core.c.orig 2022-08-02 08:43:15.436415000 -0300 +++ sys/dev/vt/vt_core.c 2022-08-02 08:43:49.120096000 -0300 @@ -2287,7 +2287,7 @@ VD_PASTEBUFSZ(vd) = len; } /* Request copy/paste buffer data, no more than `len' */ - vtbuf_extract_marked(&vw->vw_buf, VD_PASTEBUF(vd), len); + vtbuf_extract_marked(&vw->vw_buf, VD_PASTEBUF(vd), len, mark); VD_PASTEBUFLEN(vd) = len; --------------------- --- sys/dev/vt/vt.h.orig 2022-08-02 08:41:23.888584000 -0300 +++ sys/dev/vt/vt.h 2022-08-02 08:41:54.504309000 -0300 @@ -238,7 +238,7 @@ #ifndef SC_NO_CUTPASTE int vtbuf_set_mark(struct vt_buf *vb, int type, int col, int row); int vtbuf_get_marked_len(struct vt_buf *vb); -void vtbuf_extract_marked(struct vt_buf *vb, term_char_t *buf, int sz); +void vtbuf_extract_marked(struct vt_buf *vb, term_char_t *buf, int sz, int mark); #endif #define VTB_MARK_NONE 0 --------------------------