$NetBSD: patch-ab,v 1.3 2007/08/08 21:44:14 joerg Exp $

--- xclock.c.orig	1995-05-22 13:47:42.000000000 +0000
+++ xclock.c
@@ -17,9 +17,7 @@
  *      1990
  */
 #include <stdio.h>
-#ifndef VMS
-#include <malloc.h>
-#endif
+#include <stdlib.h>
 #include <math.h>
 #include <pwd.h>
 #include <unistd.h>
@@ -264,10 +262,29 @@ static Boolean	showSecondHand = False;	 
 
 static Boolean	iconified = False;	   /*  Clock iconified?		*/
 
-
-
-
-
+static void ParseGeometry(Widget, int, int, int);
+static int Round(double);
+static void DigitalString(char *);
+static void Syntax(char *);
+static void InitializeCat(Pixel, Pixel, Pixel);
+static GC CreateTailGC(void);
+static GC CreateEyeGC(void);
+static Pixmap CreateTailPixmap(double);
+static Pixmap CreateEyePixmap(double);
+static void EraseHands(Widget, struct tm *);
+static XtCallbackProc HandleExpose(Widget, XtPointer, XmDrawingAreaCallbackStruct *);
+static XtCallbackProc HandleInput(Widget, XtPointer, XmDrawingAreaCallbackStruct *);
+static XtCallbackProc HandleResize(Widget, XtPointer, XmDrawingAreaCallbackStruct *);
+static XtTimerCallbackProc Tick(Widget, int);
+static XtCallbackProc AlarmSetCallback(Widget, XtPointer, XmToggleButtonCallbackStruct *);
+static XtCallbackProc AlarmBellCallback(Widget, XtPointer, XmToggleButtonCallbackStruct *);
+static XtCallbackProc ChimeCallback(Widget, XtPointer, XmToggleButtonCallbackStruct *);
+static XtCallbackProc AckAlarmCallback(Widget, XtPointer, XmPushButtonCallbackStruct *);
+static XtCallbackProc RereadAlarmCallback(Widget, Widget, XmPushButtonCallbackStruct *);
+static XtCallbackProc EditAlarmCallback(Widget, Widget, XmPushButtonCallbackStruct *);
+static XtCallbackProc ExitCallback(Widget, XtPointer, XmPushButtonCallbackStruct *);
+static XtEventHandler MapCallback(Widget, XtPointer, XEvent *);
+static void SetSeg(int, int, int, int);
 
 main(argc, argv)
     int 	argc;
@@ -281,7 +298,6 @@ main(argc, argv)
     XGCValues	gcv;
     u_long 	valueMask;
     XmFontList	fontList = (XmFontList)NULL;
-    extern void	ParseGeometry();
 
     
     static XtResource	resources[] = {
@@ -351,7 +367,7 @@ main(argc, argv)
 
 	{ "mode", "Mode", XtRString, sizeof(char *),
 	    XtOffset(ApplicationDataPtr, modeString),
-	    XtRImmediate, (XtPointer)"analog"},
+	    XtRImmediate, (XtPointer)"cat"},
 
 	{ "help", "Help", XtRBoolean, sizeof(Boolean),
 	    XtOffset(ApplicationDataPtr, help),
@@ -391,7 +407,6 @@ main(argc, argv)
 	{ "-help",        "*help",         XrmoptionNoArg,  (XtPointer)"on" },
     };
     
-    extern XtEventHandler	MapCallback();
     
 
     /* 
@@ -403,7 +418,7 @@ main(argc, argv)
     /*
      *  Open up the system
      */
-    topLevel = XtAppInitialize(&appContext, "XClock",
+    topLevel = XtAppInitialize(&appContext, "Catclock",
 			       (XrmOptionDescList)(&options[0]),
 			       XtNumber(options),
 			       (unsigned int *)&argc, argv, NULL,
@@ -418,7 +433,6 @@ main(argc, argv)
      *  Print help message and exit if asked
      */
     if (appData.help) {
-	extern void Syntax();
 
 	Syntax(argv[0]);
     }
@@ -568,7 +582,6 @@ main(argc, argv)
 	    time_t	timeValue;
 	    int		stringDir;
 	    XCharStruct	xCharStr;
-	    extern void	DigitalString();
 
 	    /*
 	     *  Padding is around time text
@@ -794,7 +807,6 @@ main(argc, argv)
      *  Create cat pixmaps, etc. if in CAT_CLOCK mode
      */
     if (clockMode == CAT_CLOCK) {
-	extern void InitializeCat();
 	
 	InitializeCat(appData.catColor,
 		      appData.detailColor,
@@ -806,9 +818,6 @@ main(argc, argv)
      *  Finally, install necessary callbacks
      */
     {
-	extern XtCallbackProc 	HandleExpose(),
-				HandleResize(),
-				HandleInput();
 	
 	XtAddCallback(canvas, XmNexposeCallback, HandleExpose, NULL);
 	XtAddCallback(canvas, XmNresizeCallback, HandleResize, NULL);
@@ -1191,7 +1200,6 @@ static void DrawLine(blankLength, length
     double 	fractionOfACircle;
 {
     double 		angle, cosAngle, sinAngle;
-    extern void		SetSeg();
 
     /*
      *  A full circle is 2 M_PI radians.
@@ -1288,7 +1296,6 @@ static void DrawSecond(length, width, of
     double 	ms, mc, ws, wc;
     int 	mid;
     int 	x, y;
-    extern void		SetSeg();
     
     /*
      *  A full circle is 2 PI radians.
@@ -1477,8 +1484,6 @@ static void InitializeCat(catColor, deta
     XGCValues 		gcv;
     unsigned long 	valueMask;
     GC			gc1, gc2;
-    extern GC		CreateTailGC();
-    extern GC		CreateEyeGC();
 
 
     catPix = XCreatePixmap(dpy, root, winWidth, winHeight,
@@ -1562,8 +1567,6 @@ static void InitializeCat(catColor, deta
     eyePixmap  = (Pixmap *)malloc((appData.nTails + 1) * sizeof(Pixmap));
 
     for (i = 0; i <= appData.nTails; i++) {
-	static Pixmap CreateTailPixmap();
-	static Pixmap CreateEyePixmap();
 
 	tailPixmap[i] = CreateTailPixmap(i * M_PI/(appData.nTails));
 	eyePixmap[i]  = CreateEyePixmap(i * M_PI/(appData.nTails));
@@ -1934,7 +1937,6 @@ static XtCallbackProc HandleExpose(w, cl
     XtPointer			clientData;
     XmDrawingAreaCallbackStruct	*callData;
 {
-    extern XtTimerCallbackProc 	Tick();	
 
     /*
      *  Ignore if more expose events for this window in the queue
@@ -2180,13 +2182,6 @@ static XtCallbackProc HandleInput(w, cli
     			ackW, rereadW, editW, exitW;
     static Widget	sepW1, sepW2;
 
-    extern XtCallbackProc	AlarmSetCallback(),
-				AlarmBellCallback(),
-				ChimeCallback(),
-				AckAlarmCallback(),
-				RereadAlarmCallback(),
-    				EditAlarmCallback(),
-				ExitCallback();
     
     if (callData->event->type != ButtonPress) {
 	return;
