- if (query != Q_time)
- {
- fprintf (stdout, "\n");
- }
- else
- {
- Atom type;
- int format;
- unsigned long nitems, bytesafter;
- unsigned char *data = 0;
- XWindowAttributes xgwa;
- Bool active_p = False;
-
- xgwa.map_state = IsViewable;
- XGetWindowAttributes (dpy, window, &xgwa);
-
- if (XGetWindowProperty (dpy, window,
- XInternAtom (dpy, "__SWM_VROOT", False),
- 0, 0, False, XA_WINDOW,
- &type, &format, &nitems, &bytesafter,
- &data)
- == Success
- && type != None)
- active_p = True;
-
- if (data) free (data);
- data = 0;
-
- if (XGetWindowProperty (dpy, window,
- XInternAtom (dpy, "_SCREENSAVER_TIME",False),
- 0, 1, False, XA_INTEGER,
- &type, &format, &nitems, &bytesafter,
- &data)
- == Success
- && type == XA_INTEGER
- && data)
- {
- CARD32 time32 = *((CARD32 *)data);
- time_t tt = (time_t) time32;
-
- if (active_p)
- fprintf (stdout, ": active since ");
- else
- fprintf (stdout, ": inactive since ");
- fprintf (stdout, "%s", ctime(&tt));
- if (data) free (data);
- }
- else
- {
- if (data) free (data);
- fprintf (stdout, "\n");
- fflush (stdout);
- fprintf (stderr, "%s: no time on window 0x%x (%s %s).\n",
- argv[0], (unsigned int) window,
- hint.res_class, (v ? v : "???"));
- exit (1);
- }
- }
+ fflush(stdout);
+ fflush(stderr);
+ execvp (new_argv[0], new_argv); /* shouldn't return */
+
+ sprintf (buf, "%s: could not exec %s", progname, new_argv[0]);
+ perror(buf);
+ fflush(stdout);
+ fflush(stderr);
+ exit (-1);
+ }
+
+
+
+ if (!dpyname) dpyname = (char *) getenv ("DISPLAY");
+ dpy = XOpenDisplay (dpyname);
+ if (!dpy)
+ {
+ fprintf (stderr, "%s: can't open display %s\n", progname,
+ (dpyname ? dpyname : "(null)"));
+ exit (1);