# HG changeset patch # User Eli Zaretskii # Date 1240694015 0 # Node ID 056e34bacfbc9344036933d4216a9ef06196b713 # Parent ce405af23a6e41efc195a2269f40a69b0b11f1fd (Tags): Clarify the text some more. diff -r ce405af23a6e -r 056e34bacfbc doc/emacs/maintaining.texi --- a/doc/emacs/maintaining.texi Sat Apr 25 15:27:45 2009 +0000 +++ b/doc/emacs/maintaining.texi Sat Apr 25 21:13:35 2009 +0000 @@ -1480,32 +1480,34 @@ @section Tags Tables @cindex tags and tag tables - A @dfn{tags table} is a description of how program's sources are -broken up into individual source files. It lists the names of the -component files and the names and positions of the functions (or other -named subunits) in each file. Commands that search or replace through -multiple files use the list of source files to know which files to -search. Commands such as @kbd{M-.}, which finds the definition of a -function, uses the recorded information about the function names and -positions to find the source file and the position within that file -where the function is defined. - - Tags tables are stored in files called @dfn{tags table files}. The -conventional name for a tags table file is @file{TAGS}. + A @dfn{tag} is a named subunit of a program or of a document. In +program source code, tags are syntactic elements of the program: +functions, subroutines, data types, macros, etc. In a document, tags +are chapters, sections, appendices, etc. - Each entry in the tags table records the name of a tag, the name of -the file that the tag is defined in (implicitly), and the position in -that file of the tag's definition. If the file is a generated file, -its tags reference the originating source file. Examples of generated -files include C files generated from Cweb source files or from a Yacc -parser or Lex scanner definitions, @file{.i} preprocessed C files, and -Fortran files produced by preprocessing @file{.fpp} source files. + A @dfn{tags table} records the names of the tags extracted from the +source code of a certain program or from a certain document. Each tag +is listed together with the file name on which it is defined, and the +position of the tag in that file. Tags extracted from generated files +reference the original file from which they were generated, rather +than the file from which these tags were extracted. Examples of +generated files include C files generated from Cweb source files, from +a Yacc parser, or from Lex scanner definitions; @file{.i} preprocessed +C files; and Fortran files produced by preprocessing @file{.fpp} +source files. - Just what names from the described files are recorded in the tags table -depends on the programming language of the described file. They -normally include all file names, functions and subroutines, and may -also include global variables, data types, and anything else -convenient. Each name recorded is called a @dfn{tag}. + Tags tables are produced by scanning a document or the source code +of a program with a special program called @samp{etags}, and stored in +files called @dfn{tags table files}. The conventional name for a tags +table file is @file{TAGS}. + + Emacs uses the information recorded in tags tables in commands that +search or replace through multiple files: these commands use the names +of the source files recorded in the tags table to know which files to +search. Other commands, such as @kbd{M-.}, which finds the definition +of a function, use the recorded information about the function names +and positions to find the source file and the position within that +file where the function is defined. @cindex C++ class browser, tags @cindex tags, C++