mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 14:30:50 -08:00
Record and display absolute path of DLLs loaded (bug#10424).
* lisp/misc.el (list-dynamic-libraries--loaded): New function. (list-dynamic-libraries--refresh): Use it. * src/w32.c (w32_delayed_load): Record the full path of the library being loaded.
This commit is contained in:
parent
8f33b5f873
commit
2a8ce227d0
4 changed files with 34 additions and 2 deletions
|
|
@ -1,3 +1,9 @@
|
||||||
|
2012-04-10 Juanma Barranquero <lekktu@gmail.com>
|
||||||
|
|
||||||
|
* misc.el: Display absolute path of loaded DLLs (bug#10424).
|
||||||
|
(list-dynamic-libraries--loaded): New function.
|
||||||
|
(list-dynamic-libraries--refresh): Use it.
|
||||||
|
|
||||||
2012-04-10 Nathan Weizenbaum <nweiz@google.com>
|
2012-04-10 Nathan Weizenbaum <nweiz@google.com>
|
||||||
|
|
||||||
* progmodes/python.el (python-fill-paragraph): Make
|
* progmodes/python.el (python-fill-paragraph): Make
|
||||||
|
|
|
||||||
15
lisp/misc.el
15
lisp/misc.el
|
|
@ -138,6 +138,19 @@ variation of `C-x M-c M-butterfly' from url `http://xkcd.com/378/'."
|
||||||
(defvar list-dynamic-libraries--loaded-only-p)
|
(defvar list-dynamic-libraries--loaded-only-p)
|
||||||
(make-variable-buffer-local 'list-dynamic-libraries--loaded-only-p)
|
(make-variable-buffer-local 'list-dynamic-libraries--loaded-only-p)
|
||||||
|
|
||||||
|
(defun list-dynamic-libraries--loaded (from)
|
||||||
|
"Compute the \"Loaded from\" column.
|
||||||
|
Internal use only."
|
||||||
|
(if from
|
||||||
|
(let ((name (car from))
|
||||||
|
(path (or (cdr from) "<unknown>")))
|
||||||
|
;; This is a roundabout way to change the tooltip without
|
||||||
|
;; having to replace the default printer function
|
||||||
|
(propertize name
|
||||||
|
'display (propertize name
|
||||||
|
'help-echo (concat "Loaded from: " path))))
|
||||||
|
""))
|
||||||
|
|
||||||
(defun list-dynamic-libraries--refresh ()
|
(defun list-dynamic-libraries--refresh ()
|
||||||
"Recompute the list of dynamic libraries.
|
"Recompute the list of dynamic libraries.
|
||||||
Internal use only."
|
Internal use only."
|
||||||
|
|
@ -159,7 +172,7 @@ Internal use only."
|
||||||
(when (or from
|
(when (or from
|
||||||
(not list-dynamic-libraries--loaded-only-p))
|
(not list-dynamic-libraries--loaded-only-p))
|
||||||
(push (list id (vector (symbol-name id)
|
(push (list id (vector (symbol-name id)
|
||||||
(or from "")
|
(list-dynamic-libraries--loaded from)
|
||||||
(mapconcat 'identity (cdr lib) ", ")))
|
(mapconcat 'identity (cdr lib) ", ")))
|
||||||
tabulated-list-entries)))))
|
tabulated-list-entries)))))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-04-10 Juanma Barranquero <lekktu@gmail.com>
|
||||||
|
|
||||||
|
* w32.c (w32_delayed_load): Record the full path of the library
|
||||||
|
being loaded (bug#10424).
|
||||||
|
|
||||||
2012-04-09 Glenn Morris <rgm@gnu.org>
|
2012-04-09 Glenn Morris <rgm@gnu.org>
|
||||||
|
|
||||||
* doc.c (Fsnarf_documentation): Check variables, functions are bound,
|
* doc.c (Fsnarf_documentation): Check variables, functions are bound,
|
||||||
|
|
|
||||||
10
src/w32.c
10
src/w32.c
|
|
@ -5816,7 +5816,15 @@ w32_delayed_load (Lisp_Object libraries, Lisp_Object library_id)
|
||||||
CHECK_STRING_CAR (dlls);
|
CHECK_STRING_CAR (dlls);
|
||||||
if ((library_dll = LoadLibrary (SDATA (XCAR (dlls)))))
|
if ((library_dll = LoadLibrary (SDATA (XCAR (dlls)))))
|
||||||
{
|
{
|
||||||
found = XCAR (dlls);
|
char name[MAX_PATH];
|
||||||
|
DWORD len;
|
||||||
|
|
||||||
|
len = GetModuleFileNameA (library_dll, name, sizeof (name));
|
||||||
|
found = Fcons (XCAR (dlls),
|
||||||
|
(len > 0)
|
||||||
|
/* Possibly truncated */
|
||||||
|
? make_specified_string (name, -1, len, 1)
|
||||||
|
: Qnil);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue