X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/8a1f4a98c1b8e3abaf1b46394a88d09531ce4c2d..0e926e561c259468174b16407dd7271c2c8fe904:/lib-src/update-game-score.c diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c index 6156de672b..284beafb9d 100644 --- a/lib-src/update-game-score.c +++ b/lib-src/update-game-score.c @@ -1,7 +1,6 @@ /* update-game-score.c --- Update a score file -Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. +Copyright (C) 2002-2011 Free Software Foundation, Inc. Author: Colin Walters @@ -36,12 +35,8 @@ along with GNU Emacs. If not, see . */ #include #include -#ifdef HAVE_STRING_H #include -#endif -#ifdef HAVE_STDLIB_H #include -#endif #include #include #include @@ -49,16 +44,13 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_FCNTL_H #include #endif -#ifdef STDC_HEADERS -#include -#endif #include /* Needed for SunOS4, for instance. */ extern char *optarg; extern int optind, opterr; -int usage (int err) NO_RETURN; +static int usage (int err) NO_RETURN; #define MAX_ATTEMPTS 5 #define MAX_SCORES 200 @@ -69,7 +61,7 @@ int usage (int err) NO_RETURN; #define difftime(t1, t0) (double)((t1) - (t0)) #endif -int +static int usage (int err) { fprintf (stdout, "Usage: update-game-score [-m MAX ] [ -r ] game/scorefile SCORE DATA\n"); @@ -81,8 +73,8 @@ usage (int err) exit (err); } -int lock_file (const char *filename, void **state); -int unlock_file (const char *filename, void *state); +static int lock_file (const char *filename, void **state); +static int unlock_file (const char *filename, void *state); struct score_entry { @@ -91,24 +83,24 @@ struct score_entry char *data; }; -int read_scores (const char *filename, struct score_entry **scores, - int *count); -int push_score (struct score_entry **scores, int *count, - int newscore, char *username, char *newdata); -void sort_scores (struct score_entry *scores, int count, int reverse); -int write_scores (const char *filename, const struct score_entry *scores, - int count); +static int read_scores (const char *filename, struct score_entry **scores, + int *count); +static int push_score (struct score_entry **scores, int *count, + int newscore, char *username, char *newdata); +static void sort_scores (struct score_entry *scores, int count, int reverse); +static int write_scores (const char *filename, + const struct score_entry *scores, int count); -void lose (const char *msg) NO_RETURN; +static void lose (const char *msg) NO_RETURN; -void +static void lose (const char *msg) { fprintf (stderr, "%s\n", msg); exit (EXIT_FAILURE); } -void lose_syserr (const char *msg) NO_RETURN; +static void lose_syserr (const char *msg) NO_RETURN; /* Taken from sysdep.c. */ #ifndef HAVE_STRERROR @@ -127,14 +119,14 @@ strerror (errnum) #endif /* not WINDOWSNT */ #endif /* ! HAVE_STRERROR */ -void +static void lose_syserr (const char *msg) { fprintf (stderr, "%s: %s\n", msg, strerror (errno)); exit (EXIT_FAILURE); } -char * +static char * get_user_id (void) { char *name; @@ -155,7 +147,7 @@ get_user_id (void) return buf->pw_name; } -const char * +static const char * get_prefix (int running_suid, const char *user_prefix) { if (!running_suid && user_prefix == NULL) @@ -243,13 +235,15 @@ main (int argc, char **argv) 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. */ + also increment the beginning of the array, to skip over the + *smallest* scores. Otherwise, just decrementing the number of + scores suffices, since the smallest is at the end. */ if (scorecount > MAX_SCORES) - scorecount -= (scorecount - MAX_SCORES); - if (reverse) - scores += (scorecount - MAX_SCORES); + { + if (reverse) + scores += (scorecount - MAX_SCORES); + scorecount = MAX_SCORES; + } if (write_scores (scorefile, scores, scorecount) < 0) { unlock_file (scorefile, lockstate); @@ -259,7 +253,7 @@ main (int argc, char **argv) exit (EXIT_SUCCESS); } -int +static int read_score (FILE *f, struct score_entry *score) { int c; @@ -343,7 +337,7 @@ read_score (FILE *f, struct score_entry *score) return 0; } -int +static int read_scores (const char *filename, struct score_entry **scores, int *count) { int readval, scorecount, cursize; @@ -376,7 +370,7 @@ read_scores (const char *filename, struct score_entry **scores, int *count) return 0; } -int +static int score_compare (const void *a, const void *b) { const struct score_entry *sa = (const struct score_entry *) a; @@ -384,7 +378,7 @@ score_compare (const void *a, const void *b) return (sb->score > sa->score) - (sb->score < sa->score); } -int +static int score_compare_reverse (const void *a, const void *b) { const struct score_entry *sa = (const struct score_entry *) a; @@ -408,14 +402,14 @@ push_score (struct score_entry **scores, int *count, int newscore, char *usernam return 0; } -void +static void sort_scores (struct score_entry *scores, int count, int reverse) { qsort (scores, count, sizeof (struct score_entry), reverse ? score_compare_reverse : score_compare); } -int +static int write_scores (const char *filename, const struct score_entry *scores, int count) { FILE *f; @@ -444,7 +438,7 @@ write_scores (const char *filename, const struct score_entry *scores, int count) return 0; } -int +static int lock_file (const char *filename, void **state) { int fd; @@ -485,7 +479,7 @@ lock_file (const char *filename, void **state) return 0; } -int +static int unlock_file (const char *filename, void *state) { char *lockpath = (char *) state; @@ -496,7 +490,5 @@ unlock_file (const char *filename, void *state) return ret; } -/* arch-tag: 2bf5c52e-4beb-463a-954e-c58b9c64736b - (do not change this comment) */ /* update-game-score.c ends here */