aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornakai <nakai@FreeBSD.org>2000-08-26 12:51:02 +0800
committernakai <nakai@FreeBSD.org>2000-08-26 12:51:02 +0800
commit8c2568573ee6251f46296fca709d19f683d573c0 (patch)
tree0d643e0970bf51e7f97c3bc6a61c057b774cf15c
parentbb34c5b37a7b29bb2a482e9bb3dc21a24676a7bb (diff)
downloadfreebsd-ports-gnome-8c2568573ee6251f46296fca709d19f683d573c0.tar.gz
freebsd-ports-gnome-8c2568573ee6251f46296fca709d19f683d573c0.tar.zst
freebsd-ports-gnome-8c2568573ee6251f46296fca709d19f683d573c0.zip
xshisen Y2K fix
Submitted by: Tsurutani Naoki <turutani@scphys.kyoto-u.ac.jp>
-rw-r--r--games/xshisen/files/patch-af100
1 files changed, 98 insertions, 2 deletions
diff --git a/games/xshisen/files/patch-af b/games/xshisen/files/patch-af
index 21b2d69ac9b4..b324160ddc9e 100644
--- a/games/xshisen/files/patch-af
+++ b/games/xshisen/files/patch-af
@@ -1,5 +1,5 @@
---- score.C.orig Sun Dec 12 14:41:24 1999
-+++ score.C Sun Dec 12 14:42:58 1999
+--- score.C.orig Tue Jan 23 00:52:09 1996
++++ score.C Sat Aug 26 05:10:09 2000
@@ -4,31 +4,31 @@
XtResource Score::resources[] = {
@@ -45,3 +45,99 @@
};
void
+@@ -73,6 +73,12 @@
+ date[8] = '\0';
+ strncpy(time, &buffer[53], 8);
+ time[8] = '\0';
++ if (date[0] == '1') {
++ for(int i=1; i<8; i++) {
++ date[i-1] = date[i];
++ }
++ date[7] = date[6] == '0' ? '1' : '0';
++ }
+ }
+
+ void
+@@ -414,7 +420,7 @@
+ strcpy(rec[inspos].name, myname);
+ time(&t);
+ tp = localtime(&t);
+- sprintf(rec[i].date, "%2.2d-%2.2d-%2.2d", tp->tm_year, tp->tm_mon+1, tp->tm_mday);
++ sprintf(rec[i].date, "%2.2d-%2.2d-%2.2d", tp->tm_year%100, tp->tm_mon+1, tp->tm_mday);
+ sprintf(rec[i].time, "%2.2d:%2.2d:%2.2d", tp->tm_hour, tp->tm_min, tp->tm_sec);
+ if (writefile() == 0)
+ DisplayScore(game);
+@@ -434,12 +440,12 @@
+ return; /* Just do not record, no notifying */
+ time(&t);
+ tp = localtime(&t);
+- check_digit = flag*3 + gamesize + level*7 + tp->tm_year*3 + rest*7
++ check_digit = flag*3 + gamesize + level*7 + (tp->tm_year%100)*3 + rest*7
+ + tp->tm_mon*7 + tp->tm_mday*3 + tp->tm_hour*7 + tp->tm_min*3 + tp->tm_sec;
+ check_digit %= 857;
+ fprintf(stream, "%2.2d%2.2d%8.8d%2.2d%1.1d%2.2d%4.4d%2.2d%3.3d%3.3d%2.2d%2.2d\n",
+ flag,
+- tp->tm_sec, result, tp->tm_min, gamesize, tp->tm_year, level, tp->tm_mon,
++ tp->tm_sec, result, tp->tm_min, gamesize, tp->tm_year%100, level, tp->tm_mon,
+ check_digit, rest, tp->tm_mday, tp->tm_hour);
+ fclose(stream);
+ }
+@@ -492,7 +498,24 @@
+ rest = -1;
+ c2 = f*3 + g + l*7 + year*3 + month*7 + day*3 + hour*7 + min*3 + sec;
+ break;
+- case 34:
++ case 32:
++ // Just for compatibility with xshisen 1.10, Y2K
++ f = atoiSubstring(buf + 0, 2);
++ sec = atoiSubstring(buf + 2, 2);
++ t = atoiSubstring(buf + 4, 8);
++ min = atoiSubstring(buf + 12, 2);
++ g = atoiSubstring(buf + 14, 1);
++ year = atoiSubstring(buf + 15, 3) - 100;
++ l = atoiSubstring(buf + 18, 4);
++ month = atoiSubstring(buf + 22, 2);
++ c1 = atoiSubstring(buf + 24, 3);
++ day = atoiSubstring(buf + 27, 2);
++ hour = atoiSubstring(buf + 29, 2);
++ rest = -1;
++ c2 = f*3 + g + l*7 + (year+100)*3 + month*7 + day*3 + hour*7 + min*3 + sec
++;
++ break;
++ case 34:
+ // This is usual format
+ f = atoiSubstring(buf + 0, 2);
+ sec = atoiSubstring(buf + 2, 2);
+@@ -509,6 +532,23 @@
+ c2 = f*3 + g + l*7 + year*3 + month*7 + day*3 + hour*7 + min*3
+ + sec + rest*7;
+ break;
++ case 35:
++ // This is usual format, Y2K
++ f = atoiSubstring(buf + 0, 2);
++ sec = atoiSubstring(buf + 2, 2);
++ t = atoiSubstring(buf + 4, 8);
++ min = atoiSubstring(buf + 12, 2);
++ g = atoiSubstring(buf + 14, 1);
++ year = atoiSubstring(buf + 15, 3) - 100;
++ l = atoiSubstring(buf + 18, 4);
++ month = atoiSubstring(buf + 22, 2);
++ c1 = atoiSubstring(buf + 24, 3);
++ rest = atoiSubstring(buf + 27, 3);
++ day = atoiSubstring(buf + 30, 2);
++ hour = atoiSubstring(buf + 32, 2);
++ c2 = f*3 + g + l*7 + (year+100)*3 + month*7 + day*3 + hour*7 + min*3
++ + sec + rest*7;
++ break;
+ default:
+ // Someone edited this file?
+ continue;
+@@ -537,7 +577,7 @@
+ tb.tm_hour = hour;
+ tb.tm_mday = day;
+ tb.tm_mon = month;
+- tb.tm_year = year;
++ tb.tm_year = year > 69 ? year : year + 100;
+ tm1 = mktime(&tb); // Time of the score
+ w1[0][f] += t;
+ w2[0][f]++;