afsmonitor & gtx: Don't cast returns from malloc()
[openafs.git] / src / gtx / frame.c
index a0b5fc0..c219c7e 100644 (file)
@@ -1,27 +1,20 @@
 /*
  * Copyright 2000, International Business Machines Corporation and others.
  * All Rights Reserved.
- * 
+ *
  * This software has been released under the terms of the IBM Public
  * License.  For details, see the LICENSE file in the top-level source
  * directory or online at http://www.openafs.org/dl/license10.html
  */
 
-#define        IGNORE_STDS_H
 #include <afsconfig.h>
 #include <afs/param.h>
+#include <afs/stds.h>
 
-RCSID
-    ("$Header$");
+#include <roken.h>
 
-#ifdef AFS_HPUX_ENV
-#include <sys/types.h>
-#endif
 #include <lwp.h>
 
-#include <string.h>
-#include <stdlib.h>
-
 #include "gtxobjects.h"
 #include "gtxwindows.h"
 #include "gtxcurseswin.h"
@@ -29,15 +22,14 @@ RCSID
 #include "gtxkeymap.h"
 #include "gtxframe.h"
 
-extern char *gtx_CopyString();
 static struct keymap_map *recursiveMap = 0;
 static char menubuffer[1024];  /*Buffer for menu selections */
 int gtxframe_exitValue = 0;    /*Program exit value */
 
-gtxframe_CtrlUCmd(awindow, arock)
-     char *arock;
-     struct gwin *awindow;
+int
+gtxframe_CtrlUCmd(void *aparam, void *arock)
 {
+    struct gwin *awindow = (struct gwin *) aparam;
     struct gtx_frame *tframe;
 
     tframe = awindow->w_frame;
@@ -47,13 +39,14 @@ gtxframe_CtrlUCmd(awindow, arock)
     return 0;
 }
 
-gtxframe_CtrlHCmd(awindow, arock)
-     char *arock;
-     struct gwin *awindow;
+int
+gtxframe_CtrlHCmd(void *aparam, void *arock)
 {
-    register struct gtx_frame *tframe;
-    register char *tp;
-    register int pos;
+    struct gwin *awindow = (struct gwin *) aparam;
+
+    struct gtx_frame *tframe;
+    char *tp;
+    int pos;
 
     tframe = awindow->w_frame;
     if (!(tp = tframe->defaultLine))
@@ -65,11 +58,12 @@ gtxframe_CtrlHCmd(awindow, arock)
     return 0;
 }
 
-gtxframe_RecursiveEndCmd(awindow, arock)
-     char *arock;
-     register struct gwin *awindow;
+int
+gtxframe_RecursiveEndCmd(void *aparam, void *arock)
 {
-    register struct gtx_frame *tframe;
+    struct gwin *awindow = (struct gwin *) aparam;
+
+    struct gtx_frame *tframe;
 
     tframe = awindow->w_frame;
     tframe->flags |= GTXFRAME_RECURSIVEEND;
@@ -77,11 +71,12 @@ gtxframe_RecursiveEndCmd(awindow, arock)
     return 0;
 }
 
-gtxframe_RecursiveErrCmd(awindow, arock)
-     char *arock;
-     register struct gwin *awindow;
+int
+gtxframe_RecursiveErrCmd(void *aparam, void *arock)
 {
-    register struct gtx_frame *tframe;
+    struct gwin *awindow = (struct gwin *) aparam;
+
+    struct gtx_frame *tframe;
 
     tframe = awindow->w_frame;
     tframe->flags |= GTXFRAME_RECURSIVEEND;
@@ -89,13 +84,16 @@ gtxframe_RecursiveErrCmd(awindow, arock)
     return 0;
 }
 
-gtxframe_SelfInsertCmd(awindow, arock)
-     int arock;
-     struct gwin *awindow;
+int
+gtxframe_SelfInsertCmd(void *aparam, void *rockparam)
 {
-    register struct gtx_frame *tframe;
-    register int pos;
-    register char *tp;
+    struct gwin *awindow = (struct gwin *) aparam;
+
+    int arock = (intptr_t)rockparam;
+
+    struct gtx_frame *tframe;
+    int pos;
+    char *tp;
 
     tframe = awindow->w_frame;
     if (!(tp = tframe->defaultLine))
@@ -107,12 +105,11 @@ gtxframe_SelfInsertCmd(awindow, arock)
 }
 
 /* save map, setup recursive map and install it */
