GNU bug report logs - #13934
Minor bug in `command-line-functions'

Previous Next

Package: emacs;

Reported by: Xue Fuqiao <xfq.free <at> gmail.com>

Date: Tue, 12 Mar 2013 14:05:02 UTC

Severity: minor

Tags: notabug

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 13934 in the body.
You can then email your comments to 13934 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#13934; Package emacs. (Tue, 12 Mar 2013 14:05:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Xue Fuqiao <xfq.free <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 12 Mar 2013 14:05:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Xue Fuqiao <xfq.free <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Minor bug in `command-line-functions'
Date: Tue, 12 Mar 2013 22:02:21 +0800
In the doc string of `command-line-functions':
  Each function should access the dynamically bound variables `argi'
  (the current argument) and `command-line-args-left' (the remaining
  arguments).

But in startup.el:

  (internal-make-var-non-special 'argi)

Originally posted in:
http://lists.gnu.org/archive/html/help-gnu-emacs/2013-03/msg00145.html



In GNU Emacs 24.3.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.6.0)
 of 2013-03-10 on Emacs
Bzr revision: 111984 rgm <at> gnu.org-20130309202227-7xolc8f5fagp712b
Windowing system distributor `The X.Org Foundation', version 11.0.11300000
System Description:	Ubuntu 12.10

Configured using:
 `configure --enable-link-time-optimization'

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<menu> r e - e m - b u g <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)

-- 
Best regards, Xue Fuqiao.
http://www.emacswiki.org/emacs/XueFuqiao




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#13934; Package emacs. (Thu, 15 Aug 2019 06:01:02 GMT) Full text and rfc822 format available.

Message #8 received at 13934 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Xue Fuqiao <xfq.free <at> gmail.com>
Cc: 13934 <at> debbugs.gnu.org
Subject: Re: bug#13934: Minor bug in `command-line-functions'
Date: Wed, 14 Aug 2019 22:59:54 -0700
Xue Fuqiao <xfq.free <at> gmail.com> writes:

