$NetBSD: patch-ab,v 1.4 2016/03/30 09:46:37 jperkin Exp $ Various fixes. --- Dclock.c.orig 2007-04-19 18:51:51.000000000 +0200 +++ Dclock.c @@ -21,8 +21,6 @@ static void #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 @@ DclockWidget w; 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 @@ DclockWidget w; Pixmap pix; GC gc = w->dclock.foreGC; - if (!XtIsRealized(w)) + if (!XtIsRealized((Widget) w)) return; winwidth = w->core.width; @@ -450,7 +448,7 @@ DclockWidget w; make_number(w, w->dclock.tiny_digits[i], gc, i, tiny_segment_pts); } else - w->dclock.tiny_digits[i] = NULL; + w->dclock.tiny_digits[i] = (Pixmap) NULL; } /* The colon[0] area is blank */ if (w->dclock.colon[0]) @@ -627,9 +625,9 @@ DclockWidget w; { Boolean save_scroll = w->dclock.scroll; Boolean save_fade = w->dclock.fade; - long t; + time_t t; - if (!XtIsRealized(w)) + if (!XtIsRealized((Widget) w)) return; if (w->dclock.interval_id != (XtIntervalId)NULL) { @@ -663,7 +661,7 @@ DclockWidget w; { char buf[11]; Boolean alarm_went_off = False; - long t = time(0); + time_t t = time(0); register struct tm *l_time = localtime(&t); int digit_w = w->dclock.digit_w; int digit_h = w->dclock.digit_h; @@ -802,7 +800,7 @@ register char *p; 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 @@ struct tm *now; 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 @@ struct tm *now; /* 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 @@ XtIntervalId *id; { 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 @@ DclockWidget current, request, new; || 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 @@ DclockWidget w; Arg arg; XtSetArg(arg, XtNreverseVideo, !w->dclock.reverse); - XtSetValues(w, &arg, 1); + XtSetValues((Widget) w, &arg, 1); } static void @@ -1038,7 +1046,7 @@ DclockWidget w; return; } XtSetArg(arg, XtNmilitaryTime, !w->dclock.miltime); - XtSetValues(w, &arg, 1); + XtSetValues((Widget) w, &arg, 1); } static void @@ -1052,7 +1060,7 @@ DclockWidget w; return; } XtSetArg(arg, XtNseconds, !w->dclock.seconds); - XtSetValues(w, &arg, 1); + XtSetValues((Widget) w, &arg, 1); } static void @@ -1062,7 +1070,7 @@ DclockWidget w; 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 @@ DclockWidget w; Arg arg; XtSetArg(arg, XtNtails, !w->dclock.tails); - XtSetValues(w, &arg, 1); + XtSetValues((Widget) w, &arg, 1); } static void @@ -1084,7 +1092,7 @@ DclockWidget w; Arg arg; XtSetArg(arg, XtNalarm, !w->dclock.alarm); - XtSetValues(w, &arg, 1); + XtSetValues((Widget) w, &arg, 1); } static void @@ -1124,20 +1132,24 @@ XButtonEvent *event; 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;