summaryrefslogtreecommitdiff
path: root/time/dclock/patches/patch-ab
diff options
context:
space:
mode:
Diffstat (limited to 'time/dclock/patches/patch-ab')
-rw-r--r--time/dclock/patches/patch-ab226
1 files changed, 226 insertions, 0 deletions
diff --git a/time/dclock/patches/patch-ab b/time/dclock/patches/patch-ab
new file mode 100644
index 00000000000..4dee1d05e0a
--- /dev/null
+++ b/time/dclock/patches/patch-ab
@@ -0,0 +1,226 @@
+$NetBSD: patch-ab,v 1.1.1.1 2000/12/17 23:32:17 wiz Exp $
+
+Patch from Robert Elz to make the clock behave as a clock,
+rather than a sundial.
+itojun's y2k patch
+
+--- Dclock.c 2000/01/01 04:40:38 1.1
++++ Dclock.c 2000/01/01 04:40:53
+@@ -21,8 +21,6 @@
+ #define CLOCK_WIDTH 256
+ #define CLOCK_HEIGHT 80
+ #define DATE_FMT "%W, %M %d"
+-#define when break;case
+-#define otherwise break;default
+
+
+ static Boolean SetValues(), show_time();
+@@ -367,8 +365,8 @@
+
+ if (w->dclock.interval_id != (XtIntervalId)NULL)
+ XtRemoveTimeOut(w->dclock.interval_id);
+- XtReleaseGC (w, w->dclock.foreGC);
+- XtReleaseGC (w, w->dclock.backGC);
++ XtReleaseGC ((Widget) w, w->dclock.foreGC);
++ XtReleaseGC ((Widget) w, w->dclock.backGC);
+ for (n = 0; n < 10; n++) {
+ XFreePixmap(XtDisplay(w), w->dclock.digits[n]);
+ XFreePixmap(XtDisplay(w), w->dclock.tiny_digits[n]);
+@@ -388,7 +386,7 @@
+ Pixmap pix;
+ GC gc = w->dclock.foreGC;
+
+- if (!XtIsRealized(w))
++ if (!XtIsRealized((Widget) w))
+ return;
+
+ winwidth = w->core.width;
+@@ -450,7 +448,7 @@
+ make_number(w, w->dclock.tiny_digits[i], gc, i, tiny_segment_pts);
+ }
+ else
+- w->dclock.tiny_digits[i] = NULL;
++ (Widget) w->dclock.tiny_digits[i] = (Pixmap) NULL;
+ }
+ /* The colon[0] area is blank */
+ if (w->dclock.colon[0])
+@@ -629,7 +627,7 @@
+ Boolean save_fade = w->dclock.fade;
+ long t;
+
+- if (!XtIsRealized(w))
++ if (!XtIsRealized((Widget) w))
+ return;
+
+ if (w->dclock.interval_id != (XtIntervalId)NULL) {
+@@ -802,7 +800,7 @@
+ turn_off[i] = oldmask & ~newmask;
+ }
+ else
+- tmp_pix[i] = NULL;
++ tmp_pix[i] = (Pixmap) NULL;
+
+ for (j = 1; j != FADE_ITER; ++j)
+ {
+@@ -875,27 +873,36 @@
+ if (*p != '%')
+ *datep++ = *p;
+ else switch (*++p) {
+- when 'M':
++ case 'M':
+ datep += strlen(strcpy(datep, Months[now->tm_mon]));
+- when 'm':
++ break;
++ case 'm':
+ datep += strlen(strcpy(datep, months[now->tm_mon]));
+- when 'W':
++ break;
++ case 'W':
+ datep += strlen(strcpy(datep, Days[now->tm_wday]));
+- when 'w':
++ break;
++ case 'w':
+ datep += strlen(strcpy(datep, days[now->tm_wday]));
+- when 'd':
++ break;
++ case 'd':
+ if (now->tm_mday >= 10)
+ *datep++ = (now->tm_mday / 10 + '0');
+ *datep++ = now->tm_mday % 10 + '0';
+- when 'Y':
+- *datep++ = '1', *datep++ = '9';
+- /* fall thru */
++ break;
++ case 'Y':
++ *datep++ = (now->tm_year + 1900) / 1000 + '0';
++ *datep++ = (now->tm_year + 1900) % 1000 / 100 + '0';
++ /* FALLTHROUGH */
+ case 'y':
+- *datep++ = now->tm_year / 10 + '0';
+- *datep++ = now->tm_year % 10 + '0';
+- when '%':
++ *datep++ = now->tm_year % 100 / 10 + '0';
++ *datep++ = now->tm_year % 10 + '0';
++ break;
++ case '%':
+ *datep++ = *p;
+- otherwise: ; /* nothing */
++ break;
++ default:
++ break; /* nothing */
+ }
+ }
+ *datep = 0;
+@@ -906,7 +913,7 @@
+
+ /* remove what was there in case the whole thing isn't overwritten */
+ XFillRectangle(XtDisplay(w), XtWindow(w), w->dclock.backGC,
+- 0, winheight - (w->dclock.font->ascent + w->dclock.font->descent),
++ 0, winheight - (w->dclock.font->ascent + BORDER),
+ winwidth, w->dclock.font->ascent + w->dclock.font->descent);
+
+ XDrawString(XtDisplay(w), XtWindow(w), w->dclock.foreGC,
+@@ -924,7 +931,8 @@
+ {
+ Boolean alarm_went_off = show_time(w);
+ w->dclock.interval_id =
+- XtAddTimeOut((unsigned long)((alarm_went_off || w->dclock.seconds)? 1000 : 60000),
++ XtAddTimeOut((unsigned long)((alarm_went_off || w->dclock.seconds) ?
++ 1000 : 60000 - ((time(0L) % 60) * 1000)),
+ timeout, (XtPointer)w);
+ }
+
+@@ -960,8 +968,8 @@
+ || new->dclock.tails != current->dclock.tails
+ || new->dclock.fade != current->dclock.fade
+ || new->dclock.miltime != current->dclock.miltime) {
+- XtReleaseGC (current, current->dclock.foreGC);
+- XtReleaseGC (current, current->dclock.backGC);
++ XtReleaseGC ((Widget) current, current->dclock.foreGC);
++ XtReleaseGC ((Widget) current, current->dclock.backGC);
+ GetGC(new);
+ Resize(new); /* pixmaps need to be redrawn */
+ do_redraw = True;
+@@ -1024,7 +1032,7 @@
+ Arg arg;
+
+ XtSetArg(arg, XtNreverseVideo, !w->dclock.reverse);
+- XtSetValues(w, &arg, 1);
++ XtSetValues((Widget) w, &arg, 1);
+ }
+
+ static void
+@@ -1038,7 +1046,7 @@
+ return;
+ }
+ XtSetArg(arg, XtNmilitaryTime, !w->dclock.miltime);
+- XtSetValues(w, &arg, 1);
++ XtSetValues((Widget) w, &arg, 1);
+ }
+
+ static void
+@@ -1052,7 +1060,7 @@
+ return;
+ }
+ XtSetArg(arg, XtNseconds, !w->dclock.seconds);
+- XtSetValues(w, &arg, 1);
++ XtSetValues((Widget) w, &arg, 1);
+ }
+
+ static void
+@@ -1062,7 +1070,7 @@
+ Arg arg;
+
+ XtSetArg(arg, XtNfade, !w->dclock.fade);
+- XtSetValues(w, &arg, 1);
++ XtSetValues((Widget) w, &arg, 1);
+ if (w->dclock.fade && w->dclock.scroll)
+ toggle_scroll(w);
+ }
+@@ -1074,7 +1082,7 @@
+ Arg arg;
+
+ XtSetArg(arg, XtNtails, !w->dclock.tails);
+- XtSetValues(w, &arg, 1);
++ XtSetValues((Widget) w, &arg, 1);
+ }
+
+ static void
+@@ -1084,7 +1092,7 @@
+ Arg arg;
+
+ XtSetArg(arg, XtNalarm, !w->dclock.alarm);
+- XtSetValues(w, &arg, 1);
++ XtSetValues((Widget) w, &arg, 1);
+ }
+
+ static void
+@@ -1124,20 +1132,24 @@
+ int digit = w->dclock.alarm_time[i>1?i+1:i] - '0';
+ int mod;
+ switch (i) {
+- when 0:
++ case 0:
+ if (Alarm.hrs > 13 && digit == 1)
+ digit++;
+ mod = 3;
+ before.tm_hour = -1;
+- when 1 :
++ break;
++ case 1 :
+ mod = (Alarm.hrs < 20)? 10 : 4;
+ before.tm_hour = -1;
+- when 2:
++ break;
++ case 2:
+ mod = 6;
+ before.tm_min = -1;
+- when 3 :
++ break;
++ case 3 :
+ mod = 10;
+ before.tm_min = -1;
++ break;
+ }
+ if (event->button == 1)
+ digit = (digit + 1) % mod;