aboutsummaryrefslogtreecommitdiffstats
path: root/misc/astrolog/files/patch-ad
diff options
context:
space:
mode:
Diffstat (limited to 'misc/astrolog/files/patch-ad')
-rw-r--r--misc/astrolog/files/patch-ad42
1 files changed, 39 insertions, 3 deletions
diff --git a/misc/astrolog/files/patch-ad b/misc/astrolog/files/patch-ad
index a8ab61ef23c3..faaf547d22bc 100644
--- a/misc/astrolog/files/patch-ad
+++ b/misc/astrolog/files/patch-ad
@@ -1,6 +1,42 @@
---- general.c.bak Wed Dec 23 23:29:21 1998
-+++ general.c Fri May 25 20:59:09 2001
-@@ -922,7 +922,7 @@
+--- general.c.orig 2002-04-27 22:33:57.000000000 +0400
++++ general.c 2012-02-26 11:13:09.000000000 +0400
+@@ -900,14 +900,32 @@
+
+ /* Return a string containing the given time zone, given as a real value */
+ /* having the hours before GMT in the integer part and minutes fractionally. */
++/* Seconds are printed when needed. */
+
+ byte *SzZone(zon)
+ real zon;
+ {
+- static byte szZon[7];
++ static byte szZon[10];
++ int hr, min, sec;
++ real rMin;
+
+- sprintf(szZon, "%c%d:%02d", zon > 0.0 ? '-' : '+', (int)RAbs(zon),
+- (int)(RFract(RAbs(zon))*100.0+rRound/60.0));
++ hr = NFloor(RAbs(zon));
++ rMin = RFract(RAbs(zon)) * 100.0;
++ min = (int)(rMin + rRound / 600.0);
++ rFractal = RFract(rMin);
++ if (rFractal > rOne)
++ rFractal = rSmall;
++ sec = (int)(60.0*rFractal + rRound);
++ while (min >= 60) {
++ min -= 60;
++ hr++;
++ }
++ while (hr >= 24)
++ hr -= 24;
++ if (sec == 0)
++ sprintf(szZon, "%c%d:%02d", zon > 0.0 ? '-' : '+', hr, min);
++ else
++ sprintf(szZon, "%c%d:%02d:%02d", zon > 0.0 ? '-' : '+', hr, min, sec);
+ return szZon;
+ }
+
+@@ -970,7 +988,7 @@
int *mon, *day, *yea;
real *tim, zon;
{