unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#17250: 24.3; find-variable gives search-failed error message
@ 2014-04-12 12:38 Johan Claesson
  2018-04-17 22:58 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Johan Claesson @ 2014-04-12 12:38 UTC (permalink / raw)
  To: 17250



Hi,

emacs -Q
(defvar foo nil) C-M-x
M-x find-variable RET foo RET

This gives the following error:

Search failed: "\x1fVfoo
"

Since foo is defined interactively in the *scratch* buffer emacs does
not know what file it belongs to.  That is expected.  I just think it
should say something like "Don't know where foo is defined" instead of
the above error message.

Same thing on todays bzr trunk (GNU Emacs 24.4.50.1 (i686-pc-linux-gnu,
GTK+ Version 3.8.6) of 2014-04-12 on goblin).

Regards,

/Johan




In GNU Emacs 24.3.6 (i686-pc-linux-gnu, GTK+ Version 3.8.6)
 of 2014-04-06 on goblin
Windowing system distributor `The X.Org Foundation', version 11.0.11405000
System Description:	Ubuntu 13.10

Configured using:
 `configure '--prefix=/home/jcl/usr' '--without-toolkit-scroll-bars'
 '-C' '--without-compress-info''

Important settings:
  value of $LC_COLLATE: C
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Term

Minor modes in effect:
  magit-auto-revert-mode: t
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  display-time-mode: t
  minibuffer-depth-indicate-mode: t
  which-function-mode: t
  minibuffer-electric-default-mode: t
  winner-mode: t
  icomplete-mode: t
  ido-everywhere: t
  electric-layout-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  temp-buffer-resize-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
e m <tab> SPC - Q <return> <up> <return> C-h n q <up> 
<return> <switch-frame> q C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n <return> / o <return> <home> 
C-s f i n d - v a r <up> <up> <home> C-s s e a r c 
h C-s C-s C-s <left> SPC N P q C-h i d m <backspace> 
e m a <tab> C-g m e l i <tab> <return> i r e p o <tab> 
<backspace> <backspace> <backspace> C-g d , e d m e 
n a <tab> <backspace> <backspace> m a <tab> <return> 
i r e p o <tab> r t <tab> i n g <tab> <return> <tab> 
<return> C-h C-p <next> <home> C-s s e a r c h - f 
<up> <M-next> <next> <prior> <home> <tab> <tab> M-x 
l i s t y - <backspace> <backspace> - p a c <tab> <return> 
C-s d e b b <left> i U x SPC <up> <switch-frame> C-h 
i <C-tab> M-x d e b b u g <tab> g n u - e <backspace> 
s e <tab> r a <tab> <backspace> <backspace> a r <tab> 
<return> s e a r c h - f a i l e d <return> <return> 
M-1 C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n <return> 
SPC n n q C-h m M-x <up> <return> f i n d - v a r i 
a b l e <return> <return> q <next> <prior> <up> <up> 
<up> <tab> <return> q C-h i l l <next> <next> <next> 
<next> <next> <next> <next> <next> <home> <end> <prior> 
<home> <end> <prior> <next> <home> C-1 C-1 e m a c 
s SPC - Q <S-return> M-x r e p o r t - e m <tab> b 
<tab> <return>

Recent messages:
Preparing diary...done
No event to add
Making completion list...
Contacting host: debbugs.gnu.org:80 [3 times]
Wrote /tmp/gnus-temp-group-20992fgk
Opening nndoc server on /tmp/gnus-temp-group-20992fgk-ephemeral...done
Type C-x 1 to delete the help window, C-M-v to scroll help.
Contacting host: debbugs.gnu.org:80
scroll-up: End of buffer
Mark set [5 times]

