* bug#27841: 25.2; Patch for completion-table-with-predicate
@ 2017-07-26 18:36 Ryan
2017-08-04 22:55 ` npostavs
0 siblings, 1 reply; 8+ messages in thread
From: Ryan @ 2017-07-26 18:36 UTC (permalink / raw
To: 27841
[-- Attachment #1: Type: text/plain, Size: 23152 bytes --]
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))
[-- Attachment #2: Emacs patch for completion-table-with-predicate.tar.gz --]
[-- Type: application/x-gzip, Size: 1016 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#27841: 25.2; Patch for completion-table-with-predicate
2017-07-26 18:36 bug#27841: 25.2; Patch for completion-table-with-predicate Ryan
@ 2017-08-04 22:55 ` npostavs
2017-08-04 23:00 ` Ryan Thompson
0 siblings, 1 reply; 8+ messages in thread
From: npostavs @ 2017-08-04 22:55 UTC (permalink / raw
To: Ryan; +Cc: 27841
[-- Attachment #1: Type: text/plain, Size: 511 bytes --]
tags 27841 + patch
quit
Ryan <rct@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.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 1009 bytes --]
From e531f97247bc7f28d20cd9d4f468aa062924e117 Mon Sep 17 00:00:00 2001
From: "Ryan C. Thompson" <rct@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
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: patch --]
[-- Type: text/x-diff, Size: 913 bytes --]
From 422c87af1dafd57f4e8c97a70b2104a76c77d104 Mon Sep 17 00:00:00 2001
From: "Ryan C. Thompson" <rct@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
^ permalink raw reply related [flat|nested] 8+ messages in thread
* bug#27841: 25.2; Patch for completion-table-with-predicate
2017-08-04 22:55 ` npostavs
@ 2017-08-04 23:00 ` Ryan Thompson
2017-08-04 23:10 ` npostavs
2017-08-04 23:11 ` Dmitry Gutov
0 siblings, 2 replies; 8+ messages in thread
From: Ryan Thompson @ 2017-08-04 23:00 UTC (permalink / raw
To: npostavs; +Cc: 27841
[-- Attachment #1: Type: text/plain, Size: 746 bytes --]
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@users.sourceforge.net> wrote:
> tags 27841 + patch
> quit
>
> Ryan <rct@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.
>
>
[-- Attachment #2: Type: text/html, Size: 1149 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#27841: 25.2; Patch for completion-table-with-predicate
2017-08-04 23:00 ` Ryan Thompson
@ 2017-08-04 23:10 ` npostavs
2017-08-04 23:11 ` Dmitry Gutov
1 sibling, 0 replies; 8+ messages in thread
From: npostavs @ 2017-08-04 23:10 UTC (permalink / raw
To: Ryan Thompson; +Cc: 27841
Ryan Thompson <rct@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.
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#27841: 25.2; Patch for completion-table-with-predicate
2017-08-04 23:00 ` Ryan Thompson
2017-08-04 23:10 ` npostavs
@ 2017-08-04 23:11 ` Dmitry Gutov
2017-08-05 6:22 ` Ryan Thompson
1 sibling, 1 reply; 8+ messages in thread
From: Dmitry Gutov @ 2017-08-04 23:11 UTC (permalink / raw
To: Ryan Thompson, npostavs; +Cc: 27841
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).
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#27841: 25.2; Patch for completion-table-with-predicate
2017-08-04 23:11 ` Dmitry Gutov
@ 2017-08-05 6:22 ` Ryan Thompson
2017-08-08 1:27 ` npostavs
0 siblings, 1 reply; 8+ messages in thread
From: Ryan Thompson @ 2017-08-05 6:22 UTC (permalink / raw
To: Dmitry Gutov, npostavs; +Cc: 27841
[-- Attachment #1.1: Type: text/plain, Size: 1705 bytes --]
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@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).
>
[-- Attachment #1.2: Type: text/html, Size: 2312 bytes --]
[-- Attachment #2: 0001-Fix-a-bug-in-completion-table-with-predicate.patch --]
[-- Type: application/octet-stream, Size: 2901 bytes --]
From b5313defb1132021bd86d5d385e8ea6d2d92a663 Mon Sep 17 00:00:00 2001
From: "Ryan C. Thompson" <rct@thompsonclan.org>
Date: Wed, 26 Jul 2017 11:09:42 -0700
Subject: [PATCH] Fix a bug in completion-table-with-predicate
* ../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.
---
lisp/minibuffer.el | 2 +-
test/lisp/minibuffer-tests.el | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 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 @@ obeys predicates."
(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)
diff --git a/test/lisp/minibuffer-tests.el b/test/lisp/minibuffer-tests.el
index 7c5fcb4838..b209ae1c22 100644
--- a/test/lisp/minibuffer-tests.el
+++ b/test/lisp/minibuffer-tests.el
@@ -42,5 +42,39 @@
(should (equal (buffer-string)
"test: "))))))
+(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)))))
+ (should
+ (member "cherry"
+ (completion-table-with-predicate
+ full-collection 'no-A t "" 'no-B t)))
+ (should-not
+ (member "banana"
+ (completion-table-with-predicate
+ full-collection 'no-A t "" 'no-B t)))
+ ;; "apple" should still match when strict is nil
+ (should (eq t (try-completion
+ "apple"
+ (apply-partially
+ 'completion-table-with-predicate
+ full-collection 'no-A nil)
+ 'no-B)))
+ ;; "apple" should still match when strict is nil and pred2 is nil
+ ;; (Bug#27841)
+ (should (eq t (try-completion
+ "apple"
+ (apply-partially
+ 'completion-table-with-predicate
+ full-collection 'no-A nil))))))
+
(provide 'completion-tests)
;;; completion-tests.el ends here
--
2.13.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* bug#27841: 25.2; Patch for completion-table-with-predicate
2017-08-05 6:22 ` Ryan Thompson
@ 2017-08-08 1:27 ` npostavs
2017-11-08 2:30 ` Noam Postavsky
0 siblings, 1 reply; 8+ messages in thread
From: npostavs @ 2017-08-08 1:27 UTC (permalink / raw
To: Ryan Thompson; +Cc: 27841, Dmitry Gutov
Ryan Thompson <rct@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?
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#27841: 25.2; Patch for completion-table-with-predicate
2017-08-08 1:27 ` npostavs
@ 2017-11-08 2:30 ` Noam Postavsky
0 siblings, 0 replies; 8+ messages in thread
From: Noam Postavsky @ 2017-11-08 2:30 UTC (permalink / raw
To: Ryan Thompson; +Cc: 27841, Dmitry Gutov
tags 27841 fixed
close 27841 26.1
quit
npostavs@users.sourceforge.net writes:
> Ryan Thompson <rct@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
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-11-08 2:30 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-26 18:36 bug#27841: 25.2; Patch for completion-table-with-predicate Ryan
2017-08-04 22:55 ` npostavs
2017-08-04 23:00 ` Ryan Thompson
2017-08-04 23:10 ` npostavs
2017-08-04 23:11 ` Dmitry Gutov
2017-08-05 6:22 ` Ryan Thompson
2017-08-08 1:27 ` npostavs
2017-11-08 2:30 ` Noam Postavsky
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.