ports/misc/astrolog/files/patch-ac
Andrey A. Chernov e3433b69f0 Add
-z Current
-z0 Current
functionality.
Misc cleanup.
2001-05-25 17:28:21 +00:00

46 lines
1.3 KiB
Text

--- astrolog.c.orig Wed Dec 23 23:29:16 1998
+++ astrolog.c Fri May 25 21:07:58 2001
@@ -1146,8 +1146,18 @@
case 'z':
if (ch1 == '0') {
if (argc <= 1 || RParseSz(argv[1], pmZon) == rLarge) {
- i = us.dstDef != 0.0;
- SwitchF(i);
+ if (argc > 1 && strcasecmp(argv[1], "current") == 0) {
+ time_t t;
+ struct tm *tm;
+
+ (void) time(&t);
+ tm = localtime(&t);
+ i = tm->tm_isdst != 0;
+ argc--; argv++;
+ } else {
+ i = us.dstDef != 0.0;
+ SwitchF(i);
+ }
SS = us.dstDef = i ? 1.0 : 0.0;
} else {
SS = us.dstDef = RParseSz(argv[1], pmZon);
@@ -1236,9 +1246,19 @@
argc -= 2; argv += 2;
break;
}
- if (argc <= 1 || RParseSz(argv[1], pmZon) == rLarge)
- ZZ -= 1.0;
- else {
+ if (argc <= 1 || RParseSz(argv[1], pmZon) == rLarge) {
+ if (argc > 1 && strcasecmp(argv[1], "current") == 0) {
+ time_t t;
+ struct tm *tm;
+
+ (void) time(&t);
+ tm = localtime(&t);
+ ZZ = us.zonDef = (tm->tm_isdst ? 1 : 0) -
+ (real)tm->tm_gmtoff/(60*60);
+ argc--; argv++;
+ } else
+ ZZ -= 1.0;
+ } else {
ZZ = us.zonDef = RParseSz(argv[1], pmZon);
if (!FValidZon(us.zonDef)) {
ErrorValR("z", us.zonDef);