From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / driver / test-passwd.c
index ac5bf99213873d24138e800e23a45283b9695aad..2bd62199084b96fe3b00e2b28e6b686a2127d2bf 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1998-2007 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1998-2016 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
@@ -27,6 +27,7 @@
 #include <X11/Intrinsic.h>
 #include <X11/StringDefs.h>
 #include <X11/Shell.h>
+#include <X11/Xlocale.h>
 
 #include "xscreensaver.h"
 #include "resources.h"
@@ -41,12 +42,13 @@ saver_info *global_si_kludge;
 
 FILE *real_stderr, *real_stdout;
 
-void monitor_power_on (saver_info *si) {}
+void monitor_power_on (saver_info *si, Bool on_p) {}
 Bool monitor_powered_on_p (saver_info *si) { return True; }
 void initialize_screensaver_window (saver_info *si) {}
 void raise_window (saver_info *si, Bool i, Bool b, Bool d) {}
 Bool blank_screen (saver_info *si) {return False;}
 void unblank_screen (saver_info *si) {}
+void reset_watchdog_timer(saver_info *si, Bool on_p) {}
 Bool select_visual (saver_screen_info *ssi, const char *v) { return False; }
 Bool window_exists_p (Display *dpy, Window window) {return True;}
 void start_notice_events_timer (saver_info *si, Window w, Bool b) {}
@@ -60,25 +62,15 @@ int move_mouse_grab (saver_info *si, Window to, Cursor c, int ts) { return 0; }
 int mouse_screen (saver_info *si) { return 0; }
 void check_for_leaks (const char *where) { }
 void shutdown_stderr (saver_info *si) { }
+void resize_screensaver_window (saver_info *si) { }
+void describe_monitor_layout (saver_info *si) { }
+Bool update_screen_layout (saver_info *si) { return 0; }
+Bool in_signal_handler_p = 0;
+char *timestring (time_t when) { return ""; }
 
 const char *blurb(void) { return progname; }
 Atom XA_SCREENSAVER, XA_DEMO, XA_PREFS;
 
-void
-get_screen_viewport (saver_screen_info *ssi,
-                     int *x_ret, int *y_ret,
-                     int *w_ret, int *h_ret,
-                     int tx, int ty,
-                     Bool verbose_p)
-{
-  *x_ret = 0;
-  *y_ret = 0;
-  *w_ret = WidthOfScreen (ssi->screen);
-  *h_ret = HeightOfScreen (ssi->screen);
-
-  if (*w_ret > *h_ret * 2) *w_ret /= 2;  /* xinerama kludge */
-}
-
 void
 idle_timer (XtPointer closure, XtIntervalId *id)
 {
@@ -90,7 +82,6 @@ idle_timer (XtPointer closure, XtIntervalId *id)
   XPutBackEvent (si->dpy, &fake_event);
 }
 
-
 static int
 text_auth_conv (
   int num_msg,
@@ -147,6 +138,8 @@ static char *fallback[] = {
  0
 };
 
+extern Bool debug_passwd_window_p;  /* lock.c kludge */
+
 int
 main (int argc, char **argv)
 {
@@ -171,6 +164,7 @@ main (int argc, char **argv)
 
   si->version = (char *) malloc (5);
   memcpy (si->version, screensaver_id + 17, 4);
+  si->version[4] = 0;
   progname = argv[0];
   {
     char *s = strrchr(progname, '/');
@@ -211,6 +205,11 @@ main (int argc, char **argv)
 
   progclass = "XScreenSaver";
 
+  if (!setlocale (LC_CTYPE, ""))
+    fprintf (stderr, "%s: warning: could not set default locale\n",
+             progname);
+
+
   if (which != TTY)
     {
       toplevel_shell = XtAppInitialize (&si->app, progclass, 0, 0,
@@ -230,8 +229,6 @@ main (int argc, char **argv)
         visual_depth(si->default_screen->screen,
                      si->default_screen->current_visual);
 
-      /* I could call get_screen_viewport(), but it is not worthwhile.
-       * These are used by the save_under pixmap. */
       ssip.width = WidthOfScreen(ssip.screen);
       ssip.height = HeightOfScreen(ssip.screen);
 
@@ -246,6 +243,9 @@ main (int argc, char **argv)
   pw = getpwuid (getuid ());
   si->user = strdup (pw->pw_name);
 
+/*  si->nscreens = 0;
+  si->screens = si->default_screen = 0; */
+
   while (1)
     {
 #ifndef NO_LOCKING
@@ -254,6 +254,7 @@ main (int argc, char **argv)
          si->unlock_cb = gui_auth_conv;
           si->auth_finished_cb = auth_finished_cb;
 
+          debug_passwd_window_p = True;
          xss_authenticate(si, True);
 
           if (si->unlock_state == ul_success)