From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: Adding String to Beginning of Lines Date: Tue, 10 Nov 2020 17:31:02 -0500 Message-ID: References: <20201110111024.GA15992@tuxteam.de> <87zh3pctr1.fsf@web.de> <87o8k5csqj.fsf@web.de> <87tutxb7yz.fsf@web.de> <87y2j9f186.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21217"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:xyMz95k4WZGH3CfOGokIDG0eYNc= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Nov 10 23:32:31 2020 Return-path: Envelope-to: geh-help-gnu-emacs@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 1kccBi-0005PO-Tu for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 10 Nov 2020 23:32:30 +0100 Original-Received: from localhost ([::1]:51030 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kccBi-0002T4-04 for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 10 Nov 2020 17:32:30 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39980) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kccAT-0002OQ-7B for help-gnu-emacs@gnu.org; Tue, 10 Nov 2020 17:31:16 -0500 Original-Received: from static.214.254.202.116.clients.your-server.de ([116.202.254.214]:50806 helo=ciao.gmane.io) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kccAR-0006dK-CW for help-gnu-emacs@gnu.org; Tue, 10 Nov 2020 17:31:12 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kccAO-0003w2-Dz for help-gnu-emacs@gnu.org; Tue, 10 Nov 2020 23:31:08 +0100 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/10 09:16:09 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:125218 Archived-At: > If you look at the definition: > > (defsubst string-empty-p (string) > "Check whether STRING is empty." > (string= string "")) FWIW, I agree with Louis on this one: (equal string "") is shorter and just as clear as (or even more clear than) `(string-empty-p string)`, so I'm no fan of such a definition. > | (defun rcd-string-empty-p (s) > | "Returns T if string is empty or NIL" > | (let ((s (if (null s) "" s))) > | (if (stringp s) > | (if (zerop (length s)) t nil)))) > > That's more or less the same as > > (defun rcd-string-empty-p (s) > (or (null s) (and (stringp s) (zerop (length s))))) BTW since (length nil) is zero, this can be reduced in most cases to (zerop (length s)), the main difference being that the shorter definition signals an error if passed an object that's neither an array nor a proper list. > But why handling an empty list specially, and not other empty sequences, > like the empty vector? That's what `seq-empty-p' in seq.el does, btw. Indeed, Stefan