From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eshel Yaron via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#62864: 30.0.50; Interactive forms that fail to provide required arguments Date: Sat, 15 Apr 2023 19:34:58 +0300 Message-ID: Reply-To: Eshel Yaron Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17186"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: 62864@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Apr 15 18:36:50 2023 Return-path: Envelope-to: geb-bug-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 1pnitN-0004H4-JV for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 15 Apr 2023 18:36:49 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pnise-0005vf-CS; Sat, 15 Apr 2023 12:36:04 -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 1pnisc-0005vU-V4 for bug-gnu-emacs@gnu.org; Sat, 15 Apr 2023 12:36:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pnisc-0004Io-N8 for bug-gnu-emacs@gnu.org; Sat, 15 Apr 2023 12:36:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pnisc-0005y1-5E for bug-gnu-emacs@gnu.org; Sat, 15 Apr 2023 12:36:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eshel Yaron Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 15 Apr 2023 16:36:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 62864 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.168157650822870 (code B ref -1); Sat, 15 Apr 2023 16:36:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 15 Apr 2023 16:35:08 +0000 Original-Received: from localhost ([127.0.0.1]:49992 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pnirj-0005wn-VI for submit@debbugs.gnu.org; Sat, 15 Apr 2023 12:35:08 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:51216) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pniri-0005wb-85 for submit@debbugs.gnu.org; Sat, 15 Apr 2023 12:35:07 -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 1pnirh-0005qO-3e for bug-gnu-emacs@gnu.org; Sat, 15 Apr 2023 12:35:05 -0400 Original-Received: from mail.eshelyaron.com ([107.175.124.16] helo=eshelyaron.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pnirf-0003g3-4I for bug-gnu-emacs@gnu.org; Sat, 15 Apr 2023 12:35:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com; s=mail; t=1681576501; bh=rJRVxgmmWhnQJATPryzFoee7LnZSknan6dahIpbYy8g=; h=From:To:Subject:Date:From; b=C3rpRMHiXXCf153EcMmgGHK1o2W9PtoYb1XHMWq3XHXjDij5KQlzjo251NRY6GyvD TKe3GVhqsE/b8HlYtaY3BaroiQB2/FNnKPxJhbEi/UgxNLahfMYdYViRq12pzX3vCD oUvUKGZHfVDCIDpDu6DaS8xCSYIF46gsu5/bLKKMMjkTXL2YeUrwrnEk7YKewu+Zo+ SHt9+EbJ834eN3nsW4L8IW0qD6Lv40GT5DP2qQci1gz17M9bSIOkWwkh94Ll9iz7I0 YV2wrNGAwIldEn6CVihwIhuJ0JnlOnTILdZyDFo/7NAPKjN/QzuR7dp9S2byUTL6xw BDH7SUflzr3LA== Received-SPF: pass client-ip=107.175.124.16; envelope-from=me@eshelyaron.com; helo=eshelyaron.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:260060 Archived-At: Hi, I've noticed that dictionary.el defines some functions with an `interactive' form that doesn't provide their required arguments. For example, `dictionary-new-search' must be called with at least one argument, but when called interactively it gets called with no arguments. The other two such cases in dictionary.el are `dictionary-definition' and `dictionary-switch-tooltip-mode'. IIUC, these "commands" are never actually called interactively, and it should be safe to simply drop the `interactive' form so they don't show up in `M-x dictionary- TAB'. A quick scan of the lisp/ directory of emacs.git reveals a similar issue with the following function definitions: calc/calc-misc.el: calc-info-goto-node calc/calc-prog.el: calc-edit-macro-finish-edit emacs-lisp/backtrace.el: backtrace-expand-ellipsis emulation/edt-mapper.el: edt-map-key gnus/gnus-kill.el: gnus-kill-file-apply-string international/isearch-x.el: isearch-exit-recursive-edit net/dictionary.el: dictionary-new-search net/dictionary.el: dictionary-definition net/dictionary.el: dictionary-switch-tooltip-mode net/eudcb-bbdb.el: eudc-bbdb-set-server net/eudcb-ldap.el: eudc-ldap-get-field-list net/eudcb-mab.el: eudc-mab-set-server net/eudcb-macos-contacts.el: eudc-macos-contacts-set-server net/newst-backend.el: newsticker-save-item net/newst-plainview.el: newsticker-set-auto-narrow-to-feed net/newst-plainview.el: newsticker-set-auto-narrow-to-item net/newst-reader.el: newsticker-browse-url-item net/ntlm.el: ntlm-build-auth-request net/socks.el: socks-open-connection obsolete/eudcb-ph.el: eudc-ph-get-field-list obsolete/html2text.el: html2text-remove-tags obsolete/iswitchb.el: iswitchb-window-buffer-p obsolete/landmark.el: landmark-print-distance-int obsolete/landmark.el: landmark-print-moves obsolete/tpu-mapper.el: tpu-map-key org/org-colview.el: org-columns-compute org/org-ctags.el: org-ctags-visit-buffer-or-file org/org-keys.el: org-speed-move-safe org/org-plot.el: org-plot/gnuplot-to-grid-data org/org-src.el: org-src-associate-babel-session org/org.el: org-agenda-prepare-buffers org/org.el: org--math-always-on progmodes/dcl-mode.el: dcl-indent-to progmodes/ebrowse.el: ebrowse-redraw-marks progmodes/ebrowse.el: ebrowse-view-file-other-frame progmodes/gud.el: gud-basic-call progmodes/idlwave.el: idlwave-display-user-catalog-widget progmodes/opascal.el: opascal-debug-tokenize-region progmodes/prolog.el: prolog-goto-predicate-info progmodes/verilog-mode.el: verilog-backward-case-item progmodes/verilog-mode.el: verilog-just-one-space progmodes/verilog-mode.el: verilog-indent-declaration progmodes/vhdl-mode.el: vhdl-template-array progmodes/vhdl-mode.el: vhdl-template-if-then-use progmodes/vhdl-mode.el: vhdl-template-record progmodes/vhdl-mode.el: vhdl-doc-variable textmodes/reftex-index.el: reftex-index-analyze-entry calculator.el: calculator-saved-move dframe.el: dframe-get-focus filesets.el: filesets-convert-patterns speedbar.el: speedbar-toggle-etags treesit.el: treesit--explorer-jump woman.el: woman-reset-emulation Here's the code I used to perform the scan, note it assumes emacs.git is at ~/checkouts/emacs: (defun required-argument-p (arg) (not (member arg '(&optional &rest)))) (defun find-bad-interactive-declarations () (interactive) (dolist (file (directory-files-recursively "~/checkouts/emacs/lisp" (rx ".el" eos))) (with-current-buffer (find-file-noselect file t t) (goto-char (point-min)) (ignore-errors (while-let ((sexp (condition-case _ (read (current-buffer)) (end-of-file nil)))) (pcase sexp (`(defun ,fun ,`(,(pred required-argument-p) . ,_) . ,(or `(,_ (interactive) . ,_) `((interactive) . ,_))) (message "%s: %s" (file-relative-name file "~/checkouts/emacs/lisp") fun)))))))) Best, Eshel In GNU Emacs 30.0.50 (build 6, x86_64-apple-darwin22.4.0, NS appkit-2299.50 Version 13.3.1 (Build 22E261)) of 2023-04-15 built on esmac Repository revision: 234be3d670cf04503a81f74617239f62364457ae Repository branch: master Windowing system distributor 'Apple', version 10.3.2299 System Description: macOS 13.3.1 Configured using: 'configure CFLAGS=-O3 --with-native-compilation --with-json --with-tree-sitter' Configured features: ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB Important settings: value of $LC_CTYPE: UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068 epg-config gnus-util text-property-search time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs comp comp-cstr warnings icons subr-x rx cl-seq cl-macs gv cl-extra help-mode bytecomp byte-compile cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 77774 10775) (symbols 48 7102 0) (strings 32 19402 1802) (string-bytes 1 593314) (vectors 16 15917) (vector-slots 8 280865 12269) (floats 8 27 24) (intervals 56 223 0) (buffers 984 11))