Subject: bug#563: `find-func.el': interactive-form of `find-library' fails

From: "Richard Copley" <[email-masked]>
Date: Tue, 15 Jul 2008 15:46:55 +0100

To reproduce,
   Visit a library file containing a `require' form, e.g.,
   "M-x find-library RET yow RET". Search for a `require' form and
   position point on its the opening left parenthesis.  Invoke
   `find-library' interactively with "M-x find-library RET".

Symptom
   Instead of prompting for a library name, Emacs displays the error message
   `Scan error: "Unbalanced parentheses", 1222, 1'.

Problem
   The error is in the interactive form of `find-library' in `find-func.el'.
   If point is over the opening left-paren of the `require' form then
   `function-called-at-point' returns `require', whereupon `backward-up-list'
   fails because point is not in a list.

Suggestions (for what they're worth :)
   (a) Handle this special case in the `find-library' interactive form.
   (b) Modify `function-called-at-point' to do what its docstring says.
   (c) In the `find-function' interactive form, use `condtition-case'
       to detect errors in computing the default.

In GNU Emacs 22.2.1 (i386-mingw-nt6.0.6001)
 of 2008-03-26 on RELEASE
Windowing system distributor `Microsoft Corp.', version 6.0.6001
configured using `configure --with-gcc (3.4)'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ENG
  locale-coding-system: cp1252
  default-enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
  show-paren-mode: t
  encoded-kbd-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  unify-8859-on-encoding-mode: t
  utf-translate-cjk-mode: t
  auto-compression-mode: t
  line-number-mode: t