Commit 4746118a authored by Jim Blandy's avatar Jim Blandy

*** empty log message ***

parent d4327fec
......@@ -14,6 +14,9 @@
# This is a very dangerous thing to do!
# make clean
# This is a little less dangerous.
# make dist
# This produces a tar file from the current source tree suitable
# for redistribution.
SHELL = /bin/sh
......@@ -28,65 +31,65 @@ prefix=/usr/local
# Where to install Emacs and other binaries that people will want to
# run directly (like etags).
bindir=$(prefix)/bin
bindir=${prefix}/bin
# A directory under which we will install many of Emacs's files. The
# default values for many of the variables below are expressed in
# terms of this one, so you may not need to change them.
emacsdir=$(prefix)/emacs-19.0
emacsdir=${prefix}/emacs-19.0
# Where to install and expect the architecture-independent data files
# (like the tutorial and the Zippy database).
datadir=$(emacsdir)/etc
datadir=${emacsdir}/etc
# Where to install the elisp files distributed with Emacs. Strictly
# speaking, all the elisp files should go under datadir (above), since
# both elisp source and compiled elisp are completely portable, but
# it's traditional to give the lisp files their own subdirectory.
lispdir=$(emacsdir)/lisp
lispdir=${emacsdir}/lisp
# Directories Emacs should search for elisp files specific to this
# site (i.e. customizations), before consulting $(lispdir). This
# site (i.e. customizations), before consulting ${lispdir}. This
# should be a colon-separated list of directories.
locallisppath=$(emacsdir)/local-lisp
locallisppath=${emacsdir}/local-lisp
# Where Emacs will search to find its elisp files. Before changing
# this, check to see if your purpose wouldn't better be served by
# changing locallisppath. This should be a colon-separated list of
# directories.
lisppath=$(locallisppath):$(lispdir)
lisppath=${locallisppath}:${lispdir}
# Where Emacs will search for its elisp files before dumping. This is
# Where Emacs will search for its elisp files while building. This is
# only used during the process of compiling Emacs, to help Emacs find
# its lisp files before they've been installed in their final
# location. It's usually identical to lisppath, except that the entry
# for the directory containing the installed lisp files has been
# replaced with ../lisp. This should be a colon-separated list of
# directories.
dumplisppath=$(locallisppath):../lisp
buildlisppath=../lisp
# Where to install and expect the files that Emacs modifies as it
# runs. These files are all architecture-independent. Right now,
# the only such data is the locking directory.
statedir=$(emacsdir)
statedir=${emacsdir}
# Where to create and expect the locking directory, where the Emacs
# locking code keeps track of which files are currently being edited.
lockdir=$(statedir)/lock
lockdir=${statedir}/lock
# Where to install and expect executable files to be run by Emacs
# rather than directly by users, and other architecture-dependent
# data.
libdir=$(emacsdir)/arch-lib
libdir=${emacsdir}/arch-lib
# Where to install Emacs's man pages.
mandir=/usr/man/man1
# Where to install and expect the info files describing Emacs. In the
# past, this defaulted to a subdirectory of $(prefix)/lib/emacs, but
# past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but
# since there are now many packages documented with the texinfo
# system, it is inappropriate to imply that it is part of Emacs.
infodir=$(prefix)/info
infodir=${prefix}/info
# ==================== Utility Programs for the Build ====================
......@@ -110,22 +113,22 @@ SUBDIR = lib-src src
# Subdirectories to install, and where they'll go.
COPYDIR = arch-lib etc info lisp
COPYDESTS = $(libdir) $(datadir) $(infodir) $(lispdir)
COPYDESTS = ${libdir} ${datadir} ${infodir} ${lispdir}
all: src/paths.h ${SUBDIR}
removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/'
src/paths.h: Makefile src/paths.h.in
lisppath=`echo $(lisppath) | $(removenullpaths)` ; \
dumplisppath=`echo $(dumplisppath) | $(removenullpaths)` ; \
/bin/sed < src/paths.h.in > src/paths.h \
lisppath=`echo ${lisppath} | ${removenullpaths}` ; \
buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \
/bin/sed < src/paths.h.in > src/paths.h \
-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \
-e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${dumplisppath}'";' \
-e 's;\(#.*PATH_EXEC\).*$$;\1 "$(libdir)";' \
-e 's;\(#.*PATH_DATA\).*$$;\1 "$(datadir)";' \
-e 's;\(#.*PATH_LOCK\).*$$;\1 "$(lockdir)/";' \
-e 's;\(#.*PATH_SUPERLOCK\).*$$;\1 "$(lockdir)/!!!SuperLock!!!";'
-e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \
-e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";' \
-e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";' \
-e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";' \
-e 's;\(#.*PATH_SUPERLOCK\).*$$;\1 "${lockdir}/!!!SuperLock!!!";'
src: lib-src
......@@ -274,3 +277,6 @@ TAGS tags: lib-src
check:
@echo "We don't have any tests for GNU Emacs yet."
dist:
make-dist
......@@ -18,21 +18,37 @@ bindir=${prefix}/bin
# A directory under which we will install many of Emacs's files. The
# default values for many of the variables below are expressed in
# terms of this one, so you may not need to change them.
emacsdir=${prefix}/lib/emacs-19.0
emacsdir=${prefix}/emacs-19.0
# Where to install and expect the architecture-independent data files
# (like the tutorial and the zippy database).
# (like the tutorial and the Zippy database).
datadir=${emacsdir}/etc
# Where to install the elisp files distributed with Emacs.
# Where to install the elisp files distributed with Emacs. Strictly
# speaking, all the elisp files should go under datadir (above), since
# both elisp source and compiled elisp are completely portable, but
# it's traditional to give the lisp files their own subdirectory.
lispdir=${emacsdir}/lisp
# Where Emacs will search to find its elisp files. This should be a
# colon-separated list of directories. Strictly speaking, all the
# elisp files should go under datadir (above), since both elisp source
# and compiled elisp are completely portable, but it's traditional to
# give the lisp files their own subdirectory.
lisppath=${emacsdir}/local-lisp:${lispdir}
# Directories Emacs should search for elisp files specific to this
# site (i.e. customizations), before consulting ${lispdir}. This
# should be a colon-separated list of directories.
locallisppath=${emacsdir}/local-lisp
# Where Emacs will search to find its elisp files. Before changing
# this, check to see if your purpose wouldn't better be served by
# changing locallisppath. This should be a colon-separated list of
# directories.
lisppath=${locallisppath}:${lispdir}
# Where Emacs will search for its elisp files before dumping. This is
# only used during the process of compiling Emacs, to help Emacs find
# its lisp files before they've been installed in their final
# location. It's usually identical to lisppath, except that the entry
# for the directory containing the installed lisp files has been
# replaced with ../lisp. This should be a colon-separated list of
# directories.
dumplisppath=../lisp
# Where to install and expect the files that Emacs modifies as it
# runs. These files are all architecture-independent. Right now,
......@@ -57,46 +73,17 @@ mandir=/usr/man/man1
# system, it is inappropriate to imply that it is part of Emacs.
infodir=${prefix}/info
scum
# Where to install all of Emacs's data files - the lisp code,
# documentation tree, and the architecture-dependent and -independent
# libaries. The default definitions for the variables below are
# expressed in terms of this one, so you may not need to change them.
# set LIBROOT=/usr/local/lib/emacs-19.0
emacsdir=/u/src/emacs/19.0
# Emacs will search this path to find its elisp files. This should be
# a colon-separated list of directories. Strictly speaking, all the
# elisp files should go under DATADIR (below), since both elisp source
# and compiled elisp are completely portable, but it's traditional to
# give the lisp files their own subdirectory.
LISPPATH=/u/src/emacs/19.0/local-lisp:/u/src/emacs/19.0/lisp
# Emacs will look here for its architecture-independent files (like
# the tutorial and the zippy database).
DATADIR=/u/src/emacs/19.0/etc
# Emacs will look here for its architecture-dependent files, like
# executables for its utilities.
LIBDIR=/u/src/emacs/19.0/arch-lib
# The locking directory, where the Emacs locking code keeps track of
# which files are currently being edited.
# set LOCKDIR=${LIBROOT}/lock
LOCKDIR=/u/src/emacs/19.0/lock
# This is where build-install should place the binaries people will
# want to run directly (like etags and Emacs itself).
BINDIR=/usr/local/bin
/bin/sed < src/paths.h.in > src/paths.h \
-e 's;\(#.*PATH_LOADSEARCH\).*$;\1 "${lisppath}";' \
-e 's;\(#.*PATH_EXEC\).*$;\1 "${libdir}";' \
-e 's;\(#.*PATH_DATA\).*$;\1 "${datadir}";' \
-e 's;\(#.*PATH_LOCK\).*$;\1 "${lockdir}/";' \
-e 's;\(#.*PATH_SUPERLOCK\).*$;\1 "${lockdir}/!!!SuperLock!!!";'
removenullpaths="sed -e 's/^://' -e 's/:"'$'"//' -e 's/::/:/'"
lisppath=`echo ${lisppath} | ${removenullpaths}` ; \
dumplisppath=`echo ${dumplisppath} | ${removenullpaths}` ; \
/bin/sed < src/paths.h.in > src/paths.h \
-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \
-e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${dumplisppath}'";' \
-e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";' \
-e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";' \
-e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";' \
-e 's;\(#.*PATH_SUPERLOCK\).*$$;\1 "${lockdir}/!!!SuperLock!!!";'
(cd lib-src; make) || exit 1
(cd src; make) || exit 1
......
......@@ -33,11 +33,14 @@ progname=$0
short_usage="Type \`${progname} -usage' for more information about options."
usage_message="Usage: ${progname} MACHINENAME [-OPTION[=VALUE] ...]
This message needs to be updated.
Set compilation and installation parameters for GNU Emacs, and report.
MACHINENAME is the machine to build for. See \`etc/MACHINES'.
Options are:
-opsystem=SYSTEM - operating system to build for; see \`etc/MACHINES'.
-libroot=DIR - where to install Emacs's library files
-prefix=DIR - where to install Emacs's library files
These options have reasonable defaults (in []s), and may not be needed:
-g, -O - Passed to the compiler. If omitted, use -O only.
-cc=COMPILER - Which compiler to use. Defaults to gcc if available.
......@@ -65,7 +68,8 @@ options=":\
usage:help:\
machine:opsystem:\
g:O:cc:\
libroot:datadir:libdir:bindir:lisppath:lockdir:\
prefix:bindir:emacsdir:datadir:lispdir:locallisppath:\
lisppath:buildlisppath:statedir:lockdir:libdir:mandir:infodir:\
gnu_malloc:rel_alloc:highpri:lisp_float_type:\
window_system:have_x_menu:\
"
......@@ -81,7 +85,7 @@ have_x_windows:have_x11:have_x_menu:\
c_switch_site:sigtype:\
"
libroot=
prefix=
bindir=/usr/local/bin
gnu_malloc=yes
lisp_float_type=yes
......@@ -96,7 +100,8 @@ window_system=""
have_x_menu=""
echo "Examining options."
for arg in $*; do
while [ $# != 0 ]; do
arg="$1"
case "${arg}" in
-*)
# Separate the switch name from the value it's being given.
......@@ -107,7 +112,9 @@ for arg in $*; do
valomitted=no
;;
-* )
# If FOO is a boolean argument, -FOO is equivalent to -FOO=yes.
# If FOO is a boolean argument, -FOO is equivalent to
# -FOO=yes. Otherwise, the value comes from the next
# argument - see below.
opt=`echo ${arg} | sed 's:^-\(.*\)$:\1:'`
val="yes"
valomitted=yes
......@@ -159,10 +166,13 @@ for arg in $*; do
;;
*)
if [ "${valomitted}" = "yes" ]; then
(echo "${progname}: You must give a value for the \`-${opt}' option, as in
\`-${opt}=FOO'."
echo "${short_usage}") | more
exit 1
if [ $# = 1 ]; then
(echo "${progname}: You must give a value for the \`-${opt}' option, as in
\`-${opt}=FOO'."
echo "${short_usage}") | more
exit 1
fi
shift; val="$1"
fi
;;
esac
......@@ -173,6 +183,7 @@ for arg in $*; do
machine=${arg}
;;
esac
shift
done
if [ "${machine}" = "" ]; then
......@@ -241,9 +252,52 @@ systems that Emacs has been ported to." 1>&2
fi
fi
if [ "${libroot}" = "" ]; then
echo "Guessing library directory."
libroot=`/bin/pwd`
if [ ! "${prefix}" ]; then
prefix="/usr/local"
fi
if [ ! "${emacsdir}" ]; then
emacsdir="${prefix}/emacs-19.0"
fi
if [ ! "${datadir}" ]; then
datadir="${emacsdir}/etc"
fi
if [ ! "${lispdir}" ]; then
lispdir="${emacsdir}/lisp"
fi
if [ ! "${locallisppath}" ]; then
locallisppath="${emacsdir}/local-lisp"
fi
if [ ! "${lisppath}" ]; then
lisppath="${locallisppath}:${lispdir}"
fi
if [ ! "${buildlisppath}" ]; then
buildlisppath=../lisp
fi
if [ ! "${statedir}" ]; then
statedir="${emacsdir}"
fi
if [ ! "${lockdir}" ]; then
lockdir="${statedir}/lock"
fi
if [ "${libdir}" = "" ]; then
libdir="${emacsdir}/arch-lib"
fi
if [ ! "${mandir}" ]; then
mandir="/usr/man/man1"
fi
if [ ! "${infodir}" ]; then
infodir="${prefix}/info"
fi
echo "Checking window system."
......@@ -279,39 +333,10 @@ case "${window_system}" in
;;
esac
# What is the return type of a signal handler? We grep
# /usr/include/signal.h for the declaration of the signal function.
# Yuck.
echo "Looking for return type of signal handler functions."
if [ -r /usr/include/signal.h ]; then
sigpattern='[ ]*([ ]*\*[ ]*signal[ ]*('
sigtype=void
if grep -s "int${sigpattern}" /usr/include/signal.h; then
sigtype=int
fi
fi
if [ "${have_x_menu}" = "" ]; then
have_x_menu=no
fi
if [ "${lisppath}" = "" ]; then
lisppath='$(locallisppath):$(lispdir)'
fi
if [ "${datadir}" = "" ]; then
datadir='$(emacsdir)/etc'
fi
if [ "${libdir}" = "" ]; then
libdir='$(emacsdir)/arch-lib'
fi
if [ "${lockdir}" = "" ]; then
lockdir='$(statedir)/lock'
fi
echo "Checking for GCC."
case "${cc}" in
"" )
......@@ -328,11 +353,53 @@ case "${cc}" in
;;
esac
case "${O},${g},${cc}" in
,,gcc ) O=yes; g=yes ;;
,,* ) O=yes; g=no ;;
case "${cc}" in
"gcc" )
# With GCC, both O and g should default to yes, no matter what
# the other is.
case "${O},${g}" in
, ) O=yes; g=yes ;;
,* ) O=yes; ;;
*, ) g=yes ;;
esac
;;
"*" )
# With other compilers, treat them as mutually exclusive,
# defaulting to debug.
case "${O},${g}" in
, ) O=no ; g=yes ;;
,no ) O=yes; ;;
,yes ) O=no ; ;;
no, ) g=yes ;;
yes, ) g=no ;;
esac
;;
esac
# What is the return type of a signal handler? We run
# /usr/include/signal.h through cpp and grep for the declaration of
# the signal function. Yuck.
echo "Looking for return type of signal handler functions."
signal_h_file=''
if [ -r /usr/include/signal.h ]; then
signal_h_file=/usr/include/signal.h
elif [ -r /usr/include/sys/signal.h ]; then
signal_h_file=/usr/include/sys/signal.h
fi
sigtype=void
if [ "${signal_h_file}" ]; then
sigpattern='[ ]*([ ]*\*[ ]*signal[ ]*('
# We make a symbolic link whose name ends in .c, so the compiler
# won't complain about having only been given a .h file.
tempcname="configure.tmp.$$.c"
ln -s ${signal_h_file} ${tempcname}
if ${cc} -E ${tempcname} | grep "int${sigpattern}" > /dev/null; then
sigtype=int
fi
rm ${tempcname}
fi
echo "Examining the machine- and system-dependent files to find out"
echo " - which libraries the lib-src programs will want, and"
echo " - whether the GNU malloc routines are usable."
......@@ -345,14 +412,16 @@ echo '#include "src/'${machfile}'"
#ifndef LIBS_SYSTEM
#define LIBS_SYSTEM
#endif
libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
@configure@ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
#ifdef SYSTEM_MALLOC
system_malloc=yes
@configure@ system_malloc=yes
#else
system_malloc=no
@configure@ system_malloc=no
#endif
' > ${tempcname}
eval `${cc} -E ${tempcname} | grep -v '^#' | grep -v '^[ ]*$'`
eval `${cc} -E ${tempcname} \
| grep '@configure@' \
| sed -e 's/^@configure@//'`
rm ${tempcname}
# Do the opsystem or machine files prohibit the use of the GNU malloc?
......@@ -383,7 +452,8 @@ esac
sed_flags="-e 's:@machine@:${machfile}:'"
sed_flags="${sed_flags} -e 's:@opsystem@:${opsysfile}:'"
for flag in `echo ${config_h_opts} | tr ':' ' '`; do
cflagname=`echo ${flag} | tr a-z A-Z`
cflagname=`echo ${flag} \
| tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
val=`eval echo '$'${flag}`
case ${val} in
no | "")
......@@ -411,12 +481,20 @@ rm -f ./Makefile
# editing \`./Makefile.in' itself, or running \`${progname}' instead."
/bin/sed < Makefile.in \
-e '/^# DIST: /d' \
-e 's;^\(emacsdir=\).*$;\1'"${libroot};" \
-e 's;^\(prefix=\).*$;\1'"${prefix};" \
-e 's;^\(bindir=\).*$;\1'"${bindir};" \
-e 's;^\(lisppath=\).*$;\1'"${lisppath};" \
-e 's;^\(emacsdir=\).*$;\1'"${emacsdir};" \
-e 's;^\(datadir=\).*$;\1'"${datadir};" \
-e 's;^\(lispdir=\).*$;\1'"${lispdir};" \
-e 's;^\(locallisppath=\).*$;\1'"${locallisppath};" \
-e 's;^\(lisppath=\).*$;\1'"${lisppath};" \
-e 's;^\(buildlisppath=\).*$;\1'"${buildlisppath};" \
-e 's;^\(statedir=\).*$;\1'"${statedir};" \
-e 's;^\(lockdir=\).*$;\1'"${lockdir};" \
-e 's;^\(libdir=\).*$;\1'"${libdir};") > ./Makefile
-e 's;^\(libdir=\).*$;\1'"${libdir};" \
-e 's;^\(mandir=\).*$;\1'"${mandir};" \
-e 's;^\(infodir=\).*$;\1'"${infodir};" \
) > ./Makefile
# Remind people not to edit this.
chmod -w ./Makefile
......@@ -427,12 +505,12 @@ rm -f ./build-install
# If you are thinking about editing it, you should seriously consider
# editing \`./build-install.in' itself, or running \`${progname}' instead."
/bin/sed < build-install.in \
-e 's;^\(LIBROOT=\).*$;\1'"${libroot};" \
-e 's;^\(BINDIR=\).*$;\1'"${bindir};" \
-e 's;^\(LISPPATH=\).*$;\1'"${lisppath};" \
-e 's;^\(DATADIR=\).*$;\1'"${datadir};" \
-e 's;^\(LOCKDIR=\).*$;\1'"${lockdir};" \
-e 's;^\(LIBDIR=\).*$;\1'"${libdir};") > ./build-install
-e 's;^\(prefix=\).*$;\1'"${prefix};" \
-e 's;^\(bindir=\).*$;\1'"${bindir};" \
-e 's;^\(lisppath=\).*$;\1'"${lisppath};" \
-e 's;^\(datadir=\).*$;\1'"${datadir};" \
-e 's;^\(lockdir=\).*$;\1'"${lockdir};" \
-e 's;^\(libdir=\).*$;\1'"${libdir};") > ./build-install
# Remind people not to edit this.
chmod -w build-install
chmod +x build-install
......@@ -463,6 +541,11 @@ chmod -w lib-src/Makefile
# Create a verbal description of what we have done.
if [ "${highpri}" ]; then
desc_highpri="${highpri}"
else
desc_highpri="none"
fi
message="# Configured for machine \`${machine}' running \`${opsystem}'.
# The following values have been set in ./Makefile and ./build-install:
# Executables will be placed in
......@@ -477,7 +560,7 @@ message="# Configured for machine \`${machine}' running \`${opsystem}'.
# Emacs will keep track of file-locking in
# ${lockdir}.
# The following values have been set in src/config.h:
# At how much higher than normal priority should Emacs run? ${highpri-none}
# At how much higher than normal priority should Emacs run? ${desc_highpri}
# Should Emacs use the GNU version of malloc? ${gnu_malloc}${gnu_malloc_reason}
# Should Emacs use the relocating allocator for buffers? ${rel_alloc}
# Should Emacs support a floating point Elisp type? ${lisp_float_type}
......@@ -511,7 +594,8 @@ echo "'${progname}' \\
-gnu_malloc='${gnu_malloc}' \\
-rel_alloc='${rel_alloc}' \\
-highpri='${highpri}' \\
-lisp_float_type='${lisp_float_type}'" >> config.status
-lisp_float_type='${lisp_float_type}' \\
$@" >> config.status
# Remind people not to edit this.
chmod -w config.status
chmod +x config.status
......
......@@ -82,12 +82,12 @@ System V rel 4 (-opsystem=usg5-4)
The standard C preprocessor generate xmakefile incorrectly. However,
/lib/cpp will work, so use `make CPP=/lib/cpp'.
Versions 3 and earlier of V.4, on the Intel 386 and 860, had problems
in the X11 libraries. These prevent Emacs from working with X.
You can use Emacs with X provided your copy of X is based on X11
release 4 or newer. Unfortunately, the only way you can tell whether
your X11 library is new enough is to try compiling Emacs to use X.
If xemacs runs, your X11 library is new enough.
Versions 3 and earlier of V.4, on the Intel 386 and 860, had
problems in the X11 libraries. These prevent Emacs from working
with X. You can use Emacs with X provided your copy of X is based
on X11 release 4 or newer. Unfortunately, the only way you can tell
whether your X11 library is new enough is to try compiling Emacs to
use X. If xemacs runs, your X11 library is new enough.
In this context, GSV4 and GSV4i are alternate names for X11R4.
OL2.* is X11R3 based. OL3 is in between X11R3 and X11R4, and may or
......
<
/* Tags file maker to go with GNU Emacs
Copyright (C) 1984, 1987, 1988, 1989 Free Software Foundation, Inc. and Ken Arnold
Copyright (C) 1984, 1987, 1988, 1989, 1992 Free Software Foundation, Inc. and Ken Arnold
This file is part of GNU Emacs.
......@@ -31,6 +31,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <sys/types.h>
#include <sys/stat.h>
#include "getopt.h"
#ifdef __GNUC__
#define alloca __builtin_alloca
#else
......@@ -410,6 +412,12 @@ DEFINEST definedef;
#define LEVEL_OK_FOR_FUNCDEF() \
(level==0 || c_ext && level==1 && structdef==sinbody)
/*
* next_token_is_func
* set this to TRUE, and the next token considered is called a function.
*/
logical next_token_is_func;
/* C extensions. Currently all listed extensions are C++ dialects, so
* `c_ext' is used as an abbreviation for `c_ext&C_PLPL'. If a non-C++
* dialect is added, this must change.
......@@ -436,7 +444,6 @@ char *curfile, /* current input file name */
*intk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz$0123456789", /* valid in-token chars */
*notgd = ",;"; /* non-valid after-function chars */
int file_num; /* current file number */
int append_to_tagfile; /* -a: append to tags */
int emacs_tags_format; /* emacs style output (no -e option any more) */
/* The following three default to 1 for etags, but to 0 for ctags. */
......@@ -458,6 +465,27 @@ int noindentypedefs; /* -S: ignore indentation in C */
/* Name this program was invoked with. */
char *progname;
struct option longopts[] = {
{ "append", no_argument, NULL, 'a' },
{ "backward-search", no_argument, NULL, 'B' },
{ "c++", no_argument, NULL, 'C' },
{ "cxref", no_argument, NULL, 'x' },
{ "defines", no_argument, NULL, 'd' },
{ "forward-search", no_argument, NULL, 'F' },
{ "help", no_argument, NULL, 'H' },
{ "ignore-indentation", no_argument, NULL, 'S' },
{ "include", required_argument, NULL, 'i' },
{ "no-defines", no_argument, NULL, 'D' },