mirror of
https://git.freebsd.org/ports.git
synced 2025-07-16 00:39:15 -04:00
46 lines
1.3 KiB
Text
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);
|