Package: emacs;
Reported by: Ulrich Müller <ulm <at> gentoo.org>
Date: Fri, 26 May 2023 07:45:01 UTC
Severity: minor
Found in version 28.3
To reply to this bug, email your comments to 63733 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#63733
; Package emacs
.
(Fri, 26 May 2023 07:45:01 GMT) Full text and rfc822 format available.Ulrich Müller <ulm <at> gentoo.org>
:bug-gnu-emacs <at> gnu.org
.
(Fri, 26 May 2023 07:45:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Ulrich Müller <ulm <at> gentoo.org> To: bug-gnu-emacs <at> gnu.org Subject: 28.3; error ("Unknown option ‘--batch’") 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. (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=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --datarootdir=/usr/share --disable-silent-rules --docdir=/usr/share/doc/emacs-28.3_rc1-r2 --htmldir=/usr/share/doc/emacs-28.3_rc1-r2/html --libdir=/usr/lib64 --program-suffix=-emacs-28 --includedir=/usr/include/emacs-28 --infodir=/usr/share/info/emacs-28 --localstatedir=/var --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp --without-compress-install --without-hesiod --without-pop --with-file-notification=inotify --with-pdumper --enable-acl --with-dbus --with-modules --with-gameuser=: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=alsa --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=lucid --with-xaw3d --with-dumping=pdumper 'CFLAGS=-march=native -ggdb -O2 -pipe' 'LDFLAGS=-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/cmake/cmake-mode /usr/share/emacs/site-lisp/desktop-entry-mode hides /usr/share/emacs/site-lisp/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/lisp/org/org-num /usr/share/emacs/site-lisp/org-mode/org-src hides /usr/share/emacs/28.3/lisp/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/lisp/org/ob-maxima /usr/share/emacs/site-lisp/org-mode/ol-eshell hides /usr/share/emacs/28.3/lisp/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/28.3/lisp/org/org-attach-git /usr/share/emacs/site-lisp/org-mode/oc-natbib hides /usr/share/emacs/28.3/lisp/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/lisp/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/lisp/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/lisp/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/lisp/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/lisp/org/ob-eval /usr/share/emacs/site-lisp/org-mode/ob-julia hides /usr/share/emacs/28.3/lisp/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/lisp/org/ob-latex /usr/share/emacs/site-lisp/org-mode/ob-scheme hides /usr/share/emacs/28.3/lisp/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/lisp/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/lisp/org/ob-octave /usr/share/emacs/site-lisp/org-mode/org-table hides /usr/share/emacs/28.3/lisp/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/lisp/org/ob-core /usr/share/emacs/site-lisp/org-mode/org-inlinetask hides /usr/share/emacs/28.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/lisp/org/org-lint /usr/share/emacs/site-lisp/org-mode/org-timer hides /usr/share/emacs/28.3/lisp/org/org-timer /usr/share/emacs/site-lisp/org-mode/ob-eshell hides /usr/share/emacs/28.3/lisp/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/lisp/org/ox-html /usr/share/emacs/site-lisp/org-mode/ob-forth hides /usr/share/emacs/28.3/lisp/org/ob-forth /usr/share/emacs/site-lisp/org-mode/ob-sass hides /usr/share/emacs/28.3/lisp/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/lisp/org/ox-ascii /usr/share/emacs/site-lisp/org-mode/ob-sqlite hides /usr/share/emacs/28.3/lisp/org/ob-sqlite /usr/share/emacs/site-lisp/org-mode/org-mouse hides /usr/share/emacs/28.3/lisp/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/lisp/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/lisp/org/ob-comint /usr/share/emacs/site-lisp/org-mode/ob-ruby hides /usr/share/emacs/28.3/lisp/org/ob-ruby /usr/share/emacs/site-lisp/org-mode/org-feed hides /usr/share/emacs/28.3/lisp/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/lisp/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/org/ob-R /usr/share/emacs/site-lisp/org-mode/org-faces hides /usr/share/emacs/28.3/lisp/org/org-faces /usr/share/emacs/site-lisp/org-mode/org-tempo hides /usr/share/emacs/28.3/lisp/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/lisp/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/lisp/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/28.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/lisp/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/lisp/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/org/org /usr/share/emacs/site-lisp/org-mode/oc-basic hides /usr/share/emacs/28.3/lisp/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/lisp/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/lisp/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/lisp/org/ol-bbdb /usr/share/emacs/site-lisp/org-mode/ob-shell hides /usr/share/emacs/28.3/lisp/org/ob-shell /usr/share/emacs/site-lisp/org-mode/ol-gnus hides /usr/share/emacs/28.3/lisp/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/lisp/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/org/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/lisp/org/ob-ditaa /usr/share/emacs/site-lisp/org-mode/ox-beamer hides /usr/share/emacs/28.3/lisp/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/lisp/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/lisp/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/lisp/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/lisp/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/lisp/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/lisp/org/org-list /usr/share/emacs/site-lisp/org-mode/org-macro hides /usr/share/emacs/28.3/lisp/org/org-macro /usr/share/emacs/site-lisp/org-mode/org-macs hides /usr/share/emacs/28.3/lisp/org/org-macs /usr/share/emacs/site-lisp/org-mode/ob-table hides /usr/share/emacs/28.3/lisp/org/ob-table /usr/share/emacs/site-lisp/org-mode/ol-info hides /usr/share/emacs/28.3/lisp/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/lisp/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/sasl ~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))
bug-gnu-emacs <at> gnu.org
:bug#63733
; Package emacs
.
(Fri, 26 May 2023 09:10:02 GMT) Full text and rfc822 format available.Message #8 received at 63733 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Ulrich Müller <ulm <at> gentoo.org> Cc: 63733 <at> debbugs.gnu.org Subject: Re: bug#63733: 28.3; error ("Unknown option ‘--batch’") Date: Fri, 26 May 2023 12:10:21 +0300
> From: Ulrich Müller <ulm <at> gentoo.org> > 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.
bug-gnu-emacs <at> gnu.org
:bug#63733
; Package emacs
.
(Fri, 26 May 2023 09:34:02 GMT) Full text and rfc822 format available.Message #11 received at 63733 <at> debbugs.gnu.org (full text, mbox):
From: Ulrich Mueller <ulm <at> gentoo.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 63733 <at> debbugs.gnu.org Subject: Re: bug#63733: 28.3; error ("Unknown option ‘--batch’") Date: Fri, 26 May 2023 11:33:33 +0200
>>>>> 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.
bug-gnu-emacs <at> gnu.org
:bug#63733
; Package emacs
.
(Fri, 26 May 2023 10:33:02 GMT) Full text and rfc822 format available.Message #14 received at 63733 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Ulrich Mueller <ulm <at> gentoo.org> Cc: 63733 <at> debbugs.gnu.org Subject: Re: bug#63733: 28.3; error ("Unknown option ‘--batch’") Date: Fri, 26 May 2023 13:33:00 +0300
> From: Ulrich Mueller <ulm <at> gentoo.org> > Cc: 63733 <at> 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.
Stefan Kangas <stefankangas <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Mon, 11 Sep 2023 23:08:02 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.