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