From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Barry Margolin Newsgroups: gmane.emacs.help Subject: Re: beginning-of-buffer computations Date: Thu, 29 Jan 2015 17:17:16 -0500 Organization: A noiseless patient Spider Message-ID: References: NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1422570020 21782 80.91.229.3 (29 Jan 2015 22:20:20 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 29 Jan 2015 22:20:20 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Jan 29 23:20:20 2015 Return-path: Envelope-to: geh-help-gnu-emacs@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 1YGxRi-000725-Em for geh-help-gnu-emacs@m.gmane.org; Thu, 29 Jan 2015 23:20:18 +0100 Original-Received: from localhost ([::1]:33792 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YGxRh-0005UJ-HQ for geh-help-gnu-emacs@m.gmane.org; Thu, 29 Jan 2015 17:20:17 -0500 Original-Path: usenet.stanford.edu!news.kjsl.com!feeder.erje.net!eu.feeder.erje.net!weretis.net!feeder4.news.weretis.net!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!barmar.motzarella.org!.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 40 Injection-Info: barmar.motzarella.org; posting-host="2be9e9f5dd9af768b8861af71b85fc28"; logging-data="27856"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/7J25ULznvqTTIDWBV+eAY" User-Agent: MT-NewsWatcher/3.5.3b3 (Intel Mac OS X) Cancel-Lock: sha1:ZuSxWDnhEEJfQmLEsC8mZzdyn0M= Original-Xref: usenet.stanford.edu gnu.emacs.help:210092 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 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 Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:102371 Archived-At: In article , Marcin Borkowski wrote: > Hello people, > > I'm continuing my journey through simple.el, and I've just found > something strange. Apparently, a PhD in maths is not enough to grok the > arithmetic operations in beginning-of-buffer...;-) > > (goto-char (if (and arg (not (consp arg))) > (+ (point-min) > (if (> size 10000) > ;; Avoid overflow for large buffer sizes! > (* (prefix-numeric-value arg) > (/ size 10)) > (/ (+ 10 (* size (prefix-numeric-value arg))) 10))) > (point-min))) > > Now I pretty much see what is going on for "large buffers". For smaller > ones, I'm wondering what is the rationale behind the `+ 10' part? It > approximately adds one to the result (of course, the result is truncated > to the next-lower-integer, so it's not that, ekhm, simple) - but why? Good question. I don't think there's any difference between that and (+ 1 (/ (* size (prefix-numeric-value arg)) 10)) It would make more sense if it were adding 5, which would be the way to round up. > > (Not to mention the next line - not shown here - which `forward-line's > by 1. Why not just (beginning-of-line) instead?) forward-line ignores field boundaries, beginning-of-line doesn't. -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me ***