diff options
-rw-r--r-- | accessibility/mag/mag.1 | 18 | ||||
-rw-r--r-- | accessibility/mag/mag.SlackBuild | 21 | ||||
-rw-r--r-- | accessibility/mag/mag.rst | 6 | ||||
-rw-r--r-- | accessibility/mag/xdestroyimage.diff | 18 |
4 files changed, 55 insertions, 8 deletions
diff --git a/accessibility/mag/mag.1 b/accessibility/mag/mag.1 index 230168b011c27..060a3010f86d9 100644 --- a/accessibility/mag/mag.1 +++ b/accessibility/mag/mag.1 @@ -1,8 +1,5 @@ .\" Man page generated from reStructuredText. . -.TH MAG 1 "2020-11-01" "20100913" "SlackBuilds.org" -.SH NAME -mag \- dynamic X11 screen magnifier . .nr rst2man-indent-level 0 . @@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. +.TH "MAG" 1 "2021-12-07" "20100913" "SlackBuilds.org" +.SH NAME +mag \- dynamic X11 screen magnifier .\" RST source for mag(1) man page. Convert with: . .\" rst2man.py mag.rst > mag.1 @@ -49,16 +49,16 @@ furthest corner away from the mouse. Without, you can grab it and move it as you .SH OPTIONS .INDENT 0.0 .TP -.B \-s +.B \-s small window. .TP -.B \-m +.B \-m medium window. .TP -.B \-l +.B \-l large window. .TP -.B \-d +.B \-d Dynamic placement. .TP .BI \-z \ n @@ -70,6 +70,10 @@ Original X placement. .BI \-y \ Ycoord Original Y placement. .UNINDENT +.SH BUGS +.sp +There is no way to exit \fBmag\fP normally. Use e.g. \fBkillall mag\fP or +\fBxkill\fP to force it to quit. .SH AUTHORS .sp mag was written by Danny Chouinard. diff --git a/accessibility/mag/mag.SlackBuild b/accessibility/mag/mag.SlackBuild index 470ddbc49a6c1..c370bf6c47873 100644 --- a/accessibility/mag/mag.SlackBuild +++ b/accessibility/mag/mag.SlackBuild @@ -8,11 +8,15 @@ # VERSION comes from the last modified date on the homepage. +# 20211207 bkw: BUILD=2 +# - fix blank window on -current (it shouldn't have worked on 14.2 either). +# - add BUGS to man page (no way to exit mag). + cd $(dirname $0) ; CWD=$(pwd) PRGNAM=mag VERSION=${VERSION:-20100913} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -54,7 +58,22 @@ set -e # In case you're wondering, -Wl,-s builds a stripped binary. rm -rf $PKG mkdir -p $PKG/usr/bin $OUTPUT + +cd $PKG + +# 20211207 bkw: we *do* have to patch it now, and we don't want +# to write to $CWD, so: +cat $CWD/$PRGNAM.c > $PRGNAM.c + +# 20211207 bkw: silly mistake in the code: it was calling +# XDestroyImage(ximage) before the for loop that *uses* ximage. +# On 14.2's X, this was equivalent to a use-after-free, and worked +# accidentally most (or even all) of the time, but on -current's X, +# it results in a blank (all-black) window. +patch -p0 < $CWD/xdestroyimage.diff + gcc $SLKCFLAGS -Wl,-s -o $PKG/usr/bin/$PRGNAM $PRGNAM.c -lX11 +rm $PRGNAM.c # Man page written by SlackBuild author. Please don't include mag.rst # in the package, it's the source for the man page only. diff --git a/accessibility/mag/mag.rst b/accessibility/mag/mag.rst index 1a8381b5513e8..7e3c5c0f8a8ee 100644 --- a/accessibility/mag/mag.rst +++ b/accessibility/mag/mag.rst @@ -43,6 +43,12 @@ OPTIONS -x Xcoord Original X placement. -y Ycoord Original Y placement. +BUGS +==== + +There is no way to exit **mag** normally. Use e.g. **killall mag** or +**xkill** to force it to quit. + AUTHORS ======= diff --git a/accessibility/mag/xdestroyimage.diff b/accessibility/mag/xdestroyimage.diff new file mode 100644 index 0000000000000..1b4a0b8e11ef1 --- /dev/null +++ b/accessibility/mag/xdestroyimage.diff @@ -0,0 +1,18 @@ +--- mag.c 2010-09-13 13:56:43.000000000 -0400 ++++ mag.c.fixed 2021-12-07 23:23:49.729231259 -0500 +@@ -174,7 +174,6 @@ + ximage=XGetImage(display,root,x-sx,y-sy,width/zoom,height/zoom,AllPlanes,ZPixmap); + // fprintf(stderr,"XGetImage returns:%d\n",(int)ximage); + // XPutImage(display,main_win,the_GC,ximage,0,0,0,0,width,height); +- XDestroyImage(ximage); + for(sx=0;sx<width/zoom;sx++) { + for(sy=0;sy<height/zoom;sy++) { + pix=XGetPixel(ximage,sx,sy); +@@ -186,6 +185,7 @@ + } + } + } ++ XDestroyImage(ximage); + XFlush(display); + } else { + usleep(30000); |