http://apple.doit.wisc.edu/mirrors/amug/linux/linuxppc/sources/tarballs/xscreensaver...
[xscreensaver] / driver / stderr.c
index 0743a50e799e58733c2510615001cfb30b5455f5..fafb1e5851906fc2538a4aa0f4b72773f47e39f6 100644 (file)
@@ -1,5 +1,5 @@
 /* stderr.c --- capturing stdout/stderr output onto the screensaver window.
- * xscreensaver, Copyright (c) 1991-1998 Jamie Zawinski <jwz@netscape.com>
+ * xscreensaver, Copyright (c) 1991-1998 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -163,15 +163,17 @@ print_stderr_1 (saver_screen_info *ssi, char *string)
              ssi->stderr_text_y = 0;
 #else
              int offset = ssi->stderr_line_height * 5;
+              XWindowAttributes xgwa;
+              XGetWindowAttributes (dpy, window, &xgwa);
+
              XCopyArea (dpy, window, window, ssi->stderr_gc,
                         0, v_border + offset,
-                        WidthOfScreen (screen),
-                        (HeightOfScreen (screen) - v_border - v_border
-                         - offset),
+                        xgwa.width,
+                        (xgwa.height - v_border - v_border - offset),
                         0, v_border);
              XClearArea (dpy, window,
-                         0, HeightOfScreen (screen) - v_border - offset,
-                         WidthOfScreen (screen), offset, False);
+                         0, xgwa.height - v_border - offset,
+                         xgwa.width, offset, False);
              ssi->stderr_text_y -= offset;
 #endif
            }
@@ -202,7 +204,9 @@ make_stderr_overlay_window (saver_screen_info *ssi)
     {
       int depth = visual_depth (ssi->screen, visual);
       XSetWindowAttributes attrs;
+      XWindowAttributes xgwa;
       unsigned long attrmask;
+      XGetWindowAttributes (si->dpy, ssi->screensaver_window, &xgwa);
 
       if (si->prefs.debug_p)
        fprintf(real_stderr,
@@ -224,7 +228,7 @@ make_stderr_overlay_window (saver_screen_info *ssi)
 
       ssi->stderr_overlay_window =
        XCreateWindow(si->dpy, ssi->screensaver_window, 0, 0,
-                     WidthOfScreen(ssi->screen), HeightOfScreen(ssi->screen),
+                     xgwa.width, xgwa.height,
                      0, depth, InputOutput, visual, attrmask, &attrs);
       XMapRaised(si->dpy, ssi->stderr_overlay_window);
     }
@@ -339,7 +343,7 @@ initialize_stderr (saver_info *si)
   int stdout_fd = 1;
   int stderr_fd = 2;
   int flags = 0;
-  Boolean stderr_dialog_p, stdout_dialog_p;
+  Boolean stderr_dialog_p;
 
   if (done) return;
   done = True;
@@ -348,9 +352,8 @@ initialize_stderr (saver_info *si)
   real_stdout = stdout;
 
   stderr_dialog_p = get_boolean_resource ("captureStderr", "Boolean");
-  stdout_dialog_p = get_boolean_resource ("captureStdout", "Boolean");
 
-  if (!stderr_dialog_p && !stdout_dialog_p)
+  if (!stderr_dialog_p)
     return;
 
   if (pipe (fds))
@@ -392,6 +395,8 @@ initialize_stderr (saver_info *si)
   if (stderr_dialog_p)
     {
       FILE *new_stderr_file;
+      FILE *new_stdout_file;
+
       new_stderr = dup (stderr_fd);
       if (new_stderr < 0)
        {
@@ -411,11 +416,8 @@ initialize_stderr (saver_info *si)
          perror ("could not dup() a new stderr:");
          return;
        }
-    }
 
-  if (stdout_dialog_p)
-    {
-      FILE *new_stdout_file;
+
       new_stdout = dup (stdout_fd);
       if (new_stdout < 0)
        {