$Id: README,v 1.4 1992/08/25 17:27:30 kendall Exp $

		   Tags++: etags/ctags for C and C++
			      Version 1.1


   This package is tags++, an enhanced version of etags and tags.el (for
use with GNU Emacs Version 18) and ctags (for use with vi).  The
enhancements support C++, and they support C better than the standard
etags, tags.el, and ctags.

   This should work on all Unix(tm of AT&T) systems.  It may work on VMS
(with VMS GNU Emacs), but that has not been tested; please let me know
if you have tried it on VMS, successfully or unsuccessfully.

   Tags++ has not changed significantly in several years and is robust.


Advantages of Tags++
--------------------

   The major advantage of tags++ over the standard version in Emacs
Version 18 is support for C++.  For example, given this program:

	class A {
		int i;
	public:
		A() { i = 5; }
		int get_i();
	};

	int A::get_i() { return i; }

you can find the tags "A", "A::A", or "A::get_i".  Caveat: if you are
using ctags and vi, you must supply the "-T" switch when you run ctags
to get this to happen.

   Even for C, tags++ finds more stuff (such as macro constants and
structure tags) than other versions.

   In Emacs, you get name completion in the minibuffer (on all
identifiers in the program).  See the man page for an example of why
this is useful.  Note that the visit-tags-table operation is slow
because it is building an alist for name completion.

   Also in Emacs, M-. finds exact matches first; then M-, (or C-U M-.)
finds other exact matches, followed by successively less exact matches.
For example, suppose you type M-. f RET, and your sources contain
functions "efface", "f_internal", "foo", and "f" in that order.  The
standard tags facility will find these in that order -- frustrating if
you just wanted "f".  Tags++ will find "f" first (exact match), then
"f_internal" (word match), then "efface" and "foo" (inexact matches).


Compatibility
-------------

   Tags++ is forward- and backward-compatible with the standard versions
of etags and tags.el (for Emacs Version 18) and ctags.  In other words,
if some people at a site are using the standard tags facility and others
are using tags++, no one will notice -- except that tags++ users will be
unhappy with the sparse tags files produced by the standard etags or
ctags.

   Tags++ almost certainly works with Epoch, although we haven't tried.
Tags++ -- along with all other Emacs Version 18 tags programs -- is
probably incompatible with the upcoming Emacs Version 19.


What is Included
----------------

COPYING		GNU general public license
Makefile
README		this file
README.2	more detailed notes and bugs
etags.c		source for etags and ctags
etags.1		etags and ctags man page
tags.el		tags facility for Emacs, elisp code


How to Build and Install
------------------------

   To build etags, inspect the Makefile, change GFLAG and OFLAG if
necessary, and type "make".  Type "make ctags" to make ctags (it's just
a symlink to etags).  etags.c is written in old-style (non-ANSI) C.

   To install etags and ctags, change BIN_DIR in the Makefile as
appropriate and type "make install".

   To install the man page, change MAN_DIR and MAN_EXT in the Makefile
as appropriate and type "make install_man".

   Install tags.el by copying it to an appropriate directory and
byte-compiling it (using Emacs M-x byte-compile-file).  Users can get
this version of tags.el by:

	- Loading it explicitly from their .emacs files, OR
	- Making sure that the directory in which this tags.el{,c} is
	  installed is in their load-path before the standard lisp
	  directory.  This works because Emacs autoloads tags.


Notes
-----

   Emacs users may also be interested in c++-mode.el, which is available
for anonymous ftp on archive.cis.ohio-state.edu.

   Send comments, bugs, and enhancements to me.


Versions
--------

8/25/92	 1.1	Renamed the package "tags++" for easy archie-ability.
		Updated the man page to reflect the fact that templates
		work (serendipity!).  Member functions of nested classes
		should work a little better.

6/4/92	  1.0	FCS.


----
Sam Kendall			       		  kendall@CenterLine.COM
CenterLine Software Inc. (formerly Saber Software)   uunet!saber!kendall
10 Fawcett Street
Cambridge, MA  02138  USA