Load-path shadows:
/home/jcl/share/elisp/.dir-locals hides /home/jcl/share/elisp/external/.dir-locals
/home/jcl/share/elisp/.dir-locals hides /home/jcl/elpa/gnugo-2.3.1/.dir-locals
/home/jcl/elpa/python-20130227.2146/python hides /home/jcl/usr/share/emacs/24.3/lisp/progmodes/python
/home/jcl/elpa/flymake-0.4.16/flymake hides /home/jcl/usr/share/emacs/24.3/lisp/progmodes/flymake
/home/jcl/elpa/org-20140331/org-faces hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-faces
/home/jcl/elpa/org-20140331/ob-mscgen hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-mscgen
/home/jcl/elpa/org-20140331/ob-lob hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-lob
/home/jcl/elpa/org-20140331/ob-js hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-js
/home/jcl/elpa/org-20140331/org-entities hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-entities
/home/jcl/elpa/org-20140331/ob-css hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-css
/home/jcl/elpa/org-20140331/ob-perl hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-perl
/home/jcl/elpa/org-20140331/ob-ref hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-ref
/home/jcl/elpa/org-20140331/org-clock hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-clock
/home/jcl/elpa/org-20140331/org-mouse hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-mouse
/home/jcl/elpa/org-20140331/org-capture hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-capture
/home/jcl/elpa/org-20140331/ob-shen hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-shen
/home/jcl/elpa/org-20140331/ob-emacs-lisp hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-emacs-lisp
/home/jcl/elpa/org-20140331/org-colview hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-colview
/home/jcl/elpa/org-20140331/org-bbdb hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-bbdb
/home/jcl/elpa/org-20140331/ob-screen hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-screen
/home/jcl/elpa/org-20140331/ob-table hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-table
/home/jcl/elpa/org-20140331/org-habit hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-habit
/home/jcl/elpa/org-20140331/org-compat hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-compat
/home/jcl/elpa/org-20140331/org-archive hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-archive
/home/jcl/elpa/org-20140331/org-irc hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-irc
/home/jcl/elpa/org-20140331/org-macs hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-macs
/home/jcl/elpa/org-20140331/org-version hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-version
/home/jcl/elpa/org-20140331/ob-sql hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-sql
/home/jcl/elpa/org-20140331/ob-octave hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-octave
/home/jcl/elpa/org-20140331/ob-haskell hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-haskell
/home/jcl/elpa/org-20140331/ob-awk hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-awk
/home/jcl/elpa/org-20140331/org-table hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-table
/home/jcl/elpa/org-20140331/org-pcomplete hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-pcomplete
/home/jcl/elpa/org-20140331/ob-matlab hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-matlab
/home/jcl/elpa/org-20140331/ob-latex hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-latex
/home/jcl/elpa/org-20140331/org-feed hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-feed
/home/jcl/elpa/org-20140331/ob-scala hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-scala
/home/jcl/elpa/org-20140331/ob-asymptote hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-asymptote
/home/jcl/elpa/org-20140331/org-gnus hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-gnus
/home/jcl/elpa/org-20140331/ob-picolisp hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-picolisp
/home/jcl/elpa/org-20140331/org hides /home/jcl/usr/share/emacs/24.3/lisp/org/org
/home/jcl/elpa/org-20140331/ob-exp hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-exp
/home/jcl/elpa/org-20140331/org-indent hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-indent
/home/jcl/elpa/org-20140331/org-w3m hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-w3m
/home/jcl/elpa/org-20140331/org-footnote hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-footnote
/home/jcl/elpa/org-20140331/ob-sqlite hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-sqlite
/home/jcl/elpa/org-20140331/org-attach hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-attach
/home/jcl/elpa/org-20140331/org-id hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-id
/home/jcl/elpa/org-20140331/ob-ruby hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-ruby
/home/jcl/elpa/org-20140331/ob-sass hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-sass
/home/jcl/elpa/org-20140331/ob-C hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-C
/home/jcl/elpa/org-20140331/ob-org hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-org
/home/jcl/elpa/org-20140331/ob-eval hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-eval
/home/jcl/elpa/org-20140331/ob-lilypond hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-lilypond
/home/jcl/elpa/org-20140331/org-loaddefs hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-loaddefs
/home/jcl/elpa/org-20140331/org-element hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-element
/home/jcl/elpa/org-20140331/ob-clojure hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-clojure
/home/jcl/elpa/org-20140331/ob-sh hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-sh
/home/jcl/elpa/org-20140331/ob-ledger hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-ledger
/home/jcl/elpa/org-20140331/ob-io hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-io
/home/jcl/elpa/org-20140331/org-inlinetask hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-inlinetask
/home/jcl/elpa/org-20140331/org-info hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-info
/home/jcl/elpa/org-20140331/org-crypt hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-crypt
/home/jcl/elpa/org-20140331/ob-ocaml hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-ocaml
/home/jcl/elpa/org-20140331/org-mobile hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-mobile
/home/jcl/elpa/org-20140331/org-src hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-src
/home/jcl/elpa/org-20140331/org-list hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-list
/home/jcl/elpa/org-20140331/org-rmail hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-rmail
/home/jcl/elpa/org-20140331/ob-comint hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-comint
/home/jcl/elpa/org-20140331/ob-maxima hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-maxima
/home/jcl/elpa/org-20140331/org-ctags hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-ctags
/home/jcl/elpa/org-20140331/org-protocol hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-protocol
/home/jcl/elpa/org-20140331/org-datetree hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-datetree
/home/jcl/elpa/org-20140331/ob-scheme hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-scheme
/home/jcl/elpa/org-20140331/org-plot hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-plot
/home/jcl/elpa/org-20140331/ob-python hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-python
/home/jcl/elpa/org-20140331/org-docview hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-docview
/home/jcl/elpa/org-20140331/ob-gnuplot hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-gnuplot
/home/jcl/elpa/org-20140331/ob-ditaa hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-ditaa
/home/jcl/elpa/org-20140331/ob-plantuml hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-plantuml
/home/jcl/elpa/org-20140331/ob-lisp hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-lisp
/home/jcl/elpa/org-20140331/org-install hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-install
/home/jcl/elpa/org-20140331/ob-tangle hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-tangle
/home/jcl/elpa/org-20140331/org-agenda hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-agenda
/home/jcl/elpa/org-20140331/ob-dot hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-dot
/home/jcl/elpa/org-20140331/ob-keys hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-keys
/home/jcl/elpa/org-20140331/ob-calc hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-calc
/home/jcl/elpa/org-20140331/org-mhe hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-mhe
/home/jcl/elpa/org-20140331/ob-java hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-java
/home/jcl/elpa/org-20140331/ob-fortran hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-fortran
/home/jcl/elpa/org-20140331/org-eshell hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-eshell
/home/jcl/elpa/org-20140331/org-bibtex hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-bibtex
/home/jcl/elpa/org-20140331/ob hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob
/home/jcl/elpa/org-20140331/org-timer hides /home/jcl/usr/share/emacs/24.3/lisp/org/org-timer
/home/jcl/elpa/org-20140331/ob-R hides /home/jcl/usr/share/emacs/24.3/lisp/org/ob-R
/home/jcl/share/elisp/.dir-locals hides /home/jcl/usr/share/emacs/24.3/lisp/gnus/.dir-locals
/home/jcl/elpa/emms-20140401.1157/tq hides /home/jcl/usr/share/emacs/24.3/lisp/emacs-lisp/tq

