configure.in: Check for RSVG if GNUStep is used.
[bpt/emacs.git] / lib-src / update-game-score.c
index 74fa2b0..4febb49 100644 (file)
@@ -1,12 +1,16 @@
 /* update-game-score.c --- Update a score file
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+
+Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+  Free Software Foundation, Inc.
+
+Author: Colin Walters <walters@debian.org>
 
 This file is part of GNU Emacs.
 
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,11 +18,10 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
+
 
-/* This program is allows a game to securely and atomically update a
+/* This program allows a game to securely and atomically update a
    score file.  It should be installed setuid, owned by an appropriate
    user like `games'.
 
@@ -26,7 +29,7 @@ Boston, MA 02111-1307, USA.  */
    defined, and in that case it will store scores in the user's home
    directory (it should NOT be setuid).
 
-   Created 2002/03/22, by Colin Walters <walters@debian.org>
+   Created 2002/03/22.
 */
 
 #include <config.h>
@@ -111,7 +114,7 @@ lose (msg)
      const char *msg;
 {
   fprintf (stderr, "%s\n", msg);
-  exit (1);
+  exit (EXIT_FAILURE);
 }
 
 void lose_syserr P_ ((const char *msg)) NO_RETURN;
@@ -138,7 +141,7 @@ lose_syserr (msg)
      const char *msg;
 {
   fprintf (stderr, "%s: %s\n", msg, strerror (errno));
-  exit (1);
+  exit (EXIT_FAILURE);
 }
 
 char *
@@ -199,7 +202,7 @@ main (argc, argv)
     switch (c)
       {
       case 'h':
-       usage (0);
+       usage (EXIT_SUCCESS);
        break;
       case 'd':
        user_prefix = optarg;
@@ -213,11 +216,11 @@ main (argc, argv)
          max = MAX_SCORES;
        break;
       default:
-       usage (1);
+       usage (EXIT_FAILURE);
       }
 
   if (optind+3 != argc)
-    usage (1);
+    usage (EXIT_FAILURE);
 
   running_suid = (getuid () != geteuid ());
 
@@ -251,22 +254,22 @@ main (argc, argv)
       lose_syserr ("Failed to read scores file");
     }
   push_score (&scores, &scorecount, newscore, user_id, newdata);
+  sort_scores (scores, scorecount, reverse);
   /* Limit the number of scores.  If we're using reverse sorting, then
      we should increment the beginning of the array, to skip over the
      *smallest* scores.  Otherwise, we just decrement the number of
      scores, since the smallest will be at the end. */
   if (scorecount > MAX_SCORES)
     scorecount -= (scorecount - MAX_SCORES);
-    if (reverse)
-      scores += (scorecount - MAX_SCORES);
-  sort_scores (scores, scorecount, reverse);
+  if (reverse)
+    scores += (scorecount - MAX_SCORES);
   if (write_scores (scorefile, scores, scorecount) < 0)
     {
       unlock_file (scorefile, lockstate);
       lose_syserr ("Failed to write scores file");
     }
   unlock_file (scorefile, lockstate);
-  exit (0);
+  exit (EXIT_SUCCESS);
 }
 
 int
@@ -531,3 +534,5 @@ unlock_file (filename, state)
 
 /* arch-tag: 2bf5c52e-4beb-463a-954e-c58b9c64736b
    (do not change this comment) */
+
+/* update-game-score.c ends here */