File xv-3.10a.dif of Package xv
--- Imakefile
+++ Imakefile 2008-05-23 13:24:33.000000000 +0200
@@ -6,13 +6,31 @@
/* if, for whatever reason, you're unable to get the JPEG library to compile
* on your machine, *COMMENT OUT* the following line
*/
-#define HaveJpeg
+/* #define HaveJpeg */
+JPEG=-DHAVE_JPEG
+LIBJPEG=-ljpeg
/* if, for whatever reason, you're unable to get the TIFF library to compile
* on your machine, *COMMENT OUT* the following line
*/
-#define HaveTiff
+/* #define HaveTiff */
+TIFF=-DHAVE_TIFF
+LIBTIFF=-ltiff
+
+
+/* if, for whatever reason, you're unable to get the PNG library to compile
+ * on your machine, *COMMENT OUT* the following lines
+ */
+PNG=-DDOPNG
+PNGLIB=-lpng
+
+
+/* if, for whatever reason, you're unable to get the PNG library to compile
+ * on your machine, *COMMENT OUT* the following lines
+ */
+ZLIBLIB=-lz
+
/* if, for whatever reason, you're unable to get the PDS/VICAR support
@@ -29,13 +47,13 @@
*/
/* UNIX = -DSVR4 */
/* UNIX = -DSYSV */
-
+UNIX = -D_GNU_SOURCE -DUSE_MKSTEMP=1
/* If your machine has the 'usleep()' function, uncomment the following
* line. If it doesn't, or you're not sure, don't uncomment the line
*/
-/* TIMERS = -DUSLEEP */
+TIMERS = -DUSLEEP
/* if XV locks up whenever you click any button in the controls window,
* the Timer() function in xvmisc.c is going out-to-lunch. A simple
@@ -93,12 +111,6 @@ VPRINTF= -DNEED_VPRINTF -DLONGINT -DNOST
-/* If you are using an HP running HPUX 7.0, the following should be active */
-#if defined(HPArchitecture) && (OSMajorVersion == 7)
-HPUX7 = -DSYSV +Ns4000 -DHPUX7
-#endif
-
-
/* If you are using an SGI machine, the following should be active */
#ifdef SGIArchitecture
SGI = -Dsgi
@@ -142,19 +154,25 @@ PDS = -DDOPDS
#if defined(SCOArchitecture)
SCO= -Dsco -DPOSIX -DNO_RANDOM
SYS_LIBRARIES= -lm -lc -lx
-#elif defined(HPArchitecture)
-SYS_LIBRARIES= -lm -lV3
#else
SYS_LIBRARIES= -lm
#endif
-DEPLIBS = $(LIBJPEG) $(LIBTIFF)
-LOCAL_LIBRARIES = $(XLIB) $(XTOOLLIB) $(DEPLIBS)
+#if defined(HaveJpeg) && defined(HaveTiff)
+DEPLIBS = $(LIBTIFF) $(LIBJPEG)
+#endif
+#if defined(HaveJpeg) && !defined(HaveTiff)
+DEPLIBS = $(LIBJPEG)
+#endif
+#if !defined(HaveJpeg) && defined(HaveTiff)
+DEPLIBS = $(LIBTIFF)
+#endif
+LOCAL_LIBRARIES = $(XLIB) $(XTOOLLIB) $(LIBTIFF) $(LIBJPEG) $(PNGLIB) $(ZLIBLIB)
DEFINES= $(SCO) $(UNIX) $(NODIRENT) $(VPRINTF) $(TIMERS) \
$(HPUX7) $(JPEG) $(TIFF) $(PDS) $(DXWM) $(RAND) \
- $(BACKING_STORE) $(BSDTYPES) $(SGI) $(MGCSFX)
+ $(BACKING_STORE) $(BSDTYPES) $(SGI) $(PNG) $(MGCSFX)
INCLUDES = $(JPEGINCLUDE) $(TIFFINCLUDE)
@@ -253,6 +271,16 @@ DependTarget()
DependSubdirs($(SUBDIRS))
#endif
+ARCH = $(shell uname -m | sed 's@\(i\)[34567]\(86\)@\13\2@')
+ifeq ($(ARCH),i386)
+ OPT = -m486
+endif
+ifeq ($(RPM_OPT_FLAGS),)
+ RPM_OPT_FLAGS = -O2 $(OPT)
+endif
+ CXXDEBUGFLAGS := $(RPM_OPT_FLAGS)
+ CDEBUGFLAGS := $(RPM_OPT_FLAGS)
+
NormalProgramTarget(xv,$(OBJS1),$(DEPLIBS),$(LOCAL_LIBRARIES),)
NormalProgramTarget(bggen,$(OBJS2),$(DEPLIBS),$(LOCAL_LIBRARIES),)
--- Makefile.std
+++ Makefile.std 2008-05-26 14:15:01.772974103 +0200
@@ -230,9 +230,6 @@ PDS = -DDOPDS
# Note: You may need to add '-I/usr/include/X11R5' (or R6, or whatever)
# to whichever of those lines you used, as HP tends to store their X11
# include files in a non-standard place...
-#
-# And you probably have to add '-lV3' to the end of the LIBS def when
-# using XV's AUTO_EXPAND option.
### for Linux, uncomment one of the following lines:
@@ -318,10 +315,6 @@ PDS = -DDOPDS
#MALLOC = -DNEED_MALLOC_H
-# if your X Window System compiled with -DX_LOCALE,
-# uncomment the following line:
-# TVL10N = -DX_LOCALE
-
# Install directory of xv_mgcsfx.sample.
MGCSFXDIR = $(LIBDIR)
# Directory of default configuration file.
@@ -341,9 +334,7 @@ CFLAGS = $(CCOPTS) $(PNG) $(PNGINC) $(ZL
$(VPRINTF) $(TIMERS) -DDOCDIR=\"$(DOCDIR)\" \
-DSYSCONFDIR=\"$(SYSCONFDIR)\" -DXVEXECPATH=\"$(LIBDIR)\"
-### remove -lm for BeOS:
LIBS = $(TIFFLIB) $(JPEGLIB) $(PNGLIB) $(ZLIBLIB) $(JP2KLIB) -L/usr/X11R6/lib -lX11 -lm
-#LIBS = $(TIFFLIB) $(JPEGLIB) $(PNGLIB) $(ZLIBLIB) $(JP2KLIB) -lX11
OBJS = xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \
xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \
--- bggen.c
+++ bggen.c 2005-11-29 19:02:05.000000000 +0100
@@ -34,7 +34,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
--- config.h
+++ config.h 2008-05-26 14:19:11.074249420 +0200
@@ -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
@@ -52,7 +52,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__) || \
@@ -63,7 +63,7 @@
machine has or not.
*/
# undef UNCOMPRESS
-# define UNCOMPRESS "uncompress"
+# define UNCOMPRESS "/usr/bin/uncompress"
#endif
#if defined(sgi)
@@ -113,7 +113,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" */
@@ -191,7 +191,7 @@
* in the following line.
*/
-#undef MACBINARY
+#define MACBINARY
/***************************************************************************
@@ -207,7 +207,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)
--- xv.h
+++ xv.h 2008-05-26 14:30:02.712261023 +0200
@@ -73,12 +73,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 */
@@ -133,16 +127,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>
@@ -300,7 +284,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
@@ -401,6 +387,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
--- xvevent.c
+++ xvevent.c 2005-11-30 13:50:25.000000000 +0100
@@ -2653,7 +2689,7 @@ int xvErrorHandler(disp, err)
/* 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;
@@ -2671,6 +2707,8 @@ int xvErrorHandler(disp, err)
(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;
--- xvgrab.c
+++ xvgrab.c 2008-05-26 14:40:26.275437700 +0200
@@ -12,6 +12,7 @@
#include "copyright.h"
#define NEEDSTIME
+#define RECOLOR_GRAB_CURSOR
#include "xv.h"
/* Allow flexibility in use of buttons JPD */
@@ -103,7 +104,6 @@ int Grab()
else if (ctrlW) CtrlBox(0);
}
-
XSync(theDisp, False);
if (grabDelay>0) { /* instead of sleep(), handle events while waiting */
@@ -133,7 +133,6 @@ int Grab()
grabInProgress = 0;
}
-
rootGC = DefaultGC(theDisp, theScreen);
if (grabPic) { /* throw away previous 'grabbed' pic, if there is one */
@@ -149,7 +148,6 @@ int Grab()
XRecolorCursor(theDisp, tcross, &fc, &bc);
#endif
-
XBell(theDisp, 0); /* beep once at start of grab */
/* Change cursor to top_left_corner JPD */
@@ -157,9 +155,6 @@ int Grab()
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)) {
@@ -172,14 +167,24 @@ int Grab()
}
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... */
@@ -191,7 +196,7 @@ int Grab()
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);
@@ -217,7 +222,7 @@ int Grab()
}
}
- XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW);
+ XUngrabButton(theDisp, (u_int) ThreeButtons, AnyModifier, rootW);
XBell(theDisp, 0);
XBell(theDisp, 0);
rv = 0;
@@ -489,7 +494,7 @@ static void endflash()
static void ungrabX()
{
XUngrabServer(theDisp);
- XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW);
+ XUngrabButton(theDisp, (u_int) ThreeButtons, AnyModifier, rootW);
}
--- xvtext.c
+++ xvtext.c 2008-05-26 15:24:13.309856562 +0200
@@ -1827,7 +1827,7 @@ void ShowLicense()
LC("");
LC("Note: The documentation (README.jumbo, xvdocs.ps, and/or xvdocs.pdf)");
#ifdef __STDC__
- LC("may be installed in '" DOCDIR "'.");
+ LC("may be installed in '/usr/share/doc/packages/xv'.");
#else
LC("may be installed in '/usr/local/share/doc/xv'.");
#endif
--- xvvd.c
+++ xvvd.c 2008-05-26 16:38:24.697750266 +0200
@@ -83,11 +83,7 @@ void Vdinit()
#else
sprintf(vdroot, "Sys$Scratch:xvvdXXXXXX");
#endif /* VMS */
-#ifdef USE_MKSTEMP
- close(mkstemp(vdroot));
-#else
mktemp(vdroot);
-#endif
if (!vd_recursive_mkdir(vdroot))
tmpdir = vdroot;