vt newcons 3 clicks mouse paste issue FIXED

From: Ivan Quitschal <tezeka_at_hotmail.com>
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
--------------------------