$NetBSD: patch-ah,v 1.2 2009/09/28 11:29:32 martin Exp $ --- score.c.orig 1996-08-27 21:23:58.000000000 +0200 +++ score.c 2009-09-28 13:15:32.000000000 +0200 @@ -633,10 +633,11 @@ static short WriteScore() char tempfile[MAXPATHLEN]; strcpy(tempfile, tempnm); - (void)mktemp(tempfile); - scorefile = fopen(tempfile, "w"); + sfdbn = mkstemp(tempfile); + if (sfdbn < 0) + return E_FOPENSCORE; + scorefile = fdopen(sfdbn, "w"); if (!scorefile) return E_FOPENSCORE; - sfdbn = fileno(scorefile); scoreentries = htons(scoreentries); if (fwrite(SCORE_VERSION, 4, 1, scorefile) != 1) { @@ -797,7 +798,7 @@ static void CopyEntry(short i1, short i2 } /* Extract one line from "text". Return 0 if there is no line to extract. */ -char *getline(char *text, char *linebuf, int bufsiz) +char *scoregetline(char *text, char *linebuf, int bufsiz) { if (*text == 0) { *linebuf = 0; @@ -938,7 +939,7 @@ char *skip_past_header(char *text) { char line[256]; do { - text = getline(text, line, sizeof(line)); + text = scoregetline(text, line, sizeof(line)); if (!text) return 0; } while (0 != strcmp(line, "")); return text; @@ -982,7 +983,7 @@ static short ParseUserLevel(char *text, char line[256]; text = skip_past_header(text); if (!text) return E_READSCORE; - text = getline(text, line, sizeof(line)); + text = scoregetline(text, line, sizeof(line)); if (!text) return E_READSCORE; if (0 == strncmp(line, "Level: ", 7)) { *lv = atoi(&line[7]); @@ -999,7 +1000,7 @@ static void DeleteAllEntries() } #define GRAB(tag, stmt) \ - text = getline(text, line, sizeof(line)); \ + text = scoregetline(text, line, sizeof(line)); \ if (!text) return E_READSCORE; \ if (0 == strncmp(line, tag, strlen(tag))) { stmt; } \ else return E_READSCORE; @@ -1070,7 +1071,7 @@ static short ParseScoreText(char *text, { char line[256]; do { - text = getline(text, line, sizeof(line)); + text = scoregetline(text, line, sizeof(line)); if (!text) return E_READSCORE; } while (line[0] != '='); scoreentries = 0; @@ -1091,7 +1092,7 @@ static short ParseScoreLine(int i, char int rank; char rank_s[4]; char line[256]; - *text = getline(*text, line, sizeof(line)); + *text = scoregetline(*text, line, sizeof(line)); if (!*text) return 0; strncpy(rank_s, line, 4); rank = atoi(rank_s);