From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juanma Barranquero Newsgroups: gmane.emacs.devel Subject: proposed `list-dynamic-libraries' Date: Fri, 6 May 2011 17:46:42 +0200 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1304696873 6529 80.91.229.12 (6 May 2011 15:47:53 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 6 May 2011 15:47:53 +0000 (UTC) To: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri May 06 17:47:50 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QINFt-0007aN-ME for ged-emacs-devel@m.gmane.org; Fri, 06 May 2011 17:47:49 +0200 Original-Received: from localhost ([::1]:38728 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QINFt-0006VD-7S for ged-emacs-devel@m.gmane.org; Fri, 06 May 2011 11:47:49 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:53742) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QINFq-0006Rr-8n for emacs-devel@gnu.org; Fri, 06 May 2011 11:47:47 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QINFp-0003lk-Bm for emacs-devel@gnu.org; Fri, 06 May 2011 11:47:46 -0400 Original-Received: from mail-qy0-f169.google.com ([209.85.216.169]:42850) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QINFp-0003lg-9J for emacs-devel@gnu.org; Fri, 06 May 2011 11:47:45 -0400 Original-Received: by qyk2 with SMTP id 2so5392902qyk.0 for ; Fri, 06 May 2011 08:47:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:from:date:message-id:subject:to :content-type:content-transfer-encoding; bh=INdHPpy5OM2+F8GyeK73+hgAeM/8ytwPJ70QFMfBQRI=; b=Qof+5eBGwaDh9olrCANJePQoThK0z4OJAwOT0IGmFWfHLk9DzXlYFqNtdtC8EsDIDh 3g8uQjOHGyi6Yn0KU4tndThLOSmLOye3TDSJv0QfBPzeobEG5Z/WdOQpGgmbEOIV029K a70Hj9VFKGgMCSwalwHFiL/mDQyfjWjyLPlM8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type :content-transfer-encoding; b=bb/k9Sy5se3DjSMQst9ogm3JfEDhbpFPnnlVajsbyNpbfhmNr/RnkkJ/ezV5rUN+al kQRdWw8chJq0fGZPoCCoKatAq9wnb44yiQw3pivvOtiEgrE3b+VxeFSqmHkQXp3PS3Zc WQ2DqiH5WPu3wnqekvpaOvGVJFTOTE1K7Lhc4= Original-Received: by 10.229.182.202 with SMTP id cd10mr2677397qcb.171.1304696842086; Fri, 06 May 2011 08:47:22 -0700 (PDT) Original-Received: by 10.229.91.210 with HTTP; Fri, 6 May 2011 08:46:42 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.216.169 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:139180 Archived-At: Would be OK to install this code, which adds a list-dynamic-libraries comma= nd? (Currently it is useful only on Windows, because it's the only platform supporting dynamic loading on demand.) If so, which source file would be best? `list-processes' is in simple.el, but I have a hard time understanding how can it be considered a "basic editing command" ;-) =C2=A0 =C2=A0 Juanma (defvar list-dynamic-libraries--loaded-only-p) (defun list-dynamic-libraries--refresh () "Recompute the list of dynamic libraries. Internal use only." (setq tabulated-list-entries nil) (dolist (lib dynamic-library-alist) (let* ((id (car lib)) (from (get id :loaded-from))) (when (or from (not list-dynamic-libraries--loaded-only-p)) (push (list id (vector (symbol-name id) (or from "") (mapconcat 'identity (cdr lib) ", "))) tabulated-list-entries))))) (defun list-dynamic-libraries (&optional loaded-only-p buffer) "Display a list of all dynamic libraries known to Emacs. \(These are the libraries listed in `dynamic-library-alist'.) If optional argument LOADED-ONLY-P (interactively, prefix arg) is non-nil, only libraries already loaded are listed. Optional argument BUFFER specifies a buffer to use, instead of \"*Dynamic Libraries*\". The return value is always nil." (interactive "P") (unless (bufferp buffer) (setq buffer (get-buffer-create "*Dynamic Libraries*"))) (with-current-buffer buffer (tabulated-list-mode) (setq tabulated-list-format (let ((max-id-len 0) (max-name-len 0)) (dolist (lib dynamic-library-alist) (let ((id-len (length (symbol-name (car lib)))) (name-len (apply 'max (mapcar 'length (cdr lib))))) (when (> id-len max-id-len) (setq max-id-len id-len)) (when (> name-len max-name-len) (setq max-name-len name-len= )))) (vector (list "Library" (1+ max-id-len) t) (list "Loaded from" (1+ max-name-len) t) (list "Candidate names" 0 t)))) (setq tabulated-list-sort-key (cons "Library" nil)) (add-hook 'tabulated-list-revert-hook 'list-dynamic-libraries--refresh nil t) (tabulated-list-init-header) (set (make-local-variable 'list-dynamic-libraries--loaded-only-p) loaded-only-p) (list-dynamic-libraries--refresh) (tabulated-list-print)) (display-buffer buffer) nil)