summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--x11/xzoom/Makefile9
-rw-r--r--x11/xzoom/distinfo5
-rw-r--r--x11/xzoom/files/patch-scale.h105
-rw-r--r--x11/xzoom/files/patch-xzoom.c427
-rw-r--r--x11/xzoom/files/patch-xzoom.man21
-rw-r--r--x11/xzoom/pkg-descr2
6 files changed, 8 insertions, 561 deletions
diff --git a/x11/xzoom/Makefile b/x11/xzoom/Makefile
index 47dc83e978a1..61bd9b2ec6df 100644
--- a/x11/xzoom/Makefile
+++ b/x11/xzoom/Makefile
@@ -2,15 +2,14 @@
# $FreeBSD$
PORTNAME= xzoom
-PORTVERSION= 0.3
-PORTREVISION= 2
+PORTVERSION= 0.4
CATEGORIES= x11 accessibility
-MASTER_SITES= SUNSITE/libs/X
+MASTER_SITES= http://www.linklevel.net/distfiles/
MAINTAINER= ports@FreeBSD.org
-COMMENT= Magnify, rotate, mirror the image on the X screen
+COMMENT= Magnify, rotate, mirror the image on the X11 screen
-USES= imake tar:tgz xorg
+USES= imake xorg
USE_XORG= x11 xext
PLIST_FILES= bin/xzoom man/man1/xzoom.1.gz
diff --git a/x11/xzoom/distinfo b/x11/xzoom/distinfo
index 5f4c080d3c14..5d001dbe86ed 100644
--- a/x11/xzoom/distinfo
+++ b/x11/xzoom/distinfo
@@ -1,2 +1,3 @@
-SHA256 (xzoom-0.3.tgz) = b26bfd692d3e1d30e8d524d4018fc3f0fe847983a2778a4a2496784bfc2df44b
-SIZE (xzoom-0.3.tgz) = 9127
+TIMESTAMP = 1594653417
+SHA256 (xzoom-0.4.tar.gz) = 42e70abffa34a2bb6e11b38fb978ffb3de7de3f918bb2638b6a3425579716f84
+SIZE (xzoom-0.4.tar.gz) = 9773
diff --git a/x11/xzoom/files/patch-scale.h b/x11/xzoom/files/patch-scale.h
deleted file mode 100644
index 46728bbc46f1..000000000000
--- a/x11/xzoom/files/patch-scale.h
+++ /dev/null
@@ -1,105 +0,0 @@
---- scale.h.orig Sat Jan 15 14:23:58 2000
-+++ scale.h Sat Jan 15 00:00:00 2000
-@@ -0,0 +1,102 @@
-+/* scale image from SRC to DST - parameterized by type T */
-+
-+/* get pixel address of point (x,y) in image t */
-+#define getP(t,x,y) \
-+ (T *) (&ximage[t]->data[(ximage[t]->xoffset+(x))*sizeof(T) + \
-+ (y)*ximage[t]->bytes_per_line])
-+
-+{
-+ int i, j, k;
-+
-+ /* copy scaled lines from SRC to DST */
-+ j = flipxy ? width[SRC] - 1 : height[SRC] - 1;
-+ do {
-+ T *p1;
-+ T *p2;
-+ int p2step;
-+ T *p1_save;
-+
-+ /* p1 point to begining of scanline j*magy in DST */
-+ p1 = getP(DST,0,j*magy);
-+ p1_save = p1;
-+ /* p2 point to begining of scanline j in SRC */
-+ /* if flipy then line height[SRC]-1-j */
-+ p2 = getP(SRC,0,flipy ? (height[SRC]-1-j) : j);
-+
-+ if (flipxy)
-+ {
-+ p2 = getP(SRC,flipy ? j : (width[SRC]-1-j),0);
-+ p2step = ximage[SRC]->bytes_per_line / sizeof(T);
-+
-+ if (flipx)
-+ {
-+ p2 += p2step * (height[SRC]-1);
-+ p2step = -p2step;
-+ }
-+
-+ i = height[SRC];
-+ do {
-+ T c = *p2; p2 += p2step;
-+ k = magx; do *p1++ = c; while (--k > 0);
-+ } while (--i > 0);
-+ }
-+ else if (flipx)
-+ {
-+ p2 += width[SRC];
-+ i = width[SRC];
-+ do {
-+ T c = *--p2;
-+ k = magx; do *p1++ = c; while (--k > 0);
-+ } while (--i > 0);
-+ }
-+ else
-+ {
-+ i = width[SRC];
-+ do {
-+ T c = *p2++;
-+ k = magx; do *p1++ = c; while (--k > 0);
-+ } while (--i > 0);
-+ }
-+
-+ /* draw vertical grid */
-+ if (gridy && magx >= 2)
-+ {
-+ p1 = p1_save - 1;
-+ i = magx;
-+ k = flipxy ? height[SRC] : width[SRC];
-+ do {
-+ p1 += i;
-+ *p1 ^= ~((T)0);
-+ } while (--k > 0);
-+ }
-+
-+ /* duplicate that line as needed */
-+ if (magy > 1)
-+ {
-+ /* p1 point to begining of scanline j*magy in DST */
-+ p1 = p1_save;
-+ /* p2 points to begining of next line */
-+ p2 = p1;
-+ p2step = ximage[DST]->bytes_per_line / sizeof(T);
-+
-+ i = width[DST] * sizeof(T);
-+ k = magy - 1;
-+ do {
-+ p2 += p2step;
-+ memcpy(p2, p1, i);
-+ } while (--k > 0);
-+
-+ /* draw horizontal grid */
-+ if (gridx && magy >= 2)
-+ {
-+ k = width[DST];
-+ do {
-+ *p2++ ^= ~((T)0);
-+ } while (--k > 0);
-+ }
-+ }
-+ } while (--j >= 0);
-+}
-+
-+#undef getP
-+
diff --git a/x11/xzoom/files/patch-xzoom.c b/x11/xzoom/files/patch-xzoom.c
deleted file mode 100644
index 0a5ed453d0f3..000000000000
--- a/x11/xzoom/files/patch-xzoom.c
+++ /dev/null
@@ -1,427 +0,0 @@
---- xzoom.c.orig Wed May 29 18:40:51 1996
-+++ xzoom.c Sat Jan 15 00:00:00 2000
-@@ -12,13 +12,20 @@
- exact location where the source code can be obtained.
-
- Changelist:
--Author Description
-------- -----------
--Itai Nahshon Version 0.1, Nov. 21 1995
--Itai Nahshon Version 0.2, Apr. 17 1996
-- include <sys/types.h>
-- Use memmove() instead of memcopy()
-- Optional macro to replace call to usleep().
-+Author Description
-+------ -----------
-+Itai Nahshon Version 0.1, Nov. 21 1995
-+Itai Nahshon Version 0.2, Apr. 17 1996
-+ include <sys/types.h>
-+ Use memmove() instead of memcopy()
-+ Optional macro to replace call to usleep().
-+Markus F.X.J. Oberhumer Version 0.4, Feb. 18 1998
-+ split into 2 files (scale.h)
-+ added support for 15, 16, 24 and 32 bpp displays
-+ added a grid (press key 'g')
-+ optimized scaling routines
-+ use memcpy() instead of memmove() ;-)
-+ some other minor changes/fixes
- */
-
- #include <stdio.h>
-@@ -87,8 +94,12 @@
- int xzoom_flag = False; /* next mag change only to magx */
- int yzoom_flag = False; /* next mag change only to magy */
-
-+int gridx = False;
-+int gridy = False;
-+
- int width[2] = { 0, WIDTH };
- int height[2] = { 0, HEIGHT };
-+unsigned depth = 0;
-
- #ifdef XSHM
- XShmSegmentInfo shminfo[2]; /* Segment info. */
-@@ -106,6 +117,7 @@
- void
- timeout_func(int signum) {
- set_title = True;
-+ signum = signum; /* UNUSED */
- }
-
- #ifdef FRAME
-@@ -116,9 +128,6 @@
- void
- allocate_images(void) {
- int i;
--#ifndef XSHM
-- char *data;
--#endif
-
- for(i = 0; i < 2; i++) {
-
-@@ -137,7 +146,7 @@
- shminfo[i].shmid = shmget(IPC_PRIVATE,
- (unsigned int)(ximage[i]->bytes_per_line * ximage[i]->height),
- IPC_CREAT | 0777);
--
-+
- if(shminfo[i].shmid < 0) {
- perror("shmget");
- exit(-1);
-@@ -163,20 +172,21 @@
-
- shmctl(shminfo[i].shmid, IPC_RMID, 0);
- #else
-- data = malloc(width[i] * height[i]);
-+ char *data;
-+ data = malloc(BitmapUnit(dpy) / 8 * width[i] * height[i]);
-
- ximage[i] = XCreateImage(dpy,
- DefaultVisualOfScreen(scr),
- DefaultDepthOfScreen(scr),
- ZPixmap, 0, data,
-- width[i], height[i], 8, width[i]);
-+ width[i], height[i], 32, 0);
-
- if(ximage[i] == NULL) {
- perror("XCreateImage");
- exit(-1);
- }
-
--#endif XSHM
-+#endif /* XSHM */
- }
- created_images = True;
- }
-@@ -185,6 +195,9 @@
- destroy_images(void) {
- int i;
-
-+ if (!created_images)
-+ return;
-+
- for(i = 0; i < 2; i++) {
- #ifdef XSHM
- XShmDetach(dpy, &shminfo[i]); /* ask X11 to detach shared segment */
-@@ -195,6 +208,8 @@
- ximage[i]->data = NULL; /* remove refrence to that address */
- XDestroyImage(ximage[i]); /* and destroy image */
- }
-+
-+ created_images = False;
- }
-
- void
-@@ -230,8 +245,7 @@
- void
- resize(int new_width, int new_height) {
-
-- if(created_images)
-- destroy_images(); /* we can get rid of these */
-+ destroy_images(); /* we can get rid of these */
-
- /* find new dimensions for source */
-
-@@ -244,9 +258,13 @@
- height[SRC] = (new_height+magy-1) / magy;
- }
-
-+ if(width[SRC] < 1)
-+ width[SRC] = 1;
- if(width[SRC] > WidthOfScreen(scr))
- width[SRC] = WidthOfScreen(scr);
-
-+ if(height[SRC] < 1)
-+ height[SRC] = 1;
- if(height[SRC] > HeightOfScreen(scr))
- height[SRC] = HeightOfScreen(scr);
-
-@@ -270,12 +288,34 @@
- height[DST] = new_height;
- }
-
-+
-+void scale8(void)
-+{
-+#define T unsigned char
-+#include "scale.h"
-+#undef T
-+}
-+
-+
-+void scale16(void)
-+{
-+#define T unsigned short
-+#include "scale.h"
-+#undef T
-+}
-+
-+
-+void scale32(void)
-+{
-+#define T unsigned int
-+#include "scale.h"
-+#undef T
-+}
-+
-+
- int
- main(int argc, char **argv) {
- XSetWindowAttributes xswa;
-- int i, j, k;
-- char c;
-- char *p1, *p2;
- XEvent event;
- int buttonpressed = False;
- int unmapped = True;
-@@ -286,8 +326,9 @@
- int source_geom_mask = NoValue,
- dest_geom_mask = NoValue,
- copy_from_src_mask;
-- int xpos = 0, ypos = 0;
-+ int xpos = 0, ypos = 0;
-
-+ atexit(destroy_images);
- progname = strrchr(argv[0], '/');
- if(progname)
- ++progname;
-@@ -312,7 +353,7 @@
-
- if(magx <= 0)
- Usage();
--
-+
-
- magy = argc > 1 ? atoi(argv[1]) : -1;
-
-@@ -340,7 +381,7 @@
- flipxy = True;
- continue;
- }
--
-+
- if(!strcmp(argv[0], "-source")) {
- ++argv; --argc;
-
-@@ -438,23 +479,24 @@
-
- scr = DefaultScreenOfDisplay(dpy);
-
-- if(DefaultDepthOfScreen(scr) != 8) {
-- fprintf(stderr, "%s: can work only with 8 bits/pixel\n", progname);
-+ depth = DefaultDepthOfScreen(scr);
-+ if (depth < 8) {
-+ fprintf(stderr, "%s: need at least 8 bits/pixel\n", progname);
- exit(1);
- }
-
- if(source_geom_mask & XNegative)
- xgrab += WidthOfScreen(scr);
--
-+
- if(source_geom_mask & YNegative)
- ygrab += HeightOfScreen(scr);
-
- if(dest_geom_mask & XNegative)
- xpos += WidthOfScreen(scr);
--
-+
- if(source_geom_mask & YNegative)
- ypos += HeightOfScreen(scr);
--
-+
- /* printf("=%dx%d+%d+%d\n", width[DST], height[DST], xpos, ypos); */
-
- xswa.event_mask = ButtonPressMask|ButtonReleaseMask|ButtonMotionMask;
-@@ -463,17 +505,17 @@
- xswa.background_pixel = BlackPixelOfScreen(scr);
-
- win = XCreateWindow(dpy, RootWindowOfScreen(scr),
-- xpos, ypos, width[DST], height[DST], 0,
-+ xpos, ypos, width[DST], height[DST], 0,
- DefaultDepthOfScreen(scr), InputOutput,
- DefaultVisualOfScreen(scr),
- CWEventMask | CWBackPixel, &xswa);
-
-- XChangeProperty(dpy, win, XA_WM_ICON_NAME, XA_STRING, 8,
-+ XChangeProperty(dpy, win, XA_WM_ICON_NAME, XA_STRING, 8,
- PropModeReplace,
- (unsigned char *)progname, strlen(progname));
-
- /*
-- XChangeProperty(dpy, win, XA_WM_NAME, XA_STRING, 8,
-+ XChangeProperty(dpy, win, XA_WM_NAME, XA_STRING, 8,
- PropModeReplace,
- (unsigned char *)progname, strlen(progname));
- */
-@@ -512,7 +554,7 @@
- {
- static char bitmap_data[] = { 0 };
- static XColor col = { 0 };
-- Pixmap curs = XCreatePixmapFromBitmapData(dpy,
-+ Pixmap curs = XCreatePixmapFromBitmapData(dpy,
- RootWindowOfScreen(scr), bitmap_data, 1, 1, 0, 0, 1);
-
- when_button = XCreatePixmapCursor(dpy, curs, curs, &col, &col, 0, 0);
-@@ -567,6 +609,7 @@
-
- case '+':
- case '=':
-+ case XK_KP_Add:
- if(!yzoom_flag) ++magx;
- if(!xzoom_flag) ++magy;
- xzoom_flag = yzoom_flag = False;
-@@ -575,6 +618,7 @@
- break;
-
- case '-':
-+ case XK_KP_Subtract:
- if(!yzoom_flag) --magx;
- if(!xzoom_flag) --magy;
- xzoom_flag = yzoom_flag = False;
-@@ -585,6 +629,7 @@
- break;
-
- case XK_Left:
-+ case XK_KP_Left:
- if(flipxy)
- if(flipx)
- ygrab += scroll;
-@@ -598,6 +643,7 @@
- break;
-
- case XK_Right:
-+ case XK_KP_Right:
- if(flipxy)
- if(flipx)
- ygrab -= scroll;
-@@ -611,6 +657,7 @@
- break;
-
- case XK_Up:
-+ case XK_KP_Up:
- if(flipxy)
- if(flipy)
- xgrab -= scroll;
-@@ -624,6 +671,7 @@
- break;
-
- case XK_Down:
-+ case XK_KP_Down:
- if(flipxy)
- if(flipy)
- xgrab += scroll;
-@@ -666,12 +714,17 @@
- xzoom_flag = False;
- break;
-
-+ case 'g':
-+ gridx = !gridx;
-+ gridy = !gridy;
-+ break;
-+
- case 'd':
- if(++delay_index >= NDELAYS)
- delay_index = 0;
- delay = delays[delay_index];
- sprintf(title, "delay = %d ms", delay/1000);
-- XChangeProperty(dpy, win, XA_WM_NAME, XA_STRING, 8,
-+ XChangeProperty(dpy, win, XA_WM_NAME, XA_STRING, 8,
- PropModeReplace,
- (unsigned char *)title, strlen(title));
- signal(SIGALRM, timeout_func);
-@@ -717,6 +770,7 @@
- #endif
- }
- break;
-+
- }
-
- /* trying XShmGetImage when part of the rect is
-@@ -736,6 +790,7 @@
-
- if(ygrab > HeightOfScreen(scr)-height[SRC])
- ygrab = HeightOfScreen(scr)-height[SRC];
-+
- }
-
- #ifdef XSHM
-@@ -753,63 +808,12 @@
- }
- #endif
-
-- /* copy scaled lines from src to dst */
-- for(j = flipxy?width[SRC]:height[SRC]; --j >= 0; ) {
-- /* p1 point to begining of scanline j*magy in DST */
-- p1 = &ximage[DST]->data[ximage[DST]->xoffset +
-- j*magy*ximage[DST]->bytes_per_line ];
-- /* p2 point to begining of scanline j in SRC */
-- /* if flipy then line height[SRC]-1-j */
-- p2 = &ximage[SRC]->data[ximage[SRC]->xoffset +
-- (flipy?(height[SRC]-1-j):j)*ximage[SRC]->bytes_per_line ];
--
-- if(flipxy) {
-- int p2step = ximage[SRC]->bytes_per_line;
-- p2 = &ximage[SRC]->data[ximage[SRC]->xoffset + (flipy?j:(width[SRC]-1-j))];
--
-- if(flipx) {
-- p2 += p2step * (height[SRC]-1);
-- p2step = -p2step;
-- }
--
-- for(i = height[SRC]; --i >= 0;) {
-- c = *p1++ = *p2;
-- p2 += p2step;
-- for(k = magx; --k > 0; )
-- *p1++ = c;
-- }
-- }
-- else if(flipx) {
-- p2 += width[SRC];
-- for(i = width[SRC]; --i >= 0;) {
-- c = *p1++ = *--p2;
-- for(k = magx; --k > 0; )
-- *p1++ = c;
-- }
-- }
-- else {
-- for(i = width[SRC]; --i >= 0;) {
-- c = *p1++ = *p2++;
-- for(k = magx; --k > 0; )
-- *p1++ = c;
-- }
-- }
--
-- /* p1 point to begining of scanline j*magy in DST */
-- p1 = &ximage[DST]->data[ximage[DST]->xoffset +
-- j*magy*ximage[DST]->bytes_per_line ];
-- /* p2 points to begining of next line */
-- p2 = p1 + ximage[DST]->bytes_per_line;
-- /* duplicate that line as needed */
-- for(k = magy; --k > 0; ) {
--#ifdef BCOPY
-- bcopy(p1, p2, width[DST]);
--#else
-- memmove(p2, p1, width[DST]);
--#endif
-- p2 += ximage[DST]->bytes_per_line;
-- }
-- }
-+ if (depth == 8)
-+ scale8();
-+ else if (depth <= 8*sizeof(short))
-+ scale16();
-+ else if (depth <= 8*sizeof(int))
-+ scale32();
-
- #ifdef XSHM
- XShmPutImage(dpy, win, gc, ximage[DST], 0, 0, 0, 0, width[DST], height[DST], False);
-@@ -825,7 +829,7 @@
- flipx?"-":"", magx,
- flipxy?" <=>":";",
- flipy?"-":"", magy);
-- XChangeProperty(dpy, win, XA_WM_NAME, XA_STRING, 8,
-+ XChangeProperty(dpy, win, XA_WM_NAME, XA_STRING, 8,
- PropModeReplace,
- (unsigned char *)title, strlen(title));
- set_title = False;
diff --git a/x11/xzoom/files/patch-xzoom.man b/x11/xzoom/files/patch-xzoom.man
deleted file mode 100644
index e47b307f4a81..000000000000
--- a/x11/xzoom/files/patch-xzoom.man
+++ /dev/null
@@ -1,21 +0,0 @@
---- xzoom.man.orig Thu Apr 18 01:37:48 1996
-+++ xzoom.man Sat Jan 15 00:00:00 2000
-@@ -3,7 +3,7 @@
- .\"
- .TH XZOOM 1X
- .SH NAME
--xzoom \-
-+xzoom \- magnify part of the screen, with fast updates
- .SH SYNOPSIS
- .B xzoom
- [ \-display \fIdisplayname\fP ] [ \-mag \fImag\fP [ \fImag\fP ] ]
-@@ -84,6 +84,9 @@
- .B d
- sets the delay between frame updates.
- Built-in delays are 200, 100, 50, 10 and 0 ms.
-+.TP 5
-+.B g
-+toggle grid on and off.
- .TP 5
- .B Mouse buttons
- To set the location of the magnified are click the left mouse
diff --git a/x11/xzoom/pkg-descr b/x11/xzoom/pkg-descr
index 64ed4c611083..d7a6b37bc512 100644
--- a/x11/xzoom/pkg-descr
+++ b/x11/xzoom/pkg-descr
@@ -1 +1 @@
-magnify, rotate, mirror the image on the X screen
+Magnify, rotate, mirror the image on the X11 screen.