Features:
(shadow emacsbug nndoc url-handlers pcase texinfo toolbar-x prv-emacs
desktop context plain-tex latex tex-style tex-buf tex dbus auto-complete
popup butler-util butler-servers deferred json debbugs-gnu debbugs
soap-client debbugs-autoloads locate emms-librefm-stream
emms-playlist-limit emms-volume emms-volume-amixer emms-i18n
emms-history emms-score emms-stream-info emms-metaplaylist-mode
emms-bookmarks emms-cue emms-mode-line-icon emms-browser
emms-player-xine emms-player-mpd emms-lyrics emms-streams
emms-tag-editor emms-info-metaflac emms-mark emms-url
emms-librefm-scrobbler xml emms-playlist-sort emms-last-played tempo
haskell-show haskell-process haskell-navigate-imports
haskell-presentation-mode haskell-str haskell-compat haskell-session
haskell-font-lock magit-key-mode magit iswitchb epa epg git-rebase-mode
git-commit-mode log-edit pcvs-util rng-loc rng-uri rng-parse rng-match
rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util
org-table esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg
esh-groups eshell esh-module esh-mode esh-util org-id ob-octave
slime-repl-tests slime-mdot-fu slime-indentation slime-tests tree-widget
elp inferior-slime slime-banner slime-enclosing-context slime-cl-indent
cl-indent gud autoload tar-mode url-http url-gw url-cache url-auth url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util sort gnus-cite mm-archive mail-extr gnus-bcklg
gnus-async add-log apropos vc-git w3m-cookie smiley jcl-replace jcl-ruby
jcl-games-init jcl-text-translator-init text-translator
text-translator-window text-translator-vars text-translator-sites
jcl-muse-init htmlize-hack htmlize sgml-mode muse-latex muse-html
muse-xml-common muse-colors cus-edit cus-start cus-load muse-publish
muse-project muse-protocols muse-regexps derived muse muse-nested-tags
muse-mode jcl-dictem-init dictem misearch multi-isearch mule-util
image-file org-indent org-rmail org-mhe org-irc org-info org-gnus
org-docview org-bibtex bibtex org-bbdb org-w3m jcl-renegade-goblin
jcl-home-boot network-stream tls qp parse-time gnus-ml gnus-topic
nndraft nnmh nnfolder nnml gnus-agent gnus-srvr gnus-score score-mode
nnvirtual nntp gnus-cache jcl-torrent jcl-goblin fuzzy-match jcl-load
jcl-boot text-translator-load jcl-stumpwm jcl-slime slime-fancy
slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations bridge
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl slime-parse slime
hyperspec jcl-sty jcl-org-init org-feed org-latex org-export-latex
org-beamer org-exp org-exp-blocks footnote poporg vc-dir vc
vc-dispatcher jcl-epresent epresent ox-latex ox-icalendar ox-html
ox-ascii ox-publish ox org-element diet jcl-midnite-init midnight
jcl-picpocket-init picpocket-test jcl-erc-init erc-goodies erc
erc-backend erc-compat jcl-file-cache-init jcl-file-cache filecache
jcl-grep-sbg sbg jcl-ido-init jcl-dired-init jcl-dired jcl-dired-lexical
picpocket dired-details wdired dired-aux jcl-register-init
jcl-command-subset-init jcl-generic-init generic-x jcl-erlang-init
jcl-sbg jcl-erlang-log bookmark pp jcl-sbg-ssit erlang-eunit jcl-erlang
distel-ie edb distel jcl-eel bindat patmatch erl-service derl epmd
net-fsm erl erlext jcl-safe-init jcl-abbrev-init jcl-ediff-init
ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult
ediff-init ediff jcl-term-init jcl-face-init hl-line jcl-elisp-init
profiler edebug lib-requires loadhist hi-lock jcl-template-init
jcl-template cperl-mode tagbag-init erlang jcl-register jcl-grep-init
jcl-grep jcl-motion jcl-modes-init jcl-advice calc calc-loaddefs
calc-macs jcl-rfc rfcview goto-addr proced table picture python rx
inf-ruby ruby-mode inf-haskell haskell-cabal haskell-utils
haskell-decl-scan haskell-mode haskell-string haskell-sort-imports
haskell-align-imports flymake dabbrev cc-langs cwarn cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
grep jcl-command-subset nrepl nrepl-macroexpansion
nrepl-interaction-mode nrepl-selector nrepl-repl-mode nrepl-repl
nrepl-version pkg-info lisp-mnt epl nrepl-client compile eldoc arc-mode
archive-mode etags dash clojure-mode inf-lisp view jcl-calendar-init
jcl-emms-init emms-playing-time emms-mode-line emms-cache
emms-info-ogginfo emms-info-mp3info emms-info later-do
emms-playlist-mode emms-player-vlc emms-player-mplayer
emms-player-simple emms-source-playlist emms-source-file emms-setup emms
emms-compat jcl-gnus-init jcl-gnus jcl-w3m-init w3m-search jcl-term
time-stamp ange-ftp w3m-bookmark w3m-antenna w3m-rss
jcl-org-import-icalendar jcl-status org-agenda org org-macro
org-footnote org-pcomplete org-list org-faces org-entities noutline
outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob
ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs autorevert appt jcl-calendar jcl-swedish-postfix quail
help-mode holidays hol-loaddefs icalendar diary-lib diary-loaddefs
cal-menu calendar cal-loaddefs dired-x gnus-msg gnus-art mm-uu mml2015
epg-config mm-view mml-smime smime dig gnus-sum nnoo gnus-group
gnus-undo nnmail mail-source gnus-start gnus-spec gnus-int gnus-range
gnus-win mailcap starttls smtpmail sendmail message rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev gmm-utils mailheader gnus gnus-ems nnheader
mail-utils jcl-keys-init diff-mode easy-mmode tagbag tramp tramp-compat
tramp-loaddefs cl-macs gv shell pcomplete format-spec windmove jcl-keys
jcl-global-init wc-mode time paren mic-paren printing ps-print ps-def
lpr uniquify mb-depth whitespace ffap url-parse auth-source eieio
gnus-util mm-util mail-prsvr password-cache url-vars byte-opt warnings
bytecomp byte-compile cconv saveplace jcl-imenu which-func imenu
jcl-copyright jcl-duff clearcase tq reporter cl minibuf-eldef winner
icomplete jcl-sl-init w3m browse-url doc-view jka-compr image-mode
timezone w3m-hist w3m-fb bookmark-w3m w3m-ems wid-edit w3m-ccl ccl
w3m-favicon w3m-image w3m-proc w3m-util jcl-misc jcl-ert ispell
thingatpt find-lisp comint ansi-color dired jcl-misc-lexical jcl-windows
ido ert find-func ewoc debug jcl-compile jcl-site-start jpt-mode
erlang-start jcl-elpa-init num3-mode jcl-compat-init term disp-table
ehelp electric ring sh-script smie executable jcl-times-init advice
help-fns advice-preload jcl-util jcl-times cl-lib server jcl-load-path
adjust-parens-autoloads ascii-art-to-unicode-autoloads async-autoloads
auctex-autoloads tex-site auto-complete-autoloads butler-autoloads
deferred-autoloads dired-details-autoloads eimp-autoloads
el-mock-autoloads emms-autoloads epresent-autoloads erlang-autoloads
etags-select-autoloads flymake-autoloads fuzzy-match-autoloads
gitconfig-mode-autoloads gitignore-mode-autoloads gnugo-autoloads
gnuplot-autoloads gnuplot-mode-autoloads haskell-mode-autoloads edmacro
kmacro htmlize-autoloads inf-ruby-autoloads ipython-autoloads
key-chord-autoloads keywiz-autoloads lib-requires-autoloads
lua-mode-autoloads macrostep-autoloads magit-autoloads
git-rebase-mode-autoloads git-commit-mode-autoloads
markdown-mode-autoloads mic-paren-autoloads mo-git-blame-autoloads
muse-autoloads nrepl-autoloads dash-autoloads clojure-mode-autoloads
num3-mode-autoloads org-present-autoloads org-autoloads outorg-autoloads
pkg-info-autoloads epl-autoloads popup-autoloads pysmell-autoloads
python-autoloads s-autoloads slime-autoloads finder-inf tabbar-autoloads
w3m-autoloads info easymenu web-autoloads yaoddmuse-autoloads package
time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face macroexp files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#17250: 24.3; find-variable gives search-failed error message
  2014-04-12 12:38 bug#17250: 24.3; find-variable gives search-failed error message Johan Claesson
@ 2018-04-17 22:58 ` Lars Ingebrigtsen
  2018-04-18  6:23   ` Eli Zaretskii
  2018-04-28  2:27   ` Noam Postavsky
  0 siblings, 2 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2018-04-17 22:58 UTC (permalink / raw)
  To: Johan Claesson; +Cc: 17250

Johan Claesson <johanclaesson@bredband.net> writes:

> emacs -Q
> (defvar foo nil) C-M-x
> M-x find-variable RET foo RET
>
> This gives the following error:
>
> Search failed: "\x1fVfoo
> "
>
> Since foo is defined interactively in the *scratch* buffer emacs does
> not know what file it belongs to.  That is expected.  I just think it
> should say something like "Don't know where foo is defined" instead of
> the above error message.

The following patch fixes the problem.

Simplest test case:  (help-C-file-name 'foo 'var)

But there are several places that use this function without checking the
return value.  Are they relying on this function to bug out with a
cryptic error, or are they all confident that the file name can be
found?

So I haven't applied it yet.  Perhaps somebody else will weigh in...

diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index ec46a479ed..ab3fe3a732 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -169,7 +169,8 @@ describe-function
 ;;;###autoload
 (defun help-C-file-name (subr-or-var kind)
   "Return the name of the C file where SUBR-OR-VAR is defined.
-KIND should be `var' for a variable or `subr' for a subroutine."
+KIND should be `var' for a variable or `subr' for a subroutine.
+If we can't find the file name, nil is returned."
   (let ((docbuf (get-buffer-create " *DOC*"))
 	(name (if (eq 'var kind)
 		  (concat "V" (symbol-name subr-or-var))
@@ -181,19 +182,23 @@ help-C-file-name
 	   (expand-file-name internal-doc-file-name doc-directory)))
       (let ((file (catch 'loop
 		    (while t
-		      (let ((pnt (search-forward (concat "\^_" name "\n"))))
-			(re-search-backward "\^_S\\(.*\\)")
-			(let ((file (match-string 1)))
-			  (if (member file build-files)
-			      (throw 'loop file)
-			    (goto-char pnt))))))))
-	(if (string-match "^ns.*\\(\\.o\\|obj\\)\\'" file)
-	    (setq file (replace-match ".m" t t file 1))
-	  (if (string-match "\\.\\(o\\|obj\\)\\'" file)
-	      (setq file (replace-match ".c" t t file))))
-	(if (string-match "\\.\\(c\\|m\\)\\'" file)
-	    (concat "src/" file)
-	  file)))))
+		      (let ((pnt (search-forward (concat "\^_" name "\n") nil t)))
+                        (if (not pnt)
+                            (throw 'loop nil)
+			  (re-search-backward "\^_S\\(.*\\)")
+			  (let ((file (match-string 1)))
+			    (if (member file build-files)
+			        (throw 'loop file)
+			      (goto-char pnt)))))))))
+        (if (not file)
+            nil
+	  (if (string-match "^ns.*\\(\\.o\\|obj\\)\\'" file)
+	      (setq file (replace-match ".m" t t file 1))
+	    (if (string-match "\\.\\(o\\|obj\\)\\'" file)
+	        (setq file (replace-match ".c" t t file))))
+	  (if (string-match "\\.\\(c\\|m\\)\\'" file)
+	      (concat "src/" file)
+	    file))))))
 
 (defcustom help-downcase-arguments nil
   "If non-nil, argument names in *Help* buffers are downcased."


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





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#17250: 24.3; find-variable gives search-failed error message
  2018-04-17 22:58 ` Lars Ingebrigtsen
@ 2018-04-18  6:23   ` Eli Zaretskii
  2018-04-28  2:27   ` Noam Postavsky
  1 sibling, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2018-04-18  6:23 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 17250

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Date: Wed, 18 Apr 2018 00:58:39 +0200
> Cc: 17250@debbugs.gnu.org
> 
> But there are several places that use this function without checking the
> return value.  Are they relying on this function to bug out with a
> cryptic error, or are they all confident that the file name can be
> found?
> 
> So I haven't applied it yet.  Perhaps somebody else will weigh in...

I'm not weighing in ;-)

>  (defun help-C-file-name (subr-or-var kind)
>    "Return the name of the C file where SUBR-OR-VAR is defined.
> -KIND should be `var' for a variable or `subr' for a subroutine."
> +KIND should be `var' for a variable or `subr' for a subroutine.
> +If we can't find the file name, nil is returned."
                                   ^^^^^^^^^^^^^^^
"return nil".  We try to avoid passive tense.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#17250: 24.3; find-variable gives search-failed error message
  2018-04-17 22:58 ` Lars Ingebrigtsen
  2018-04-18  6:23   ` Eli Zaretskii
@ 2018-04-28  2:27   ` Noam Postavsky
  2019-06-26 14:06     ` Lars Ingebrigtsen
  1 sibling, 1 reply; 5+ messages in thread
From: Noam Postavsky @ 2018-04-28  2:27 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 17250

Lars Ingebrigtsen <larsi@gnus.org> writes:

> But there are several places that use this function without checking the
> return value.  Are they relying on this function to bug out with a
> cryptic error, or are they all confident that the file name can be
> found?
>
> So I haven't applied it yet.  Perhaps somebody else will weigh in...

I think it's okay.  Here's my analysis of the call-sites found by M-x
rgrep:

./help-fns.el:163:;; (defun help-C-file-name (subr-or-var kind)
./help-fns.el:170:(defun help-C-file-name (subr-or-var kind)
./help-fns.el:319:	  (help-C-file-name type 'subr)
./help-fns.el:325:	  (help-C-file-name object 'var)

These 2 are in the return value position of
`find-lisp-object-file-name', whose docstring says "If no suitable file
is found, return nil".

./emacs-lisp/find-func.el:436:            (help-C-file-name def 'subr))

This one is only called if `def' satisfies `subrp', so I think failing
to find it can't happen anyway.  

./emacs-lisp/find-func.el:555:                       (help-C-file-name variable 'var))))

This one is in find-variable-noselect.  Before your change, it would
throw (search-failed "\037Vfoo\n"), with your change it throws (error
"Don’t know where ‘foo’ is defined") which seems better.

./progmodes/elisp-mode.el:693:              (push (elisp--xref-make-xref nil symbol (help-C-file-name (symbol-function symbol) 'subr)) xrefs))
./progmodes/elisp-mode.el:770:              ;; yet; help-C-file-name does that.  Second call will
./progmodes/elisp-mode.el:772:              (push (elisp--xref-make-xref 'defvar symbol (help-C-file-name symbol 'var)) xrefs))
./ldefs-boot.el:15592:(autoload 'help-C-file-name "help-fns" "\
./help-mode.el:203:                             (help-C-file-name (indirect-function fun) 'fun)))
./help-mode.el:243:		     (setq file (help-C-file-name var 'var)))

As far as I can tell, all of these calls only happen if the symbol has
already been found by `find-lisp-object-file-name', so they won't
trigger the failure case.






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#17250: 24.3; find-variable gives search-failed error message
  2018-04-28  2:27   ` Noam Postavsky
@ 2019-06-26 14:06     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2019-06-26 14:06 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 17250

Noam Postavsky <npostavs@gmail.com> writes:

>> So I haven't applied it yet.  Perhaps somebody else will weigh in...
>
> I think it's okay.  Here's my analysis of the call-sites found by M-x
> rgrep:

Thanks for checking this; I've now applied the patch to the Emacs trunk.

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





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-06-26 14:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-12 12:38 bug#17250: 24.3; find-variable gives search-failed error message Johan Claesson
2018-04-17 22:58 ` Lars Ingebrigtsen
2018-04-18  6:23   ` Eli Zaretskii
2018-04-28  2:27   ` Noam Postavsky
2019-06-26 14:06     ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).