From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Oliver Scholz Newsgroups: gmane.emacs.help Subject: Re: what is the point of point-min? Date: Fri, 29 Aug 2003 09:21:32 +0200 Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: References: <3F4E2B31.5070904@yahoo.com> <84n0dtfsz3.fsf@slowfox.is.informatik.uni-duisburg.de> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: sea.gmane.org 1062142259 30678 80.91.224.253 (29 Aug 2003 07:30:59 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 29 Aug 2003 07:30:59 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Aug 29 09:30:57 2003 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19sdij-0002mr-00 for ; Fri, 29 Aug 2003 09:30:57 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.22) id 19sdib-0004iM-0c for geh-help-gnu-emacs@m.gmane.org; Fri, 29 Aug 2003 03:30:49 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!uni-berlin.de!dialin-145-254-222-013.arcor-ip.NET!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 56 Original-NNTP-Posting-Host: dialin-145-254-222-013.arcor-ip.net (145.254.222.13) Original-X-Trace: news.uni-berlin.de 1062141779 11652291 145.254.222.13 (16 [87814]) X-Attribution: os X-Face: "HgH2sgK|bfH$; PiOJI6|qUCf.ve<51_Od(%ynHr?=>znn#~#oS>",F%B8&\vus),2AsPYb -n>PgddtGEn}s7kH?7kH{P_~vu?]OvVN^qD(L)>G^gDCl(U9n{:d>'DkilN!_K"eNzjrtI4Ya6; Td% IZGMbJ{lawG+'J>QXPZD&TwWU@^~A}f^zAb[Ru;CT(UA]c& User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3.50 (windows-nt) Cancel-Lock: sha1:2TJl/TJ7O5c7cy0IWj+KYzjFxcA= Original-Xref: shelby.stanford.edu gnu.emacs.help:116240 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:12158 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:12158 Greg Hill writes: > At 10:05 PM +0200 8/28/03, Kai Großjohann wrote: >>Jesper Harder writes: >> >>> If they were Lisp functions I would have just read the source. But >>> >>> * I hate reading C. >> >>Well, reading Emacs C code is very unlike reading other C code, so >>please do give it a try. > > Indeed it is. In fact, until you have mastered the peculiar coding > conventions it adheres to, including the usage of ten billion #defined > terms whose meanings are far from obvious, it is very VERY much more > difficult than reading any other C code that I have ever encountered. Somehow this comforts me. If you are right, then the fact that I am so terribly slow at reading the C source of Emacs doesn't necessarily mean that I am dumb. :-) > For all intents and purposes, Emacs C is a language unto itself, whose > mastery is much more difficult than any "general purpose" language > like LISP. [...] > So "give it a try" at the risk of your sanity. And don't feel bad it > the experience leaves you feeling totally frustrated, irritated and > alienated. [...] OTOH, "Emacs C" shares a lot of data structures with Emacs Lisp and uses functions that are Emacs Lisp primitives. So if you are very comfortable with Emacs Lisp and willing to deal with data structure you don't fully understand, you have a fair chance to see something in the code. Some parts of it rather look like Emacs Lisp with less sophisticated control structures and with a very weird syntax. Some sort of "Emacs C Reference Manual" which explains the most important data structures and their accessor macros would be nice. But OTOH, it's not too hard to guess what CONSP, EQ, STRINGP ... etc. do. I should add that I don't really know C. I decided once to learn C by studying the source of Emacs. So I can't really compare. However, I rather enjoy it now. One thing that helped me a lot is to step through the code with gdb. The gdb macros described in etc/DEBUG are a great help to inspect the data structures. Then again, I am afraid I'll never understand garbage collection or redisplay. Oliver -- 11 Fructidor an 211 de la Révolution Liberté, Egalité, Fraternité!