File xv-3.10a.dif of Package xv
---
src/CMakeLists.txt | 7 +++----
src/bggen.c | 2 +-
src/config.h | 16 ++++++++--------
src/xv.h | 26 +++++++++-----------------
src/xvevent.c | 4 +++-
src/xvgrab.c | 27 ++++++++++++++++-----------
6 files changed, 40 insertions(+), 42 deletions(-)
--- src/CMakeLists.txt
+++ src/CMakeLists.txt 2024-08-13 13:55:34.654691865 +0000
@@ -157,17 +157,17 @@ set(man_pages
foreach(file ${man_pages})
string(REGEX REPLACE "\\.[^.]*$" "" base ${file})
install(
- FILES docs/${file} RENAME ${base}.1
+ FILES docs/${file} RENAME ${base}.1x
DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
)
endforeach()
install(FILES
- pl/man1/xvpictoppm.1
+ pl/man1/xvpictoppm.1 RENAME xvpictoppm.1x
DESTINATION "${CMAKE_INSTALL_MANDIR}/pl/man1")
install(FILES
- fi/man1/xv.1
+ fi/man1/xv.1 RENAME xv.1x
DESTINATION "${CMAKE_INSTALL_MANDIR}/fi/man1")
# Install files into SYSCONFDIR.
@@ -195,7 +195,6 @@ install(FILES
# Install files into DOCDIR/formats.
install(FILES
docs/formats/bmp.doc
- docs/formats/epsf.ps
docs/formats/gif87.doc
docs/formats/gif89.doc
docs/formats/gif.ack
--- src/bggen.c
+++ src/bggen.c 2024-08-13 13:55:34.654691865 +0000
@@ -36,7 +36,7 @@
#define MAXCOLS 128
/* some VMS thing... */
-#if defined(vax11c) || (defined(__sony_news) && (defined(bsd43) || defined(__bsd43) || defined(SYSTYPE_BSD) || defined(__SYSTYPE_BSD)))
+#ifdef vax11c
#include <ctype.h>
#endif
--- src/config.h
+++ src/config.h 2024-08-13 13:55:34.654691865 +0000
@@ -14,13 +14,13 @@
* 'which gunzip' to find if you have gunzip, and where it lives; ditto for
* gzip)
*/
-#define USE_GUNZIP
+#define USE_GUNZIP 1
#ifdef USE_GUNZIP
# ifdef VMS
# define GUNZIP "UNCOMPRESS"
# else
-# define GUNZIP "gzip -dq"
+# define GUNZIP "/bin/gzip -dq"
# endif
#endif
@@ -37,7 +37,7 @@
#define USE_BUNZIP2
#ifdef USE_BUNZIP2
-# define BUNZIP2 "bzip2 -d" /* should this include the full path? */
+# define BUNZIP2 "/usr/bin/bzip2 -dq"
#endif
@@ -67,7 +67,7 @@
* as it tries to be clever on systems where uncompress lives in an unusual
* location.
*/
-#define UNCOMPRESS "/usr/ucb/uncompress"
+#define UNCOMPRESS "/usr/bin/uncompress"
#if defined(hpux) || defined(SVR4) || \
defined(__386BSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
@@ -78,7 +78,7 @@
machine has or not.
*/
# undef UNCOMPRESS
-# define UNCOMPRESS "uncompress"
+# define UNCOMPRESS "/usr/bin/uncompress"
#endif
#if defined(sgi)
@@ -128,7 +128,7 @@
*/
/* #define GS_PATH "/usr/local/bin/gs" */
-#define GS_PATH "gs"
+#define GS_PATH "/usr/bin/gs"
/* #define GS_LIB "." */
/* #define GS_DEV "ppmraw" */
@@ -206,7 +206,7 @@
* in the following line.
*/
-#undef MACBINARY
+#define MACBINARY
/***************************************************************************
@@ -222,7 +222,7 @@
* is read-only), change 'undef' to 'define' the VIRTUAL_TD line.
*/
-#undef AUTO_EXPAND
+#define AUTO_EXPAND
#undef VIRTUAL_TD
#if defined(VIRTUAL_TD) && !defined(AUTO_EXPAND)
--- src/xv.h
+++ src/xv.h 2024-08-13 13:55:34.654691865 +0000
@@ -99,12 +99,6 @@
# define SVR4
#endif
-#if defined(__sony_news) && defined(bsd43) && !defined(__bsd43)
-# define __bsd43
-#elif defined(__sony_news) && (defined(SYSTYPE_BSD) || defined(__SYSTYPE_BSD)) && !defined(bsd43) && !defined(__bsd43)
-# define bsd43
-# define __bsd43
-#endif
#include <signal.h> /* for interrupt handling */
@@ -162,16 +156,6 @@
#endif
-#if defined(__sony_news) && defined(__bsd43)
-# include <unistd.h>
-#endif
-
-
-#if defined(__FreeBSD__)
-# include <sys/param.h>
-#endif
-
-
/* include files */
#include <stdio.h>
#include <math.h>
@@ -334,7 +318,9 @@
# endif
#endif
-
+#ifndef S_IRWUSR
+# define S_IRWUSR (S_IRUSR|__S_IWRITE)
+#endif
/* Use S_ISxxx macros in stat-related stuff
* make them if missing, along with a few fictitious ones
@@ -449,6 +435,12 @@
# define SEEK_END 2
#endif
+#if 1
+# define ThreeButtons (Button1Mask|Button2Mask|Button3Mask)
+#else
+# define ThreeButtons AnyButton
+#endif
+
#if defined(__mips) && defined(__SYSTYPE_BSD43)
# define strstr(A,B) pds_strstr((A),(B))
# undef S_IFIFO
--- src/xvevent.c
+++ src/xvevent.c 2024-08-13 13:55:34.654691865 +0000
@@ -2798,7 +2798,7 @@ int xvErrorHandler(Display *disp, XError
/* in case the error occurred during the Grab command... */
XUngrabServer(theDisp);
- XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW);
+ XUngrabButton(theDisp, (u_int) ThreeButtons, 0, rootW);
xerrcode = err->error_code;
@@ -2816,6 +2816,8 @@ int xvErrorHandler(Display *disp, XError
(err->request_code == 113 /* X_KillClient */ ) ||
(xerrcode == BadLength && err->request_code==18 /* X_ChangeProp */ ) ||
(xerrcode == BadMatch && err->request_code==73 /* X_GetImage */ ) ||
+ (xerrcode == BadDrawable&&err->request_code==14 /* X_GetGeometry*/) ||
+ (xerrcode == BadAccess && err->request_code==28 /* X_GrabButton */) ||
(xerrcode == BadWindow && err->request_code==20 /* X_GetProperty*/))
return 0;
--- src/xvgrab.c
+++ src/xvgrab.c 2024-09-02 08:29:58.056676083 +0000
@@ -13,6 +13,7 @@
#include "copyright.h"
#define NEEDSTIME
+#define RECOLOR_GRAB_CURSOR
#include "xv.h"
/* Allow flexibility in use of buttons JPD */
@@ -104,7 +105,6 @@ int Grab(void)
else if (ctrlW) CtrlBox(0);
}
-
XSync(theDisp, False);
if (grabDelay>0) { /* instead of sleep(), handle events while waiting */
@@ -134,7 +134,6 @@ int Grab(void)
grabInProgress = 0;
}
-
rootGC = DefaultGC(theDisp, theScreen);
if (grabPic) { /* throw away previous 'grabbed' pic, if there is one */
@@ -150,7 +149,6 @@ int Grab(void)
XRecolorCursor(theDisp, tcross, &fc, &bc);
#endif
-
XBell(theDisp, 0); /* beep once at start of grab */
/* Change cursor to top_left_corner JPD */
@@ -158,9 +156,6 @@ int Grab(void)
PointerMotionMask|ButtonPressMask|ButtonReleaseMask,
GrabModeAsync, GrabModeAsync, None, tlcorner, CurrentTime);
- if (!autograb) XGrabButton(theDisp, (u_int) AnyButton, 0, rootW, False, 0,
- GrabModeAsync, GrabModeSync, None, tcross);
-
if (autograb) {
XGrabServer(theDisp); /* until we've done the grabImage */
if (!XQueryPointer(theDisp,rootW,&rW,&cW,&rx,&ry,&x1,&y1,&mask)) {
@@ -173,14 +168,24 @@ int Grab(void)
}
else { /* !autograb */
+
+ XGrabButton(theDisp, (u_int) ThreeButtons, AnyModifier, rootW, False, 0,
+ GrabModeAsync, GrabModeSync, None, tcross);
+ XSync(theDisp, False);
+ sched_yield();
+
/* wait for a button press */
while (1) {
- XEvent evt; int done;
+ XEvent evt;
+ int done;
/* recolor cursor to indicate that grabbing is active? */
if (XQueryPointer(theDisp,rootW,&rW,&cW,&rx,&ry,&x1,&y1,&mask)) {
- if (mask & (Button1Mask | Button2Mask | Button3Mask)) break;
+ if (mask & (Button1Mask | Button2Mask | Button3Mask)) {
+ XUngrabButton(theDisp, (u_int) ThreeButtons, AnyModifier, rootW);
+ break;
+ }
}
/* continue to handle events while waiting... */
@@ -192,7 +197,7 @@ int Grab(void)
i = HandleEvent(&evt, &done);
if (done) { /* only 'new image' cmd accepted=quit */
if (i==QUIT) {
- XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW);
+ XUngrabButton(theDisp, (u_int) ThreeButtons, AnyModifier, rootW);
Quit(0);
}
else XBell(theDisp, 0);
@@ -218,7 +223,7 @@ int Grab(void)
}
}
- XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW);
+ XUngrabButton(theDisp, (u_int) ThreeButtons, AnyModifier, rootW);
XBell(theDisp, 0);
XBell(theDisp, 0);
rv = 0;
@@ -487,7 +492,7 @@ static void endflash(void)
static void ungrabX(void)
{
XUngrabServer(theDisp);
- XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW);
+ XUngrabButton(theDisp, (u_int) ThreeButtons, AnyModifier, rootW);
}