*** highscore.c.orig Wed Jan 4 17:13:31 1995 --- highscore.c Fri Apr 7 00:13:54 1995 *************** *** 54,59 **** --- 54,60 ---- #include #include #include + #include #include #include #include *************** *** 118,124 **** static void InitialiseHighScores(void); static void SortHighScores(void); static void DeleteScore(int i); ! static int LockUnlock(int cmd); #else static int LockUnlock(); static void DeleteScore(); --- 119,125 ---- static void InitialiseHighScores(void); static void SortHighScores(void); static void DeleteScore(int i); ! static int LockUnlock(int cmd, int fd); #else static int LockUnlock(); static void DeleteScore(); *************** *** 839,845 **** /* Lock the file for me only */ if (type == GLOBAL) ! id = LockUnlock(LOCK_FILE); /* Read in the lastest scores */ if (ReadHighScoreTable(type) == False) --- 840,846 ---- /* Lock the file for me only */ if (type == GLOBAL) ! id = LockUnlock(LOCK_FILE, -1); /* Read in the lastest scores */ if (ReadHighScoreTable(type) == False) *************** *** 869,875 **** else { /* Don't add as score is smaller */ ! return False; } } } /* for */ --- 870,876 ---- else { /* Don't add as score is smaller */ ! goto doUnlock; } } } /* for */ *************** *** 891,906 **** /* Unlock the file now thanks */ if (id != -1) ! id = LockUnlock(UNLOCK_FILE); /* Yes - it was placed in the highscore */ return True; } } /* Unlock the file now thanks */ if (id != -1) ! id = LockUnlock(UNLOCK_FILE); /* Not even a highscore - loser! */ return False; --- 892,908 ---- /* Unlock the file now thanks */ if (id != -1) ! id = LockUnlock(UNLOCK_FILE, id); /* Yes - it was placed in the highscore */ return True; } } + doUnlock: /* Unlock the file now thanks */ if (id != -1) ! id = LockUnlock(UNLOCK_FILE, id); /* Not even a highscore - loser! */ return False; *************** *** 1178,1187 **** } #if NeedFunctionPrototypes ! static int LockUnlock(int cmd) #else ! static int LockUnlock(cmd) ! int cmd; #endif { static int inter = -1; --- 1180,1189 ---- } #if NeedFunctionPrototypes ! static int LockUnlock(int cmd, int fd) #else ! static int LockUnlock(cmd, fd) ! int cmd, fd; #endif { static int inter = -1; *************** *** 1218,1223 **** --- 1220,1228 ---- /* Open the highscore file for both read & write */ if (cmd == LOCK_FILE) inter = open(filename, O_CREAT | O_RDWR, 0666); + else + /* use old fd to unlock */ + inter = fd; #ifndef NO_LOCKING