Package: emacs;
Reported by: Ryan <rct <at> thompsonclan.org>
Date: Wed, 26 Jul 2017 18:38:02 UTC
Severity: normal
Tags: fixed, patch
Found in version 25.2
Fixed in version 26.1
Done: Noam Postavsky <npostavs <at> users.sourceforge.net>
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 27841 in the body.
You can then email your comments to 27841 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
bug-gnu-emacs <at> gnu.org
:bug#27841
; Package emacs
.
(Wed, 26 Jul 2017 18:38:02 GMT) Full text and rfc822 format available.Ryan <rct <at> thompsonclan.org>
:bug-gnu-emacs <at> gnu.org
.
(Wed, 26 Jul 2017 18:38:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Ryan <rct <at> thompsonclan.org> To: bug-gnu-emacs <at> gnu.org Subject: 25.2; Patch for completion-table-with-predicate Date: Wed, 26 Jul 2017 11:36:47 -0700
[Message part 1 (text/plain, inline)]
When the pred2 arg to completion-table-with-predicate is nil, it acts like strict is non-nil, even if it isn't. I'm attaching a patch (created with "git format-patch") that fixes the bug. In GNU Emacs 25.2.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 Version 10.9.5 (Build 13F1911)) of 2017-04-21 built on builder10-9.porkrind.org Windowing system distributor 'Apple', version 10.3.1404 Configured using: 'configure --with-ns '--enable-locallisppath=/Library/Application Support/Emacs/${version}/site-lisp:/Library/Application Support/Emacs/site-lisp' --with-modules' Configured features: NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Magit Minor modes in effect: smex-mode: t recentf-mode: t ws-butler-global-mode: t ws-butler-mode: t winner-mode: t sml-modeline-mode: t savehist-mode: t save-place-mode: t minibuffer-electric-default-mode: t minibuffer-depth-indicate-mode: t midnight-mode: t ido-yes-or-no-mode: t icomplete-mode: t highlight-stages-global-mode: t highlight-stages-mode: t global-undo-tree-mode: t undo-tree-mode: t global-pointback-mode: t pointback-mode: t global-hl-line-mode: t global-anzu-mode: t anzu-mode: t desktop-save-mode: t delete-selection-mode: t beacon-mode: t auto-dim-other-buffers-mode: t ido-ubiquitous-mode: t ido-complete-space-or-hyphen-mode: t ido-everywhere: t osx-pseudo-daemon-mode: t magit-filenotify-mode: t diff-auto-refine-mode: t magit-auto-revert-mode: t global-git-commit-mode: t async-bytecomp-package-mode: t autopair-global-mode: t show-paren-mode: t global-auto-complete-mode: t override-global-mode: t shell-dirtrack-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t global-prettify-symbols-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 buffer-read-only: t line-number-mode: t transient-mark-mode: t Recent messages: Zsh finished [2 times] C-x C-g is undefined Quit [3 times] Git failed ... [Hit $ to see buffer *magit-process: emacs for details] [2 times] mwheel-scroll: Beginning of buffer [6 times] error in process filter: Selecting deleted buffer [2 times] Git failed ... [See buffer nil for details] [2 times] Quit [2 times] C-c g [2 times] Killed inactive buffer: emacs. Load-path shadows: /Users/ryan/.emacs.d/el-get/ido-completing-read+/ido-completing-read+ hides /Users/ryan/.emacs.d/.cask/25.2/elpa/ido-completing-read+-20170601.559/ido-completing-read+ /Users/ryan/.emacs.d/.cask/25.2/elpa/org-bullets-20140918.1137/org-bullets hides /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-bullets /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-texinfo hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-texinfo /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-publish hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-publish /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-org /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-odt hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-odt /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-md hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-md /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-man hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-man /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-latex /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-icalendar hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-icalendar /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-html hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-html /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-beamer hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-beamer /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ox-ascii hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-ascii /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org hides /Applications/Emacs.app/Contents/Resources/lisp/org/org /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-w3m hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-w3m /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-version hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-version /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-timer hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-timer /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-table /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-src hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-src /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-rmail hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-rmail /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-protocol hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-protocol /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-plot hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-plot /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-pcomplete hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-pcomplete /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-mouse hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mouse /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-mobile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mobile /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-mhe hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mhe /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-macs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macs /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-macro hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macro /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-loaddefs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-loaddefs /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-list hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-list /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-irc hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-irc /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-install hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-install /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-inlinetask hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-inlinetask /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-info hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-info /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-indent hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-indent /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-id hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-id /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-habit hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-habit /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-gnus hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-gnus /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-footnote hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-footnote /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-feed hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-feed /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-faces hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-faces /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-eshell hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-eshell /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-entities hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-entities /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-element hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-element /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-docview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-docview /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-datetree hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-datetree /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-ctags hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-ctags /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-crypt hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-crypt /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-compat hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-compat /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-colview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-colview /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-clock hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-clock /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-capture hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-capture /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-bibtex hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-bibtex /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-bbdb hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-bbdb /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-attach hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-archive hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-archive /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/org-agenda hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-agenda /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-tangle hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-tangle /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-table /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-sqlite hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sqlite /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-sql hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sql /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-shen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-shen /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-screen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-screen /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-scheme hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-scheme /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-scala hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-scala /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-sass hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sass /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-ruby hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ruby /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-ref hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ref /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-R hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-R /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-python hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-python /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-plantuml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-plantuml /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-picolisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-picolisp /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-perl hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-perl /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-org /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-octave hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-octave /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-ocaml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ocaml /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-mscgen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-mscgen /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-maxima hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-maxima /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-matlab hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-matlab /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-makefile hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-makefile /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-lob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lob /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lisp /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-lilypond hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lilypond /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-ledger hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ledger /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-latex /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-keys hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-keys /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-js hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-js /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-java hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-java /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-io hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-io /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-haskell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-haskell /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-gnuplot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-fortran hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-fortran /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-exp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-exp /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-eval hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-eval /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-emacs-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-dot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-dot /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-ditaa hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ditaa /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-css hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-css /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-core hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-core /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-comint hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-comint /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-clojure hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-clojure /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-calc hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-calc /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-C hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-C /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-awk hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-awk /Users/ryan/.emacs.d/.cask/25.2/elpa/org-plus-contrib-20170606/ob-asymptote hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-asymptote /Users/ryan/.emacs.d/.cask/25.2/elpa/seq-2.20/seq hides /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/seq /Users/ryan/.emacs.d/.cask/25.2/elpa/let-alist-1.0.5/let-alist hides /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/let-alist Features: (shadow sort mail-extr macros rect colir apropos thai-util thai-word reposition two-column iso-transl with-simulated-input ivy ivy-overlay ffap magit-extras git-rebase view pulse debug dabbrev recentf tree-widget eieio-opt speedbar sb-image ezimage dframe misearch multi-isearch imenu ess-toolbar ess-mouse mouseme ess-swv ess-noweb ess-noweb-font-lock-mode ess-bugs-l ess-sas-d ess-sas-l ess-sas-a ess-stata-mode ess-stata-lang make-regexp essd-els ess-sp6-d ess-dde ess-sp3-d ess-julia julia-mode ess-r-mode ess-r-package ess-r-syntax ess-r-completion ess-roxy essddr ess-rd hideshow ess-s-lang ess-help ess-site checkdoc conf-mode make-mode org-eldoc sh-script smie org-rmail org-mhe org-irc org-info org-gnus org-docview doc-view image-mode org-bibtex bibtex org-bbdb org-w3m macrostep-c cmacexp macrostep cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs yaml-mode jka-compr vc-git flymake emacsbug sendmail face-remap ws-butler winner sml-modeline savehist saveplace minibuf-eldef mb-depth midnight ido-yes-or-no icomplete highlight-stages undo-tree diff pointback assoc hl-line anzu desktop frameset delsel beacon auto-dim-other-buffers ido-completing-read+ loadhist bar-cursor debian-changelog-mode git-wip-mode vc vc-dispatcher ido-complete-space-or-hyphen tempbuf smooth-scrolling .loaddefs cus-edit cus-start cus-load warnings system-specific-settings snakemake-mode smex ido slime etags xref project arc-mode archive-mode hyperspec python pretty-symbols polymode poly-base polymode-weave polymode-export polymode-debug polymode-methods poly-lock polymode-compat polymode-classes polymode-core eieio-custom wid-edit eieio-base color osx-pseudo-daemon org-bullets occur-context-resize noflet cl-indent markdown-mode thingatpt magit-filenotify magit-obsolete magit-blame magit-stash magit-bisect magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-branch magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode diff-mode magit-core magit-autorevert autorevert filenotify magit-process magit-margin magit-mode magit-git magit-section magit-popup git-commit magit-utils crm log-edit message rfc822 mml mml-sec epg mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log with-editor async-bytecomp async tramp-sh server lexbind-mode highlight-defined header2 git-gutter-fringe fringe-helper git-gutter esup esup-child benchmark ess ess-mode ess-noweb-mode ess-inf ess-tracebug ess-generics ess-utils ess-custom executable ess-compat el-get el-get-autoloading el-get-list-packages el-get-dependencies el-get-build el-get-status pp el-get-methods el-get-fossil el-get-svn el-get-pacman el-get-github-zip el-get-github-tar el-get-http-zip el-get-http-tar el-get-hg el-get-go el-get-git-svn el-get-fink el-get-emacswiki el-get-http el-get-notify el-get-emacsmirror el-get-github el-get-git el-get-elpa el-get-darcs el-get-cvs el-get-bzr el-get-brew el-get-builtin el-get-apt-get el-get-recipes el-get-byte-compile subr-x el-get-custom el-get-core autoload dired creole-mode keydef cperl-mode cl-lib-highlight bs browse-url autopair paren auto-complete edmacro kmacro popup apache-mode adjust-parens exec-path-from-shell use-package diminish bind-key compile org-element avl-tree org org-macro org-footnote org-pcomplete org-list org-faces org-entities noutline outline easy-mmode org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint tramp tramp-compat tramp-loaddefs trampver shell pcomplete comint ansi-color ring ob-core ob-eval org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs pallet advice gh-common gh-profile url-parse auth-source gnus-util password-cache url-vars marshal eieio-compat ht eieio eieio-core cl slime-autoloads rx info cask cl-seq cl-macs cask-bootstrap package-build mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr json map lisp-mnt shut-up epl git commander f dash s finder-inf package epg-config seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs pcase cl-lib time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win ucs-normalize term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame 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 charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote kqueue cocoa ns multi-tty make-network-process emacs) Memory information: ((conses 16 2624592 167877) (symbols 48 73936 186) (miscs 40 14857 9003) (strings 32 824806 20285) (string-bytes 1 9927758) (vectors 16 100674) (vector-slots 8 2332190 308432) (floats 8 1441 5743) (intervals 56 54878 10061) (buffers 976 308))
[Emacs patch for completion-table-with-predicate.tar.gz (application/x-gzip, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#27841
; Package emacs
.
(Fri, 04 Aug 2017 22:54:01 GMT) Full text and rfc822 format available.Message #8 received at 27841 <at> debbugs.gnu.org (full text, mbox):
From: npostavs <at> users.sourceforge.net To: Ryan <rct <at> thompsonclan.org> Cc: 27841 <at> debbugs.gnu.org Subject: Re: bug#27841: 25.2; Patch for completion-table-with-predicate Date: Fri, 04 Aug 2017 18:55:05 -0400
[Message part 1 (text/plain, inline)]
tags 27841 + patch quit Ryan <rct <at> thompsonclan.org> writes: > When the pred2 arg to completion-table-with-predicate is nil, it acts > like strict is non-nil, even if it isn't. I'm attaching a patch > (created with "git format-patch") that > fixes the bug. Looks reasonable, though I'm not very familiar with this code. The commit messages should be reformatted into ChangeLog format, and the first one would be better rephrased into present tense. I'm reattaching the patches inline here for convenience.
[0001-Fix-a-bug-in-completion-table-with-predicate.patch (text/x-diff, inline)]
From e531f97247bc7f28d20cd9d4f468aa062924e117 Mon Sep 17 00:00:00 2001 From: "Ryan C. Thompson" <rct <at> thompsonclan.org> Date: Wed, 26 Jul 2017 11:09:42 -0700 Subject: [PATCH 1/2] Fix a bug in completion-table-with-predicate If strict was nil and pred2 was nil, then it acted like strict was non-nil. --- lisp/minibuffer.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index e5b1029c01..bb8cf21ad2 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -392,7 +392,7 @@ (defun completion-table-with-predicate (table pred1 strict string pred2 action) (and (funcall pred1 x) (funcall pred2 x))))) ;; If completion failed and we're not applying pred1 strictly, try ;; again without pred1. - (and (not strict) pred1 pred2 + (and (not strict) pred1 (complete-with-action action table string pred2)))))) (defun completion-table-in-turn (&rest tables) -- 2.11.1
[0002-Optimize-completion-table-with-predicate-for-pred1-n.patch (text/x-diff, inline)]
From 422c87af1dafd57f4e8c97a70b2104a76c77d104 Mon Sep 17 00:00:00 2001 From: "Ryan C. Thompson" <rct <at> thompsonclan.org> Date: Wed, 26 Jul 2017 11:14:13 -0700 Subject: [PATCH 2/2] Optimize completion-table-with-predicate for pred1 = nil --- lisp/minibuffer.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index bb8cf21ad2..3a79016d13 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -379,6 +379,9 @@ (defun completion-table-with-predicate (table pred1 strict string pred2 action) nothing. Note: TABLE needs to be a proper completion table which obeys predicates." (cond + ;; If pred1 is nil, pass through + ((null pred1) + (complete-with-action action table string pred2)) ((and (not strict) (eq action 'lambda)) ;; Ignore pred1 since it doesn't really have to apply anyway. (test-completion string table pred2)) -- 2.11.1
npostavs <at> users.sourceforge.net
to control <at> debbugs.gnu.org
.
(Fri, 04 Aug 2017 22:54:02 GMT) Full text and rfc822 format available.bug-gnu-emacs <at> gnu.org
:bug#27841
; Package emacs
.
(Fri, 04 Aug 2017 23:01:01 GMT) Full text and rfc822 format available.Message #13 received at 27841 <at> debbugs.gnu.org (full text, mbox):
From: Ryan Thompson <rct <at> thompsonclan.org> To: npostavs <at> users.sourceforge.net Cc: 27841 <at> debbugs.gnu.org Subject: Re: bug#27841: 25.2; Patch for completion-table-with-predicate Date: Fri, 04 Aug 2017 23:00:16 +0000
[Message part 1 (text/plain, inline)]
Ok, I will reformat them when I get the chance. Would you also like me to provide an example where the old code does the wrong thing? On Fri, Aug 4, 2017 at 3:53 PM <npostavs <at> users.sourceforge.net> wrote: > tags 27841 + patch > quit > > Ryan <rct <at> thompsonclan.org> writes: > > > When the pred2 arg to completion-table-with-predicate is nil, it acts > > like strict is non-nil, even if it isn't. I'm attaching a patch > > (created with "git format-patch") that > > fixes the bug. > > Looks reasonable, though I'm not very familiar with this code. The > commit messages should be reformatted into ChangeLog format, and the > first one would be better rephrased into present tense. I'm reattaching > the patches inline here for convenience. > >
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#27841
; Package emacs
.
(Fri, 04 Aug 2017 23:09:01 GMT) Full text and rfc822 format available.Message #16 received at 27841 <at> debbugs.gnu.org (full text, mbox):
From: npostavs <at> users.sourceforge.net To: Ryan Thompson <rct <at> thompsonclan.org> Cc: 27841 <at> debbugs.gnu.org Subject: Re: bug#27841: 25.2; Patch for completion-table-with-predicate Date: Fri, 04 Aug 2017 19:10:20 -0400
Ryan Thompson <rct <at> thompsonclan.org> writes: > Ok, I will reformat them when I get the chance. Thanks. > Would you also like me to provide an example where the old code does > the wrong thing? That would be helpful, yes.
bug-gnu-emacs <at> gnu.org
:bug#27841
; Package emacs
.
(Fri, 04 Aug 2017 23:12:02 GMT) Full text and rfc822 format available.Message #19 received at 27841 <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: Ryan Thompson <rct <at> thompsonclan.org>, npostavs <at> users.sourceforge.net Cc: 27841 <at> debbugs.gnu.org Subject: Re: bug#27841: 25.2; Patch for completion-table-with-predicate Date: Sat, 5 Aug 2017 02:11:08 +0300
On 8/5/17 2:00 AM, Ryan Thompson wrote: > Would you also like me > to provide an example where the old code does the wrong thing? Adding a test case or two to test/lisp/minibuffer-tests.el would be ideal (in the same patch that fixes it).
bug-gnu-emacs <at> gnu.org
:bug#27841
; Package emacs
.
(Sat, 05 Aug 2017 06:23:01 GMT) Full text and rfc822 format available.Message #22 received at 27841 <at> debbugs.gnu.org (full text, mbox):
From: Ryan Thompson <rct <at> thompsonclan.org> To: Dmitry Gutov <dgutov <at> yandex.ru>, npostavs <at> users.sourceforge.net Cc: 27841 <at> debbugs.gnu.org Subject: Re: bug#27841: 25.2; Patch for completion-table-with-predicate Date: Sat, 05 Aug 2017 06:22:39 +0000
[Message part 1 (text/plain, inline)]
Ok, here is the revised patch. I added a test and reformatted the commit message in (hopefully) ChangeLog format. The test includes a few basic tests of "completion-table-with-predicate" including one which is fixed by this patch (noted in the test comments). I've dropped the second patch entirely, because I realized it was inappropriately optimizing for a rare case (i.e. PRED1 being nil). Also, a few other related things: First, I noticed that while the test file name is minibuffer-tests.el, the lisp header and provide statement both contain "completion-tests.el" instead. Presumably this file was renamed at some point without updating its contents. Second, I notice that there is not much in this file, in particular nothing testing interactive completion in the minibuffer. I recently wrote a package for simulating interactive input to a command in order to implement tests for my ido-comrpleting-read+ package, and it might be useful for adding more tests here. You can view it here: https://github.com/DarwinAwardWinner/with-simulated-input and view example usage in the ido-cr+ test suite here: https://github.com/DarwinAwardWinner/ido-completing-read-plus/blob/master/tests/test-ido-completing-read%2B.el Let me know if there is interest in using such an approach to add automated tests for some of the core interactive Emacs functions like "completing-read". On Fri, Aug 4, 2017 at 4:11 PM Dmitry Gutov <dgutov <at> yandex.ru> wrote: > On 8/5/17 2:00 AM, Ryan Thompson wrote: > > Would you also like me > > to provide an example where the old code does the wrong thing? > > Adding a test case or two to test/lisp/minibuffer-tests.el would be > ideal (in the same patch that fixes it). >
[Message part 2 (text/html, inline)]
[0001-Fix-a-bug-in-completion-table-with-predicate.patch (application/octet-stream, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#27841
; Package emacs
.
(Tue, 08 Aug 2017 01:27:01 GMT) Full text and rfc822 format available.Message #25 received at 27841 <at> debbugs.gnu.org (full text, mbox):
From: npostavs <at> users.sourceforge.net To: Ryan Thompson <rct <at> thompsonclan.org> Cc: 27841 <at> debbugs.gnu.org, Dmitry Gutov <dgutov <at> yandex.ru> Subject: Re: bug#27841: 25.2; Patch for completion-table-with-predicate Date: Mon, 07 Aug 2017 21:27:31 -0400
Ryan Thompson <rct <at> thompsonclan.org> writes: > Second, I notice that there is not much in this file, in particular > nothing testing interactive completion in the minibuffer. I recently > wrote a package for simulating interactive input to a command in order > to implement tests for my ido-comrpleting-read+ package, and it might > be useful for adding more tests here. You can view it here: > https://github.com/DarwinAwardWinner/with-simulated-input and view > example usage in the ido-cr+ test suite here: > https://github.com/DarwinAwardWinner/ido-completing-read-plus/blob/master/tests/test-ido-completing-read%2B.el > > Let me know if there is interest in using such an approach to add > automated tests for some of the core interactive Emacs functions like > "completing-read". Sounds like that a useful addition to me. > * ../lisp/minibuffer.el (completion-table-with-predicate): Don't > act as if strict is non-nil when pred2 is nil (Bug#27841). > * ../test/lisp/minibuffer-tests.el > (completion-table-with-predicate-test): Add a test for Bug#27841. I wonder how you ended up with the ../ prefix on the filenames? > +(ert-deftest completion-table-with-predicate-test () > + (cl-letf* ((full-collection > + '("apple" ; Has A > + "beet" ; Has B > + "banana" ; Has A & B > + "cherry" ; Has neither > + )) > + ((symbol-function 'no-A) > + (lambda (x) (not (string-match-p "a" x)))) > + ((symbol-function 'no-B) > + (lambda (x) (not (string-match-p "b" x))))) It looks to me like things would be simpler with a let instead of cl-letf, no?
bug-gnu-emacs <at> gnu.org
:bug#27841
; Package emacs
.
(Wed, 08 Nov 2017 02:31:01 GMT) Full text and rfc822 format available.Message #28 received at 27841 <at> debbugs.gnu.org (full text, mbox):
From: Noam Postavsky <npostavs <at> users.sourceforge.net> To: Ryan Thompson <rct <at> thompsonclan.org> Cc: 27841 <at> debbugs.gnu.org, Dmitry Gutov <dgutov <at> yandex.ru> Subject: Re: bug#27841: 25.2; Patch for completion-table-with-predicate Date: Tue, 07 Nov 2017 21:30:11 -0500
tags 27841 fixed close 27841 26.1 quit npostavs <at> users.sourceforge.net writes: > Ryan Thompson <rct <at> thompsonclan.org> writes: > >> * ../lisp/minibuffer.el (completion-table-with-predicate): Don't >> act as if strict is non-nil when pred2 is nil (Bug#27841). >> * ../test/lisp/minibuffer-tests.el >> (completion-table-with-predicate-test): Add a test for Bug#27841. > > I wonder how you ended up with the ../ prefix on the filenames? >> +(ert-deftest completion-table-with-predicate-test () >> + (cl-letf* ((full-collection >> + ((symbol-function 'no-A) >> + (lambda (x) (not (string-match-p "a" x)))) >> + ((symbol-function 'no-B) >> + (lambda (x) (not (string-match-p "b" x))))) > > It looks to me like things would be simpler with a let instead of > cl-letf, no? I fixed the commit message, changed this to let, and pushed to emacs-26. [1: 255ba01148]: 2017-11-07 21:25:55 -0500 Fix handling of nil PRED2 arg for completion-table-with-predicate https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=255ba01148f69f452937e67feb7af5d4c1466fed
Noam Postavsky <npostavs <at> users.sourceforge.net>
to control <at> debbugs.gnu.org
.
(Wed, 08 Nov 2017 02:31:01 GMT) Full text and rfc822 format available.Noam Postavsky <npostavs <at> users.sourceforge.net>
to control <at> debbugs.gnu.org
.
(Wed, 08 Nov 2017 02:31:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Wed, 06 Dec 2017 12:24:06 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.