From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 4915 invoked from network); 24 Sep 2022 15:30:15 -0000 Received: from lists.gnu.org (209.51.188.17) by inbox.vuxu.org with ESMTPUTF8; 24 Sep 2022 15:30:15 -0000 Received: from localhost ([::1]:44370 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oc76a-0000Fm-Kv for ml@inbox.vuxu.org; Sat, 24 Sep 2022 11:30:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38546) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oc76V-0000Fb-59 for info-gnus-english@gnu.org; Sat, 24 Sep 2022 11:30:07 -0400 Received: from ciao.gmane.io ([116.202.254.214]:45336) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oc76T-0002cT-ET for info-gnus-english@gnu.org; Sat, 24 Sep 2022 11:30:06 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oc76P-0008Zg-JY for info-gnus-english@gnu.org; Sat, 24 Sep 2022 17:30:01 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: info-gnus-english@gnu.org To: info-gnus-english@gnu.org From: Emanuel Berg Subject: Re: Strip signature on reply without standard separator Date: Sat, 24 Sep 2022 17:29:54 +0200 Message-ID: <87edw0pz7x.fsf@dataswamp.org> References: <87y1vykpl2.fsf@icloud.com> <87zggbz3ho.fsf@icloud.com> <87bksaz837.fsf@icloud.com> <87a67ul62m.fsf@dataswamp.org> <87mtbufg7e.fsf@icloud.com> <875yii2oru.fsf@dataswamp.org> <875yih6n25.fsf_-_@icloud.com> <878rnaw3tw.fsf_-_@icloud.com> <87mtbgarre.fsf@icloud.com> <87czcb6gjp.fsf@dataswamp.org> <87r10onki5.fsf@icloud.com> <8735d47zos.fsf@dataswamp.org> <87fsgsgpsv.fsf@icloud.com> <87illkyybp.fsf@dataswamp.org> <8735cl6qce.fsf@icloud.com> <87zgesx3zt.fsf@dataswamp.org> <87leq9lqmn.fsf@icloud.com> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cancel-Lock: sha1:62xdy+SqQ3S67X5Y0nUskmgT8MU= Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=gegu-info-gnus-english@m.gmane-mx.org; helo=ciao.gmane.io 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: info-gnus-english@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Announcements and discussions for GNUS, the GNU Emacs Usenet newsreader \(in English\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: info-gnus-english-bounces+ml=inbox.vuxu.org@gnu.org Sender: "info-gnus-english" Satoshi Yoshida wrote: >> Just try - and you will fly ... >> >> ;;; -*- lexical-binding: t -*- >> >> (defun c () >> (message b) ) >> >> (defun a (b) >> (message b) >> (setq b "ah") >> (c) ) >> >> ;; (a "oh") >> ;; ^ eval me > > Error message is displayed on *Backtrace* buffer. Indeed, it shouldn't work with lexical/static scope since, despite `setq', b is not a global variable. So it'll be undefined in 'c'. > And "ah" is displayed on mini buffer in case without > ";;; -*- lexical-binding: t -*-". Yes, with dynamic/special scope it does work but it's not encouraged to use that unless one has a good reason. Actually, to use that _in general_ I think is never encouraged. One can still have individual variables that are global tho if and when that's called for ... >> Also, byte-compiling this will echo a warning saying b is >> a free variable, and this even under dynamic/special scope >> where the code actually works tho (i.e. this particular use >> of 'a' and 'c' where 'a' is used first). > > My understanding is 50%. That's normal and in particular in this case ... > Do you mean that using setq without ";;; -*- > lexical-binding: t -*-" has no problem? I'm saying 1) Always use lexical/static scope, i.e. put ;;; -*- lexical-binding: t -*- first in all and every new Elisp file you create. 2) In this case, since there is a formal parameter with the same name, `setq' does not create a global variable. (defun strip-signature (re &optional rep) (or rep (setq rep "")) ;; ... This is OK. Only if you misspell "rep" to something that isn't rep (or re) a global variable will be created :) -- underground experts united https://dataswamp.org/~incal