@syncodeindex fn cp
@comment %**end of header
-@ifinfo
-@direntry
-* Ebrowse:: A C++ class browser for Emacs.
-@end direntry
-
+@copying
This file documents Ebrowse, a C++ class browser for GNU Emacs.
-Copyright @copyright{} 1992--1999, 2000 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
+Copyright @copyright{} 2000, 2001, 2002, 2003, 2004,
+2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU
+Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the
+license is included in the section entitled ``GNU Free Documentation
+License'' in the Emacs manual.
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
+this GNU Manual, like GNU software. Copies published by the Free
+Software Foundation raise funds for GNU development.''
+
+This document is part of a collection distributed under the GNU Free
+Documentation License. If you want to distribute this document
+separately from the collection, you can do so by adding a copy of the
+license to the document, as described in section 6 of the license.
+@end quotation
+@end copying
+
+@dircategory Emacs
+@direntry
+* Ebrowse: (ebrowse). A C++ class browser for Emacs.
+@end direntry
-@end ignore
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-sections entitled ``The GNU Manifesto'', ``Distribution'' and ``GNU
-General Public License'' are included exactly as in the original, and
-provided that the entire resulting derived work is distributed under the
-terms of a permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the sections entitled ``The GNU Manifesto'',
-``Distribution'' and ``GNU General Public License'' may be included in a
-translation approved by the Free Software Foundation instead of in the
-original English.
-@end ifinfo
-
-@iftex
@titlepage
@title Ebrowse User's Manual
@sp 4
-@subtitle Ebrowse/Emacs 21
-@sp 1
-@subtitle May 2000
+@subtitle Ebrowse/Emacs
@sp 5
@author Gerd Moellmann
@page
-
@vskip 0pt plus 1filll
-@noindent
-Copyright @copyright{} 2000 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
+@insertcopying
@end titlepage
-@page
-@end iftex
@node Top, Overview, (dir), (dir)
@end ifnottex
@menu
-* Overview:: What is it and now does it work?
+* Overview:: What is it and how does it work?
* Generating browser files:: How to process C++ source files
* Loading a Tree:: How to start browsing
* Tree Buffers:: Traversing class hierarchies
* Member Buffers:: Looking at member information
* Tags-like Functions:: Finding members from source files
+* GNU Free Documentation License:: The license for this documentation.
* Concept Index:: An entry for each concept defined
@end menu
@item
When you get a new class library, or you have to work on source code you
haven't written yourself (or written sufficiently long ago), you need a
-tool letting you navigate through class hierarchies and investigate
-features of the software. Without such a tool you often end up grep'ing
-through dozens or even hundreds of files.
+tool to let you navigate class hierarchies and investigate
+features of the software. Without such a tool you often end up
+@command{grep}ing through dozens or even hundreds of files.
@item
Once you are productive, it would be nice to have a tool that knows your
The design of Ebrowse reflects these two needs.
-How does it work?
+How does it work?
@cindex parser for C++ sources
A fast parser written in C is used to process C++ source files.
The parser generates a data base containing information about classes,
-members, global functions, defines, types etc. found in the sources.
+members, global functions, defines, types etc.@: found in the sources.
The second part of Ebrowse is a Lisp program. This program reads
the data base generated by the parser. It displays its contents in
@itemize @bullet
@item
-Instance member variables,
+Instance member variables;
@item
-Instance member functions,
+Instance member functions;
@item
-Static member variables,
+Static member variables;
@item
-Static member functions,
+Static member functions;
@item
-Friends/Defines, The list of defines is contained in the friends
-list of the pseudo-class @samp{*Globals*}.
+Friends/Defines. The list of defines is contained in the friends
+list of the pseudo-class @samp{*Globals*};
@item
Types (@code{enum}s, and @code{typedef}s defined with class
@findex --search-path
@item --search-path=@var{paths}
-This option let's you specify search paths for your input files.
+This option lets you specify search paths for your input files.
@var{paths} is a list of directory names, separated from each other by a
either a colon or a semicolon, depending on the operating system.
@end table
(add-to-list 'auto-mode-alist '(@var{NAME} . ebrowse-tree-mode))
@end lisp
-@noindent
+@noindent
where @var{NAME} is the Lisp data base name you are using.
@findex --append
@item --append
By default, each run of @command{ebrowse} erases the old contents of the
output file when writing to it. You can instruct @command{ebrowse} to
-append its output to an existing file with this command line option.
+append its output to an existing file produced by @command{ebrowse}
+with this command line option.
@end table
This switch suppresses all classes in the data base declared as
@code{struct} or @code{union} in the output.
-This is mainly thought for the case that you are converting an existing
+This is mainly useful when you are converting an existing
C program to C++, and do not want to see the old C structs in a class
tree.
@end table
@cindex regular expressions, recording
The parser @command{ebrowse} normally writes regular expressions to its
output file that help the Lisp part of Ebrowse to find functions,
-variables etc. in their source files.
+variables etc.@: in their source files.
You can instruct @command{ebrowse} to omit these regular expressions by
calling it with the command line switch @samp{--no-regexps}.
@table @samp
@findex --no-regexps
@item --no-regexps
-This option turns regular expression recording off.
+This option turns off regular expression recording.
@findex --min-regexp-length
@cindex minimum regexp length for recording
and definitions. The default value is set at compilation time of
@command{ebrowse}.
-The smaller the minimum length the higher the probability that
+The smaller the minimum length, the higher the probability that
Ebrowse will find a wrong match. The larger the value, the
larger the output file and therefore the memory consumption once the
file is read from Emacs.
definitions. The default value is set at compilation time of
@command{ebrowse}.
-The larger the maximum length the higher the probability that the
+The larger the maximum length, the higher the probability that the
browser will find a correct match, but the larger the value the larger
the output file and therefore the memory consumption once the data is
-read. As a second effect, the larger the regular expression the higher
+read. As a second effect, the larger the regular expression, the higher
the probability that it will no longer match after editing the file.
@end table
@cindex mouse highlight in tree buffers
When you run Emacs on a display which supports colors and the mouse, you
-will notice that that certain areas in the tree buffer are highlighted
+will notice that certain areas in the tree buffer are highlighted
when you move the mouse over them. This highlight marks mouse-sensitive
regions in the buffer. Please notice the help strings in the echo area
when the mouse moves over a sensitive region.
@cindex context menu
-A click with @kbd{mouse-3} on a mouse-sensitive region opens a context
+A click with @kbd{Mouse-3} on a mouse-sensitive region opens a context
menu. In addition to this, each buffer also has a buffer-specific menu
-that is opened with a click with @kbd{mouse-3} somewhere in the buffer
+that is opened with a click with @kbd{Mouse-3} somewhere in the buffer
where no highlight is displayed.
Class trees are displayed in @dfn{tree buffers} which install their own
major mode. Most Emacs keys work in tree buffers in the usual way,
-e.g., you can move around in the buffer with the usual @kbd{C-f},
+e.g.@: you can move around in the buffer with the usual @kbd{C-f},
@kbd{C-v} etc., or you can search with @kbd{C-s}.
Tree-specific commands are bound to simple keystrokes, similar to
@end table
The same functionality is available from the menu opened with
-@kbd{mouse-3} on the class name.
+@kbd{Mouse-3} on the class name.
@end table
These lists are also available from the class' context menu invoked with
-@kbd{mouse-3} on the class name.
+@kbd{Mouse-3} on the class name.
@item s
Display file names for the current line, or for the number of lines
-given by a prefix argument.
+given by a prefix argument.
@end table
Here is an example of a tree buffer with file names displayed.
@table @kbd
@item -
This command collapses the branch of the tree starting at the class the
-cursor is on.
+cursor is on.
@item +
This command expands the branch of the tree starting at the class the
-cursor is on. Both commands for collapsing and expanding branches are
+cursor is on. Both commands for collapsing and expanding branches are
also available from the class' object menu.
@item *
@table @kbd
@item T w
This command reads a new indentation width from the minibuffer and
-redisplays the tree buffer with the new indentation. It is also
+redisplays the tree buffer with the new indentation It is also
available from the tree buffer's context menu.
@end table
@table @kbd
@item C-x C-s
-This command writes a class tree to the file it was read from. This is
-useful after classes have been deleted from a tree.
+This command writes a class tree to the file from which it was read.
+This is useful after classes have been deleted from a tree.
@item C-x C-w
Writes the tree to a file whose name is read from the minibuffer.
@item M t
Toggle the mark of the line point is in or for as many lines as given by
a prefix command. This command can also be found in the class' context
-menu.
+menu.
@cindex unmark all
@item M a
@itemize @bullet
@item
-Instance variables (normal member variables),
+Instance variables (normal member variables);
@item
-Instance functions (normal member functions),
+Instance functions (normal member functions);
@item
-Static variables,
+Static variables;
@item
-Static member functions,
+Static member functions;
@item
-Friend functions,
+Friend functions;
@item
Types (@code{enum}s and @code{typedef}s defined with class scope.
Nested classes will be shown in the class tree like normal classes.
@item L f
Switch to the list of member functions.
-@cindex static
+@cindex static
@item L F
Switch to the list of static member functions.
Switch to the list of friends or defines.
@item L t
-Switch to the list of types.x
+Switch to the list of types.
@end table
Both commands cycle through the member list.
-Most of the commands are also available from the member buffer's
+Most of the commands are also available from the member buffer's
context menu.
class declaration or definition has been found, or when it is not found.
All the commands described above can also be found in the context menu
-displayed when clicking @kbd{mouse-2} on a member name.
+displayed when clicking @kbd{Mouse-2} on a member name.
@table @kbd
@item D b
This command toggles the display of inherited members in the member
-buffer. This is also in the buffer's context menu.
+buffer. This is also in the buffer's context menu.
@end table
@item G m
Like the above command, but all members for the current class appear in
-the completion list. If necessary, the current member list is switched
+the completion list. If necessary, the current member list is switched
to the one containing the member.
With a prefix argument (@kbd{C-u}), all members in the class tree,
-i.e., all members the browser knows about appear in the completion
-list. The member display will be switched to the class and member list
+i.e.@: all members the browser knows about appear in the completion
+list. The member display will be switched to the class and member list
containing the member.
@item G n
@cindex switching buffers
@table @kbd
-@item TAB
+@item @key{TAB}
Pop up the tree buffer to which the member buffer belongs.
@item t
-Do the same as @kbd{TAB} but also position the cursor on the class
+Do the same as @key{TAB} but also position the cursor on the class
displayed in the member buffer.
@end table
@table @kbd
@cindex @code{public} members
-@item F a u
+@item F a u
This command toggles the display of @code{public} members. The
@samp{a} stands for `access'.
@item D a
Toggle the display of member attributes (default is on).
-The nine member attributes Ebrowse knows about are are displayed
+The nine member attributes Ebrowse knows about are displayed
as a list a single-characters flags enclosed in angle brackets in front
the of the member's name. A @samp{-} at a given position means that
the attribute is false. The list of attributes from left to right is
This command forces a redisplay of the member buffer. If the width
of the window displaying the member buffer is changed this command
redraws the member list with the appropriate column widths and number of
-columns.
+columns.
@end table
@comment *** TAGS LIKE FUNCTIONS
@comment **************************************************************
-@node Tags-like Functions, Concept Index, Member Buffers, Top
+@node Tags-like Functions, GNU Free Documentation License, Member Buffers, Top
@comment node-name, next, previous, up
@chapter Tags-like Functions
by Ebrowse.
@table @kbd
-@item C-c b f
+@item C-c C-m f
Find the definition of the member around point. If you invoke this
function with a prefix argument, the declaration is searched.
front of the member name, this class name is used as initial input for
the completion.
-@item C-c b F
+@item C-c C-m F
Find the declaration of the member around point.
-@item C-c b v
+@item C-c C-m v
View the definition of the member around point.
-@item C-c b V
+@item C-c C-m V
View the declaration of the member around point.
-@item C-c b 4 f
+@item C-c C-m 4 f
Find a member's definition in another window.
-@item C-c b 4 F
+@item C-c C-m 4 F
Find a member's declaration in another window.
-@item C-c b 4 v
+@item C-c C-m 4 v
View a member's definition in another window.
-@item C-c b 4 V
+@item C-c C-m 4 V
View a member's declaration in another window.
-@item C-c b 5 f
+@item C-c C-m 5 f
Find a member's definition in another frame.
-@item C-c b 5 F
+@item C-c C-m 5 F
Find a member's declaration in another frame.
-@item C-c b 5 v
+@item C-c C-m 5 v
View a member's definition in another frame.
-@item C-c b 5 V
+@item C-c C-m 5 V
View a member's declaration in another frame.
@end table
@table @kbd
@cindex return to original position
-@item C-c b -
+@item C-c C-m -
This command sets point to the previous position in the position stack.
Directly after you performed a jump, this will put you back to the
position where you came from.
-The stack is not popped, i.e., you can always switch back and forth
+The stack is not popped, i.e.@: you can always switch back and forth
between positions in the stack. To avoid letting the stack grow to
infinite size there is a maximum number of positions defined. When this
number is reached, older positions are discarded when new positions are
pushed on the stack.
-@item C-c b +
+@item C-c C-m +
This command moves forward in the position stack, setting point to
the next position stored in the position stack.
-@item C-c b p
-Displays an electric buffer showing all positions saved in the stack.
-You can select a position by pressing @kbd{SPC} in a line. You can
+@item C-c C-m p
+Displays an electric buffer showing all positions saved in the stack.
+You can select a position by pressing @kbd{SPC} in a line. You can
view a position with @kbd{v}.
@end table
tree are used.
@table @kbd
-@item C-c b s
+@item C-c C-m s
This function performs a regular expression search in the chosen set of
files.
-@item C-c b u
+@item C-c C-m u
This command performs a search for calls of a given member which is
selected in the usual way with completion.
-@item C-c b %
+@item C-c C-m %
Perform a query replace over the set of files.
-@item C-c b ,
-All three operations above stop when finding a match. You can restart
+@item C-c C-m ,
+All three operations above stop when finding a match. You can restart
the operation with this command.
-@item C-c b n
-This restarts the last tags operation with the next file in the list.
+@item C-c C-m n
+This restarts the last tags operation with the next file in the list.
@end table
@cindex list class members in a file
@cindex file, members
-The command @kbd{C-c b l}, lists all members in a given file. The file
+The command @kbd{C-c C-m l}, lists all members in a given file. The file
name is read from the minibuffer with completion.
@node Apropos, Symbol Completion, Members in Files, Tags-like Functions
@comment node-name, next, previous, up
-@section Member Apropos
+@section Member Apropos
@cindex apropos on class members
@cindex members, matching regexp
-The command @kbd{C-c b a} can be used to display all members matching a
+The command @kbd{C-c C-m a} can be used to display all members matching a
given regular expression. This command can be very useful if you
remember only part of a member name, and not its beginning.
A special buffer is popped up containing all identifiers matching the
-regular expression, and what kind of symbol it is (e.g., a member
+regular expression, and what kind of symbol it is (e.g.@: a member
function, or a type). You can then switch to this buffer, and use the
-command @kbd{C-c b f}, for example, to jump to a specific member.
+command @kbd{C-c C-m f}, for example, to jump to a specific member.
@cindex completion
@cindex symbol completion
-The command @kbd{C-c b TAB} completes the symbol in front of point.
+The command @kbd{C-c C-m @key{TAB}} completes the symbol in front of point.
-@node Member Buffer Display, , Symbol Completion, Tags-like Functions
+@node Member Buffer Display, , Symbol Completion, Tags-like Functions
@section Quick Member Display
@cindex member buffer, for member at point
You can quickly display a member buffer containing the member the cursor
-in on with the command @kbd{C-c b m}.
+in on with the command @kbd{C-c C-m m}.
+
+@node GNU Free Documentation License, Concept Index, Tags-like Functions, Top
+@appendix GNU Free Documentation License
+@include doclicense.texi
-@node Concept Index, , Tags-like Functions, Top
+
+@node Concept Index, , GNU Free Documentation License, Top
@unnumbered Concept Index
@printindex cp
@contents
@bye
+
+@ignore
+ arch-tag: 52fe78ac-a1c4-48e7-815e-0a31acfad4bf
+@end ignore