diff options
Diffstat (limited to 'misc/astrolog/files/patch-general.c')
-rw-r--r-- | misc/astrolog/files/patch-general.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/misc/astrolog/files/patch-general.c b/misc/astrolog/files/patch-general.c new file mode 100644 index 000000000000..faaf547d22bc --- /dev/null +++ b/misc/astrolog/files/patch-general.c @@ -0,0 +1,47 @@ +--- 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; + { +- dword curtimer; ++ time_t curtimer; + int min, sec; + real hr; + |