From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: Re: Community improvements to the Emacs Widget Library manual? Date: Wed, 12 Jul 2023 07:18:53 +0200 Message-ID: <877cr59076.fsf@web.de> References: <87y1joph9u.fsf@web.de> <87lefmghr1.fsf@cyberscientist.ca> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8691"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:qkKeTnAZVjLgWG3PFTiEH41wvQo= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Jul 12 07:20:08 2023 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 1qJSGk-0001xG-QU for ged-emacs-devel@m.gmane-mx.org; Wed, 12 Jul 2023 07:20:06 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qJSFq-0002tx-8M; Wed, 12 Jul 2023 01:19:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qJSFm-0002tn-6x for emacs-devel@gnu.org; Wed, 12 Jul 2023 01:19:06 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qJSFk-0006bf-Q4 for emacs-devel@gnu.org; Wed, 12 Jul 2023 01:19:05 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1qJSFh-0000aR-SR for emacs-devel@gnu.org; Wed, 12 Jul 2023 07:19:01 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:307780 Archived-At: Bryce writes: > > What keyword handling do you mean, exactly (example)? I ask because > > AFAIR, `widget-create' works fine for user-defined widget types. > > Writing :widget-create functions works, but there are no examples in the > manual. I meant `widget-create', not :widget-create. > Perhaps a new macro should be introduced into the library which > facilitates accessing the nth argument _past the keyword-argument value > pairs_ in a reproducible way. The function widget-convert loops over the > arguments, assessing if they are keywords and makes them part of the > value of the :args property of the widget being created (if it is using > the default widget-convert functionality). But normally it should also set all of the given keywords - in this part: ;; Finally set the keyword args. (while keys (let ((next (nth 0 keys))) (if (keywordp next) (progn (widget-put widget next (nth 1 keys)) (setq keys (nthcdr 2 keys))) (setq keys nil)))) Maybe you just have found a case where this doesn't work correctly (Bug)? After creating a widget with `widget-create' I expect that all keywords are set and can be referred to using `widget-get'. The code above seems to fail when the arguments don't start with a keyword. Maybe this is not appropriate. AFAIR there are some bugs hiding in the code. We must be careful not to document bugs and unintended behavior. Not sure in this case (it's late here), but what I understand from what you are describing doesn't sound like desirable behavior. Michael.