diff --git a/pkgs/by-name/pm/pmars/0003-fix-ncurses-opaque-WINDOW.patch b/pkgs/by-name/pm/pmars/0003-fix-ncurses-opaque-WINDOW.patch new file mode 100644 index 000000000000..04933f9718eb --- /dev/null +++ b/pkgs/by-name/pm/pmars/0003-fix-ncurses-opaque-WINDOW.patch @@ -0,0 +1,57 @@ +diff '--color=auto' -ruN a/src/curdisp.c b/src/curdisp.c +--- a/src/curdisp.c 2025-05-08 23:23:48.070346219 +0200 ++++ b/src/curdisp.c 2025-05-08 23:29:33.851400436 +0200 +@@ -28,12 +28,6 @@ + #include "sim.h" + #endif + +-/* For window structure in BSD 4.4/Curses 8.x library */ +-#ifdef BSD44 +-#define _curx curx +-#define _cury cury +-#endif +- + typedef struct win_st { + WINDOW *win; + int page; +@@ -428,18 +422,18 @@ + str--; + maxchar++; + leaveok(curwin, TRUE); +- if (ox = curwin->_curx) { ++ if (ox = getcurx(curwin)) { + #if 0 + #ifdef ATTRIBUTE +- mvwaddch(curwin, curwin->_cury, --ox, ' ' | attr); ++ mvwaddch(curwin, getcury(curwin), --ox, ' ' | attr); + #else +- mvwaddch(curwin, curwin->_cury, --ox, ' '); ++ mvwaddch(curwin, getcury(curwin), --ox, ' '); + #endif + #endif /* 0 */ +- mvwaddch(curwin, curwin->_cury, --ox, ' '); +- wmove(curwin, curwin->_cury, ox); ++ mvwaddch(curwin, getcury(curwin), --ox, ' '); ++ wmove(curwin, getcury(curwin), ox); + } else { +- oy = curwin->_cury - 1; ++ oy = getcury(curwin) - 1; + #if 0 + #ifdef ATTRIBUTE + mvwaddch(curwin, oy, COLS - 1, ' ' | attr); +@@ -470,12 +464,12 @@ + if (ox--) + #if 0 + #ifdef ATTRIBUTE +- mvwaddch(curwin, curwin->_cury, ox, ' ' | attr); ++ mvwaddch(curwin, getcury(curwin), ox, ' ' | attr); + #else +- mvwaddch(curwin, curwin->_cury, ox, ' '); ++ mvwaddch(curwin, getcury(curwin), ox, ' '); + #endif + #endif /* 0 */ +- mvwaddch(curwin, curwin->_cury, ox, ' '); ++ mvwaddch(curwin, getcury(curwin), ox, ' '); + else + #if 0 + #ifdef ATTRIBUTE diff --git a/pkgs/by-name/pm/pmars/package.nix b/pkgs/by-name/pm/pmars/package.nix index 69042eeb3b42..f5f52eba5fd4 100644 --- a/pkgs/by-name/pm/pmars/package.nix +++ b/pkgs/by-name/pm/pmars/package.nix @@ -35,6 +35,9 @@ stdenv.mkDerivation (finalAttrs: { # call to undeclared function 'sighandler' & undefined sighandler on Darwin ./0002-fix-sighandler.patch + + # ncurses' WINDOW struct was turned opaque for outside code, use functions for accessing values instead + ./0003-fix-ncurses-opaque-WINDOW.patch ]; postPatch = ''