From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Tim Landscheidt Newsgroups: gmane.emacs.bugs Subject: bug#38427: 26.2; skeleton-insert does not set str consistently Date: Fri, 29 Nov 2019 15:59:41 +0000 Organization: http://www.tim-landscheidt.de/ Message-ID: <87r21qzn9u.fsf@passepartout.tim-landscheidt.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="109088"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) To: 38427@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Nov 29 17:01:34 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iaii5-000S72-Gk for geb-bug-gnu-emacs@m.gmane.org; Fri, 29 Nov 2019 17:01:33 +0100 Original-Received: from localhost ([::1]:60464 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iaii3-0001Mg-UG for geb-bug-gnu-emacs@m.gmane.org; Fri, 29 Nov 2019 11:01:31 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57308) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iaigg-0000yL-P5 for bug-gnu-emacs@gnu.org; Fri, 29 Nov 2019 11:00:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iaigd-0004LL-Jz for bug-gnu-emacs@gnu.org; Fri, 29 Nov 2019 11:00:05 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:55718) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iaigd-0004Kp-GQ for bug-gnu-emacs@gnu.org; Fri, 29 Nov 2019 11:00:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iaigc-0004Cn-EE for bug-gnu-emacs@gnu.org; Fri, 29 Nov 2019 11:00:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Tim Landscheidt Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 29 Nov 2019 16:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 38427 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.157504319716122 (code B ref -1); Fri, 29 Nov 2019 16:00:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 29 Nov 2019 15:59:57 +0000 Original-Received: from localhost ([127.0.0.1]:33458 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iaigW-0004Bx-R1 for submit@debbugs.gnu.org; Fri, 29 Nov 2019 10:59:57 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:50895) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iaigU-0004Bo-9A for submit@debbugs.gnu.org; Fri, 29 Nov 2019 10:59:55 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56879) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iaigT-0000jO-3O for bug-gnu-emacs@gnu.org; Fri, 29 Nov 2019 10:59:54 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iaigP-0003Vy-2z for bug-gnu-emacs@gnu.org; Fri, 29 Nov 2019 10:59:50 -0500 Original-Received: from andalucia.tim-landscheidt.de ([116.203.78.250]:58800 helo=andalucia) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iaigN-0003Oe-6i for bug-gnu-emacs@gnu.org; Fri, 29 Nov 2019 10:59:47 -0500 Original-Received: from dslb-002-207-123-250.002.207.pools.vodafone-ip.de ([2.207.123.250]:35064 helo=passepartout.tim-landscheidt.de) by andalucia with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iaigH-0003k3-D4 for bug-gnu-emacs@gnu.org; Fri, 29 Nov 2019 16:59:41 +0100 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:172655 Archived-At: Given (A): | (let | ((somevalues '(("a" . "123") ("b" . "456")))) | (skeleton-insert | '("Prompt: " | (cdr (assoc str somevalues)) | str ?\n))) Emacs asks for input with "Prompt: " and with "a" given, it outputs "a" instead of the expected "123". However, with (B): | (let | ((somevalues '(("a" . "123") ("b" . "456")))) | (skeleton-insert | '("Prompt: " | str ?\n | (cdr (assoc str somevalues)) | str ?\n))) and input "a", it outputs "a" and then "123". This appears to be due to str being set on the first use on its own and being: | (setq str (skeleton-read (quote "Prompt: ") nil nil)) before that (which is not a key in somevalues). This is probably best shown by (C): | (let | ((somevalues '(("a" . "123") ("b" . "456")))) | (skeleton-insert | '("Prompt: " | (cdr (assoc str somevalues)) | "nothing" ?\n))) which immediately outputs "nothing", without prompting the user. This might be a case of PEBKAC, but to me it feels "unnatu- ral" that removing "str ?\n" from (B) to (A) does not only remove the line from the output, but changes the meaning of the skeleton altogether. (In my use case, I could work around that by outputting str in a comment, and in general one could probable just add some dummy like "str (delete-backward-char (length str))", but this feels very hackish and brittle.)