From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: Searching for line beginning Date: Thu, 18 Aug 2022 14:37:42 +0200 Message-ID: <87mtc1hgmh.fsf@gnus.org> References: <831qtkm9ni.fsf@gnu.org> <878rnqq1qr.fsf@tcd.ie> <83pmh2kfaj.fsf@gnu.org> <8735dyhlud.fsf@gnus.org> <83o7wmkeqo.fsf@gnu.org> <87bksmf7vu.fsf@gnus.org> <83lerpiw2e.fsf@gnu.org> <87v8qt91pn.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31896"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: Eli Zaretskii , contovob@tcd.ie, emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Aug 18 14:39:49 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oOeoN-000880-P3 for ged-emacs-devel@m.gmane-mx.org; Thu, 18 Aug 2022 14:39:47 +0200 Original-Received: from localhost ([::1]:49204 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oOeoM-0006i6-HF for ged-emacs-devel@m.gmane-mx.org; Thu, 18 Aug 2022 08:39:46 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOema-0005Pp-Ir for emacs-devel@gnu.org; Thu, 18 Aug 2022 08:37:57 -0400 Original-Received: from quimby.gnus.org ([2a01:4f9:2b:f0f::2]:46116) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOemZ-00067A-1x; Thu, 18 Aug 2022 08:37:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References: In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=GFl10eSveYU+y14nZljIYbHdKdtBLshbSFITmu2Y5Nc=; b=LhShBZBsxEWmODaSxVI3ZdZdR+ FuexDZF61Mxweo41dZPm0qlFpai+yn6F9TehpOhHvNprKSZdlkCizYKc86LE7JXmGSLo9+m/5gBjT Ci6/0wfi2M1fkG8Y0uGQ5am5SxIsiSF0Q+KX9V3MQ76KERjbqrzJhBNdVGnQ3Vtqqn04=; Original-Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oOemP-0007NV-KL; Thu, 18 Aug 2022 14:37:48 +0200 In-Reply-To: (Stefan Monnier's message of "Wed, 17 Aug 2022 07:52:48 -0400") X-Now-Playing: The Soft Pink Truth's _Shall We Go On Sinning So That Grace May Increase? (Mixed Version)_: "So That Grace May Increase" Received-SPF: pass client-ip=2a01:4f9:2b:f0f::2; envelope-from=larsi@gnus.org; helo=quimby.gnus.org X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:293603 Archived-At: Stefan Monnier writes: > How 'bout adding an optional argument? That's also an option, but there's already an optional parameter here, so we'd end up with (buffer-substring (line-beginning-position nil t) (line-end-position nil t)) etc all over the place, which is a mouthful to both type and read. I've done some grepping and reading code in the Emacs code base to broadly guesstimate how much code means "give me a line" when they say "give me a line" (as opposed to a field), and I think it's basically most. So I think just adding a new function name for the behaviour most code is looking for would be a better long time solution. I was also wondering how much the optional N argument is used (because I wondered whether the new function should perhaps be N-less, because the N value isn't intuitive -- -1 and 1 aren't symmetric), and it's a lot more than I would have guessed -- about a third of the calls have a non-nil/non-1 N. Like: ;; Insert the entries just found. (while (= (line-beginning-position 0) (1- (point))) (backward-char)) and (insert "\n") (put-text-property (line-beginning-position 0) (line-beginning-position) 'mpc-file (mpc-songs-hashcons (cdr (assq 'file song)))) and (narrow-to-region (line-beginning-position) (line-beginning-position 2)) Now, some of these are just bad code (or were written before `propertize' existed), but the N will stay in the new function (if added).