Date: Tue, 2 Aug 2022 09:34:22 -0300 (-03) From: Ivan Quitschal <tezeka@hotmail.com> To: Hans Petter Selasky <hps@selasky.org> Cc: Tomoaki AOKI <junchoon@dec.sakura.ne.jp>, Ivan Quitschal <tezeka@hotmail.com>, "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>, Kurt Jaeger <pi@freebsd.org> Subject: vt newcons 3 clicks mouse paste issue FIXED Message-ID: <CP6P284MB1900DD45138428B4612DF7ACCB9D9@CP6P284MB1900.BRAP284.PROD.OUTLOOK.COM> In-Reply-To: <fd0f9de9-98ac-87b4-2c9d-5fdc27bdb3c4@selasky.org> References: <CP6P284MB1900CA1ED5B5BADE054ECB34CBB29@CP6P284MB1900.BRAP284.PROD.OUTLOOK.COM> <f6c1ee1c-bdd9-c8d6-1385-145022e6765d@selasky.org> <CP6P284MB1900CC7B7F6343DAB1D1E5BCCBB29@CP6P284MB1900.BRAP284.PROD.OUTLOOK.COM> <41ef5c38-515f-739a-cb47-7cab0e609526@selasky.org> <CP6P284MB1900DD3D6F41CBAF38CF2CA4CBB29@CP6P284MB1900.BRAP284.PROD.OUTLOOK.COM> <20220623014847.067b18a5ba388639cf6009ce@dec.sakura.ne.jp> <fd0f9de9-98ac-87b4-2c9d-5fdc27bdb3c4@selasky.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
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
--------------------------
[-- Attachment #2 --]
--- 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
[-- Attachment #3 --]
--- 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]))
[-- Attachment #4 --]
--- 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;
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CP6P284MB1900DD45138428B4612DF7ACCB9D9>
