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