mirror of
git://git.sv.gnu.org/autoconf
synced 2024-11-21 01:01:48 +08:00
* lib/Autom4te/General.pm (&file_name_is_absolute): Remove.
(&verbose): Remove. (&getopt): Adjust the note and verb channels, depending upon --verbose. * bin/autoheader.in, bin/autom4te.in, bin/autoscan.in, * bin/autoupdate.in: Adjust. Use &verb, not &verbose.
This commit is contained in:
parent
cf2308cf7b
commit
a5b49f45d6
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2003-08-21 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* lib/Autom4te/General.pm (&file_name_is_absolute): Remove.
|
||||
(&verbose): Remove.
|
||||
(&getopt): Adjust the note and verb channels, depending upon
|
||||
--verbose.
|
||||
* bin/autoheader.in, bin/autom4te.in, bin/autoscan.in,
|
||||
* bin/autoupdate.in: Adjust.
|
||||
Use &verb, not &verbose.
|
||||
|
||||
2003-08-21 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* bin/autoheader.in (&parse_args): Use &parse_warnings and
|
||||
|
@ -113,8 +113,6 @@ sub parse_args ()
|
||||
'B|prepend-include=s' => \@prepend_include,
|
||||
'W|warnings=s' => \&parse_warnings);
|
||||
|
||||
setup_channel 'note', silent => !$verbose;
|
||||
|
||||
if (! @ARGV)
|
||||
{
|
||||
my $configure_ac = require_configure_ac;
|
||||
@ -171,7 +169,7 @@ $autoconf .= ' --verbose' if $verbose;
|
||||
# ----------------------- #
|
||||
|
||||
# Source what the traces are trying to tell us.
|
||||
verbose "$me: running $autoconf to trace from $ARGV[0]";
|
||||
verb "$me: running $autoconf to trace from $ARGV[0]";
|
||||
xsystem ("$autoconf"
|
||||
# If you change this list, update the
|
||||
# `Autoheader-preselections' section of autom4te.in.
|
||||
|
@ -716,7 +716,7 @@ sub handle_output ($$)
|
||||
{
|
||||
my ($req, $output) = @_;
|
||||
|
||||
verbose "creating $output";
|
||||
verb "creating $output";
|
||||
|
||||
# Load the forbidden/allowed patterns.
|
||||
handle_traces ($req, "$tmp/patterns",
|
||||
@ -729,10 +729,10 @@ sub handle_output ($$)
|
||||
my $forbidden = join ('|', map { /^forbid:([^:]+)/ } @patterns) || "^\$";
|
||||
my $allowed = join ('|', map { /^allow:([^:]+)/ } @patterns) || "^\$";
|
||||
|
||||
verbose "forbidden tokens: $forbidden";
|
||||
verbose "forbidden token : $_ => $forbidden{$_}"
|
||||
verb "forbidden tokens: $forbidden";
|
||||
verb "forbidden token : $_ => $forbidden{$_}"
|
||||
foreach (sort keys %forbidden);
|
||||
verbose "allowed tokens: $allowed";
|
||||
verb "allowed tokens: $allowed";
|
||||
|
||||
# Read the (cached) raw M4 output, produce the actual result. We
|
||||
# have to use the 2nd arg to have Autom4te::XFile honor the third, but then
|
||||
@ -902,7 +902,7 @@ sub handle_traces ($$%)
|
||||
{
|
||||
my ($req, $output, %trace) = @_;
|
||||
|
||||
verbose "formatting traces for `$output': ", join (', ', sort keys %trace);
|
||||
verb "formatting traces for `$output': " . join (', ', sort keys %trace);
|
||||
|
||||
# Processing the traces.
|
||||
my $trace_m4 = new Autom4te::XFile (">$tmp/traces.m4");
|
||||
@ -1183,7 +1183,7 @@ $req->valid (0)
|
||||
if $force || ! up_to_date ($req);
|
||||
|
||||
# We now know whether we can trust the Request object. Say it.
|
||||
verbose "$me: the trace request object is:\n" . $req->marshall;
|
||||
verb "the trace request object is:\n" . $req->marshall;
|
||||
|
||||
# We need to run M4 if (i) the users wants it (--force), (ii) $REQ is
|
||||
# invalid.
|
||||
|
@ -308,7 +308,7 @@ sub autoreconf_current_directory ()
|
||||
|
||||
if (!$uses_autoconf)
|
||||
{
|
||||
verbose "$configure_ac: not using Autoconf";
|
||||
verb "$configure_ac: not using Autoconf";
|
||||
return;
|
||||
}
|
||||
|
||||
@ -335,11 +335,11 @@ sub autoreconf_current_directory ()
|
||||
# scanning configure.ac.
|
||||
if (!$uses_gettext)
|
||||
{
|
||||
verbose "$configure_ac: not using Gettext";
|
||||
verb "$configure_ac: not using Gettext";
|
||||
}
|
||||
elsif (!$install)
|
||||
{
|
||||
verbose "$configure_ac: not running autopoint: --install not given";
|
||||
verb "$configure_ac: not running autopoint: --install not given";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -388,7 +388,7 @@ sub autoreconf_current_directory ()
|
||||
|
||||
if (!$uses_aclocal)
|
||||
{
|
||||
verbose "$configure_ac: not using aclocal";
|
||||
verb "$configure_ac: not using aclocal";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -422,7 +422,7 @@ sub autoreconf_current_directory ()
|
||||
my $uses_libtool;
|
||||
my $uses_autoheader;
|
||||
my @subdir;
|
||||
verbose "$configure_ac: tracing";
|
||||
verb "$configure_ac: tracing";
|
||||
my $traces = new Autom4te::XFile
|
||||
("$autoconf"
|
||||
. join (' --trace=', '',
|
||||
@ -449,12 +449,12 @@ sub autoreconf_current_directory ()
|
||||
{
|
||||
if (-d)
|
||||
{
|
||||
verbose "$configure_ac: subdirectory $_ to autoreconf";
|
||||
verb "$configure_ac: subdirectory $_ to autoreconf";
|
||||
autoreconf ($_);
|
||||
}
|
||||
else
|
||||
{
|
||||
verbose "$configure_ac: subdirectory $_ not present";
|
||||
verb "$configure_ac: subdirectory $_ not present";
|
||||
}
|
||||
}
|
||||
|
||||
@ -471,7 +471,7 @@ sub autoreconf_current_directory ()
|
||||
|
||||
if (!$uses_libtool)
|
||||
{
|
||||
verbose "$configure_ac: not using Libtool";
|
||||
verb "$configure_ac: not using Libtool";
|
||||
}
|
||||
elsif ($install)
|
||||
{
|
||||
@ -480,7 +480,7 @@ sub autoreconf_current_directory ()
|
||||
}
|
||||
else
|
||||
{
|
||||
verbose "$configure_ac: not running libtoolize: --install not given";
|
||||
verb "$configure_ac: not running libtoolize: --install not given";
|
||||
}
|
||||
|
||||
|
||||
@ -495,7 +495,7 @@ sub autoreconf_current_directory ()
|
||||
{
|
||||
if (!$uses_aclocal)
|
||||
{
|
||||
verbose "$configure_ac: not using aclocal";
|
||||
verb "$configure_ac: not using aclocal";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -532,7 +532,7 @@ sub autoreconf_current_directory ()
|
||||
# config.h.in when it sees an AC_CONFIG_HEADERS.
|
||||
if (!$uses_autoheader)
|
||||
{
|
||||
verbose "$configure_ac: not using Autoheader";
|
||||
verb "$configure_ac: not using Autoheader";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -547,7 +547,7 @@ sub autoreconf_current_directory ()
|
||||
# Assumes that there is a Makefile.am in the topmost directory.
|
||||
if (!-f 'Makefile.am')
|
||||
{
|
||||
verbose "$configure_ac: not using Automake";
|
||||
verb "$configure_ac: not using Automake";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -566,7 +566,7 @@ sub autoreconf_current_directory ()
|
||||
{
|
||||
if (!-f "config.status")
|
||||
{
|
||||
verbose "no config.status: cannot re-make";
|
||||
verb "no config.status: cannot re-make";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -574,7 +574,7 @@ sub autoreconf_current_directory ()
|
||||
xsystem ("./config.status");
|
||||
if (!-f "Makefile")
|
||||
{
|
||||
verbose "no Makefile: cannot re-make";
|
||||
verb "no Makefile: cannot re-make";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -595,7 +595,7 @@ sub autoreconf ($)
|
||||
|
||||
# The format for this message is not free: taken from Emacs, itself
|
||||
# using GNU Make's format.
|
||||
verbose "Entering directory `$directory'";
|
||||
verb "Entering directory `$directory'";
|
||||
chdir $directory
|
||||
or error "cannot chdir to $directory: $!";
|
||||
|
||||
@ -603,7 +603,7 @@ sub autoreconf ($)
|
||||
|
||||
# The format is not free: taken from Emacs, itself using GNU Make's
|
||||
# format.
|
||||
verbose "Leaving directory `$directory'";
|
||||
verb "Leaving directory `$directory'";
|
||||
chdir $cwd
|
||||
or error "cannot chdir to $cwd: $!";
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ Try `$me --help' for more information.\n"
|
||||
|
||||
my $srcdir = $ARGV[0] || ".";
|
||||
|
||||
verbose "srcdir = $srcdir";
|
||||
verb "srcdir = $srcdir";
|
||||
chdir $srcdir || error "cannot cd to $srcdir: $!";
|
||||
}
|
||||
|
||||
@ -566,7 +566,7 @@ sub check_configure_ac ($)
|
||||
join (' --trace=', '',
|
||||
uniq (sort (map { s/\(.*//; $_ } keys %needed_macros)));
|
||||
|
||||
verbose "running: $autoconf $trace_option $configure_ac";
|
||||
verb "running: $autoconf $trace_option $configure_ac";
|
||||
my $traces =
|
||||
new Autom4te::XFile "$autoconf $trace_option $configure_ac|";
|
||||
|
||||
|
@ -105,8 +105,6 @@ sub parse_args ()
|
||||
'B|prepend-include=s' => \@prepend_include,
|
||||
'f|force' => \$force);
|
||||
|
||||
setup_channel 'note', silent => !$verbose;
|
||||
|
||||
if (! @ARGV)
|
||||
{
|
||||
my $configure_ac = require_configure_ac;
|
||||
|
@ -3,7 +3,7 @@
|
||||
% Load plain if necessary, i.e., if running under initex.
|
||||
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||
%
|
||||
\def\texinfoversion{2003-05-04.08}
|
||||
\def\texinfoversion{2003-07-28.08}
|
||||
%
|
||||
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
|
||||
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
@ -887,13 +887,13 @@ where each line of input produces a line of output.}
|
||||
|
||||
% @firstparagraphindent WORD
|
||||
% If WORD is `none', then suppress indentation of the first paragraph
|
||||
% after a section heading. If WORD is `insert', then do indentat such
|
||||
% after a section heading. If WORD is `insert', then do indent at such
|
||||
% paragraphs.
|
||||
%
|
||||
% The paragraph indentation is suppressed or not by calling
|
||||
% \suppressfirstparagraphindent, which the sectioning commands do. We
|
||||
% switch the definition of this back and forth according to WORD. By
|
||||
% default, we suppress indentation.
|
||||
% \suppressfirstparagraphindent, which the sectioning commands do.
|
||||
% We switch the definition of this back and forth according to WORD.
|
||||
% By default, we suppress indentation.
|
||||
%
|
||||
\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
|
||||
\newdimen\currentparindent
|
||||
@ -2524,20 +2524,6 @@ width0pt\relax} \fi
|
||||
% Prevent errors for section commands.
|
||||
% Used in @ignore and in failing conditionals.
|
||||
\def\ignoresections{%
|
||||
\let\chapter=\relax
|
||||
\let\unnumbered=\relax
|
||||
\let\top=\relax
|
||||
\let\unnumberedsec=\relax
|
||||
\let\unnumberedsection=\relax
|
||||
\let\unnumberedsubsec=\relax
|
||||
\let\unnumberedsubsection=\relax
|
||||
\let\unnumberedsubsubsec=\relax
|
||||
\let\unnumberedsubsubsection=\relax
|
||||
\let\section=\relax
|
||||
\let\subsec=\relax
|
||||
\let\subsubsec=\relax
|
||||
\let\subsection=\relax
|
||||
\let\subsubsection=\relax
|
||||
\let\appendix=\relax
|
||||
\let\appendixsec=\relax
|
||||
\let\appendixsection=\relax
|
||||
@ -2545,110 +2531,26 @@ width0pt\relax} \fi
|
||||
\let\appendixsubsection=\relax
|
||||
\let\appendixsubsubsec=\relax
|
||||
\let\appendixsubsubsection=\relax
|
||||
%\let\begin=\relax
|
||||
%\let\bye=\relax
|
||||
\let\centerchap=\relax
|
||||
\let\chapter=\relax
|
||||
\let\contents=\relax
|
||||
\let\section=\relax
|
||||
\let\smallbook=\relax
|
||||
\let\subsec=\relax
|
||||
\let\subsection=\relax
|
||||
\let\subsubsec=\relax
|
||||
\let\subsubsection=\relax
|
||||
\let\titlepage=\relax
|
||||
}
|
||||
|
||||
% Used in nested conditionals, where we have to parse the Texinfo source
|
||||
% and so want to turn off most commands, in case they are used
|
||||
% incorrectly.
|
||||
%
|
||||
% We use \empty instead of \relax for the @def... commands, so that \end
|
||||
% doesn't throw an error. For instance:
|
||||
% @ignore
|
||||
% @deffn ...
|
||||
% @end deffn
|
||||
% @end ignore
|
||||
%
|
||||
% The @end deffn is going to get expanded, because we're trying to allow
|
||||
% nested conditionals. But we don't want to expand the actual @deffn,
|
||||
% since it might be syntactically correct and intended to be ignored.
|
||||
% Since \end checks for \relax, using \empty does not cause an error.
|
||||
%
|
||||
\def\ignoremorecommands{%
|
||||
\let\defcodeindex = \relax
|
||||
\let\defcv = \empty
|
||||
\let\defcvx = \empty
|
||||
\let\Edefcv = \empty
|
||||
\let\deffn = \empty
|
||||
\let\deffnx = \empty
|
||||
\let\Edeffn = \empty
|
||||
\let\defindex = \relax
|
||||
\let\defivar = \empty
|
||||
\let\defivarx = \empty
|
||||
\let\Edefivar = \empty
|
||||
\let\defmac = \empty
|
||||
\let\defmacx = \empty
|
||||
\let\Edefmac = \empty
|
||||
\let\defmethod = \empty
|
||||
\let\defmethodx = \empty
|
||||
\let\Edefmethod = \empty
|
||||
\let\defop = \empty
|
||||
\let\defopx = \empty
|
||||
\let\Edefop = \empty
|
||||
\let\defopt = \empty
|
||||
\let\defoptx = \empty
|
||||
\let\Edefopt = \empty
|
||||
\let\defspec = \empty
|
||||
\let\defspecx = \empty
|
||||
\let\Edefspec = \empty
|
||||
\let\deftp = \empty
|
||||
\let\deftpx = \empty
|
||||
\let\Edeftp = \empty
|
||||
\let\deftypefn = \empty
|
||||
\let\deftypefnx = \empty
|
||||
\let\Edeftypefn = \empty
|
||||
\let\deftypefun = \empty
|
||||
\let\deftypefunx = \empty
|
||||
\let\Edeftypefun = \empty
|
||||
\let\deftypeivar = \empty
|
||||
\let\deftypeivarx = \empty
|
||||
\let\Edeftypeivar = \empty
|
||||
\let\deftypemethod = \empty
|
||||
\let\deftypemethodx = \empty
|
||||
\let\Edeftypemethod = \empty
|
||||
\let\deftypeop = \empty
|
||||
\let\deftypeopx = \empty
|
||||
\let\Edeftypeop = \empty
|
||||
\let\deftypevar = \empty
|
||||
\let\deftypevarx = \empty
|
||||
\let\Edeftypevar = \empty
|
||||
\let\deftypevr = \empty
|
||||
\let\deftypevrx = \empty
|
||||
\let\Edeftypevr = \empty
|
||||
\let\defun = \empty
|
||||
\let\defunx = \empty
|
||||
\let\Edefun = \empty
|
||||
\let\defvar = \empty
|
||||
\let\defvarx = \empty
|
||||
\let\Edefvar = \empty
|
||||
\let\defvr = \empty
|
||||
\let\defvrx = \empty
|
||||
\let\Edefvr = \empty
|
||||
\let\clear = \relax
|
||||
\let\down = \relax
|
||||
\let\evenfooting = \relax
|
||||
\let\evenheading = \relax
|
||||
\let\everyfooting = \relax
|
||||
\let\everyheading = \relax
|
||||
\let\headings = \relax
|
||||
\let\include = \relax
|
||||
\let\item = \relax
|
||||
\let\lowersections = \relax
|
||||
\let\oddfooting = \relax
|
||||
\let\oddheading = \relax
|
||||
\let\printindex = \relax
|
||||
\let\pxref = \relax
|
||||
\let\raisesections = \relax
|
||||
\let\ref = \relax
|
||||
\let\set = \relax
|
||||
\let\setchapternewpage = \relax
|
||||
\let\setchapterstyle = \relax
|
||||
\let\settitle = \relax
|
||||
\let\up = \relax
|
||||
\let\verbatiminclude = \relax
|
||||
\let\xref = \relax
|
||||
\let\top=\relax
|
||||
\let\unnumbered=\relax
|
||||
\let\unnumberedsec=\relax
|
||||
\let\unnumberedsection=\relax
|
||||
\let\unnumberedsubsec=\relax
|
||||
\let\unnumberedsubsection=\relax
|
||||
\let\unnumberedsubsubsec=\relax
|
||||
\let\unnumberedsubsubsection=\relax
|
||||
}
|
||||
|
||||
% Ignore @ignore, @ifhtml, @ifinfo, and the like.
|
||||
@ -2670,140 +2572,77 @@ width0pt\relax} \fi
|
||||
% which this file should belong to. Ignore this in TeX.
|
||||
\let\dircategory = \comment
|
||||
|
||||
% Ignore text until a line `@end #1'.
|
||||
% Ignore text until a line `@end #1', keeping track of nested conditionals.
|
||||
%
|
||||
% A count to remember the depth of nesting.
|
||||
\newcount\doignorecount \doignorecount = 0
|
||||
|
||||
\def\doignore#1{\begingroup
|
||||
% Don't complain about control sequences we have declared \outer.
|
||||
\ignoresections
|
||||
%
|
||||
% Define a command to swallow text until we reach `@end #1'.
|
||||
% This @ is a catcode 12 token (that is the normal catcode of @ in
|
||||
% this texinfo.tex file). We change the catcode of @ below to match.
|
||||
\long\def\doignoretext##1@end #1{\enddoignore}%
|
||||
%
|
||||
% Make sure that spaces turn into tokens that match what \doignoretext wants.
|
||||
\catcode\spaceChar = 10
|
||||
%
|
||||
% Ignore braces, too, so mismatched braces don't cause trouble.
|
||||
% Ignore braces, so mismatched braces don't cause trouble.
|
||||
\catcode`\{ = 9
|
||||
\catcode`\} = 9
|
||||
%
|
||||
% We must not have @c interpreted as a control sequence.
|
||||
\catcode`\@ = 12
|
||||
% Count number of #1's that we've seen.
|
||||
\doignorecount = 0
|
||||
%
|
||||
\def\ignoreword{#1}%
|
||||
\ifx\ignoreword\documentdescriptionword
|
||||
% The c kludge breaks documentdescription, since
|
||||
% `documentdescription' contains a `c'. Means not everything will
|
||||
% be ignored inside @documentdescription, but oh well...
|
||||
\else
|
||||
% Make the letter c a comment character so that the rest of the line
|
||||
% will be ignored. This way, the document can have (for example)
|
||||
% @c @end ifinfo
|
||||
% and the @end ifinfo will be properly ignored.
|
||||
% (We've just changed @ to catcode 12.)
|
||||
\catcode`\c = 14
|
||||
% Swallow text until we reach the matching `@end #1'.
|
||||
\expandafter \dodoignore \csname#1\endcsname {#1}%
|
||||
}
|
||||
|
||||
{ \catcode`@=11 % We want to use \ST@P which cannot appear in texinfo source.
|
||||
\obeylines %
|
||||
%
|
||||
\gdef\dodoignore#1#2{%
|
||||
% #1 contains, e.g., \ifinfo, a.k.a. @ifinfo.
|
||||
% #2 contains the string `ifinfo'.
|
||||
%
|
||||
% Define a command to find the next `@end #2', which must be on a line
|
||||
% by itself.
|
||||
\long\def\doignoretext##1^^M\end #2{\doignoretextyyy##1^^M#1\ST@P}%
|
||||
% And this command to find another #1 command, at the beginning of a
|
||||
% line. (Otherwise, we would consider a line `@c @ifset', for
|
||||
% example, to count as an @ifset for nesting.)
|
||||
\long\def\doignoretextyyy##1^^M#1##2\ST@P{\doignoreyyy{##2}\ST@P}%
|
||||
%
|
||||
% And now expand that command.
|
||||
\obeylines %
|
||||
\doignoretext ^^M%
|
||||
}%
|
||||
}
|
||||
|
||||
\def\doignoreyyy#1{%
|
||||
\def\temp{#1}%
|
||||
\ifx\temp\empty % Nothing found.
|
||||
\let\next\doignoretextzzz
|
||||
\else % Found a nested condition, ...
|
||||
\advance\doignorecount by 1
|
||||
\let\next\doignoretextyyy % ..., look for another.
|
||||
% If we're here, #1 ends with \ifinfo (for example).
|
||||
\fi
|
||||
%
|
||||
% And now expand the command defined above.
|
||||
\doignoretext
|
||||
\next #1% the token \ST@P is present just after this macro.
|
||||
}
|
||||
|
||||
% What we do to finish off ignored text.
|
||||
%
|
||||
\def\enddoignore{\endgroup\ignorespaces}%
|
||||
|
||||
\newif\ifwarnedobs\warnedobsfalse
|
||||
\def\obstexwarn{%
|
||||
\ifwarnedobs\relax\else
|
||||
% We need to warn folks that they may have trouble with TeX 3.0.
|
||||
% This uses \immediate\write16 rather than \message to get newlines.
|
||||
\immediate\write16{}
|
||||
\immediate\write16{WARNING: for users of Unix TeX 3.0!}
|
||||
\immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
|
||||
\immediate\write16{If you are running another version of TeX, relax.}
|
||||
\immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
|
||||
\immediate\write16{ Then upgrade your TeX installation if you can.}
|
||||
\immediate\write16{ (See ftp://ftp.gnu.org/non-gnu/TeX.README.)}
|
||||
\immediate\write16{If you are stuck with version 3.0, run the}
|
||||
\immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
|
||||
\immediate\write16{ to use a workaround.}
|
||||
\immediate\write16{}
|
||||
\global\warnedobstrue
|
||||
\fi
|
||||
% We have to swallow the remaining "\ST@P".
|
||||
%
|
||||
\def\doignoretextzzz#1{%
|
||||
\ifnum\doignorecount = 0 % We have just found the outermost @end.
|
||||
\let\next\enddoignore
|
||||
\else % Still inside a nested condition.
|
||||
\advance\doignorecount by -1
|
||||
\let\next\doignoretext % Look for the next @end.
|
||||
\fi
|
||||
\next
|
||||
}
|
||||
|
||||
% **In TeX 3.0, setting text in \nullfont hangs tex. For a
|
||||
% workaround (which requires the file ``dummy.tfm'' to be installed),
|
||||
% uncomment the following line:
|
||||
%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
|
||||
% Finish off ignored text.
|
||||
\def\enddoignore{\endgroup\ignorespaces}
|
||||
|
||||
% Ignore text, except that we keep track of conditional commands for
|
||||
% purposes of nesting, up to an `@end #1' command.
|
||||
%
|
||||
\def\nestedignore#1{%
|
||||
\obstexwarn
|
||||
% We must actually expand the ignored text to look for the @end
|
||||
% command, so that nested ignore constructs work. Thus, we put the
|
||||
% text into a \vbox and then do nothing with the result. To minimize
|
||||
% the chance of memory overflow, we follow the approach outlined on
|
||||
% page 401 of the TeXbook.
|
||||
%
|
||||
\setbox0 = \vbox\bgroup
|
||||
% Don't complain about control sequences we have declared \outer.
|
||||
\ignoresections
|
||||
%
|
||||
% Define `@end #1' to end the box, which will in turn undefine the
|
||||
% @end command again.
|
||||
\expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
|
||||
%
|
||||
% We are going to be parsing Texinfo commands. Most cause no
|
||||
% trouble when they are used incorrectly, but some commands do
|
||||
% complicated argument parsing or otherwise get confused, so we
|
||||
% undefine them.
|
||||
%
|
||||
% We can't do anything about stray @-signs, unfortunately;
|
||||
% they'll produce `undefined control sequence' errors.
|
||||
\ignoremorecommands
|
||||
%
|
||||
% Set the current font to be \nullfont, a TeX primitive, and define
|
||||
% all the font commands to also use \nullfont. We don't use
|
||||
% dummy.tfm, as suggested in the TeXbook, because some sites
|
||||
% might not have that installed. Therefore, math mode will still
|
||||
% produce output, but that should be an extremely small amount of
|
||||
% stuff compared to the main input.
|
||||
%
|
||||
\nullfont
|
||||
\let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont
|
||||
\let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont
|
||||
\let\tensf=\nullfont
|
||||
% Similarly for index fonts.
|
||||
\let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont
|
||||
\let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont
|
||||
\let\smallsf=\nullfont
|
||||
% Similarly for smallexample fonts.
|
||||
\let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont
|
||||
\let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont
|
||||
\let\smallersf=\nullfont
|
||||
%
|
||||
% Don't complain when characters are missing from the fonts.
|
||||
\tracinglostchars = 0
|
||||
%
|
||||
% Don't bother to do space factor calculations.
|
||||
\frenchspacing
|
||||
%
|
||||
% Don't report underfull hboxes.
|
||||
\hbadness = 10000
|
||||
%
|
||||
% Do minimal line-breaking.
|
||||
\pretolerance = 10000
|
||||
%
|
||||
% Do not execute instructions in @tex.
|
||||
\def\tex{\doignore{tex}}%
|
||||
% Do not execute macro definitions.
|
||||
% `c' is a comment character, so the word `macro' will get cut off.
|
||||
\def\macro{\doignore{ma}}%
|
||||
}
|
||||
|
||||
% @set VAR sets the variable VAR to an empty value.
|
||||
% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
|
||||
@ -2881,7 +2720,7 @@ width0pt\relax} \fi
|
||||
\next
|
||||
}
|
||||
\def\ifsetsucceed{\conditionalsucceed{ifset}}
|
||||
\def\ifsetfail{\nestedignore{ifset}}
|
||||
\def\ifsetfail{\doignore{ifset}}
|
||||
\defineunmatchedend{ifset}
|
||||
|
||||
% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
|
||||
@ -2897,7 +2736,7 @@ width0pt\relax} \fi
|
||||
\next
|
||||
}
|
||||
\def\ifclearsucceed{\conditionalsucceed{ifclear}}
|
||||
\def\ifclearfail{\nestedignore{ifclear}}
|
||||
\def\ifclearfail{\doignore{ifclear}}
|
||||
\defineunmatchedend{ifclear}
|
||||
|
||||
% @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we
|
||||
@ -4023,23 +3862,27 @@ width0pt\relax} \fi
|
||||
% if justification is not attempted. Hence \raggedright.
|
||||
|
||||
|
||||
\def\majorheading{\parsearg\majorheadingzzz}
|
||||
\def\majorheadingzzz #1{%
|
||||
\def\majorheading{%
|
||||
{\advance\chapheadingskip by 10pt \chapbreak }%
|
||||
{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
|
||||
\parindent=0pt\raggedright
|
||||
\rm #1\hfill}}\bigskip \par\penalty 200}
|
||||
\parsearg\chapheadingzzz
|
||||
}
|
||||
|
||||
\def\chapheading{\parsearg\chapheadingzzz}
|
||||
\def\chapheadingzzz #1{\chapbreak %
|
||||
\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
|
||||
\def\chapheadingzzz #1{%
|
||||
{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
|
||||
\parindent=0pt\raggedright
|
||||
\rm #1\hfill}}\bigskip \par\penalty 200}
|
||||
\rm #1\hfill}}%
|
||||
\bigskip \par\penalty 200\relax
|
||||
\suppressfirstparagraphindent
|
||||
}
|
||||
|
||||
% @heading, @subheading, @subsubheading.
|
||||
\def\heading{\parsearg\plainsecheading}
|
||||
\def\subheading{\parsearg\plainsubsecheading}
|
||||
\def\subsubheading{\parsearg\plainsubsubsecheading}
|
||||
\def\heading{\parsearg\doheading}
|
||||
\def\subheading{\parsearg\dosubheading}
|
||||
\def\subsubheading{\parsearg\dosubsubheading}
|
||||
\def\doheading#1{\plainsecheading{#1}\suppressfirstparagraphindent}
|
||||
\def\dosubheading#1{\plainsubsecheading{#1}\suppressfirstparagraphindent}
|
||||
\def\dosubsubheading#1{\plainsubsubsecheading{#1}\suppressfirstparagraphindent}
|
||||
|
||||
% These macros generate a chapter, section, etc. heading only
|
||||
% (including whitespace, linebreaking, etc. around it),
|
||||
@ -6177,7 +6020,6 @@ width0pt\relax} \fi
|
||||
\closein 1
|
||||
\input \jobname.aux
|
||||
\global\havexrefstrue
|
||||
\global\warnedobstrue
|
||||
\fi
|
||||
% Open the new aux file. TeX will close it automatically at exit.
|
||||
\openout\auxfile=\jobname.aux
|
||||
|
@ -36,8 +36,8 @@ used in several executables of the Autoconf and Automake packages.
|
||||
use 5.005_03;
|
||||
use Exporter;
|
||||
use Autom4te::ChannelDefs;
|
||||
use Autom4te::Channels;
|
||||
use File::Basename;
|
||||
use File::Spec;
|
||||
use File::stat;
|
||||
use IO::File;
|
||||
use Carp;
|
||||
@ -54,9 +54,8 @@ my @export_vars =
|
||||
# Functions we define and export.
|
||||
my @export_subs =
|
||||
qw (&debug
|
||||
&file_name_is_absolute
|
||||
&getopt &mktmpdir
|
||||
&uniq &verbose);
|
||||
&uniq);
|
||||
|
||||
# Functions we forward (coming from modules we use).
|
||||
my @export_forward_subs =
|
||||
@ -147,12 +146,6 @@ $version = undef;
|
||||
=cut
|
||||
|
||||
|
||||
## ------------ ##
|
||||
## Prototypes. ##
|
||||
## ------------ ##
|
||||
|
||||
sub verbose (@);
|
||||
|
||||
|
||||
## ----- ##
|
||||
## END. ##
|
||||
@ -247,24 +240,6 @@ sub debug (@)
|
||||
}
|
||||
|
||||
|
||||
=item C<file_name_is_absolute ($filename)>
|
||||
|
||||
Wrapper around C<File::Spec->file_name_is_absolute>. Return true iff
|
||||
C<$filename> is absolute.
|
||||
|
||||
=cut
|
||||
|
||||
# $BOOLEAN
|
||||
# &file_name_is_absolute ($FILE)
|
||||
# ------------------------------
|
||||
sub file_name_is_absolute ($)
|
||||
{
|
||||
my ($file) = @_;
|
||||
return File::Spec->file_name_is_absolute ($file);
|
||||
}
|
||||
|
||||
|
||||
|
||||
=item C<getopt (%option)>
|
||||
|
||||
Wrapper around C<Getopt::Long>. In addition to the user C<option>s,
|
||||
@ -311,6 +286,9 @@ sub getopt (%)
|
||||
|
||||
push @ARGV, '-'
|
||||
if $stdin;
|
||||
|
||||
setup_channel 'note', silent => !$verbose;
|
||||
setup_channel 'verb', silent => !$verbose;
|
||||
}
|
||||
|
||||
|
||||
@ -372,24 +350,6 @@ sub uniq (@)
|
||||
}
|
||||
|
||||
|
||||
=item C<verbose (@message)>
|
||||
|
||||
If the verbose mode is enabled (C<$verbose>), report the C<@message>
|
||||
on C<STDERR>, signed with the name of the program. These messages are
|
||||
meant for ordinary users, and typically make explicit the steps being
|
||||
performed.
|
||||
|
||||
=cut
|
||||
|
||||
# verbose(@MESSAGE)
|
||||
# -----------------
|
||||
sub verbose (@)
|
||||
{
|
||||
print STDERR "$me: ", @_, "\n"
|
||||
if $verbose;
|
||||
}
|
||||
|
||||
|
||||
=item C<handle_exec_errors ($command)>
|
||||
|
||||
Display an error message for C<$command>, based on the content of
|
||||
|
Loading…
Reference in New Issue
Block a user