From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] Add prettify symbols to python-mode Date: Wed, 23 Sep 2015 22:24:02 +0300 Message-ID: <83io71j5wt.fsf@gnu.org> References: <1442777283-27514-1-git-send-email-mvoteiza@udel.edu> <20150921005306.GA29147@holos> <87h9mlwt6l.fsf@Rainer.invalid> <83bnctliay.fsf@gnu.org> <83oagtjemn.fsf@gnu.org> <87oagt84e7.fsf@fencepost.gnu.org> <83mvwdjc5v.fsf@gnu.org> <87k2rh81c5.fsf@fencepost.gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1443036270 26088 80.91.229.3 (23 Sep 2015 19:24:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 23 Sep 2015 19:24:30 +0000 (UTC) Cc: xfq.free@gmail.com, Stromeko@nexgo.de, emacs-devel@gnu.org To: David Kastrup Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Sep 23 21:24:18 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZepeG-0006iT-05 for ged-emacs-devel@m.gmane.org; Wed, 23 Sep 2015 21:24:12 +0200 Original-Received: from localhost ([::1]:50207 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZepeF-0001Gw-5Q for ged-emacs-devel@m.gmane.org; Wed, 23 Sep 2015 15:24:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52474) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZepeC-0001Gp-Hw for emacs-devel@gnu.org; Wed, 23 Sep 2015 15:24:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZepeB-0000BX-MU for emacs-devel@gnu.org; Wed, 23 Sep 2015 15:24:08 -0400 Original-Received: from mtaout20.012.net.il ([80.179.55.166]:49598) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zepe7-00009C-Mp; Wed, 23 Sep 2015 15:24:03 -0400 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NV5001009UMIX00@a-mtaout20.012.net.il>; Wed, 23 Sep 2015 22:24:02 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([84.94.185.246]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NV5001K59W18W70@a-mtaout20.012.net.il>; Wed, 23 Sep 2015 22:24:02 +0300 (IDT) In-reply-to: <87k2rh81c5.fsf@fencepost.gnu.org> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.166 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:190304 Archived-At: > From: David Kastrup > Cc: xfq.free@gmail.com, Stromeko@nexgo.de, emacs-devel@gnu.org > Date: Wed, 23 Sep 2015 19:58:18 +0200 > > Eli Zaretskii writes: > > >> From: David Kastrup > >> Date: Wed, 23 Sep 2015 18:52:16 +0200 > >> Cc: Xue Fuqiao , Stromeko@nexgo.de, emacs-devel@gnu.org > >> > >> C may not be a complicated language but it offers no significant > >> in-language features for integrating data structures and their > >> manipulators. As a consequence, working with Elisp data in C does not > >> resemble either working with C or with Lisp. > > > > We have a small set of macros that make this a non-issue. > > Lisp_Object x[2]; > x[0] = a; > x[1] = b; > return Fplus (2, x); > > does not resemble either a+b or (+ a b). A non-issue is something else. Where's "Elisp data" in this example? I thought by "working with Elisp data in C" you meant using Lisp data structures passed to C functions, in which case the following is what I had in mind (where 'value' is some Lisp data type): if (EQ (value, Qunspecified) || (EQ (value, QCignore_defface))) return Qt; else if (EQ (attribute, QCheight)) return INTEGERP (value) ? Qnil : Qt; else if (CONSP (value) && EQ (XCAR (value), QCwhatever)) return XCDR (value); else return Qnil;