summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorPatrick McCarty <patrick.mccarty@linux.intel.com>2013-04-12 10:36:08 -0700
committerPatrick McCarty <patrick.mccarty@linux.intel.com>2013-04-12 10:36:08 -0700
commitea376ff581dd55e756901822fb7239687ba522f9 (patch)
treefa10c35b2546a862de8ef698f39c38cba886e2f0 /doc
downloadcscope-upstream.tar.gz
cscope-upstream.tar.bz2
cscope-upstream.zip
Imported Upstream version 15.8aupstream/15.8aupstream
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile.am4
-rw-r--r--doc/Makefile.in426
-rw-r--r--doc/cscope.1591
-rw-r--r--doc/xcscope.1574
4 files changed, 1595 insertions, 0 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..5d45d42
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,4 @@
+## Process this file with automake to produce Makefile.in
+
+man_MANS = cscope.1
+EXTRA_DIST = $(man_MANS) xcscope.1
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644
index 0000000..f35b72e
--- /dev/null
+++ b/doc/Makefile.in
@@ -0,0 +1,426 @@
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+man1dir = $(mandir)/man1
+am__installdirs = "$(DESTDIR)$(man1dir)"
+NROFF = nroff
+MANS = $(man_MANS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURSES_INCLUDEDIR = @CURSES_INCLUDEDIR@
+CURSES_LIBS = @CURSES_LIBS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gnome1 = @gnome1@
+gnome2 = @gnome2@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+man_MANS = cscope.1
+EXTRA_DIST = $(man_MANS) xcscope.1
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-man1: $(man_MANS)
+ @$(NORMAL_INSTALL)
+ test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ { for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-man1 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+ uninstall-am uninstall-man uninstall-man1
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/cscope.1 b/doc/cscope.1
new file mode 100644
index 0000000..6a3a86b
--- /dev/null
+++ b/doc/cscope.1
@@ -0,0 +1,591 @@
+.PU
+.TH CSCOPE "1" "January 2007" "The Santa Cruz Operation"
+.SH NAME
+cscope - interactively examine a C program
+.SH SYNOPSIS
+.B cscope
+.B [\-bCcdehkLlqRTUuVv]
+.BI [\-F symfile ]
+.BI [\-f reffile ]
+.BI [\-I incdir ]
+.BI [\-i namefile ]
+.BI [\-0123456789 pattern ]
+.BI [\-p n ]
+.BI [\-s dir ]
+.BI [ files ]
+.SH DESCRIPTION
+.I cscope
+is an interactive, screen-oriented tool that allows the user to
+browse through C source files for specified elements of code.
+.PP
+By default,
+.I cscope
+examines the C (.c and .h), lex (.l), and yacc (.y)
+source files in the current directory.
+.I cscope
+may also be invoked for
+source files named on the command line. In either case,
+.I cscope
+searches the standard directories for #include files that it does not
+find in the current directory.
+.I cscope
+uses a symbol cross-reference, called
+cscope.out by default, to locate functions, function calls, macros,
+variables, and preprocessor symbols in the files.
+.PP
+.I cscope
+builds the symbol cross-reference the first time it is used on
+the source files for the program being browsed. On a subsequent
+invocation,
+.I cscope
+rebuilds the cross-reference only if a source file
+has changed or the list of source files is different. When the
+cross-reference is rebuilt, the data for the unchanged files are
+copied from the old cross-reference, which makes rebuilding faster
+than the initial build.
+.SH OPTIONS
+Some command line arguments can only occur as the only argument in
+the execution of cscope. They cause the program to just print out
+some output and exit immediately:
+.TP
+.B -h
+View the long usage help display.
+.TP
+.B -V
+Print on the first line of screen the version number of cscope.
+.TP
+.B --help
+Same as
+.B -h
+.TP
+.B --version
+Same as
+.B -V
+
+.PP
+The following options can appear in any combination:
+.TP
+.B -b
+Build the cross-reference only.
+.TP
+.B -C
+Ignore letter case when searching.
+.TP
+.B -c
+Use only ASCII characters in the cross-reference file, that is,
+do not compress the data.
+.TP
+.B -d
+Do not update the cross-reference.
+.TP
+.B -e
+Suppress the <Ctrl>-e command prompt between files.
+.TP
+.BI -F symfile
+Read symbol reference lines from
+.I symfile.
+(A symbol reference
+file is created by > and >>, and can also be read using the <
+command, described under ``Issuing Subsequent Requests'',
+below.)
+.TP
+.BI -f reffile
+Use
+.I reffile
+as the cross-reference file name instead of the default "cscope.out".
+.TP
+.BI -I incdir
+Look in
+.I incdir
+(before looking in $INCDIR, the standard place
+for header files, normally /usr/include) for any #include files
+whose names do not begin with ``/'' and that are not specified
+on the command line or in
+.I namefile
+below. (The #include files
+may be specified with either double quotes or angle brackets.)
+The incdir directory is searched in addition to the current
+directory (which is searched first) and the standard list
+(which is searched last). If more than one occurrence of -I
+appears, the directories are searched in the order they appear
+on the command line.
+.TP
+.BI -i namefile
+Browse through all source files whose names are listed in
+.I namefile
+(file names separated by spaces, tabs, or new-lines) instead of the
+default name list file, which is called cscope.files. If this option
+is specified, cscope ignores any file names appearing on the command
+line. The argument namefile can be set to ``-'' to accept a list of
+files from the standard input. Filenames in the namefile that contain
+whitespace have to be enclosed in "double quotes". Inside such quoted
+filenames, any double-quote and backslash characters have to be
+escaped by backslashes.
+.TP
+.B -k
+``Kernel Mode'', turns off the use of the default include dir
+(usually /usr/include) when building the database, since kernel
+source trees generally do not use it.
+.TP
+.B -L
+Do a single search with line-oriented output when used with the
+-num pattern option.
+.TP
+.B -l
+Line-oriented interface (see ``Line-Oriented Interface''
+below).
+.TP
+.BI -[ "0-9" ] pattern
+Go to input field
+.I num
+(counting from 0) and find
+.I pattern.
+.TP
+.BI -P path
+Prepend
+.I path
+to relative file names in a pre-built cross-reference file so you do
+not have to change to the directory where the cross-reference file was
+built. This option is only valid with the -d option.
+.TP
+.BI -p n
+Display the last
+.I n
+file path components instead of the default (1). Use
+.I 0
+not to display the file name at all.
+.TP
+.B -q
+Enable fast symbol lookup via an inverted index. This option
+causes cscope to create 2 more files (default names
+``cscope.in.out'' and ``cscope.po.out'') in addition to the normal
+database. This allows a faster symbol search algorithm that
+provides noticeably faster lookup performance for large projects.
+.TP
+.B -R
+Recurse subdirectories during search for source files.
+.TP
+.BI -s dir
+Look in
+.I dir
+for additional source files. This option is ignored if source files
+are given on the command line.
+.TP
+.B -T
+Use only the first eight characters to match against C symbols.
+A regular expression containing special characters other than a
+period (.) will not match any symbol if its minimum length is
+greater than eight characters.
+.TP
+.B -U
+Check file time stamps. This option will update the time stamp
+on the database even if no files have changed.
+.TP
+.B -u
+Unconditionally build the cross-reference file (assume that all
+files have changed).
+.TP
+.B -v
+Be more verbose in line-oriented mode. Output progress updates during
+database building and searches.
+.TP
+.I files
+A list of file names to operate on.
+.PP
+The -I, -c, -k, -p, -q, and -T options can also be in the cscope.files file.
+.PP
+.SS Requesting the initial search
+.PP
+After the cross-reference is ready, cscope will display this menu:
+.PP
+.B Find this C symbol:
+.PD 0
+.TP
+.B Find this function definition:
+.TP
+.B Find functions called by this function:
+.TP
+.B Find functions calling this function:
+.TP
+.B Find this text string:
+.TP
+.B Change this text string:
+.TP
+.B Find this egrep pattern:
+.TP
+.B Find this file:
+.TP
+.B Find files #including this file:
+.PD 1
+.PP
+Press the <Up> or <Down> keys repeatedly to move to the desired input
+field, type the text to search for, and then press the <Return> key.
+.PP
+.SS "Issuing subsequent requests"
+If the search is successful, any of these single-character commands
+can be used:
+.TP
+.B 0-9a-zA-Z
+Edit the file referenced by the given line number.
+.TP
+.B <Space>
+Display next set of matching lines.
+.TP
+.B <Tab>
+Alternate between the menu and the list of matching lines
+.TP
+.B <Up>
+Move to the previous menu item (if the cursor is in the menu)
+or move to the previous matching line (if the cursor is in the
+matching line list.)
+.TP
+.B <Down>
+Move to the next menu item (if the cursor is in the menu)
+or move to the next matching line (if the cursor is in the
+matching line list.)
+.TP
+.B +
+Display next set of matching lines.
+.TP
+.B -
+Display previous set of matching lines.
+.TP
+.B ^e
+Edit displayed files in order.
+.TP
+.B >
+Write the displayed list of lines to a file.
+.TP
+.B >>
+Append the displayed list of lines to a file.
+.TP
+.B <
+Read lines from a file that is in symbol reference format
+(created by > or >>), just like the -F option.
+.TP
+.B ^
+Filter all lines through a shell command and display the
+resulting lines, replacing the lines that were already there.
+.TP
+.B |
+Pipe all lines to a shell command and display them without
+changing them.
+.PP
+At any time these single-character commands can also be used:
+.TP
+.B <Return>
+Move to next input field.
+.TP
+.B ^n
+Move to next input field.
+.TP
+.B ^p
+Move to previous input field.
+.TP
+.B ^y
+Search with the last text typed.
+.TP
+.B ^b
+Move to previous input field and search pattern.
+.TP
+.B ^f
+Move to next input field and search pattern.
+.TP
+.B ^c
+Toggle ignore/use letter case when searching. (When ignoring
+letter case, search for ``FILE'' will match ``File'' and
+``file''.)
+.TP
+.B ^r
+Rebuild the cross-reference.
+.TP
+.B !
+Start an interactive shell (type ^d to return to cscope).
+.TP
+.B ^l
+Redraw the screen.
+.TP
+.B ?
+Give help information about cscope commands.
+.TP
+.B ^d
+Exit cscope.
+.PP
+.PP
+.B NOTE: If the first character of the text to be searched for matches
+.B one of the above commands, escape it by typing a (backslash) first.
+.PP
+.B Substituting new text for old text
+.PP
+After the text to be changed has been typed, cscope will prompt for
+the new text, and then it will display the lines containing the old
+text. Select the lines to be changed with these single-character
+commands:
+.PP
+.TP
+.B 0-9a-zA-Z
+Mark or unmark the line to be changed.
+.TP
+.B *
+Mark or unmark all displayed lines to be changed.
+.TP
+.B <Space>
+Display next set of lines.
+.TP
+.B +
+Display next set of lines.
+.TP
+.B -
+Display previous set of lines.
+.TP
+.B a
+Mark or unmark all lines to be changed.
+.TP
+.B ^d
+Change the marked lines and exit.
+.TP
+.B <Esc>
+Exit without changing the marked lines.
+.TP
+.B !
+Start an interactive shell (type ^d to return to cscope).
+.TP
+.B ^l
+Redraw the screen.
+.TP
+.B ?
+Give help information about cscope commands.
+.TP
+.B Special keys
+If your terminal has arrow keys that work in vi, you can use them
+to move around the input fields. The up-arrow key is useful to move to
+the previous
+input field instead of using the <Tab> key repeatedly. If you have
+<CLEAR>, <NEXT>, or <PREV> keys they will act as the ^l, +, and -
+commands, respectively.
+.PP
+.SS Line-Oriented interface
+.PP
+The -l option lets you use cscope where a screen-oriented interface
+would not be useful, for example, from another screen-oriented
+program.
+.PP
+cscope will prompt with >> when it is ready for an input line starting
+with the field number (counting from 0) immediately followed by the
+search pattern, for example, ``lmain'' finds the definition of the
+main function.
+.PP
+If you just want a single search, instead of the -l option use the -L
+and -num pattern options, and you won't get the >> prompt.
+.PP
+For -l, cscope outputs the number of reference lines
+cscope: 2 lines
+.PP
+For each reference found, cscope outputs a line consisting of the file
+name, function name, line number, and line text, separated by spaces,
+for example,
+main.c main 161 main(argc, argv)
+.PP
+Note that the editor is not called to display a single reference,
+unlike the screen-oriented interface.
+.PP
+You can use the c command to toggle ignore/use letter case when
+searching. (When ignoring letter case, search for ``FILE'' will match
+``File'' and ``file''.)
+.PP
+You can use the r command to rebuild the database.
+.PP
+cscope will quit when it detects end-of-file, or when the first
+character of an input line is ``^d'' or ``q''.
+.PP
+.SH "ENVIRONMENT VARIABLES"
+.TP
+.B CSCOPE_EDITOR
+Overrides the EDITOR and VIEWER variables. Use this if you wish to use
+a different editor with cscope than that specified by your
+EDITOR/VIEWER variables.
+.TP
+.B CSCOPE_LINEFLAG
+Format of the line number flag for your editor. By default, cscope
+invokes your editor via the equivalent of ``editor +N file'', where
+``N'' is the line number that the editor should jump to. This format
+is used by both emacs and vi. If your editor needs something
+different, specify it in this variable, with ``%s'' as a placeholder
+for the line number. Ex: if your editor needs to be invoked as
+``editor -#103 file'' to go to line 103, set this variable to
+``-#%s''.
+.TP
+.B CSCOPE_LINEFLAG_AFTER_FILE
+Set this variable to ``yes'' if your editor needs to be invoked with
+the line number option after the filename to be edited. To continue
+the example from CSCOPE_LINEFLAG, above: if your editor needs to see
+``editor file -#number'', set this environment variable. Users of most
+standard editors (vi, emacs) do not need to set this variable.
+.TP
+.B EDITOR
+Preferred editor, which defaults to vi.
+.TP
+.B HOME
+Home directory, which is automatically set at login.
+.TP
+.B INCLUDEDIRS
+Colon-separated list of directories to search for #include
+files.
+.TP
+.B SHELL
+Preferred shell, which defaults to sh.
+.TP
+.B SOURCEDIRS
+Colon-separated list of directories to search for additional
+source files.
+.TP
+.B TERM
+Terminal type, which must be a screen terminal.
+.TP
+.B TERMINFO
+Terminal information directory full path name. If your terminal
+is not in the standard terminfo directory, see curses
+and terminfo for how to make your own terminal description.
+.TP
+.B TMPDIR
+Temporary file directory, which defaults to /var/tmp.
+.TP
+.B VIEWER
+Preferred file display program (such as less), which overrides
+EDITOR (see above).
+.TP
+.B VPATH
+A colon-separated list of directories, each of which has the
+same directory structure below it. If VPATH is set, cscope
+searches for source files in the directories specified; if it
+is not set, cscope searches only in the current directory.
+.PP
+.SH FILES
+.TP
+.B cscope.files
+Default files containing -I, -p, -q, and -T options and the
+list of source files (overridden by the -i option).
+.TP
+.B cscope.out
+Symbol cross-reference file (overridden by the -f option),
+which is put in the home directory if it cannot be created in
+the current directory.
+.TP
+.PD 0
+.B cscope.in.out
+.TP
+.B cscope.po.out
+.PD 1
+Default files containing the inverted index used for quick
+symbol searching (-q option). If you use the -f option to
+rename the cross-reference file (so it's not cscope.out), the
+names for these inverted index files will be created by adding
+ .in and .po to the name you supply with -f. For example, if you
+indicated -f xyz, then these files would be named xyz.in and
+xyz.po.
+.TP
+.B INCDIR
+Standard directory for #include files (usually /usr/include).
+.SH Notices
+.I cscope
+recognizes function definitions of the form:
+.PD 0
+.TP
+fname blank ( args ) white arg_decs white {
+.PD 1
+.TP
+where:
+.I fname
+is the function name
+.TP
+.I blank
+is zero or more spaces, tabs, vtabs, form feeds or carriage returns,
+not including newlines
+.TP
+.I args
+is any string that does not contain a ``"'' or a newline
+.TP
+.I white
+is zero or more spaces, tabs, vtabs, form feeds, carriage returns or newlines
+.TP
+.I arg_decs
+are zero or more argument declarations (arg_decs may include
+comments and white space)
+.PP
+It is not necessary for a function declaration to start at the
+beginning of a line. The return type may precede the function name;
+cscope will still recognize the declaration. Function definitions that
+deviate from this form will not be recognized by cscope.
+.PP
+The ``Function'' column of the search output for the menu option Find
+functions called by this function: input field will only display the
+first function called in the line, that is, for this function
+.PP
+ e()
+ {
+ return (f() + g());
+ }
+.PP
+the display would be
+.PP
+ Functions called by this function: e
+ File Function Line
+ a.c f 3 return(f() + g());
+.PP
+Occasionally, a function definition or call may not be recognized
+because of braces inside #if statements. Similarly, the use of a
+variable may be incorrectly recognized as a definition.
+.PP
+A
+.B typedef
+name preceding a preprocessor statement will be incorrectly
+recognized as a global definition, for example,
+.PP
+ LDFILE *
+ #if AR16WR
+.PP
+Preprocessor statements can also prevent the recognition of a global
+definition, for example,
+.PP
+ char flag
+ #ifdef ALLOCATE_STORAGE
+ = -1
+ #endif
+ ;
+.PP
+A function declaration inside a function is incorrectly recognized as
+a function call, for example,
+.PP
+ f()
+ {
+ void g();
+ }
+.PP
+is incorrectly recognized as a call to g.
+.PP
+.I cscope
+recognizes C++ classes by looking for the class keyword, but
+doesn't recognize that a struct is also a class, so it doesn't
+recognize inline member function definitions in a structure. It also
+doesn't expect the class keyword in a
+.I typedef
+, so it incorrectly
+recognizes X as a definition in
+.PP
+ typedef class X * Y;
+.PP
+It also doesn't recognize operator function definitions
+.PP
+ Bool Feature::operator==(const Feature & other)
+ {
+ ...
+ }
+.PP
+Nor does it recognize function definitions with a function pointer
+argument
+.PP
+ ParseTable::Recognize(int startState, char *pattern,
+ int finishState, void (*FinalAction)(char *))
+ {
+ ...
+ }
diff --git a/doc/xcscope.1 b/doc/xcscope.1
new file mode 100644
index 0000000..fa4199c
--- /dev/null
+++ b/doc/xcscope.1
@@ -0,0 +1,574 @@
+'\" t
+.\" The xcscope.el man page
+.\" Origionally written by Darryl Okahata, Apr 2000
+.\"
+.\" Converted to a man page July 20, 2004 by Neil Horman <nhorman@redhat.com>
+.\"
+
+.de EX
+.sp
+.nf
+.ft CW
+..
+.de EE
+.ft R
+.fi
+.sp
+..
+
+.TH XCSCOPE.EL "1" "April 2000" "Darryl Okahata"
+.SH NAME
+xcscope.el - xemacs cscope lisp support package
+.SH DESCRIPTION
+xcscope is a lisp package for use in integrating cscope
+functionality into xemacs
+.SH INSTALLATION
+.P
+ Installation steps:
+
+.P
+ 0. (It is, of course, assumed that cscope is already properly
+ installed on the current system.)
+.P
+ 1. Ensure that the location of cscope-indexer is located in your path
+
+.P
+ 2. Ensure that the location of xcscope.el is in the xemacs module load path
+
+.P
+ 3. Edit your ~/.emacs file to add the line:
+.P
+.BI (require 'xcscope)
+
+.P
+5. If you intend to use xcscope.el often you can optionally edit your
+~/.emacs file to add keybindings that reduce the number of keystrokes
+required. For example, the following will add "C-f#" keybindings,
+which are easier to type than the usual "C-c s" prefixed keybindings.
+Note that specifying "global-map" instead of "cscope:map" makes the
+keybindings available in all buffers:
+.EX
+ (define-key global-map [(ctrl f3)] 'cscope-set-initial-directory)
+ (define-key global-map [(ctrl f4)] 'cscope-unset-initial-directory)
+ (define-key global-map [(ctrl f5)] 'cscope-find-this-symbol)
+ (define-key global-map [(ctrl f6)] 'cscope-find-global-definition)
+ (define-key global-map [(ctrl f7)]
+ cscope-find-global-definition-no-prompting)
+ (define-key global-map [(ctrl f8)] 'cscope-pop-mark)
+ (define-key global-map [(ctrl f9)] 'cscope-next-symbol)
+ (define-key global-map [(ctrl f10)] 'cscope-next-file)
+ (define-key global-map [(ctrl f11)] 'cscope-prev-symbol)
+ (define-key global-map [(ctrl f12)] 'cscope-prev-file)
+ (define-key global-map [(meta f9)] 'cscope-display-buffer)
+ (define-key global-map [(meta f10)] 'cscope-display-buffer-toggle)
+.EE
+
+.P
+ 6. Restart (X)Emacs. That's it.
+
+
+.SH USING THIS MODULE
+
+.SS * Basic usage:
+
+.P
+ If all of your C/C++/lex/yacc source files are in the same
+ directory, you can just start using this module. If your files are
+ spread out over multiple directories, see "Advanced usage", below.
+
+.P
+ Just edit a source file, and use the pull-down or pop-up (button 3)
+ menus to select one of:
+
+.EX
+ Find symbol
+ Find global definition
+ Find called functions
+ Find functions calling a function
+ Find text string
+ Find egrep pattern
+ Find a file
+ Find files #including a file
+.EE
+
+.P
+The cscope database will be automatically created in the same directory
+as the source files (assuming that you've never used cscope before), and
+a buffer will pop-up displaying the results. You can then use button 2
+(the middle button) on the mouse to edit the selected file, or you can
+move the text cursor over a selection and press [Enter].
+
+.P
+Hopefully, the interface should be fairly intuitive.
+
+.SS * Locating the cscope databases:
+
+.P
+This module will first use the variable, `cscope-database-regexps',
+to search for a suitable database directory. If a database location
+cannot be found using this variable then a search is begun at the
+variable, `cscope-initial-directory', if set, or the current
+directory otherwise. If the directory is not a cscope database
+directory then the directory's parent, parent's parent, etc. is
+searched until a cscope database directory is found, or the root
+directory is reached. If the root directory is reached, the current
+directory will be used.
+
+.P
+A cscope database directory is one in which EITHER a cscope database
+file (e.g., "cscope.out") OR a cscope file list (e.g.,
+"cscope.files") exists. If only "cscope.files" exists, the
+corresponding "cscope.out" will be automatically created by cscope
+when a search is done. By default, the cscope database file is called
+"cscope.out", but this can be changed (on a global basis) via the
+variable, `cscope-database-file'. There is limited support for cscope
+databases that are named differently than that given by
+`cscope-database-file', using the variable, `cscope-database-regexps'.
+
+.P
+Note that the variable, `cscope-database-regexps', is generally not
+needed, as the normal hierarchical database search is sufficient
+for placing and/or locating the cscope databases. However, there
+may be cases where it makes sense to place the cscope databases
+away from where the source files are kept; in this case, this
+variable is used to determine the mapping. One use for this
+variable is when you want to share the database file with other
+users; in this case, the database may be located in a directory
+separate from the source files.
+
+.P
+Setting the variable, `cscope-initial-directory', is useful when a
+search is to be expanded by specifying a cscope database directory
+that is a parent of the directory that this module would otherwise
+use. For example, consider a project that contains the following
+cscope database directories:
+
+.EX
+ /users/jdoe/sources
+ /users/jdoe/sources/proj1
+ /users/jdoe/sources/proj2
+.EE
+
+.P
+If a search is initiated from a .c file in /users/jdoe/sources/proj1
+then (assuming the variable, `cscope-database-regexps', is not set)
+/users/jdoe/sources/proj1 will be used as the cscope data base directory.
+Only matches in files in /users/jdoe/sources/proj1 will be found. This
+can be remedied by typing "C-c s a" and then "M-del" to remove single
+path element in order to use a cscope database directory of
+/users/jdoe/sources. Normal searching can be restored by typing "C-c s A".
+
+
+
+.SS * Keybindings:
+
+.P
+All keybindings use the "C-c s" prefix, but are usable only while
+editing a source file, or in the cscope results buffer:
+
+.TS
+lb li.
+C-c s s Find symbol.
+C-c s d Find global definition.
+C-c s g Find global definition (alternate binding).
+C-c s G Find global definition without prompting.
+C-c s c Find functions calling a function.
+C-c s C Find called functions (list functions called
+C-c s t Find text string.
+C-c s e Find egrep pattern.
+C-c s f Find a file.
+C-c s i Find files #including a file.
+.TE
+
+These pertain to navigation through the search results:
+
+.TS
+lb li.
+C-c s b Display *cscope* buffer.
+C-c s B Auto display *cscope* buffer toggle.
+C-c s n Next symbol.
+C-c s N Next file.
+C-c s p Previous symbol.
+C-c s P Previous file.
+C-c s u Pop mark.
+.TE
+
+.P
+These pertain to setting and unsetting the variable,
+`cscope-initial-directory', (location searched for the cscope database
+directory):
+
+.TS
+lb li.
+C-c s a Set initial directory.
+C-c s A Unset initial directory.
+.TE
+
+.P
+These pertain to cscope database maintenance:
+
+.TS
+lb li.
+C-c s L Create list of files to index.
+C-c s I Create list and index.
+C-c s E Edit list of files to index.
+C-c s W T{
+Locate this buffer's cscope directory.
+.br
+("W" -> "where")
+T}
+C-c s S T{
+Locate this buffer's cscope directory.
+.br
+("S" --> "show")
+T}
+C-c s T T{
+Locate this buffer's cscope directory.
+("T" --> "tell")
+T}
+C-c s D Dired this buffer's directory.
+.TE
+
+.SS * Advanced usage:
+
+.P
+If the source files are spread out over multiple directories,
+you've got a few choices:
+
+.P
+[ NOTE: you will need to have the script, "cscope-indexer",
+properly installed in order for the following to work. ]
+
+.P
+1. If all of the directories exist below a common directory
+(without any extraneous, unrelated subdirectories), you can tell
+this module to place the cscope database into the top-level,
+common directory. This assumes that you do not have any cscope
+databases in any of the subdirectories. If you do, you should
+delete them; otherwise, they will take precedence over the
+top-level database.
+
+.P
+If you do have cscope databases in any subdirectory, the
+following instructions may not work right.
+
+.P
+It's pretty easy to tell this module to use a top-level, common
+directory:
+
+.HP
+a. Make sure that the menu pick, "Cscope/Index recursively", is
+checked (the default value).
+
+.HP
+b. Select the menu pick, "Cscope/Create list and index", and
+specify the top-level directory. This will run the script,
+"cscope-indexer", in the background, so you can do other
+things if indexing takes a long time. A list of files to
+index will be created in "cscope.files", and the cscope
+database will be created in "cscope.out".
+
+.HP
+Once this has been done, you can then use the menu picks
+(described in "Basic usage", above) to search for symbols.
+
+.HP
+Note, however, that, if you add or delete source files, you'll
+have to either rebuild the database using the above procedure,
+or edit the file, "cscope.files" to add/delete the names of the
+source files. To edit this file, you can use the menu pick,
+"Cscope/Edit list of files to index".
+
+.P
+2. If most of the files exist below a common directory, but a few
+are outside, you can use the menu pick, "Cscope/Create list of
+files to index", and specify the top-level directory. Make sure
+that "Cscope/Index recursively", is checked before you do so,
+though. You can then edit the list of files to index using the
+menu pick, "Cscope/Edit list of files to index". Just edit the
+list to include any additional source files not already listed.
+
+.P
+Once you've created, edited, and saved the list, you can then
+use the menu picks described under "Basic usage", above, to
+search for symbols. The first time you search, you will have to
+wait a while for cscope to fully index the source files, though.
+If you have a lot of source files, you may want to manually run
+cscope to build the database:
+
+.EX
+ cd top-level-directory # or wherever
+ rm -f cscope.out # not always necessary
+ cscope -b
+.EE
+
+.P
+ 3. If the source files are scattered in many different, unrelated
+ places, you'll have to manually create cscope.files and put a
+ list of all pathnames into it. Then build the database using:
+
+.EX
+ cd some-directory # wherever cscope.files exists
+ rm -f cscope.out # not always necessary
+ cscope -b
+.EE
+
+.P
+Next, read the documentation for the variable,
+"cscope-database-regexps", and set it appropriately, such that
+the above-created cscope database will be referenced when you
+edit a related source file.
+
+.P
+Once this has been done, you can then use the menu picks
+described under "Basic usage", above, to search for symbols.
+
+.SS * Interesting configuration variables:
+
+.P
+.B "cscope-truncate-lines"
+.P
+This is the value of `truncate-lines' to use in cscope
+buffers; the default is the current setting of
+`truncate-lines'. This variable exists because it can be
+easier to read cscope buffers with truncated lines, while
+other buffers do not have truncated lines.
+
+.P
+.B "cscope-use-relative-paths"
+.P
+If non-nil, use relative paths when creating the list of files
+to index. The path is relative to the directory in which the
+cscope database will be created. If nil, absolute paths will
+be used. Absolute paths are good if you plan on moving the
+database to some other directory (if you do so, you'll
+probably also have to modify `cscope-database-regexps').
+Absolute paths may also be good if you share the database file
+with other users (you'll probably want to specify some
+automounted network path for this).
+
+.P
+.B "cscope-index-recursively"
+.P
+If non-nil, index files in the current directory and all
+subdirectories. If nil, only files in the current directory
+are indexed. This variable is only used when creating the
+list of files to index, or when creating the list of files and
+the corresponding cscope database.
+
+.P
+.B "cscope-name-line-width"
+.P
+The width of the combined "function name:line number" field in
+the cscope results buffer. If negative, the field is
+left-justified.
+
+.P
+.B "cscope-do-not-update-database"
+.P
+If non-nil, never check and/or update the cscope database when
+searching. Beware of setting this to non-nil, as this will
+disable automatic database creation, updating, and
+maintenance.
+
+.P
+.B "cscope-display-cscope-buffer"
+.P
+If non-nil, display the *cscope* buffer after each search
+(default). This variable can be set in order to reduce the
+number of keystrokes required to navigate through the matches.
+
+.P
+.B "cscope-database-regexps"
+.P
+List to force directory-to-cscope-database mappings.
+This is a list of `(REGEXP DBLIST [ DBLIST ... ])', where:
+
+.P
+.B "REGEXP"
+is a regular expression matched against the current buffer's
+current directory. The current buffer is typically some source file,
+and you're probably searching for some symbol in or related to this
+file. Basically, this regexp is used to relate the current directory
+to a cscope database. You need to start REGEXP with "^" if you want
+to match from the beginning of the current directory.
+
+.P
+.B "DBLIST"
+is a list that contains one or more of:
+
+.EX
+ ( DBDIR )
+ ( DBDIR ( OPTIONS ) )
+ ( t )
+ t
+.EE
+
+.P
+Here,
+.B DBDIR
+is a directory (or a file) that contains a cscope
+database. If DBDIR is a directory, then it is expected that the
+cscope database, if present, has the filename given by the variable,
+`cscope-database-file'; if DBDIR is a file, then DBDIR is the path
+name to a cscope database file (which does not have to be the same as
+that given by `cscope-database-file'). If only DBDIR is specified,
+then that cscope database will be searched without any additional
+cscope command-line options. If OPTIONS is given, then OPTIONS is a
+list of strings, where each string is a separate cscope command-line
+option.
+
+.P
+ In the case of "( t )", this specifies that the search is to use the
+ normal hierarchical database search. This option is used to
+ explicitly search using the hierarchical database search either before
+ or after other cscope database directories.
+
+.P
+ If "t" is specified (not inside a list), this tells the searching
+ mechanism to stop searching if a match has been found (at the point
+ where "t" is encountered). This is useful for those projects that
+ consist of many subprojects. You can specify the most-used
+ subprojects first, followed by a "t", and then followed by a master
+ cscope database directory that covers all subprojects. This will
+ cause the most-used subprojects to be searched first (hopefully
+ quickly), and the search will then stop if a match was found. If not,
+ the search will continue using the master cscope database directory.
+
+.P
+ Here, `cscope-database-regexps' is generally not used, as the normal
+ hierarchical database search is sufficient for placing and/or locating
+ the cscope databases. However, there may be cases where it makes
+ sense to place the cscope databases away from where the source files
+ are kept; in this case, this variable is used to determine the
+ mapping.
+
+.P
+ This module searches for the cscope databases by first using this
+ variable; if a database location cannot be found using this variable,
+ then the current directory is searched, then the parent, then the
+ parent's parent, until a cscope database directory is found, or the
+ root directory is reached. If the root directory is reached, the
+ current directory will be used.
+
+.P
+A cscope database directory is one in which EITHER a cscope database
+file (e.g., "cscope.out") OR a cscope file list (e.g.,
+"cscope.files") exists. If only "cscope.files" exists, the
+corresponding "cscope.out" will be automatically created by cscope
+when a search is done. By default, the cscope database file is called
+"cscope.out", but this can be changed (on a global basis) via the
+variable, `cscope-database-file'. There is limited support for cscope
+databases that are named differently than that given by
+`cscope-database-file', using the variable, `cscope-database-regexps'.
+
+.P
+Here is an example of `cscope-database-regexps':
+
+.EX
+ (setq cscope-database-regexps
+ '(
+ ( "^/users/jdoe/sources/proj1"
+ ( t )
+ ( "/users/jdoe/sources/proj2")
+ ( "/users/jdoe/sources/proj3/mycscope.out")
+ ( "/users/jdoe/sources/proj4")
+ t
+ ( "/some/master/directory" ("-d" "-I/usr/local/include") )
+ )
+ ( "^/users/jdoe/sources/gnome/"
+ ( "/master/gnome/database" ("-d") )
+ )
+ ))
+.EE
+
+.P
+If the current buffer's directory matches the regexp,
+"^/users/jdoe/sources/proj1", then the following search will be
+done:
+
+.TP
+1. First, the normal hierarchical database search will be used to
+locate a cscope database.
+
+.TP
+2. Next, searches will be done using the cscope database
+directories, "/users/jdoe/sources/proj2",
+"/users/jdoe/sources/proj3/mycscope.out", and
+"/users/jdoe/sources/proj4". Note that, instead of the file,
+"cscope.out", the file, "mycscope.out", will be used in the
+directory "/users/jdoe/sources/proj3".
+
+.TP
+3. If a match was found, searching will stop.
+
+.TP
+4. If a match was not found, searching will be done using
+"/some/master/directory", and the command-line options "-d"
+and "-I/usr/local/include" will be passed to cscope.
+
+.TP
+If the current buffer's directory matches the regexp,
+"^/users/jdoe/sources/gnome", then the following search will be
+done:
+
+.TP
+The search will be done only using the directory,
+"/master/gnome/database". The "-d" option will be passed to
+cscope.
+
+.TP
+If the current buffer's directory does not match any of the above
+regexps, then only the normal hierarchical database search will be
+done.
+
+.P
+.SS * Other notes:
+
+.P
+1. The script, "cscope-indexer", uses a sed command to determine
+what is and is not a C/C++/lex/yacc source file. It's idea of a
+source file may not correspond to yours.
+
+.P
+2. This module is called, "xcscope", because someone else has
+already written a "cscope.el" (although it's quite old).
+
+.SH KNOWN BUGS:
+
+.P
+1. Cannot handle whitespace in directory or file names.
+
+.P
+2. By default, colored faces are used to display results. If you happen
+to use a black background, part of the results may be invisible
+(because the foreground color may be black, too). There are at least
+two solutions for this:
+
+.TP
+.BI "2a. Turn off colored faces, by setting `cscope-use-face' to `nil', eg:"
+.TP
+.BI "(setq cscope-use-face nil)"
+
+.TP
+.BI " 2b. Explicitly set colors for the faces used by cscope. The faces are"
+
+.EX
+ cscope-file-face
+ cscope-function-face
+ cscope-line-number-face
+ cscope-line-face
+ cscope-mouse-face
+.EE
+
+.TP
+The face most likely to cause problems (e.g., black-on-black
+color) is `cscope-line-face'.
+
+.P
+3. The support for cscope databases different from that specified by
+`cscope-database-file' is quirky. If the file does not exist, it
+will not be auto-created (unlike files names by
+`cscope-database-file'). You can manually force the file to be
+created by using touch(1) to create a zero-length file; the
+database will be created the next time a search is done.