From damian@uk.ac.rl.inf Fri Sep 28 12:34:37 1990
Received: from rl.inf by abacu.strath.ac.uk; Fri, 28 Sep 90 12:34:32 GMT
Received: from mack by inf.rl.ac.uk; Fri, 28 Sep 90 12:46:04 BST
Date: Fri, 28 Sep 90 12:43:39 BST
Message-Id: <9009281143.AA00595@mack>
From: Damian Mac Randal <damian@uk.ac.rl.inf>
To: joe@uk.ac.strath.abacu
Subject: IFe forms package
Cc: 
Status: R

Found the problem with the forms package on sparcs - and it wasn't ww's
fault (of course, we all knew that!)

Several of the header files declare a number of list variables which
have to be initialized to NULL.  This can't be done in the headers
(otherwies they are re defined every time the .h is used).

change routines.h, line 143 to
        extern  window          * WinStart;
        extern  window          * WinDesk;
        extern  window          * WinHelp;
                fontinfo        * Icnmsgfont;
                fontinfo        * Icnttlfont;
        extern  char            * FCstat[4];
        extern  int               FFstat;
change FORM_STRUCT2.h, line 54 to
        extern WinLink  *WinHead;
        extern WinLink  *WinTail;
change FORM_STRUCT2.h, line 54 to
        extern N_list *n_list;
        extern N_list *n_tail;
add to desk.c, line 11 (just a convenient file/place)
        window          * WinStart = NULL;
        window          * WinDesk = NULL;
        window          * WinHelp = NULL;
        char            * FCstat[4] = {0, 0, 0, 0};
        int               FFstat = 0;
        WinLink *WinHead = NULL;
        WinLink *WinTail = NULL;
comment out line 134 in desk.c - frees non allocated memory!
change new_nodes.c, line 16 to
        N_list *n_list = NULL;
        N_list *n_tail = NULL;
        Attribute     * info_head = NULL;
        Attribute     * info_tail = NULL
        Dynamic * dynamic_head = NULL;
        Dynamic * dynamic_tail = NULL;
change melt.c, line 6 to
        window *winb=NULL;
add to f_data.c, line 17
        extern char *rdlbufptr, *rdlbuffr, *rdlstart;
change f_data.c, line 247 to
        char  *line = rdlbuffr;
change f_create.c, line 102 to
       for(;i< NO_ATTRIBUTES - 1; i++ ) {
in 2d.h inititialize (not sure if necessary, but doesn't hurt)
        maps, dx, dy, xpoly, ypoly, length, height  to 0
        glob_data  to NULL






FOR INFO ONLY - dont bother implementing!
I also made some other changes to reduce the number of lint warnings
generated:
I split types.h into types.h and variants.h
        types.h only contains te Method* declarations
        variants.h contains the rest
include variants.h in
        attr_methods.h  new_nodes.h  val_int.c  val_float.c
        val_alphanum.h proforma.h
include f_strings.h in
        CreateProforma.h  form_mouse.h
reexpressed some ambiguous expresions:
        xpopcal.c, line 202
        val_float, line 27
        val_int, line 32
        val_alphanum, line 24 and 42
        proforma.c, line 277
        file.c, line 88
I also removed a lot of SccsId declarations!

If you need, I can send you a tape (or try emailing atob file via vaxb)
Happy hacking,
Damian

        Damian Mac Randal                Snail Mail: Informatics Dept,
                                                     Rutherford Appleton Lab,
INTERNET: damian%inf.rl.ac.uk@nfsnet-relay.ac.uk     Chilton,    Didcot,
  BITNET: damian%inf.rl.ac.uk@ukacrl.bitnet          Oxon.  OX11 0QX,    U.K.
    UUCP: damian%inf.rl.ac.uk@ukc.uucp        Phone: +44 235 445403
   JANET: damian@uk.ac.rl.inf                   Fax: 445831  Telex: 83159

