Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!rutgers!ames!ucbcad!ucbvax!hplabs!sdcrdcf!usc-oberon!bacall!papa
From: papa@bacall.UUCP (Marco Papa)
Newsgroups: comp.sys.amiga
Subject: Re: First EGAD Buglist
Message-ID: <2244@bacall.UUCP>
Date: Wed, 31-Dec-86 19:35:34 EST
Article-I.D.: bacall.2244
Posted: Wed Dec 31 19:35:34 1986
Date-Received: Fri, 2-Jan-87 20:58:41 EST
References: <2274@well.UUCP>
Organization: CS&CE Depts, U.S.C., Los Angeles, CA
Lines: 42
Cc: csevax!well!crunch


John Draper writes:
> EGAD BUG LIST #1
> ----------------
> 
>   This is the list of KNOWN and REPORTED bugs in Egad,   the very first
> and crude cut of the Gadget editor.   The bugs will be numbered for 
> reference.   As the bug fixes come in from volunteers,  it is important

I reported the following bug and fix:
>      
> #3.  Egad does not do properly "extended menu selection".  This is described on
> page 6-9 of the original intuition manual, section "menu numbers and menu
> selection messages".  The problem is in the egad.c, in the code
> subsequent to a MENUPICK message.  Basically you have to substitute the if
> statement with a while loop. This is the code that will fix it:
>  
> struct MenuItem *item;
> extern struct Menu file_menu;
> ...
> case MENUPICK:
>         while (code != MENUNULL) {
>                 item = (struct MenuItem *) ItemAddress(&file_menu,code);
>                 Do_menu((long)MENUNUM(code), (long)ITEMNUN(code));
>                 code = item->NextSelect;
>         }
>

The above fix works only with 32-bit ints.  To make it work with John's
makefile (and 16-bit ints) one has to cast code to long. Change the second 
line in the case statement as follows:

item = ItemAddress(&file_menu, (long)code);

and add at the beginning of the file:

struct MenuItem *ItemAddress;

Sorry about the missing cast. 

-- Marco Papa
   Felsina Software