Browse Source

accessibility/mag: Fix all-black window bug.

Signed-off-by: B. Watson <yalhcru@gmail.com>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
pull/159/head
B. Watson 4 years ago
committed by Willy Sudiarto Raharjo
parent
commit
4f82040ebc
No known key found for this signature in database GPG Key ID: 3F617144D7238786
  1. 18
      accessibility/mag/mag.1
  2. 21
      accessibility/mag/mag.SlackBuild
  3. 6
      accessibility/mag/mag.rst
  4. 18
      accessibility/mag/xdestroyimage.diff

18
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.

21
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.

6
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
=======

18
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);
Loading…
Cancel
Save