From unknown Sat Jun 14 18:55:02 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63733: 28.3; error ("Unknown option =?UTF-8?Q?=E2=80=98--batch=E2=80=99?=") Resent-From: Ulrich =?UTF-8?Q?M=C3=BCller?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 26 May 2023 07:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 63733 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 63733@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.16850870442043 (code B ref -1); Fri, 26 May 2023 07:45:01 +0000 Received: (at submit) by debbugs.gnu.org; 26 May 2023 07:44:04 +0000 Received: from localhost ([127.0.0.1]:48694 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q2S7H-0000Wr-0m for submit@debbugs.gnu.org; Fri, 26 May 2023 03:44:04 -0400 Received: from lists.gnu.org ([209.51.188.17]:44506) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q2S7C-0000WH-T3 for submit@debbugs.gnu.org; Fri, 26 May 2023 03:44:01 -0400 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 1q2S7C-0000g7-Lc for bug-gnu-emacs@gnu.org; Fri, 26 May 2023 03:43:58 -0400 Received: from woodpecker.gentoo.org ([140.211.166.183] helo=smtp.gentoo.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1q2S79-00074E-Fh for bug-gnu-emacs@gnu.org; Fri, 26 May 2023 03:43:58 -0400 From: Ulrich =?UTF-8?Q?M=C3=BCller?= Date: Fri, 26 May 2023 09:43:40 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=140.211.166.183; envelope-from=ulm@gentoo.org; helo=smtp.gentoo.org X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.6 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) Something is strange with option parsing: $ emacs -Q -batch -batch --eval '(message "hello, world")' hello, world $ emacs -Q --batch --batch --eval '(message "hello, world")' hello, world $ emacs -Q -batch --batch --eval '(message "hello, world")' Debugger entered--Lisp error: (error "Unknown option =E2=80=98--batch=E2=80= =99") signal(error ("Unknown option =E2=80=98--batch=E2=80=99")) error("Unknown option `%s'" "--batch") command-line-1(("--batch" "-Q" "--eval" "(message \"hello, world\")")) command-line() normal-top-level() $ emacs -Q --batch -batch --eval '(message "hello, world")' Debugger entered--Lisp error: (error "Unknown option =E2=80=98-batch=E2=80= =99") signal(error ("Unknown option =E2=80=98-batch=E2=80=99")) error("Unknown option `%s'" "-batch") command-line-1(("-batch" "-Q" "--eval" "(message \"hello, world\")")) command-line() normal-top-level() I would expect -batch/--batch to be idempotent in all four combinations above. (I noticed the problem with a Gentoo package, where we add -batch to Emacs options, and upstream's Makefile adds another --batch.) In GNU Emacs 28.3 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1= .17.8) of 2023-05-14 built on localhost Windowing system distributor 'The X.Org Foundation', version 11.0.12101008 System Description: Gentoo Linux Configured using: 'configure --prefix=3D/usr --build=3Dx86_64-pc-linux-gnu --host=3Dx86_64-pc-linux-gnu --mandir=3D/usr/share/man --infodir=3D/usr/share/info --datadir=3D/usr/share --sysconfdir=3D/etc --localstatedir=3D/var/lib --datarootdir=3D/usr/share --disable-silent-rules --docdir=3D/usr/share/doc/emacs-28.3_rc1-r2 --htmldir=3D/usr/share/doc/emacs-28.3_rc1-r2/html --libdir=3D/usr/lib64 --program-suffix=3D-emacs-28 --includedir=3D/usr/include/emacs-28 --infodir=3D/usr/share/info/emacs-28 --localstatedir=3D/var --enable-locallisppath=3D/etc/emacs:/usr/share/emacs/site-lisp --without-compress-install --without-hesiod --without-pop --with-file-notification=3Dinotify --with-pdumper --enable-acl --with-dbus --with-modules --with-gameuser=3D:gamestat --with-libgmp --with-gpm --without-native-compilation --without-json --without-kerberos --without-kerberos5 --with-lcms2 --with-xml2 --without-mailutils --without-selinux --with-gnutls --without-libsystemd --with-threads --without-wide-int --with-sound=3Dalsa --with-zlib --with-x --without-ns --without-gconf --with-gsettings --without-toolkit-scroll-bars --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-xpm --with-imagemagick --with-xft --with-cairo --with-harfbuzz --with-libotf --with-m17n-flt --with-x-toolkit=3Dlucid --with-xaw3d --with-dumping=3Dpdumper 'CFLAGS=3D-march=3Dnative -ggdb -O2 -pipe' 'LDFLAGS=3D-Wl,-O1 -Wl,--as-needed'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ IMAGEMAGICK JPEG LCMS2 LIBOTF LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF X11 XAW3D XDBE XIM XPM LUCID ZLIB Important settings: value of $LC_CTYPE: en_GB.UTF-8 value of $LANG: POSIX locale-coding-system: utf-8-unix Major mode: LaTeX/P Minor modes in effect: global-edit-server-edit-mode: t TeX-PDF-mode: t shell-dirtrack-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t auto-fill-function: do-auto-fill transient-mark-mode: (only . t) Load-path shadows: /usr/share/emacs/site-lisp/cmake-mode hides /usr/share/emacs/site-lisp/cmak= e/cmake-mode /usr/share/emacs/site-lisp/desktop-entry-mode hides /usr/share/emacs/site-l= isp/desktop-file-utils/desktop-entry-mode /usr/share/emacs/site-lisp/transient/transient hides /usr/share/emacs/28.3/= lisp/transient ~ulm/lib/emacs/type-break hides /usr/share/emacs/28.3/lisp/type-break /usr/share/emacs/site-lisp/org-mode/org-num hides /usr/share/emacs/28.3/lis= p/org/org-num /usr/share/emacs/site-lisp/org-mode/org-src hides /usr/share/emacs/28.3/lis= p/org/org-src /usr/share/emacs/site-lisp/org-mode/ol hides /usr/share/emacs/28.3/lisp/org= /ol /usr/share/emacs/site-lisp/org-mode/ob-maxima hides /usr/share/emacs/28.3/l= isp/org/ob-maxima /usr/share/emacs/site-lisp/org-mode/ol-eshell hides /usr/share/emacs/28.3/l= isp/org/ol-eshell /usr/share/emacs/site-lisp/org-mode/org-loaddefs hides /usr/share/emacs/28.= 3/lisp/org/org-loaddefs /usr/share/emacs/site-lisp/org-mode/org-attach-git hides /usr/share/emacs/2= 8.3/lisp/org/org-attach-git /usr/share/emacs/site-lisp/org-mode/oc-natbib hides /usr/share/emacs/28.3/l= isp/org/oc-natbib /usr/share/emacs/site-lisp/org-mode/org-archive hides /usr/share/emacs/28.3= /lisp/org/org-archive /usr/share/emacs/site-lisp/org-mode/org-plot hides /usr/share/emacs/28.3/li= sp/org/org-plot /usr/share/emacs/site-lisp/org-mode/oc hides /usr/share/emacs/28.3/lisp/org= /oc /usr/share/emacs/site-lisp/org-mode/ob-org hides /usr/share/emacs/28.3/lisp= /org/ob-org /usr/share/emacs/site-lisp/org-mode/org-habit hides /usr/share/emacs/28.3/l= isp/org/org-habit /usr/share/emacs/site-lisp/org-mode/ob hides /usr/share/emacs/28.3/lisp/org= /ob /usr/share/emacs/site-lisp/org-mode/ox-latex hides /usr/share/emacs/28.3/li= sp/org/ox-latex /usr/share/emacs/site-lisp/org-mode/ob-haskell hides /usr/share/emacs/28.3/= lisp/org/ob-haskell /usr/share/emacs/site-lisp/org-mode/org-crypt hides /usr/share/emacs/28.3/l= isp/org/org-crypt /usr/share/emacs/site-lisp/org-mode/ob-gnuplot hides /usr/share/emacs/28.3/= lisp/org/ob-gnuplot /usr/share/emacs/site-lisp/org-mode/ob-eval hides /usr/share/emacs/28.3/lis= p/org/ob-eval /usr/share/emacs/site-lisp/org-mode/ob-julia hides /usr/share/emacs/28.3/li= sp/org/ob-julia /usr/share/emacs/site-lisp/org-mode/ob-fortran hides /usr/share/emacs/28.3/= lisp/org/ob-fortran /usr/share/emacs/site-lisp/org-mode/ob-latex hides /usr/share/emacs/28.3/li= sp/org/ob-latex /usr/share/emacs/site-lisp/org-mode/ob-scheme hides /usr/share/emacs/28.3/l= isp/org/ob-scheme /usr/share/emacs/site-lisp/org-mode/ox-publish hides /usr/share/emacs/28.3/= lisp/org/ox-publish /usr/share/emacs/site-lisp/org-mode/org-colview hides /usr/share/emacs/28.3= /lisp/org/org-colview /usr/share/emacs/site-lisp/org-mode/ob-css hides /usr/share/emacs/28.3/lisp= /org/ob-css /usr/share/emacs/site-lisp/org-mode/org-ctags hides /usr/share/emacs/28.3/l= isp/org/org-ctags /usr/share/emacs/site-lisp/org-mode/ol-mhe hides /usr/share/emacs/28.3/lisp= /org/ol-mhe /usr/share/emacs/site-lisp/org-mode/ob-octave hides /usr/share/emacs/28.3/l= isp/org/ob-octave /usr/share/emacs/site-lisp/org-mode/org-table hides /usr/share/emacs/28.3/l= isp/org/org-table /usr/share/emacs/site-lisp/org-mode/org-attach hides /usr/share/emacs/28.3/= lisp/org/org-attach /usr/share/emacs/site-lisp/org-mode/ob-core hides /usr/share/emacs/28.3/lis= p/org/ob-core /usr/share/emacs/site-lisp/org-mode/org-inlinetask hides /usr/share/emacs/2= 8.3/lisp/org/org-inlinetask /usr/share/emacs/site-lisp/org-mode/org-pcomplete hides /usr/share/emacs/28= .3/lisp/org/org-pcomplete /usr/share/emacs/site-lisp/org-mode/org-lint hides /usr/share/emacs/28.3/li= sp/org/org-lint /usr/share/emacs/site-lisp/org-mode/org-timer hides /usr/share/emacs/28.3/l= isp/org/org-timer /usr/share/emacs/site-lisp/org-mode/ob-eshell hides /usr/share/emacs/28.3/l= isp/org/ob-eshell /usr/share/emacs/site-lisp/org-mode/org-id hides /usr/share/emacs/28.3/lisp= /org/org-id /usr/share/emacs/site-lisp/org-mode/org-datetree hides /usr/share/emacs/28.= 3/lisp/org/org-datetree /usr/share/emacs/site-lisp/org-mode/ob-sql hides /usr/share/emacs/28.3/lisp= /org/ob-sql /usr/share/emacs/site-lisp/org-mode/org-capture hides /usr/share/emacs/28.3= /lisp/org/org-capture /usr/share/emacs/site-lisp/org-mode/ox-html hides /usr/share/emacs/28.3/lis= p/org/ox-html /usr/share/emacs/site-lisp/org-mode/ob-forth hides /usr/share/emacs/28.3/li= sp/org/ob-forth /usr/share/emacs/site-lisp/org-mode/ob-sass hides /usr/share/emacs/28.3/lis= p/org/ob-sass /usr/share/emacs/site-lisp/org-mode/ob-emacs-lisp hides /usr/share/emacs/28= .3/lisp/org/ob-emacs-lisp /usr/share/emacs/site-lisp/org-mode/ol-w3m hides /usr/share/emacs/28.3/lisp= /org/ol-w3m /usr/share/emacs/site-lisp/org-mode/org-mobile hides /usr/share/emacs/28.3/= lisp/org/org-mobile /usr/share/emacs/site-lisp/org-mode/ox-ascii hides /usr/share/emacs/28.3/li= sp/org/ox-ascii /usr/share/emacs/site-lisp/org-mode/ob-sqlite hides /usr/share/emacs/28.3/l= isp/org/ob-sqlite /usr/share/emacs/site-lisp/org-mode/org-mouse hides /usr/share/emacs/28.3/l= isp/org/org-mouse /usr/share/emacs/site-lisp/org-mode/org-agenda hides /usr/share/emacs/28.3/= lisp/org/org-agenda /usr/share/emacs/site-lisp/org-mode/ob-calc hides /usr/share/emacs/28.3/lis= p/org/ob-calc /usr/share/emacs/site-lisp/org-mode/ob-lilypond hides /usr/share/emacs/28.3= /lisp/org/ob-lilypond /usr/share/emacs/site-lisp/org-mode/ob-comint hides /usr/share/emacs/28.3/l= isp/org/ob-comint /usr/share/emacs/site-lisp/org-mode/ob-ruby hides /usr/share/emacs/28.3/lis= p/org/ob-ruby /usr/share/emacs/site-lisp/org-mode/org-feed hides /usr/share/emacs/28.3/li= sp/org/org-feed /usr/share/emacs/site-lisp/org-mode/ob-dot hides /usr/share/emacs/28.3/lisp= /org/ob-dot /usr/share/emacs/site-lisp/org-mode/ob-tangle hides /usr/share/emacs/28.3/l= isp/org/ob-tangle /usr/share/emacs/site-lisp/org-mode/ob-awk hides /usr/share/emacs/28.3/lisp= /org/ob-awk /usr/share/emacs/site-lisp/org-mode/org-entities hides /usr/share/emacs/28.= 3/lisp/org/org-entities /usr/share/emacs/site-lisp/org-mode/ob-plantuml hides /usr/share/emacs/28.3= /lisp/org/ob-plantuml /usr/share/emacs/site-lisp/org-mode/ob-lob hides /usr/share/emacs/28.3/lisp= /org/ob-lob /usr/share/emacs/site-lisp/org-mode/org-element hides /usr/share/emacs/28.3= /lisp/org/org-element /usr/share/emacs/site-lisp/org-mode/ox-icalendar hides /usr/share/emacs/28.= 3/lisp/org/ox-icalendar /usr/share/emacs/site-lisp/org-mode/org-duration hides /usr/share/emacs/28.= 3/lisp/org/org-duration /usr/share/emacs/site-lisp/org-mode/ob-R hides /usr/share/emacs/28.3/lisp/o= rg/ob-R /usr/share/emacs/site-lisp/org-mode/org-faces hides /usr/share/emacs/28.3/l= isp/org/org-faces /usr/share/emacs/site-lisp/org-mode/org-tempo hides /usr/share/emacs/28.3/l= isp/org/org-tempo /usr/share/emacs/site-lisp/org-mode/ol-man hides /usr/share/emacs/28.3/lisp= /org/ol-man /usr/share/emacs/site-lisp/org-mode/ob-matlab hides /usr/share/emacs/28.3/l= isp/org/ob-matlab /usr/share/emacs/site-lisp/org-mode/ox-texinfo hides /usr/share/emacs/28.3/= lisp/org/ox-texinfo /usr/share/emacs/site-lisp/org-mode/ox-man hides /usr/share/emacs/28.3/lisp= /org/ox-man /usr/share/emacs/site-lisp/org-mode/org-clock hides /usr/share/emacs/28.3/l= isp/org/org-clock /usr/share/emacs/site-lisp/org-mode/org-refile hides /usr/share/emacs/28.3/= lisp/org/org-refile /usr/share/emacs/site-lisp/org-mode/ox-koma-letter hides /usr/share/emacs/2= 8.3/lisp/org/ox-koma-letter /usr/share/emacs/site-lisp/org-mode/ob-sed hides /usr/share/emacs/28.3/lisp= /org/ob-sed /usr/share/emacs/site-lisp/org-mode/ob-python hides /usr/share/emacs/28.3/l= isp/org/ob-python /usr/share/emacs/site-lisp/org-mode/oc-biblatex hides /usr/share/emacs/28.3= /lisp/org/oc-biblatex /usr/share/emacs/site-lisp/org-mode/ob-ocaml hides /usr/share/emacs/28.3/li= sp/org/ob-ocaml /usr/share/emacs/site-lisp/org-mode/org-protocol hides /usr/share/emacs/28.= 3/lisp/org/org-protocol /usr/share/emacs/site-lisp/org-mode/org hides /usr/share/emacs/28.3/lisp/or= g/org /usr/share/emacs/site-lisp/org-mode/oc-basic hides /usr/share/emacs/28.3/li= sp/org/oc-basic /usr/share/emacs/site-lisp/org-mode/ox-odt hides /usr/share/emacs/28.3/lisp= /org/ox-odt /usr/share/emacs/site-lisp/org-mode/ob-screen hides /usr/share/emacs/28.3/l= isp/org/ob-screen /usr/share/emacs/site-lisp/org-mode/ob-lua hides /usr/share/emacs/28.3/lisp= /org/ob-lua /usr/share/emacs/site-lisp/org-mode/org-keys hides /usr/share/emacs/28.3/li= sp/org/org-keys /usr/share/emacs/site-lisp/org-mode/ob-processing hides /usr/share/emacs/28= .3/lisp/org/ob-processing /usr/share/emacs/site-lisp/org-mode/ol-docview hides /usr/share/emacs/28.3/= lisp/org/ol-docview /usr/share/emacs/site-lisp/org-mode/ol-bbdb hides /usr/share/emacs/28.3/lis= p/org/ol-bbdb /usr/share/emacs/site-lisp/org-mode/ob-shell hides /usr/share/emacs/28.3/li= sp/org/ob-shell /usr/share/emacs/site-lisp/org-mode/ol-gnus hides /usr/share/emacs/28.3/lis= p/org/ol-gnus /usr/share/emacs/site-lisp/org-mode/org-compat hides /usr/share/emacs/28.3/= lisp/org/org-compat /usr/share/emacs/site-lisp/org-mode/ob-lisp hides /usr/share/emacs/28.3/lis= p/org/ob-lisp /usr/share/emacs/site-lisp/org-mode/ol-doi hides /usr/share/emacs/28.3/lisp= /org/ol-doi /usr/share/emacs/site-lisp/org-mode/ob-C hides /usr/share/emacs/28.3/lisp/o= rg/ob-C /usr/share/emacs/site-lisp/org-mode/ox-org hides /usr/share/emacs/28.3/lisp= /org/ox-org /usr/share/emacs/site-lisp/org-mode/ol-eww hides /usr/share/emacs/28.3/lisp= /org/ol-eww /usr/share/emacs/site-lisp/org-mode/ob-ditaa hides /usr/share/emacs/28.3/li= sp/org/ob-ditaa /usr/share/emacs/site-lisp/org-mode/ox-beamer hides /usr/share/emacs/28.3/l= isp/org/ox-beamer /usr/share/emacs/site-lisp/org-mode/org-footnote hides /usr/share/emacs/28.= 3/lisp/org/org-footnote /usr/share/emacs/site-lisp/org-mode/oc-csl hides /usr/share/emacs/28.3/lisp= /org/oc-csl /usr/share/emacs/site-lisp/org-mode/ol-bibtex hides /usr/share/emacs/28.3/l= isp/org/ol-bibtex /usr/share/emacs/site-lisp/org-mode/ox-md hides /usr/share/emacs/28.3/lisp/= org/ox-md /usr/share/emacs/site-lisp/org-mode/org-indent hides /usr/share/emacs/28.3/= lisp/org/org-indent /usr/share/emacs/site-lisp/org-mode/ob-makefile hides /usr/share/emacs/28.3= /lisp/org/ob-makefile /usr/share/emacs/site-lisp/org-mode/ox hides /usr/share/emacs/28.3/lisp/org= /ox /usr/share/emacs/site-lisp/org-mode/ob-groovy hides /usr/share/emacs/28.3/l= isp/org/ob-groovy /usr/share/emacs/site-lisp/org-mode/ob-clojure hides /usr/share/emacs/28.3/= lisp/org/ob-clojure /usr/share/emacs/site-lisp/org-mode/ol-rmail hides /usr/share/emacs/28.3/li= sp/org/ol-rmail /usr/share/emacs/site-lisp/org-mode/ol-irc hides /usr/share/emacs/28.3/lisp= /org/ol-irc /usr/share/emacs/site-lisp/org-mode/org-goto hides /usr/share/emacs/28.3/li= sp/org/org-goto /usr/share/emacs/site-lisp/org-mode/ob-js hides /usr/share/emacs/28.3/lisp/= org/ob-js /usr/share/emacs/site-lisp/org-mode/ob-perl hides /usr/share/emacs/28.3/lis= p/org/ob-perl /usr/share/emacs/site-lisp/org-mode/org-version hides /usr/share/emacs/28.3= /lisp/org/org-version /usr/share/emacs/site-lisp/org-mode/org-list hides /usr/share/emacs/28.3/li= sp/org/org-list /usr/share/emacs/site-lisp/org-mode/org-macro hides /usr/share/emacs/28.3/l= isp/org/org-macro /usr/share/emacs/site-lisp/org-mode/org-macs hides /usr/share/emacs/28.3/li= sp/org/org-macs /usr/share/emacs/site-lisp/org-mode/ob-table hides /usr/share/emacs/28.3/li= sp/org/ob-table /usr/share/emacs/site-lisp/org-mode/ol-info hides /usr/share/emacs/28.3/lis= p/org/ol-info /usr/share/emacs/site-lisp/org-mode/ob-ref hides /usr/share/emacs/28.3/lisp= /org/ob-ref /usr/share/emacs/site-lisp/org-mode/ob-java hides /usr/share/emacs/28.3/lis= p/org/ob-java /usr/share/emacs/site-lisp/org-mode/ob-exp hides /usr/share/emacs/28.3/lisp= /org/ob-exp /usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/28.3/lisp/net/s= asl ~ulm/lib/emacs/todo-mode hides /usr/share/emacs/28.3/lisp/calendar/todo-mode Features: (shadow emacsbug tmm markdown-mode cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs vc-hg vc-bzr tramp-cache calc-yank make-mode time-stamp autoconf-mode cmake-mode rst ispell edit-server rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap sgml-mode facemenu nxml-util nxml-enc xmltok python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat ls-lisp cus-edit pp cus-start cus-load gnus-draft solar cal-dst holidays hol-loaddefs cal-move gnus-fun tar-mode arc-mode archive-mode gnus-icalendar org-capture org-refile org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol rx org-fold org-fold-core org-keys oc org-loaddefs find-func org-version org-compat org-macs format-spec icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs info preview tex-buf noutline outline font-latex latex edmacro kmacro latex-flymake flymake-proc flymake project warnings tex-ispell tex-style tex texmathp tex-mode compile latexenc calc-comb shr-color color vc smerge-mode diff calc-undo calc-misc calccomp calc-aent calc-arith calc-alg calc-ext calc-menu calc calc-loaddefs rect calc-macs mailalias thingatpt supercite regi bbdb-message sort gnus-cite flow-fill cl-extra help-mode mm-archive mail-extr gnus-async gnus-bcklg qp gnus-ml utf-7 nndraft nnmh nndoc epa-file gnutls network-stream nsm nnfolder bbdb-gnus bbdb-mua bbdb-com crm nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache gnus-sum shr kinsoku svg dom browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util url-parse url-vars mailcap gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win gnus nnheader wid-edit mule-util dired-aux disp-table whitespace conf-mode misearch multi-isearch vc-git diff-mode easy-mmode vc-dispatcher ebuild-mode skeleton sh-script smie executable quilt yaml-mode shell pcomplete comint ansi-color ring tango-dark-theme bbdb bbdb-site timezone message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs text-property-search time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader smtpmail auth-source eieio eieio-core eieio-loaddefs password-cache json subr-x map seq byte-opt bytecomp byte-compile cconv sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils fff jka-compr server mic-paren site-gentoo w3m-load ecb-autoloads mime-setup mail-mime-setup semi-setup advice semi-def alist path-util apel-ver product preview-latex vm-autoloads vm-version vm-vars mmm-auto mmm-vars mmm-utils mmm-compat cl-macs gv cl-seq cl-loaddefs cl-lib bbdb-loaddefs auto-loads tex-site iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd 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 cl-generic 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 simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 668596 207352) (symbols 48 42264 36) (strings 32 169335 13441) (string-bytes 1 5584176) (vectors 16 84122) (vector-slots 8 1911782 101724) (floats 8 799 364) (intervals 56 27042 2468) (buffers 992 77)) From unknown Sat Jun 14 18:55:02 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63733: 28.3; error ("Unknown option =?UTF-8?Q?=E2=80=98--batch=E2=80=99?=") Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 26 May 2023 09:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63733 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ulrich =?UTF-8?Q?M=C3=BCller?= Cc: 63733@debbugs.gnu.org Received: via spool by 63733-submit@debbugs.gnu.org id=B63733.168509219912972 (code B ref 63733); Fri, 26 May 2023 09:10:02 +0000 Received: (at 63733) by debbugs.gnu.org; 26 May 2023 09:09:59 +0000 Received: from localhost ([127.0.0.1]:48799 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q2TSR-0003NA-7C for submit@debbugs.gnu.org; Fri, 26 May 2023 05:09:59 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60874) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q2TSO-0003Mr-QP for 63733@debbugs.gnu.org; Fri, 26 May 2023 05:09:57 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2TSJ-0000q7-8T; Fri, 26 May 2023 05:09:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=Qxgk7O8AMIXjhw+Ott8/0c2TKE4atms/qjOh6HsOwr4=; b=HNZPM8R2B8ZzOMa+Lfxu ZOWf6Kmqq7L0KvyqBjCLIa68FWuvr9D7aHhftgM6kXuRns5fnUttB3Yd8T1rV50enL7an2NnO6ay+ AQ7UR3YcJm+kTEfII8/7BqM5qjgoF+0rHfrZxXfCcHHpeJg80luqhxgT+IGSud00JOlpoSzwadVrs zTHVCi7IOSnheDsxIjCon+DJ7jKPnqOLddgq4TgxjnUCWfFfBG3SIwcnD5mr3FxoDsI1SYcn4gfMJ P7G7b1VCVMeEh6KRTxZru6AhGeoJ1TGkNhkCotbwr4lf02oZjk2qMMNkocOE3w/C2yjJ3e/I/cQrt p8QHICQGqpxwNA==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2TSI-0006qZ-ND; Fri, 26 May 2023 05:09:51 -0400 Date: Fri, 26 May 2023 12:10:21 +0300 Message-Id: <83h6rzlapu.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Ulrich =?UTF-8?Q?M=C3=BCller?= on Fri, 26 May 2023 09:43:40 +0200) References: MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Ulrich Müller > Date: Fri, 26 May 2023 09:43:40 +0200 > > Something is strange with option parsing: > > $ emacs -Q -batch -batch --eval '(message "hello, world")' > hello, world > $ emacs -Q --batch --batch --eval '(message "hello, world")' > hello, world > $ emacs -Q -batch --batch --eval '(message "hello, world")' > Debugger entered--Lisp error: (error "Unknown option ‘--batch’") > signal(error ("Unknown option ‘--batch’")) > error("Unknown option `%s'" "--batch") > command-line-1(("--batch" "-Q" "--eval" "(message \"hello, world\")")) > command-line() > normal-top-level() > > $ emacs -Q --batch -batch --eval '(message "hello, world")' > Debugger entered--Lisp error: (error "Unknown option ‘-batch’") > signal(error ("Unknown option ‘-batch’")) > error("Unknown option `%s'" "-batch") > command-line-1(("-batch" "-Q" "--eval" "(message \"hello, world\")")) > command-line() > normal-top-level() > > > I would expect -batch/--batch to be idempotent in all four combinations > above. They are not idempotent. Emacs doesn't use getopt, it uses its own custom code for parsing the command-line options, because our situation is complex: we only process part of the command-line options in C, the rest are processed in Lisp. What happens here is that, when you use identical "-batch" or "--batch" options several times, the code in sort_args removes the identical copies, and we are left with a single option to process. But if you use both "-batch" and "--batch", the extra option is not removed, and they both appear in the sorted argv[]. Then one of them is processed by 'main', the other is left for command-line-1, which doesn't know what to do with it. I'm not sure we want to support this use case. It certainly doesn't make sense to complicate our command-line parsing for its sake. Perhaps if a simple and safe solution can be found for removing such "duplicates" in sort_args, we could install such a change, but definitely not on the emacs-29 release branch. Thanks. From unknown Sat Jun 14 18:55:02 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63733: 28.3; error ("Unknown option =?UTF-8?Q?=E2=80=98--batch=E2=80=99?=") Resent-From: Ulrich Mueller Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 26 May 2023 09:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63733 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 63733@debbugs.gnu.org Received: via spool by 63733-submit@debbugs.gnu.org id=B63733.168509362515564 (code B ref 63733); Fri, 26 May 2023 09:34:02 +0000 Received: (at 63733) by debbugs.gnu.org; 26 May 2023 09:33:45 +0000 Received: from localhost ([127.0.0.1]:48838 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q2TpQ-00042y-Qa for submit@debbugs.gnu.org; Fri, 26 May 2023 05:33:45 -0400 Received: from woodpecker.gentoo.org ([140.211.166.183]:42864 helo=smtp.gentoo.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q2TpO-00042l-UP for 63733@debbugs.gnu.org; Fri, 26 May 2023 05:33:43 -0400 From: Ulrich Mueller In-Reply-To: <83h6rzlapu.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 26 May 2023 12:10:21 +0300") References: <83h6rzlapu.fsf@gnu.org> Date: Fri, 26 May 2023 11:33:33 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >>>>> On Fri, 26 May 2023, Eli Zaretskii wrote: >> I would expect -batch/--batch to be idempotent in all four combinations >> above. > They are not idempotent. I figured that. IMHO they should be, because it is surprising when "-batch -batch" works but "-batch --batch" doesn't. > Emacs doesn't use getopt, it uses its own custom code for parsing the > command-line options, because our situation is complex: we only > process part of the command-line options in C, the rest are processed > in Lisp. > What happens here is that, when you use identical "-batch" or > "--batch" options several times, the code in sort_args removes the > identical copies, and we are left with a single option to process. > But if you use both "-batch" and "--batch", the extra option is not > removed, and they both appear in the sorted argv[]. Then one of them > is processed by 'main', the other is left for command-line-1, which > doesn't know what to do with it. "emacs -quick --quick" or even "emacs -Q -quick --quick" works as expected, though. From unknown Sat Jun 14 18:55:02 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63733: 28.3; error ("Unknown option =?UTF-8?Q?=E2=80=98--batch=E2=80=99?=") Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 26 May 2023 10:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63733 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ulrich Mueller Cc: 63733@debbugs.gnu.org Received: via spool by 63733-submit@debbugs.gnu.org id=B63733.168509715623837 (code B ref 63733); Fri, 26 May 2023 10:33:02 +0000 Received: (at 63733) by debbugs.gnu.org; 26 May 2023 10:32:36 +0000 Received: from localhost ([127.0.0.1]:48932 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q2UkO-0006CO-7m for submit@debbugs.gnu.org; Fri, 26 May 2023 06:32:36 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33426) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q2UkM-0006CB-49 for 63733@debbugs.gnu.org; Fri, 26 May 2023 06:32:34 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2UkG-0006tX-ST; Fri, 26 May 2023 06:32:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=q0sER8QLNWDK7z0EXMywnb6+0EEkE9IcU6fDq6D6Bfs=; b=oIrnilGnKPPUr35Tj4M+ aYNuOBh+WwN0A1TKUCwVIh7w32iF9rvUg1ArOomsflbE9aYwdbH1zPzbc7Y/lqjelOrDdcWuvzcAJ JZlfBxdK4mEoxc6//0ZTsCG0rUBZ0BLgVRyQ6bhnyC8Trcv2segFwhHFNwrUfLPFZFjp5AoBD9oH/ VXv1/tzzRoAuhGMDH5u32z87tP8QW8SodRcDcoS3NUanX191G3mLYqwz5hZ3oywjMyOVjo3dFJYwy 8YUN8cmyMlNJzhH8czJpnUvBMc5ORx87XHpvX3T2kcStGkQ7gtOwVSCXwz68lu6538ax3SZUowkyQ WLJ+VFW9oqC/yg==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2UkG-0005A3-7k; Fri, 26 May 2023 06:32:28 -0400 Date: Fri, 26 May 2023 13:33:00 +0300 Message-Id: <835y8fl6w3.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Ulrich Mueller on Fri, 26 May 2023 11:33:33 +0200) References: <83h6rzlapu.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Ulrich Mueller > Cc: 63733@debbugs.gnu.org > Date: Fri, 26 May 2023 11:33:33 +0200 > > >>>>> On Fri, 26 May 2023, Eli Zaretskii wrote: > > > What happens here is that, when you use identical "-batch" or > > "--batch" options several times, the code in sort_args removes the > > identical copies, and we are left with a single option to process. > > But if you use both "-batch" and "--batch", the extra option is not > > removed, and they both appear in the sorted argv[]. Then one of them > > is processed by 'main', the other is left for command-line-1, which > > doesn't know what to do with it. > > "emacs -quick --quick" or even "emacs -Q -quick --quick" works as > expected, though. Because startup.el knows about it. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 11 19:07:37 2023 Received: (at control) by debbugs.gnu.org; 11 Sep 2023 23:07:37 +0000 Received: from localhost ([127.0.0.1]:55090 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfq0H-0002XD-6O for submit@debbugs.gnu.org; Mon, 11 Sep 2023 19:07:37 -0400 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]:46268) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfq0F-0002Wx-Mg for control@debbugs.gnu.org; Mon, 11 Sep 2023 19:07:36 -0400 Received: by mail-lf1-x133.google.com with SMTP id 2adb3069b0e04-5007c8308c3so8314596e87.0 for ; Mon, 11 Sep 2023 16:07:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694473645; x=1695078445; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=gCIgqgIxuLq7f1n6KuEszcSkyfzp6sKgcXuCG/OZ0B8=; b=sxwrc9Tay3qLEWduwkb7SqLYryBnElbbc8lQk3C5sGy6KMJraJ60kkMrO4SwHANbhL bJudELUtZ15FhLIj8s8uVCNWR6PRmqrQhO9nbBdrwpO0Ox20DBCg5zhyl/PW4efKnmIf YBb9bUEZ9WN4RidRZ7pRgvHRLYkoIauCi8yjXXT11+wZ29Y4Mnu8Y64OkuexGsm+WyMx wV6x5H8o8pUIv1cyrIaOokkVZXZMCX/r5Imv/5OpUIFT2ynqVx4d5p/+JsW9z1tIp1OU Z9BKDDRfYyOXkhst5nqS3ai6ygeGdARBnZ+fwmEr31pM82W52zJRUBnytI2HFWY573Yp PK3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694473645; x=1695078445; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=gCIgqgIxuLq7f1n6KuEszcSkyfzp6sKgcXuCG/OZ0B8=; b=cHRu759rIrNPVo9LpiIncosm4d9eW6npGlcxbNFXOGfOluHytlsB4IdgSITvEA3slG zyGJexc75H+67RiT28wcQn+PCBZxXw2KC1AWJ54cBFK37tl8D43zEsJqglk8ssplFR77 ot8qGEeFFbvrnF5jF/YzhV6+q2oOPO8dniFC/hF9AQFs+z1TX/iKwLZqPmKI03+CcwPe KuYSgqzCdQ+oDCfqz0sa9e8rBx/lgmQpOgOcDFpjYE/yoy1qRCzwF85neq/E5SaYLsc+ jGWW17Sagb4AJki8dZ6UPA/pcRb7cfM6YZQzRmveoC8EiYWrWa+iIUiGVktlvxGN3MOl +qnQ== X-Gm-Message-State: AOJu0YzHmrC1/zTPFt2s1N9BDEkNrpNIz01lnRou7JtFVfQ833TWT5Lf KW8UYLexNRjEniktggREdzJUPIFrHg+Wl9vEqcrWvzfv X-Google-Smtp-Source: AGHT+IH2GBFgzDrSjLNeYNgh8jpCezRLopvSYpv7QesguTziiS5TPF/AnUS3v0ehMtHh7qHH0SCQo/9u5fwdpmZJXWQ= X-Received: by 2002:a2e:87d4:0:b0:2be:54b4:ff90 with SMTP id v20-20020a2e87d4000000b002be54b4ff90mr8437899ljj.53.1694473645075; Mon, 11 Sep 2023 16:07:25 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 11 Sep 2023 16:07:24 -0700 From: Stefan Kangas MIME-Version: 1.0 Date: Mon, 11 Sep 2023 16:07:24 -0700 Message-ID: Subject: control message for bug #63733 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) severity 63733 minor quit