;;; ebrowse.el --- Emacs C++ class browser & tags facility
-;; Copyright (C) 1992-2013 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2016 Free Software Foundation, Inc.
;; Author: Gerd Moellmann <gerd@gnu.org>
-;; Maintainer: FSF
+;; Maintainer: emacs-devel@gnu.org
;; Keywords: C++ tags tools
;; This file is part of GNU Emacs.
;;; Code:
+(require 'cl-lib)
(require 'easymenu)
(require 'view)
(require 'ebuff-menu)
(eval-when-compile
- (require 'cl-lib)
(require 'helper))
\f
found))
-(defun ebrowse-delete-if-not (predicate list)
- "Remove elements not satisfying PREDICATE from LIST and return the result.
-This is a destructive operation."
- (let (result)
- (while list
- (let ((next (cdr list)))
- (when (funcall predicate (car list))
- (setq result (nconc result list))
- (setf (cdr list) nil))
- (setq list next)))
- result))
-
-
(defmacro ebrowse-output (&rest body)
"Eval BODY with a writable current buffer.
Preserve buffer's modified state."
(defun ebrowse-browser-buffer-list ()
"Return a list of all tree or member buffers."
- (ebrowse-delete-if-not 'ebrowse-buffer-p (buffer-list)))
+ (cl-delete-if-not 'ebrowse-buffer-p (buffer-list)))
(defun ebrowse-member-buffer-list ()
"Return a list of all member buffers."
- (ebrowse-delete-if-not 'ebrowse-member-buffer-p (buffer-list)))
+ (cl-delete-if-not 'ebrowse-member-buffer-p (buffer-list)))
(defun ebrowse-tree-buffer-list ()
"Return a list of all tree buffers."
- (ebrowse-delete-if-not 'ebrowse-tree-buffer-p (buffer-list)))
+ (cl-delete-if-not 'ebrowse-tree-buffer-p (buffer-list)))
(defun ebrowse-known-class-trees-buffer-list ()
(defun ebrowse-same-tree-member-buffer-list ()
"Return a list of members buffers with same tree as current buffer."
- (ebrowse-delete-if-not
+ (cl-delete-if-not
(lambda (buffer)
(eq (buffer-local-value 'ebrowse--tree buffer)
ebrowse--tree))
;; Get the source file to view or find.
(setf file (ebrowse-find-source-file file tags-file))
;; If current window is dedicated, use another frame.
- (when (window-dedicated-p (selected-window))
+ (when (window-dedicated-p)
(setf where 'other-window))
(cond (view
(setf ebrowse-temp-position-to-view struc
(defun ebrowse-electric-list-looper (state condition)
"Prevent cursor from moving beyond the buffer end.
Don't let it move into the title lines.
-See 'Electric-command-loop' for a description of STATE and CONDITION."
+See `Electric-command-loop' for a description of STATE and CONDITION."
(cond ((and condition
(not (memq (car condition)
'(buffer-read-only end-of-buffer
(with-output-to-temp-buffer (concat "*Apropos Members*")
(set-buffer standard-output)
(erase-buffer)
- (insert "Members matching `" regexp "'\n\n")
+ (insert (format-message "Members matching `%s'\n\n" regexp))
(cl-loop for s in (ebrowse-list-of-matching-members members regexp) do
(cl-loop for info in (gethash s members) do
(ebrowse-draw-file-member-info info))))))
(1+ (point)))))))))
(unless non-empty
(error "No tree buffers"))
- (setf unread-command-events (listify-key-sequence "p"))
+ (setf unread-command-events
+ (nconc (listify-key-sequence "p") unread-command-events))
(shrink-window-if-larger-than-buffer (selected-window))
(setq buffer-read-only t))))