From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Emacs with Cocoa/GNUstep Date: Tue, 26 Apr 2011 23:13:52 -0700 Organization: UCLA Computer Science Department Message-ID: <4DB7B420.2080602@cs.ucla.edu> References: <1303864750.11832.3.camel@german-desktop> <1303879114.12552.14.camel@german-desktop> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1303884866 10476 80.91.229.12 (27 Apr 2011 06:14:26 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 27 Apr 2011 06:14:26 +0000 (UTC) Cc: emacs-devel@gnu.org To: german@xelalug.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 27 08:14:21 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QEy0x-0007f1-9c for ged-emacs-devel@m.gmane.org; Wed, 27 Apr 2011 08:14:19 +0200 Original-Received: from localhost ([::1]:47241 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QEy0w-0006yV-Gq for ged-emacs-devel@m.gmane.org; Wed, 27 Apr 2011 02:14:18 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:57512) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QEy0q-0006yD-4c for emacs-devel@gnu.org; Wed, 27 Apr 2011 02:14:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QEy0m-0006bU-8S for emacs-devel@gnu.org; Wed, 27 Apr 2011 02:14:12 -0400 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]:36355) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QEy0l-0006au-UB for emacs-devel@gnu.org; Wed, 27 Apr 2011 02:14:08 -0400 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id A073039E80FA; Tue, 26 Apr 2011 23:13:57 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6lyvHVkWHL0V; Tue, 26 Apr 2011 23:13:52 -0700 (PDT) Original-Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id A820439E8082; Tue, 26 Apr 2011 23:13:52 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8 In-Reply-To: <1303879114.12552.14.camel@german-desktop> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 131.179.128.62 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:138838 Archived-At: On 04/26/11 21:38, Germ=C3=A1n Arias wrote: > nsmenu.m:229: error: =E2=80=98struct Lisp_Vector=E2=80=99 has no member= named =E2=80=98size=E2=80=99 That problem was due to my change to lisp.h in revno 104021. Sorry about that. I committed the following fix in revno 104024. This patch can be applied independently of the earlier lisp.h change, and it isolates nsmenu.m from that implementation detail of lisp.h so it should be a win independently of the lisp.h change. 2011-04-27 Paul Eggert * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF. This makes this file independent of the recent pseudovector change. --- src/nsmenu.m 2011-03-27 09:23:52 +0000 +++ src/nsmenu.m 2011-04-27 06:01:43 +0000 @@ -218,7 +218,7 @@ =20 /* Save the frame's previous menu bar contents data */ if (previous_menu_items_used) - memcpy (previous_items, XVECTOR (f->menu_bar_vector)->contents, + memcpy (previous_items, &AREF (f->menu_bar_vector, 0), previous_menu_items_used * sizeof (Lisp_Object)); =20 /* parse stage 1: extract from lisp */ @@ -226,19 +226,19 @@ =20 menu_items =3D f->menu_bar_vector; menu_items_allocated =3D VECTORP (menu_items) ? ASIZE (menu_items)= : 0; - submenu_start =3D (int *) alloca (XVECTOR (items)->size * sizeof (= int *)); - submenu_end =3D (int *) alloca (XVECTOR (items)->size * sizeof (in= t *)); - submenu_n_panes =3D (int *) alloca (XVECTOR (items)->size * sizeof= (int)); + submenu_start =3D (int *) alloca (ASIZE (items) * sizeof (int *)); + submenu_end =3D (int *) alloca (ASIZE (items) * sizeof (int *)); + submenu_n_panes =3D (int *) alloca (ASIZE (items) * sizeof (int)); submenu_top_level_items - =3D (int *) alloca (XVECTOR (items)->size * sizeof (int *)); + =3D (int *) alloca (ASIZE (items) * sizeof (int *)); init_menu_items (); - for (i =3D 0; i < XVECTOR (items)->size; i +=3D 4) + for (i =3D 0; i < ASIZE (items); i +=3D 4) { Lisp_Object key, string, maps; =20 - key =3D XVECTOR (items)->contents[i]; - string =3D XVECTOR (items)->contents[i + 1]; - maps =3D XVECTOR (items)->contents[i + 2]; + key =3D AREF (items, i); + string =3D AREF (items, i + 1); + maps =3D AREF (items, i + 2); if (NILP (string)) break; =20 @@ -311,11 +311,11 @@ /* FIXME: this ALWAYS fails on Buffers menu items.. somethin= g about their strings causes them to change every time, s= o we double-check failures */ - if (!EQ (previous_items[i], XVECTOR (menu_items)->contents[i= ])) + if (!EQ (previous_items[i], AREF (menu_items, i))) if (!(STRINGP (previous_items[i]) - && STRINGP (XVECTOR (menu_items)->contents[i]) + && STRINGP (AREF (menu_items, i)) && !strcmp (SDATA (previous_items[i]), - SDATA (XVECTOR (menu_items)->contents[i])= ))) + SDATA (AREF (menu_items, i))))) break; if (i =3D=3D previous_menu_items_used) { @@ -346,10 +346,10 @@ /* Parse stage 2a: now GC cannot happen during the lifetime of the widget_value, so it's safe to store data from a Lisp_String */ wv =3D first_wv->contents; - for (i =3D 0; i < XVECTOR (items)->size; i +=3D 4) + for (i =3D 0; i < ASIZE (items); i +=3D 4) { Lisp_Object string; - string =3D XVECTOR (items)->contents[i + 1]; + string =3D AREF (items, i + 1); if (NILP (string)) break; /* if (submenu && strcmp (submenuTitle, SDATA (string))) @@ -407,7 +407,7 @@ =20 =20 /* check if no change.. this mechanism is a bit rough, but ready *= / - n =3D XVECTOR (items)->size / 4; + n =3D ASIZE (items) / 4; if (f =3D=3D last_f && n_previous_strings =3D=3D n) { for (i =3D 0; isize; i +=3D 4) + for (i =3D 0; i < ASIZE (items); i +=3D 4) { - string =3D XVECTOR (items)->contents[i + 1]; + string =3D AREF (items, i + 1); if (NILP (string)) break; =20 @@ -794,7 +794,7 @@ i =3D 0; while (i < menu_items_used) { - if (EQ (XVECTOR (menu_items)->contents[i], Qnil)) + if (EQ (AREF (menu_items, i), Qnil)) { submenu_stack[submenu_depth++] =3D save_wv; save_wv =3D prev_wv; @@ -802,21 +802,21 @@ first_pane =3D 1; i++; } - else if (EQ (XVECTOR (menu_items)->contents[i], Qlambda)) + else if (EQ (AREF (menu_items, i), Qlambda)) { prev_wv =3D save_wv; save_wv =3D submenu_stack[--submenu_depth]; first_pane =3D 0; i++; } - else if (EQ (XVECTOR (menu_items)->contents[i], Qt) + else if (EQ (AREF (menu_items, i), Qt) && submenu_depth !=3D 0) i +=3D MENU_ITEMS_PANE_LENGTH; /* Ignore a nil in the item list. It's meaningful only for dialog boxes. */ - else if (EQ (XVECTOR (menu_items)->contents[i], Qquote)) + else if (EQ (AREF (menu_items, i), Qquote)) i +=3D 1; - else if (EQ (XVECTOR (menu_items)->contents[i], Qt)) + else if (EQ (AREF (menu_items, i), Qt)) { /* Create a new pane. */ Lisp_Object pane_name, prefix; @@ -906,7 +906,7 @@ make the call_data null so that it won't display a box when the mouse is on it. */ wv->call_data - =3D !NILP (def) ? (void *) &XVECTOR (menu_items)->contents[i] : 0= ; + =3D !NILP (def) ? (void *) &AREF (menu_items, i) : 0; wv->enabled =3D !NILP (enable); =20 if (NILP (type))