From http://www.jwz.org/xscreensaver/xscreensaver-5.21.tar.gz
[xscreensaver] / driver / lock.c
index 3a84355a54c0f748a743a126466f94831e812e63..b0c4ec705daf932e15fcb9167bcafef13650ee5d 100644 (file)
@@ -1,5 +1,5 @@
 /* lock.c --- handling the password dialog for locking-mode.
- * xscreensaver, Copyright (c) 1993-2011 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-2013 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
@@ -487,6 +487,11 @@ make_passwd_window (saver_info *si,
    * room for the dialog to grow without going off the edge of the screen. */
   max_string_width_px *= 0.75;
 
+  if (!info_msg && senescent_p())
+    info_msg = ("\n"
+                "This version of XScreenSaver\n"
+                "is very old! Please upgrade!\n");
+
   pw->info_label = mlstring_new(info_msg ? info_msg : pw->body_label,
                                pw->label_font, max_string_width_px);
 
@@ -1734,6 +1739,9 @@ handle_passwd_key (saver_info *si, XKeyEvent *event)
   /* XLookupString may return more than one character via XRebindKeysym;
      and on some systems it returns multi-byte UTF-8 characters (contrary
      to its documentation, which says it returns only Latin1.)
+
+     It seems to only do so, however, if setlocale() has been called.
+     See the code inside ENABLE_NLS in xscreensaver.c.
    */
   int decoded_size = XLookupString (event, (char *)decoded, sizeof(decoded),
                                     &keysym, compose_status);