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;
openSUSE Build Service is sponsored by