pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

visidata: avoid all unconditional curses.mousemask()



Module Name:	pkgsrc-wip
Committed By:	Leonardo Taccari <leot%NetBSD.org@localhost>
Pushed By:	leot
Date:		Mon Dec 15 13:07:34 2025 +0100
Changeset:	390c319ceeabb04d9e8df8e4bba0cbd99f0fccf4

Modified Files:
	visidata/distinfo
Added Files:
	visidata/patches/patch-visidata___input.py
	visidata/patches/patch-visidata_movement.py

Log Message:
visidata: avoid all unconditional curses.mousemask()

Upstream #2851 (<https://github.com/saulpw/visidata/pull/2851>)
addressed a problematic call to curses.mousemask() but there were still
some other lefts.

Catched via "e" command and mechanically via a `grep mousemask`.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=390c319ceeabb04d9e8df8e4bba0cbd99f0fccf4

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 visidata/distinfo                           |  2 ++
 visidata/patches/patch-visidata___input.py  | 34 +++++++++++++++++++++++++++++
 visidata/patches/patch-visidata_movement.py | 21 ++++++++++++++++++
 3 files changed, 57 insertions(+)

diffs:
diff --git a/visidata/distinfo b/visidata/distinfo
index 2f78ad6072..8573b3c68b 100644
--- a/visidata/distinfo
+++ b/visidata/distinfo
@@ -3,3 +3,5 @@ $NetBSD$
 BLAKE2s (visidata-3.3.tar.gz) = d9d474f37c8084086d7b6b7ce00c125fbe8d885c153877e2161644e3da65963d
 SHA512 (visidata-3.3.tar.gz) = 262f12c17d18f0e58e6617bde37ba660199c7b3a078d70e774b65318b5f3daac9c85b2f6b4eaa9e232df85d37bad700b42fb764f9234d3eef3eab2e4e829d176
 Size (visidata-3.3.tar.gz) = 13248725 bytes
+SHA1 (patch-visidata___input.py) = 6da5b338e4d1105611c9e869914f095ac876929d
+SHA1 (patch-visidata_movement.py) = 90afb92b45538ef53cd90106eca9bd80c79045c7
diff --git a/visidata/patches/patch-visidata___input.py b/visidata/patches/patch-visidata___input.py
new file mode 100644
index 0000000000..6fa70ecfc5
--- /dev/null
+++ b/visidata/patches/patch-visidata___input.py
@@ -0,0 +1,34 @@
+$NetBSD$
+
+Conditionalize mousemask.
+
+Not all curses support mouse, e.g. NetBSD curses(3).
+
+Related to upstream #2851.
+
+--- visidata/_input.py.orig	2025-12-15 11:55:26.043085221 +0000
++++ visidata/_input.py
+@@ -60,16 +60,18 @@ def acceptThenFunc(*longnames):
+ class EnableCursor:
+     def __enter__(self):
+         with suppress(curses.error):
+-            curses.mousemask(0)
++            if hasattr(curses, 'mousemask'):
++                curses.mousemask(0)
+             curses.curs_set(1)
+ 
+     def __exit__(self, exc_type, exc_val, tb):
+         with suppress(curses.error):
+             curses.curs_set(0)
+-            if vd.options.mouse_interval:
+-                curses.mousemask(curses.MOUSE_ALL if hasattr(curses, "MOUSE_ALL") else 0xffffffff)
+-            else:
+-                curses.mousemask(0)
++            if hasattr(curses, 'mousemask'):
++                if vd.options.mouse_interval:
++                    curses.mousemask(curses.MOUSE_ALL if hasattr(curses, "MOUSE_ALL") else 0xffffffff)
++                else:
++                    curses.mousemask(0)
+ 
+ 
+ def until_get_wch(scr):
diff --git a/visidata/patches/patch-visidata_movement.py b/visidata/patches/patch-visidata_movement.py
new file mode 100644
index 0000000000..26461dc762
--- /dev/null
+++ b/visidata/patches/patch-visidata_movement.py
@@ -0,0 +1,21 @@
+$NetBSD$
+
+Conditionalize mousemask.
+
+Not all curses support mouse, e.g. NetBSD curses(3).
+
+Related to upstream #2851.
+
+--- visidata/movement.py.orig	2025-12-15 11:59:00.204848702 +0000
++++ visidata/movement.py
+@@ -189,8 +189,8 @@ BaseSheet.addCommand('g^^', 'jump-first'
+ 
+ BaseSheet.addCommand('BUTTON1_RELEASED', 'no-op', 'pass', 'do nothing')
+ 
+-BaseSheet.addCommand(None, 'mouse-enable', 'mm, _ = curses.mousemask(-1); status("mouse "+("ON" if mm else "OFF"))', 'enable mouse events')
+-BaseSheet.addCommand(None, 'mouse-disable', 'mm, _ = curses.mousemask(0); status("mouse "+("ON" if mm else "OFF"))', 'disable mouse events')
++BaseSheet.addCommand(None, 'mouse-enable', 'mm, _ = curses.mousemask(-1) if hasattr(curses, "mousemask") else None; status("mouse "+("ON" if mm else "OFF"))', 'enable mouse events')
++BaseSheet.addCommand(None, 'mouse-disable', 'mm, _ = curses.mousemask(0) if hasattr(curses, "mousemask") else None; status("mouse "+("ON" if mm else "OFF"))', 'disable mouse events')
+ 
+ 
+ vd.addGlobals({'rotateRange': rotateRange})


Home | Main Index | Thread Index | Old Index