-static
-SaveMap(aframe)
-     register struct gtx_frame *aframe;
+static int
+SaveMap(struct gtx_frame *aframe)
 {
     char tstring[2];
-    register int i;
+    int i;
 
     if (!recursiveMap) {
        /* setup recursive edit map if not previously done */
@@ -138,7 +135,7 @@ SaveMap(aframe)
            tstring[0] = i;
            tstring[1] = 0;
            keymap_BindToString(recursiveMap, tstring, gtxframe_SelfInsertCmd,
-                               NULL, i);
+                               NULL, (void *)(intptr_t)i);
        }
     }
     aframe->savemap = aframe->keymap;
@@ -148,9 +145,8 @@ SaveMap(aframe)
 }
 
 /* Restore map to previous value */
-static
-RestoreMap(aframe)
-     register struct gtx_frame *aframe;
+static int
+RestoreMap(struct gtx_frame *aframe)
 {
     aframe->keymap = aframe->savemap;
     aframe->savemap = (struct keymap_map *)0;
@@ -158,9 +154,8 @@ RestoreMap(aframe)
     return 0;
 }
 
-gtxframe_SetFrame(awin, aframe)
-     struct gtx_frame *aframe;
-     struct gwin *awin;
+int
+gtxframe_SetFrame(struct gwin *awin, struct gtx_frame *aframe)
 {
     if (awin->w_frame) {
        /* Unthread this frame */
@@ -172,19 +167,16 @@ gtxframe_SetFrame(awin, aframe)
 }
 
 struct gtx_frame *
-gtxframe_GetFrame(awin)
-     struct gwin *awin;
+gtxframe_GetFrame(struct gwin *awin)
 {
     return awin->w_frame;
 }
 
 /* Add a menu string to display list */
-gtxframe_AddMenu(aframe, alabel, astring)
-     char *alabel;
-     char *astring;
-     struct gtx_frame *aframe;
+int
+gtxframe_AddMenu(struct gtx_frame *aframe, char *alabel, char *astring)
 {
-    register struct gtxframe_menu *tmenu;
+    struct gtxframe_menu *tmenu;
 
     if (aframe->menus)
        for (tmenu = aframe->menus; tmenu; tmenu = tmenu->next) {
@@ -195,10 +187,9 @@ gtxframe_AddMenu(aframe, alabel, astring)
     if (!tmenu) {
        /* Handle everything but the command string, which is handled by the
         * common-case code below */
-       tmenu = (struct gtxframe_menu *)malloc(sizeof(*tmenu));
+       tmenu = calloc(1, sizeof(*tmenu));
        if (tmenu == (struct gtxframe_menu *)0)
            return (-1);
-       memset(tmenu, 0, sizeof(*tmenu));
        tmenu->next = aframe->menus;
        aframe->menus = tmenu;
        tmenu->name = gtx_CopyString(alabel);
@@ -215,11 +206,10 @@ gtxframe_AddMenu(aframe, alabel, astring)
 }
 
 /* Delete a given menu from a frame*/
-gtxframe_DeleteMenu(aframe, alabel)
-     struct gtx_frame *aframe;
-     char *alabel;
+int
+gtxframe_DeleteMenu(struct gtx_frame *aframe, char *alabel)
 {
-    register struct gtxframe_menu *tm, **lm;
+    struct gtxframe_menu *tm, **lm;
 
     for (lm = &aframe->menus, tm = *lm; tm; lm = &tm->next, tm = *lm) {
        if (strcmp(alabel, tm->name) == 0) {
@@ -235,11 +225,11 @@ gtxframe_DeleteMenu(aframe, alabel)
 }
 
 /* Function to remove all known menus */
-gtxframe_ClearMenus(aframe)
-     struct gtx_frame *aframe;
+int
+gtxframe_ClearMenus(struct gtx_frame *aframe)
 {
 
-    register struct gtxframe_menu *tm, *nm;
+    struct gtxframe_menu *tm, *nm;
 
     if (aframe->menus != (struct gtxframe_menu *)0) {
        for (tm = aframe->menus; tm; tm = nm) {
@@ -254,15 +244,12 @@ gtxframe_ClearMenus(aframe)
     return 0;
 }
 
-gtxframe_AskForString(aframe, aprompt, adefault, aresult, aresultSize)
-     register struct gtx_frame *aframe;
-     char *aprompt;
-     char *adefault;
-     char *aresult;
-     int aresultSize;
+int
+gtxframe_AskForString(struct gtx_frame *aframe, char *aprompt,
+                     char *adefault, char *aresult, int aresultSize)
 {
-    register int code;
-    register char *tp;
+    int code;
+    char *tp;
 
     /* Ensure recursive-edit map is initialized */
     SaveMap(aframe);
@@ -273,7 +260,7 @@ gtxframe_AskForString(aframe, aprompt, adefault, aresult, aresultSize)
     if (aframe->defaultLine)
        free(aframe->defaultLine);
     aframe->promptLine = gtx_CopyString(aprompt);
-    tp = aframe->defaultLine = (char *)malloc(1024);
+    tp = aframe->defaultLine = malloc(1024);
     if (tp == NULL)
        return (-1);
     if (adefault)
@@ -311,18 +298,18 @@ gtxframe_AskForString(aframe, aprompt, adefault, aresult, aresultSize)
     return (code);
 }
 
-gtxframe_DisplayString(aframe, amsgLine)
-     char *amsgLine;
-     register struct gtx_frame *aframe;
+int
+gtxframe_DisplayString(struct gtx_frame *aframe, char *amsgLine)
 {
     if (aframe->messageLine)
        free(aframe->messageLine);
     aframe->messageLine = gtx_CopyString(amsgLine);
+    return 0;
 }
 
 /* Called by input processor to try to clear the dude */
-gtxframe_ClearMessageLine(aframe)
-     struct gtx_frame *aframe;
+int
+gtxframe_ClearMessageLine(struct gtx_frame *aframe)
 {
     /* If we haven't shown message long enough yet, just return */
     if (aframe->flags & GTXFRAME_NEWDISPLAY)
@@ -333,13 +320,12 @@ gtxframe_ClearMessageLine(aframe)
     return (0);
 }
 
-static
-ShowMessageLine(aframe)
-     struct gtx_frame *aframe;
+static int
+ShowMessageLine(struct gtx_frame *aframe)
 {
     struct gwin_strparams strparms;
     struct gwin_sizeparams sizeparms;
-    register char *tp;
+    char *tp;
 
     if (!aframe->window)
        return -1;
@@ -352,7 +338,7 @@ ShowMessageLine(aframe)
        strparms.x = 0;
        strparms.y = sizeparms.maxy - 1;
        strparms.highlight = 1;
-       tp = strparms.s = (char *)malloc(1024);
+       tp = strparms.s = malloc(1024);
        strcpy(tp, aframe->promptLine);
        strcat(tp, aframe->defaultLine);
        WOP_DRAWSTRING(aframe->window, &strparms);
@@ -372,9 +358,7 @@ ShowMessageLine(aframe)
 
 /* Exit function, returning whatever has been put in its argument */
 int
-gtxframe_ExitCmd(a_exitValuep)
-     char *a_exitValuep;
-
+gtxframe_ExitCmd(void *a_exitValuep, void *arock)
 {                              /*gtxframe_ExitCmd */
 
     int exitval;               /*Value we've been asked to exit with */
@@ -388,7 +372,7 @@ gtxframe_ExitCmd(a_exitValuep)
 }                              /*gtxframe_ExitCmd */
 
 struct gtx_frame *
-gtxframe_Create()
+gtxframe_Create(void)
 {
     struct gtx_frame *tframe;
     struct keymap_map *newkeymap;
@@ -397,7 +381,7 @@ gtxframe_Create()
     /*
      * Allocate all the pieces first: frame, keymap, and key state.
      */
-    tframe = (struct gtx_frame *)malloc(sizeof(struct gtx_frame));
+    tframe = calloc(1, sizeof(struct gtx_frame));
     if (tframe == (struct gtx_frame *)0) {
        return ((struct gtx_frame *)0);
     }
@@ -411,8 +395,7 @@ gtxframe_Create()
        return ((struct gtx_frame *)0);
     }
 
-    newkeystate = (struct keymap_state *)
-       malloc(sizeof(struct keymap_state));
+    newkeystate = malloc(sizeof(struct keymap_state));
     if (newkeystate == (struct keymap_state *)0) {
        /*
         * Get rid of the frame AND the keymap before exiting.
@@ -426,7 +409,6 @@ gtxframe_Create()
      * Now that all the pieces exist, fill them in and stick them in
      * the right places.
      */
-    memset(tframe, 0, sizeof(struct gtx_frame));
     tframe->keymap = newkeymap;
     tframe->keystate = newkeystate;
     keymap_InitState(tframe->keystate, tframe->keymap);
@@ -439,8 +421,8 @@ gtxframe_Create()
     return (tframe);
 }
 
-gtxframe_Delete(aframe)
-     register struct gtx_frame *aframe;
+int
+gtxframe_Delete(struct gtx_frame *aframe)
 {
     keymap_Delete(aframe->keymap);
     free(aframe->keystate);
@@ -450,12 +432,11 @@ gtxframe_Delete(aframe)
     return 0;
 }
 
-gtxframe_Display(aframe, awm)
-     struct gwin *awm;
-     register struct gtx_frame *aframe;
+int
+gtxframe_Display(struct gtx_frame *aframe, struct gwin *awm)
 {
-    register struct gtxframe_dlist *tlist;
-    register struct gtxframe_menu *tm;
+    struct gtxframe_dlist *tlist;
+    struct gtxframe_menu *tm;
     struct gwin_strparams strparms;
 
     /* Run through the menus, displaying them on the top line */
@@ -486,11 +467,10 @@ gtxframe_Display(aframe, awm)
 }
 
 /* Add an object to a window's display list */
-gtxframe_AddToList(aframe, aobj)
-     struct onode *aobj;
-     register struct gtx_frame *aframe;
+int
+gtxframe_AddToList(struct gtx_frame *aframe, struct onode *aobj)
 {
-    register struct gtxframe_dlist *tlist;
+    struct gtxframe_dlist *tlist;
 
     for (tlist = aframe->display; tlist; tlist = tlist->next) {
        if (tlist->data == (char *)aobj) {
@@ -505,7 +485,7 @@ gtxframe_AddToList(aframe, aobj)
      * OK, it's not alreadyt there.  Create a new list object, fill it
      * in, and splice it on.
      */
-    tlist = (struct gtxframe_dlist *)malloc(sizeof(struct gtxframe_dlist));
+    tlist = malloc(sizeof(struct gtxframe_dlist));
     if (tlist == (struct gtxframe_dlist *)0)
        return (-1);
     tlist->data = (char *)aobj;
@@ -515,11 +495,10 @@ gtxframe_AddToList(aframe, aobj)
 }
 
 /* Remove an object from a display list, if it is already there */
-gtxframe_RemoveFromList(aframe, aobj)
-     struct onode *aobj;
-     register struct gtx_frame *aframe;
+int
+gtxframe_RemoveFromList(struct gtx_frame *aframe, struct onode *aobj)
 {
-    register struct gtxframe_dlist *tlist, **plist;
+    struct gtxframe_dlist *tlist, **plist;
 
     plist = &aframe->display;
     for (tlist = *plist; tlist; plist = &tlist->next, tlist = *plist) {
@@ -533,10 +512,10 @@ gtxframe_RemoveFromList(aframe, aobj)
 }
 
 /* Clear out everything on the display list for the given frame*/
-gtxframe_ClearList(aframe)
-     register struct gtx_frame *aframe;
+int
+gtxframe_ClearList(struct gtx_frame *aframe)
 {
-    register struct gtxframe_dlist *tlist, *nlist;
+    struct gtxframe_dlist *tlist, *nlist;
 
     if (aframe->display != (struct gtxframe_dlist *)0) {
        /*