> In the doc string of `command-line-functions':
>   Each function should access the dynamically bound variables `argi'
>   (the current argument) and `command-line-args-left' (the remaining
>   arguments).
>
> But in startup.el:
>
>   (internal-make-var-non-special 'argi)
>
> Originally posted in:
> http://lists.gnu.org/archive/html/help-gnu-emacs/2013-03/msg00145.html

Stefan says that it's a doc bug:

---
List of functions to process unrecognized command-line arguments.
Each function should access the dynamically bound variables
‘argi’ (the current argument) and ‘command-line-args-left’ (the remaining
arguments).  The function should return non-nil only if it recognizes and
processes ‘argi’.  If it does so, it may consume successive arguments by
altering ‘command-line-args-left’ to remove them.
---

But...  if `argi' isn't dynamic, then just about everything here is
incorrect, surely.  So should `command-line-functions' just do whatever
they like and never refer to `argi'?  And consume
`command-line-args-left' however they like?

It's rather confusing, especially with the:

(with-no-warnings
  (defvar argi nil
    "Current command-line argument."))
(internal-make-var-non-special 'argi)


-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#13934; Package emacs. (Thu, 15 Aug 2019 06:07:01 GMT) Full text and rfc822 format available.

Message #11 received at 13934 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Xue Fuqiao <xfq.free <at> gmail.com>
Cc: 13934 <at> debbugs.gnu.org
Subject: Re: bug#13934: Minor bug in `command-line-functions'
Date: Wed, 14 Aug 2019 23:06:05 -0700
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> It's rather confusing, especially with the:
>
> (with-no-warnings
>   (defvar argi nil
>     "Current command-line argument."))
> (internal-make-var-non-special 'argi)

I tested with

(setq command-line-functions '((lambda () (message "argi %s" argi))))

and `argi' is indeed dynamically bound when 

                     ;; We have almost exhausted our options. See if the
                     ;; user has made any other command-line options available
                     (let ((hooks command-line-functions)
                           (did-hook nil))
                       (while (and hooks
                                   (not (setq did-hook (funcall (car hooks)))))
                         (setq hooks (cdr hooks)))

is executed...  so is argi dynamic in the startup.el file, but not
elsewhere in Emacs?  In which case there is really nothing to fix in the
doc string?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#13934; Package emacs. (Sat, 17 Aug 2019 07:06:02 GMT) Full text and rfc822 format available.

Message #14 received at 13934 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Lars Ingebrigtsen <larsi <at> gnus.org>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: xfq.free <at> gmail.com, 13934 <at> debbugs.gnu.org
Subject: Re: bug#13934: Minor bug in `command-line-functions'
Date: Sat, 17 Aug 2019 10:05:11 +0300
> From: Lars Ingebrigtsen <larsi <at> gnus.org>
> Date: Wed, 14 Aug 2019 23:06:05 -0700
> Cc: 13934 <at> debbugs.gnu.org
> 
> (setq command-line-functions '((lambda () (message "argi %s" argi))))
> 
> and `argi' is indeed dynamically bound when 
> 
>                      ;; We have almost exhausted our options. See if the
>                      ;; user has made any other command-line options available
>                      (let ((hooks command-line-functions)
>                            (did-hook nil))
>                        (while (and hooks
>                                    (not (setq did-hook (funcall (car hooks)))))
>                          (setq hooks (cdr hooks)))
> 
> is executed...  so is argi dynamic in the startup.el file, but not
> elsewhere in Emacs?  In which case there is really nothing to fix in the
> doc string?

Yes, I think so.  Stefan?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#13934; Package emacs. (Sat, 17 Aug 2019 12:47:01 GMT) Full text and rfc822 format available.

Message #17 received at 13934 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: xfq.free <at> gmail.com, Lars Ingebrigtsen <larsi <at> gnus.org>,
 13934 <at> debbugs.gnu.org
Subject: Re: bug#13934: Minor bug in `command-line-functions'
Date: Sat, 17 Aug 2019 08:46:35 -0400
>> (setq command-line-functions '((lambda () (message "argi %s" argi))))
>> 
>> and `argi' is indeed dynamically bound when 
>> 
>>                      ;; We have almost exhausted our options. See if the
>>                      ;; user has made any other command-line options available
>>                      (let ((hooks command-line-functions)
>>                            (did-hook nil))
>>                        (while (and hooks
>>                                    (not (setq did-hook (funcall (car hooks)))))
>>                          (setq hooks (cdr hooks)))
>> 
>> is executed...  so is argi dynamic in the startup.el file, but not
>> elsewhere in Emacs?  In which case there is really nothing to fix in the
>> doc string?
>
> Yes, I think so.  Stefan?

Indeed, it's dynamically scoped in startup.el but not elsewhere.


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#13934; Package emacs. (Sat, 17 Aug 2019 21:25:01 GMT) Full text and rfc822 format available.

Message #20 received at 13934 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: xfq.free <at> gmail.com, Eli Zaretskii <eliz <at> gnu.org>, 13934 <at> debbugs.gnu.org
Subject: Re: bug#13934: Minor bug in `command-line-functions'
Date: Sat, 17 Aug 2019 14:24:13 -0700
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

> Indeed, it's dynamically scoped in startup.el but not elsewhere.

So I think the doc string is pretty accurate here:

--
Each function should access the dynamically bound variables
`argi' (the current argument) and `command-line-args-left' (the remaining
arguments).
--

The functions should access these dynamically bound variables...  even
if argi isn't in other contexts, and I'm closing thing bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) notabug. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sat, 17 Aug 2019 21:25:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 13934 <at> debbugs.gnu.org and Xue Fuqiao <xfq.free <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sat, 17 Aug 2019 21:25:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 15 Sep 2019 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 338 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.