Update.
1998-03-04 16:12 H.J. Lu <hjl@gnu.org> * libio/strops.c (_IO_str_seekoff): Handle MODE == 0. 1998-03-04 16:19 Ulrich Drepper <drepper@cygnus.com> * nscd/nscd_getgr_r.c: Follow nscd_getpw_r.c change. 1998-03-04 Andreas Jaeger <aj@arthur.rhein-neckar.de> * nscd/nscd_getpw_r.c (nscd_open_socket): Safe and reset errno so that a failure to connect to nscd doesn't change errno. 1998-03-04 Andreas Jaeger <aj@arthur.rhein-neckar.de> * manual/maint.texi (Reporting Bugs): Change bug-glibc@prep.ai.mit.edu to bug-glibc@gnu.org. * locale/iso-4217.def: Likewise 1998-03-04 12:43 Ulrich Drepper <drepper@cygnus.com> * manual/texinfo.tex: Updated. 1998-03-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/posix/fpathconf.c: Don't modify errno for an undefined value. * sysdeps/posix/pathconf.c: Likewise. * posix/getconf.c: Print `undefined' if pathconf returns -1 without setting errno. 1998-03-04 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Fix cut&paste problem. * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: New file. Patches by Elliot Lee <sopwith@cuc.edu>.
This commit is contained in:
parent
ea7eb7e3eb
commit
2eb45444a7
39
ChangeLog
39
ChangeLog
|
@ -1,3 +1,42 @@
|
||||||
|
1998-03-04 16:12 H.J. Lu <hjl@gnu.org>
|
||||||
|
|
||||||
|
* libio/strops.c (_IO_str_seekoff): Handle MODE == 0.
|
||||||
|
|
||||||
|
1998-03-04 16:19 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* nscd/nscd_getgr_r.c: Follow nscd_getpw_r.c change.
|
||||||
|
|
||||||
|
1998-03-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
* nscd/nscd_getpw_r.c (nscd_open_socket): Safe and reset errno so
|
||||||
|
that a failure to connect to nscd doesn't change errno.
|
||||||
|
|
||||||
|
1998-03-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
* manual/maint.texi (Reporting Bugs): Change
|
||||||
|
bug-glibc@prep.ai.mit.edu to bug-glibc@gnu.org.
|
||||||
|
|
||||||
|
* locale/iso-4217.def: Likewise
|
||||||
|
|
||||||
|
1998-03-04 12:43 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* manual/texinfo.tex: Updated.
|
||||||
|
|
||||||
|
1998-03-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* sysdeps/posix/fpathconf.c: Don't modify errno for an undefined
|
||||||
|
value.
|
||||||
|
* sysdeps/posix/pathconf.c: Likewise.
|
||||||
|
* posix/getconf.c: Print `undefined' if pathconf returns -1
|
||||||
|
without setting errno.
|
||||||
|
|
||||||
|
1998-03-04 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Fix cut&paste
|
||||||
|
problem.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: New file.
|
||||||
|
Patches by Elliot Lee <sopwith@cuc.edu>.
|
||||||
|
|
||||||
1998-03-04 09:43 Ulrich Drepper <drepper@cygnus.com>
|
1998-03-04 09:43 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* elf/link.h (struct link_map): Add new field l_reloc_result.
|
* elf/link.h (struct link_map): Add new field l_reloc_result.
|
||||||
|
|
8
FAQ.in
8
FAQ.in
|
@ -50,8 +50,8 @@ you are really interested in porting it, contact
|
||||||
GNU CC are used to increase portability and speed.
|
GNU CC are used to increase portability and speed.
|
||||||
|
|
||||||
GNU CC is found, like all other GNU packages, on
|
GNU CC is found, like all other GNU packages, on
|
||||||
ftp://prep.ai.mit.edu/pub/gnu
|
ftp://ftp.gnu.org/pub/gnu
|
||||||
and the many mirror sites. prep is always overloaded, so try to find
|
and the many mirror sites. ftp.gnu.org is always overloaded, so try to find
|
||||||
a local mirror first.
|
a local mirror first.
|
||||||
|
|
||||||
You always should try to use the latest official release. Older
|
You always should try to use the latest official release. Older
|
||||||
|
@ -114,7 +114,7 @@ in configparms. Later versions of egcs may fix these problems.
|
||||||
|
|
||||||
* GNU gettext. This package contains the tools needed to construct
|
* GNU gettext. This package contains the tools needed to construct
|
||||||
`message catalog' files containing translated versions of system
|
`message catalog' files containing translated versions of system
|
||||||
messages. See ftp://prep.ai.mit.edu/pub/gnu or better any mirror
|
messages. See ftp://ftp.gnu.org/pub/gnu or better any mirror
|
||||||
site. (We distribute compiled message catalogs, but they may not be
|
site. (We distribute compiled message catalogs, but they may not be
|
||||||
updated in patches.)
|
updated in patches.)
|
||||||
|
|
||||||
|
@ -882,7 +882,7 @@ only using the headers and library functions defined in the standard.
|
||||||
or higher is required for this script'. What can I do?
|
or higher is required for this script'. What can I do?
|
||||||
|
|
||||||
{UD} You have to get the specified autoconf version (or a later one)
|
{UD} You have to get the specified autoconf version (or a later one)
|
||||||
from your favorite mirror of prep.ai.mit.edu.
|
from your favorite mirror of ftp.gnu.org.
|
||||||
|
|
||||||
?? When I try to compile code which uses IPv6 headers and
|
?? When I try to compile code which uses IPv6 headers and
|
||||||
definitions on my Linux 2.x.y system I am in trouble.
|
definitions on my Linux 2.x.y system I am in trouble.
|
||||||
|
|
6
NEWS
6
NEWS
|
@ -1,11 +1,11 @@
|
||||||
GNU C Library NEWS -- history of user-visible changes. 1998-02-09
|
GNU C Library NEWS -- history of user-visible changes. 1998-03-04
|
||||||
|
|
||||||
Copyright (C) 1992, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
|
Copyright (C) 1992, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||||
See the end for copying conditions.
|
See the end for copying conditions.
|
||||||
|
|
||||||
Please send GNU C library bug reports using the `glibcbug' script to
|
Please send GNU C library bug reports using the `glibcbug' script to
|
||||||
<bugs@gnu.org>. Questions and suggestions should be send to
|
<bugs@gnu.org>. Questions and suggestions should be send to
|
||||||
<bug-glibc@prep.ai.mit.edu>.
|
<bug-glibc@gnu.org>.
|
||||||
|
|
||||||
Version 2.1
|
Version 2.1
|
||||||
|
|
||||||
|
@ -52,6 +52,8 @@ Version 2.1
|
||||||
* Optimized string functions have been added.
|
* Optimized string functions have been added.
|
||||||
|
|
||||||
* The localedata addon is now part of glibc.
|
* The localedata addon is now part of glibc.
|
||||||
|
|
||||||
|
* An implementation of profiling shared libraries was added by Ulrich Drepper.
|
||||||
|
|
||||||
Version 2.0.5
|
Version 2.0.5
|
||||||
|
|
||||||
|
|
8
PROJECTS
8
PROJECTS
|
@ -1,9 +1,9 @@
|
||||||
Open jobs for finishing GNU libc:
|
Open jobs for finishing GNU libc:
|
||||||
---------------------------------
|
---------------------------------
|
||||||
Status: January 1998
|
Status: March 1998
|
||||||
|
|
||||||
If you have time and talent to take over any of the jobs below please
|
If you have time and talent to take over any of the jobs below please
|
||||||
contact <bug-glibc@prep.ai.mit.edu>
|
contact <bug-glibc@gnu.org>.
|
||||||
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -33,8 +33,8 @@ contact <bug-glibc@prep.ai.mit.edu>
|
||||||
users can immediately benefit from this.
|
users can immediately benefit from this.
|
||||||
|
|
||||||
Take a look at the matrix in
|
Take a look at the matrix in
|
||||||
ftp://prep.ai.mit.edu/pub/gnu/ABOUT-NLS
|
ftp://ftp.gnu.org/pub/gnu/ABOUT-NLS
|
||||||
for the current status (of course better use a mirror of prep).
|
for the current status (of course better use a mirror of ftp.gnu.org).
|
||||||
|
|
||||||
|
|
||||||
[ 6] Write `long double' versions of the math functions. This should be
|
[ 6] Write `long double' versions of the math functions. This should be
|
||||||
|
|
|
@ -120,7 +120,7 @@ these directories. If a new version of an add-on is available it is normally
|
||||||
required for the corresponding snapshot so always pay attention for these.
|
required for the corresponding snapshot so always pay attention for these.
|
||||||
|
|
||||||
Note that we provide GNU gzip compressed files only. You can ftp gzip
|
Note that we provide GNU gzip compressed files only. You can ftp gzip
|
||||||
from prep.ai.mit.edu in directory pub/gnu.
|
from ftp.gnu.org in directory pub/gnu.
|
||||||
|
|
||||||
In some cases the dates for diffs and snapshots do not match like in the
|
In some cases the dates for diffs and snapshots do not match like in the
|
||||||
example above. The full release is for 970921 but the patch is for
|
example above. The full release is for 970921 but the patch is for
|
||||||
|
@ -167,7 +167,7 @@ developers. No questions about installation problems or other simple topics
|
||||||
are wanted nor will they be answered.
|
are wanted nor will they be answered.
|
||||||
|
|
||||||
Do *not* send any questions about the snapshots or patches specific to the
|
Do *not* send any questions about the snapshots or patches specific to the
|
||||||
snapshots to bug-glibc@prep.ai.mit.edu. Nobody there will have any idea what
|
snapshots to bug-glibc@gnu.org. Nobody there will have any idea what
|
||||||
you are talking about and it will just cause confusion.
|
you are talking about and it will just cause confusion.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ can get the crypt distribution via anonymous FTP from ftp.ifi.uio.no
|
||||||
[129.240.64.21], or another archive site outside the USA. Archive
|
[129.240.64.21], or another archive site outside the USA. Archive
|
||||||
maintainers are encouraged to copy this distribution to their archives
|
maintainers are encouraged to copy this distribution to their archives
|
||||||
outside the USA. Please get it from ftp.ifi.uio.no; transferring this
|
outside the USA. Please get it from ftp.ifi.uio.no; transferring this
|
||||||
distribution from prep.ai.mit.edu (or any other site in the USA) to a
|
distribution from ftp.gnu.org (or any other site in the USA) to a
|
||||||
site outside the USA is in violation of US export laws.
|
site outside the USA is in violation of US export laws.
|
||||||
|
|
||||||
Beside the separate crypt tar file there are some more add-ons which can be
|
Beside the separate crypt tar file there are some more add-ons which can be
|
||||||
|
|
|
@ -212,51 +212,65 @@ _IO_str_seekoff (fp, offset, dir, mode)
|
||||||
int dir;
|
int dir;
|
||||||
int mode;
|
int mode;
|
||||||
{
|
{
|
||||||
_IO_ssize_t cur_size = _IO_str_count (fp);
|
_IO_fpos64_t new_pos;
|
||||||
_IO_fpos64_t new_pos = EOF;
|
|
||||||
|
|
||||||
if (mode == 0 && (fp->_flags & _IO_TIED_PUT_GET))
|
if (mode == 0 && (fp->_flags & _IO_TIED_PUT_GET))
|
||||||
mode = (fp->_flags & _IO_CURRENTLY_PUTTING ? _IOS_OUTPUT : _IOS_INPUT);
|
mode = (fp->_flags & _IO_CURRENTLY_PUTTING ? _IOS_OUTPUT : _IOS_INPUT);
|
||||||
|
|
||||||
/* Move the get pointer, if requested. */
|
if (mode == 0)
|
||||||
if (mode & _IOS_INPUT)
|
|
||||||
{
|
{
|
||||||
switch (dir)
|
/* Don't move any pointers. But there is no clear indication what
|
||||||
{
|
mode FP is in. Let's guess. */
|
||||||
case _IO_seek_end:
|
if (fp->_IO_file_flags & _IO_NO_WRITES)
|
||||||
offset += cur_size;
|
new_pos = fp->_IO_read_ptr - fp->_IO_read_base;
|
||||||
break;
|
else
|
||||||
case _IO_seek_cur:
|
new_pos = fp->_IO_write_ptr - fp->_IO_write_base;
|
||||||
offset += fp->_IO_read_ptr - fp->_IO_read_base;
|
|
||||||
break;
|
|
||||||
default: /* case _IO_seek_set: */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (offset < 0 || (_IO_ssize_t) offset > cur_size)
|
|
||||||
return EOF;
|
|
||||||
fp->_IO_read_ptr = fp->_IO_read_base + offset;
|
|
||||||
fp->_IO_read_end = fp->_IO_read_base + cur_size;
|
|
||||||
new_pos = offset;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
/* Move the put pointer, if requested. */
|
|
||||||
if (mode & _IOS_OUTPUT)
|
|
||||||
{
|
{
|
||||||
switch (dir)
|
_IO_ssize_t cur_size = _IO_str_count(fp);
|
||||||
|
new_pos = EOF;
|
||||||
|
|
||||||
|
/* Move the get pointer, if requested. */
|
||||||
|
if (mode & _IOS_INPUT)
|
||||||
{
|
{
|
||||||
case _IO_seek_end:
|
switch (dir)
|
||||||
offset += cur_size;
|
{
|
||||||
break;
|
case _IO_seek_end:
|
||||||
case _IO_seek_cur:
|
offset += cur_size;
|
||||||
offset += fp->_IO_write_ptr - fp->_IO_write_base;
|
break;
|
||||||
break;
|
case _IO_seek_cur:
|
||||||
default: /* case _IO_seek_set: */
|
offset += fp->_IO_read_ptr - fp->_IO_read_base;
|
||||||
break;
|
break;
|
||||||
|
default: /* case _IO_seek_set: */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (offset < 0 || (_IO_ssize_t) offset > cur_size)
|
||||||
|
return EOF;
|
||||||
|
fp->_IO_read_ptr = fp->_IO_read_base + offset;
|
||||||
|
fp->_IO_read_end = fp->_IO_read_base + cur_size;
|
||||||
|
new_pos = offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Move the put pointer, if requested. */
|
||||||
|
if (mode & _IOS_OUTPUT)
|
||||||
|
{
|
||||||
|
switch (dir)
|
||||||
|
{
|
||||||
|
case _IO_seek_end:
|
||||||
|
offset += cur_size;
|
||||||
|
break;
|
||||||
|
case _IO_seek_cur:
|
||||||
|
offset += fp->_IO_write_ptr - fp->_IO_write_base;
|
||||||
|
break;
|
||||||
|
default: /* case _IO_seek_set: */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (offset < 0 || (_IO_ssize_t) offset > cur_size)
|
||||||
|
return EOF;
|
||||||
|
fp->_IO_write_ptr = fp->_IO_write_base + offset;
|
||||||
|
new_pos = offset;
|
||||||
}
|
}
|
||||||
if (offset < 0 || (_IO_ssize_t) offset > cur_size)
|
|
||||||
return EOF;
|
|
||||||
fp->_IO_write_ptr = fp->_IO_write_base + offset;
|
|
||||||
new_pos = offset;
|
|
||||||
}
|
}
|
||||||
return new_pos;
|
return new_pos;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Defines the valid international currency symbols according to ISO 4217.
|
* Defines the valid international currency symbols according to ISO 4217.
|
||||||
* This is used in monetary.c(monetary_check).
|
* This is used in monetary.c(monetary_check).
|
||||||
*
|
*
|
||||||
* If you find something missing or wrong contact <bug-glibc@prep.ai.mit.edu>
|
* If you find something missing or wrong contact <bug-glibc@gnu.org>
|
||||||
*
|
*
|
||||||
* !!! The list has to be sorted !!!
|
* !!! The list has to be sorted !!!
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -307,7 +307,7 @@ Since no one has volunteered to test and fix the above configurations,
|
||||||
these are not supported at the moment. It's expected that these don't
|
these are not supported at the moment. It's expected that these don't
|
||||||
work anymore. Porting the library is not hard. If you are interested
|
work anymore. Porting the library is not hard. If you are interested
|
||||||
in doing a port, please contact the glibc maintainers by sending
|
in doing a port, please contact the glibc maintainers by sending
|
||||||
electronic mail to @email{bug-glibc@@prep.ai.mit.edu}.
|
electronic mail to @email{bug-glibc@@gnu.org}.
|
||||||
|
|
||||||
Each case of @samp{i@var{x}86} can be @samp{i386}, @samp{i486},
|
Each case of @samp{i@var{x}86} can be @samp{i386}, @samp{i486},
|
||||||
@samp{i586}, or @samp{i686}. All of those configurations produce a
|
@samp{i586}, or @samp{i686}. All of those configurations produce a
|
||||||
|
@ -369,8 +369,7 @@ conform to the ISO and POSIX standards (@pxref{Standards and
|
||||||
Portability}), that is definitely a bug. Report it!@refill
|
Portability}), that is definitely a bug. Report it!@refill
|
||||||
|
|
||||||
Send bug reports to the Internet address
|
Send bug reports to the Internet address
|
||||||
@email{bug-glibc@@prep.ai.mit.edu} or the UUCP path
|
@email{bug-glibc@@gnu.org}. If you have other problems
|
||||||
@email{mit-eddie!prep.ai.mit.edu!bug-glibc}. If you have other problems
|
|
||||||
with installation or use, please report those as well.@refill
|
with installation or use, please report those as well.@refill
|
||||||
|
|
||||||
If you are not sure how a function should behave, and this manual
|
If you are not sure how a function should behave, and this manual
|
||||||
|
@ -378,8 +377,7 @@ doesn't tell you, that's a bug in the manual. Report that too! If the
|
||||||
function's behavior disagrees with the manual, then either the library
|
function's behavior disagrees with the manual, then either the library
|
||||||
or the manual has a bug, so report the disagreement. If you find any
|
or the manual has a bug, so report the disagreement. If you find any
|
||||||
errors or omissions in this manual, please report them to the Internet
|
errors or omissions in this manual, please report them to the Internet
|
||||||
address @email{bug-glibc-manual@@prep.ai.mit.edu} or the UUCP path
|
address @email{bug-glibc-manual@@prep.ai.mit.edu}.
|
||||||
@email{mit-eddie!prep.ai.mit.edu!bug-glibc-manual}.
|
|
||||||
|
|
||||||
@node Source Layout
|
@node Source Layout
|
||||||
@appendixsec Adding New Functions
|
@appendixsec Adding New Functions
|
||||||
|
|
|
@ -1,32 +1,40 @@
|
||||||
%% TeX macros to handle Texinfo files.
|
% texinfo.tex -- TeX macros to handle Texinfo files.
|
||||||
%% $Id: texinfo.tex,v 2.212 1997/08/04 14:14:11 drepper Exp $
|
% $Id: texinfo.tex,v 2.213 1998/03/04 17:13:03 drepper Exp $
|
||||||
|
%
|
||||||
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93,
|
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
|
||||||
% 94, 95, 96, 97 Free Software Foundation, Inc.
|
% Free Software Foundation, Inc.
|
||||||
|
%
|
||||||
%This texinfo.tex file is free software; you can redistribute it and/or
|
% This texinfo.tex file is free software; you can redistribute it and/or
|
||||||
%modify it under the terms of the GNU General Public License as
|
% modify it under the terms of the GNU General Public License as
|
||||||
%published by the Free Software Foundation; either version 2, or (at
|
% published by the Free Software Foundation; either version 2, or (at
|
||||||
%your option) any later version.
|
% your option) any later version.
|
||||||
|
%
|
||||||
%This texinfo.tex file is distributed in the hope that it will be
|
% This texinfo.tex file is distributed in the hope that it will be
|
||||||
%useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
||||||
%of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
%General Public License for more details.
|
% General Public License for more details.
|
||||||
|
%
|
||||||
%You should have received a copy of the GNU General Public License
|
% You should have received a copy of the GNU General Public License
|
||||||
%along with this texinfo.tex file; see the file COPYING. If not, write
|
% along with this texinfo.tex file; see the file COPYING. If not, write
|
||||||
%to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
%Boston, MA 02111-1307, USA.
|
% Boston, MA 02111-1307, USA.
|
||||||
|
%
|
||||||
|
% In other words, you are welcome to use, share and improve this program.
|
||||||
%In other words, you are welcome to use, share and improve this program.
|
% You are forbidden to forbid anyone else to use, share and improve
|
||||||
%You are forbidden to forbid anyone else to use, share and improve
|
% what you give them. Help stamp out software-hoarding!
|
||||||
%what you give them. Help stamp out software-hoarding!
|
%
|
||||||
|
% Please try the latest version of texinfo.tex before submitting bug
|
||||||
|
% reports; you can get the latest version from:
|
||||||
% Send bug reports to bug-texinfo@prep.ai.mit.edu.
|
% ftp://ftp.cs.umb.edu/pub/tex/texinfo.tex
|
||||||
% Please include a *precise* test case in each bug report.
|
% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
|
||||||
|
%
|
||||||
|
% Send bug reports to bug-texinfo@gnu.org.
|
||||||
|
% Please include a precise test case in each bug report,
|
||||||
|
% including a complete document with which we can reproduce the problem.
|
||||||
|
%
|
||||||
|
% Texinfo macros (with @macro) are *not* supported by texinfo.tex. You
|
||||||
|
% have to run makeinfo -E to expand macros first; the texi2dvi script
|
||||||
|
% does this.
|
||||||
|
|
||||||
|
|
||||||
% Make it possible to create a .fmt file just by loading this file:
|
% Make it possible to create a .fmt file just by loading this file:
|
||||||
|
@ -36,7 +44,7 @@
|
||||||
|
|
||||||
% This automatically updates the version number based on RCS.
|
% This automatically updates the version number based on RCS.
|
||||||
\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
|
\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
|
||||||
\deftexinfoversion$Revision: 2.212 $
|
\deftexinfoversion$Revision: 2.213 $
|
||||||
\message{Loading texinfo package [Version \texinfoversion]:}
|
\message{Loading texinfo package [Version \texinfoversion]:}
|
||||||
|
|
||||||
% If in a .fmt file, print the version number
|
% If in a .fmt file, print the version number
|
||||||
|
@ -54,7 +62,8 @@
|
||||||
\let\ptexdot=\.
|
\let\ptexdot=\.
|
||||||
\let\ptexdots=\dots
|
\let\ptexdots=\dots
|
||||||
\let\ptexend=\end
|
\let\ptexend=\end
|
||||||
\let\ptexequiv = \equiv
|
\let\ptexequiv=\equiv
|
||||||
|
\let\ptexexclam=\!
|
||||||
\let\ptexi=\i
|
\let\ptexi=\i
|
||||||
\let\ptexlbrace=\{
|
\let\ptexlbrace=\{
|
||||||
\let\ptexrbrace=\}
|
\let\ptexrbrace=\}
|
||||||
|
@ -441,14 +450,11 @@
|
||||||
% @. is an end-of-sentence period.
|
% @. is an end-of-sentence period.
|
||||||
\def\.{.\spacefactor=3000 }
|
\def\.{.\spacefactor=3000 }
|
||||||
|
|
||||||
% @enddots{} is an end-of-sentence ellipsis.
|
|
||||||
\gdef\enddots{$\mathinner{\ldotp\ldotp\ldotp\ldotp}$\spacefactor=3000}
|
|
||||||
|
|
||||||
% @! is an end-of-sentence bang.
|
% @! is an end-of-sentence bang.
|
||||||
\gdef\!{!\spacefactor=3000 }
|
\def\!{!\spacefactor=3000 }
|
||||||
|
|
||||||
% @? is an end-of-sentence query.
|
% @? is an end-of-sentence query.
|
||||||
\gdef\?{?\spacefactor=3000 }
|
\def\?{?\spacefactor=3000 }
|
||||||
|
|
||||||
% @w prevents a word break. Without the \leavevmode, @w at the
|
% @w prevents a word break. Without the \leavevmode, @w at the
|
||||||
% beginning of a paragraph, when TeX is still in vertical mode, would
|
% beginning of a paragraph, when TeX is still in vertical mode, would
|
||||||
|
@ -573,9 +579,27 @@ where each line of input produces a line of output.}
|
||||||
|
|
||||||
\let\br = \par
|
\let\br = \par
|
||||||
|
|
||||||
% @dots{} output some dots
|
% @dots{} output an ellipsis using the current font.
|
||||||
|
% We do .5em per period so that it has the same spacing in a typewriter
|
||||||
|
% font as three actual period characters.
|
||||||
|
%
|
||||||
|
\def\dots{\hbox to 1.5em{%
|
||||||
|
\hskip 0pt plus 0.25fil minus 0.25fil
|
||||||
|
.\hss.\hss.%
|
||||||
|
\hskip 0pt plus 0.5fil minus 0.5fil
|
||||||
|
}}
|
||||||
|
|
||||||
|
% @enddots{} is an end-of-sentence ellipsis.
|
||||||
|
%
|
||||||
|
\def\enddots{%
|
||||||
|
\hbox to 2em{%
|
||||||
|
\hskip 0pt plus 0.25fil minus 0.25fil
|
||||||
|
.\hss.\hss.\hss.%
|
||||||
|
\hskip 0pt plus 0.5fil minus 0.5fil
|
||||||
|
}%
|
||||||
|
\spacefactor=3000
|
||||||
|
}
|
||||||
|
|
||||||
\def\dots{$\ldots$}
|
|
||||||
|
|
||||||
% @page forces the start of a new page
|
% @page forces the start of a new page
|
||||||
|
|
||||||
|
@ -1236,7 +1260,7 @@ where each line of input produces a line of output.}
|
||||||
\let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
|
\let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
|
||||||
\let\tenttsl=\titlettsl
|
\let\tenttsl=\titlettsl
|
||||||
\resetmathfonts \setleading{25pt}}
|
\resetmathfonts \setleading{25pt}}
|
||||||
\def\titlefont#1{{\titlefonts #1}}
|
\def\titlefont#1{{\titlefonts\rm #1}}
|
||||||
\def\chapfonts{%
|
\def\chapfonts{%
|
||||||
\let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
|
\let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
|
||||||
\let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
|
\let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
|
||||||
|
@ -1263,6 +1287,10 @@ where each line of input produces a line of output.}
|
||||||
%
|
%
|
||||||
\textfonts
|
\textfonts
|
||||||
|
|
||||||
|
% Define these so they can be easily changed for other fonts.
|
||||||
|
\def\angleleft{$\langle$}
|
||||||
|
\def\angleright{$\rangle$}
|
||||||
|
|
||||||
% Count depth in font-changes, for error checks
|
% Count depth in font-changes, for error checks
|
||||||
\newcount\fontdepth \fontdepth=0
|
\newcount\fontdepth \fontdepth=0
|
||||||
|
|
||||||
|
@ -1300,15 +1328,15 @@ where each line of input produces a line of output.}
|
||||||
\null
|
\null
|
||||||
}
|
}
|
||||||
\let\ttfont=\t
|
\let\ttfont=\t
|
||||||
\def\samp #1{`\tclose{#1}'\null}
|
\def\samp#1{`\tclose{#1}'\null}
|
||||||
\setfont\smallrm\rmshape{8}{1000}
|
\setfont\smallrm\rmshape{8}{1000}
|
||||||
\font\smallsy=cmsy9
|
\font\smallsy=cmsy9
|
||||||
\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
|
\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
|
||||||
\raise0.4pt\hbox{$\langle$}\kern-.08em\vtop{%
|
\raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
|
||||||
\vbox{\hrule\kern-0.4pt
|
\vbox{\hrule\kern-0.4pt
|
||||||
\hbox{\raise0.4pt\hbox{\vphantom{$\langle$}}#1}}%
|
\hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
|
||||||
\kern-0.4pt\hrule}%
|
\kern-0.4pt\hrule}%
|
||||||
\kern-.06em\raise0.4pt\hbox{$\rangle$}}}}
|
\kern-.06em\raise0.4pt\hbox{\angleright}}}}
|
||||||
% The old definition, with no lozenge:
|
% The old definition, with no lozenge:
|
||||||
%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
|
%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
|
||||||
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
|
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
|
||||||
|
@ -1421,7 +1449,7 @@ where each line of input produces a line of output.}
|
||||||
|
|
||||||
% rms does not like the angle brackets --karl, 17may97.
|
% rms does not like the angle brackets --karl, 17may97.
|
||||||
% So now @email is just like @uref.
|
% So now @email is just like @uref.
|
||||||
%\def\email#1{$\langle${\tt #1}$\rangle$}
|
%\def\email#1{\angleleft{\tt #1}\angleright}
|
||||||
\let\email=\uref
|
\let\email=\uref
|
||||||
|
|
||||||
% Check if we are currently using a typewriter font. Since all the
|
% Check if we are currently using a typewriter font. Since all the
|
||||||
|
@ -2043,10 +2071,7 @@ July\or August\or September\or October\or November\or December\fi
|
||||||
% @multitablelinespace is space to leave between table items, baseline
|
% @multitablelinespace is space to leave between table items, baseline
|
||||||
% to baseline.
|
% to baseline.
|
||||||
% 0pt means it depends on current normal line spacing.
|
% 0pt means it depends on current normal line spacing.
|
||||||
|
%
|
||||||
%%%%
|
|
||||||
% Dimensions
|
|
||||||
|
|
||||||
\newskip\multitableparskip
|
\newskip\multitableparskip
|
||||||
\newskip\multitableparindent
|
\newskip\multitableparindent
|
||||||
\newdimen\multitablecolspace
|
\newdimen\multitablecolspace
|
||||||
|
@ -2056,15 +2081,15 @@ July\or August\or September\or October\or November\or December\fi
|
||||||
\multitablecolspace=12pt
|
\multitablecolspace=12pt
|
||||||
\multitablelinespace=0pt
|
\multitablelinespace=0pt
|
||||||
|
|
||||||
%%%%
|
|
||||||
% Macros used to set up halign preamble:
|
% Macros used to set up halign preamble:
|
||||||
|
%
|
||||||
\let\endsetuptable\relax
|
\let\endsetuptable\relax
|
||||||
\def\xendsetuptable{\endsetuptable}
|
\def\xendsetuptable{\endsetuptable}
|
||||||
\let\columnfractions\relax
|
\let\columnfractions\relax
|
||||||
\def\xcolumnfractions{\columnfractions}
|
\def\xcolumnfractions{\columnfractions}
|
||||||
\newif\ifsetpercent
|
\newif\ifsetpercent
|
||||||
|
|
||||||
%% 2/1/96, to allow fractions to be given with more than one digit.
|
% 2/1/96, to allow fractions to be given with more than one digit.
|
||||||
\def\pickupwholefraction#1 {\global\advance\colcount by1 %
|
\def\pickupwholefraction#1 {\global\advance\colcount by1 %
|
||||||
\expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
|
\expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
|
||||||
\setuptable}
|
\setuptable}
|
||||||
|
@ -2090,80 +2115,84 @@ July\or August\or September\or October\or November\or December\fi
|
||||||
\ifx\go\pickupwholefraction\else\let\go\setuptable\fi%
|
\ifx\go\pickupwholefraction\else\let\go\setuptable\fi%
|
||||||
\fi\go}
|
\fi\go}
|
||||||
|
|
||||||
%%%%
|
|
||||||
% multitable syntax
|
% multitable syntax
|
||||||
\def\tab{&\hskip1sp\relax} % 2/2/96
|
\def\tab{&\hskip1sp\relax} % 2/2/96
|
||||||
% tiny skip here makes sure this column space is
|
% tiny skip here makes sure this column space is
|
||||||
% maintained, even if it is never used.
|
% maintained, even if it is never used.
|
||||||
|
|
||||||
|
|
||||||
%%%%
|
|
||||||
% @multitable ... @end multitable definitions:
|
% @multitable ... @end multitable definitions:
|
||||||
|
|
||||||
\def\multitable{\parsearg\dotable}
|
\def\multitable{\parsearg\dotable}
|
||||||
|
|
||||||
\def\dotable#1{\bgroup
|
\def\dotable#1{\bgroup
|
||||||
\let\item\cr
|
\vskip\parskip
|
||||||
\tolerance=9500
|
\let\item\crcr
|
||||||
\hbadness=9500
|
\tolerance=9500
|
||||||
\setmultitablespacing
|
\hbadness=9500
|
||||||
\parskip=\multitableparskip
|
\setmultitablespacing
|
||||||
\parindent=\multitableparindent
|
\parskip=\multitableparskip
|
||||||
\overfullrule=0pt
|
\parindent=\multitableparindent
|
||||||
\global\colcount=0\relax%
|
\overfullrule=0pt
|
||||||
\def\Emultitable{\global\setpercentfalse\global\everycr{}\cr\egroup\egroup}%
|
\global\colcount=0
|
||||||
% To parse everything between @multitable and @item :
|
\def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
|
||||||
\setuptable#1 \endsetuptable
|
%
|
||||||
% Need to reset this to 0 after \setuptable.
|
% To parse everything between @multitable and @item:
|
||||||
\global\colcount=0\relax%
|
\setuptable#1 \endsetuptable
|
||||||
%
|
%
|
||||||
% This preamble sets up a generic column definition, which will
|
% \everycr will reset column counter, \colcount, at the end of
|
||||||
% be used as many times as user calls for columns.
|
% each line. Every column entry will cause \colcount to advance by one.
|
||||||
% \vtop will set a single line and will also let text wrap and
|
% The table preamble
|
||||||
% continue for many paragraphs if desired.
|
% looks at the current \colcount to find the correct column width.
|
||||||
\halign\bgroup&\global\advance\colcount by 1\relax%
|
\everycr{\noalign{%
|
||||||
\multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
|
%
|
||||||
% In order to keep entries from bumping into each other
|
% \filbreak%% keeps underfull box messages off when table breaks over pages.
|
||||||
% we will add a \leftskip of \multitablecolspace to all columns after
|
% Maybe so, but it also creates really weird page breaks when the table
|
||||||
% the first one.
|
% breaks over pages. Wouldn't \vfil be better? Wait until the problem
|
||||||
% If a template has been used, we will add \multitablecolspace
|
% manifests itself, so it can be fixed for real --karl.
|
||||||
% to the width of each template entry.
|
\global\colcount=0\relax}}%
|
||||||
% If user has set preamble in terms of percent of \hsize
|
%
|
||||||
% we will use that dimension as the width of the column, and
|
% This preamble sets up a generic column definition, which will
|
||||||
% the \leftskip will keep entries from bumping into each other.
|
% be used as many times as user calls for columns.
|
||||||
% Table will start at left margin and final column will justify at
|
% \vtop will set a single line and will also let text wrap and
|
||||||
% right margin.
|
% continue for many paragraphs if desired.
|
||||||
\ifnum\colcount=1
|
\halign\bgroup&\global\advance\colcount by 1\relax
|
||||||
\else
|
\multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
|
||||||
\ifsetpercent
|
%
|
||||||
|
% In order to keep entries from bumping into each other
|
||||||
|
% we will add a \leftskip of \multitablecolspace to all columns after
|
||||||
|
% the first one.
|
||||||
|
%
|
||||||
|
% If a template has been used, we will add \multitablecolspace
|
||||||
|
% to the width of each template entry.
|
||||||
|
%
|
||||||
|
% If the user has set preamble in terms of percent of \hsize we will
|
||||||
|
% use that dimension as the width of the column, and the \leftskip
|
||||||
|
% will keep entries from bumping into each other. Table will start at
|
||||||
|
% left margin and final column will justify at right margin.
|
||||||
|
%
|
||||||
|
% Make sure we don't inherit \rightskip from the outer environment.
|
||||||
|
\rightskip=0pt
|
||||||
|
\ifnum\colcount=1
|
||||||
|
% The first column will be indented with the surrounding text.
|
||||||
|
\advance\hsize by\leftskip
|
||||||
\else
|
\else
|
||||||
% If user has <not> set preamble in terms of percent of \hsize
|
\ifsetpercent \else
|
||||||
% we will advance \hsize by \multitablecolspace
|
% If user has not set preamble in terms of percent of \hsize
|
||||||
\advance\hsize by \multitablecolspace
|
% we will advance \hsize by \multitablecolspace.
|
||||||
|
\advance\hsize by \multitablecolspace
|
||||||
|
\fi
|
||||||
|
% In either case we will make \leftskip=\multitablecolspace:
|
||||||
|
\leftskip=\multitablecolspace
|
||||||
\fi
|
\fi
|
||||||
% In either case we will make \leftskip=\multitablecolspace:
|
% Ignoring space at the beginning and end avoids an occasional spurious
|
||||||
\leftskip=\multitablecolspace
|
% blank line, when TeX decides to break the line at the space before the
|
||||||
\fi
|
% box from the multistrut, so the strut ends up on a line by itself.
|
||||||
% Ignoring space at the beginning and end avoids an occasional spurious
|
% For example:
|
||||||
% blank line, when TeX decides to break the line at the space before the
|
% @multitable @columnfractions .11 .89
|
||||||
% box from the multistrut, so the strut ends up on a line by itself.
|
% @item @code{#}
|
||||||
% For example:
|
% @tab Legal holiday which is valid in major parts of the whole country.
|
||||||
% @multitable @columnfractions .11 .89
|
% Is automatically provided with highlighting sequences respectively marking
|
||||||
% @item @code{#}
|
% characters.
|
||||||
% @tab Legal holiday which is valid in major parts of the whole country.
|
\noindent\ignorespaces##\unskip\multistrut}\cr
|
||||||
% Is automatically provided with highlighting sequences respectively marking
|
|
||||||
% characters.
|
|
||||||
\noindent\ignorespaces##\unskip\multistrut}\cr
|
|
||||||
% \everycr will reset column counter, \colcount, at the end of
|
|
||||||
% each line. Every column entry will cause \colcount to advance by one.
|
|
||||||
% The table preamble
|
|
||||||
% looks at the current \colcount to find the correct column width.
|
|
||||||
\global\everycr{\noalign{%
|
|
||||||
% \filbreak%% keeps underfull box messages off when table breaks over pages.
|
|
||||||
% Maybe so, but it also creates really weird page breaks when the table
|
|
||||||
% breaks over pages Wouldn't \vfil be better? Wait until the problem
|
|
||||||
% manifests itself, so it can be fixed for real --karl.
|
|
||||||
\global\colcount=0\relax}}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
|
\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
|
||||||
|
@ -2510,6 +2539,11 @@ width0pt\relax} \fi
|
||||||
\indexbreaks
|
\indexbreaks
|
||||||
%
|
%
|
||||||
% See if the index file exists and is nonempty.
|
% See if the index file exists and is nonempty.
|
||||||
|
% Change catcode of @ here so that if the index file contains
|
||||||
|
% \initial {@}
|
||||||
|
% as its first line, TeX doesn't complain about mismatched braces
|
||||||
|
% (because it thinks @} is a control sequence).
|
||||||
|
\catcode`\@ = 11
|
||||||
\openin 1 \jobname.#1s
|
\openin 1 \jobname.#1s
|
||||||
\ifeof 1
|
\ifeof 1
|
||||||
% \enddoublecolumns gets confused if there is no text in the index,
|
% \enddoublecolumns gets confused if there is no text in the index,
|
||||||
|
@ -2531,7 +2565,6 @@ width0pt\relax} \fi
|
||||||
% to make right now.
|
% to make right now.
|
||||||
\def\indexbackslash{\rawbackslashxx}%
|
\def\indexbackslash{\rawbackslashxx}%
|
||||||
\catcode`\\ = 0
|
\catcode`\\ = 0
|
||||||
\catcode`\@ = 11
|
|
||||||
\escapechar = `\\
|
\escapechar = `\\
|
||||||
\begindoublecolumns
|
\begindoublecolumns
|
||||||
\input \jobname.#1s
|
\input \jobname.#1s
|
||||||
|
@ -3427,11 +3460,12 @@ width0pt\relax} \fi
|
||||||
% the index entries, but we want to suppress hyphenation here. (We
|
% the index entries, but we want to suppress hyphenation here. (We
|
||||||
% can't do that in the \entry macro, since index entries might consist
|
% can't do that in the \entry macro, since index entries might consist
|
||||||
% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
|
% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
|
||||||
%
|
|
||||||
% \turnoffactive is for the sake of @" used for umlauts.
|
|
||||||
\def\tocentry#1#2{\begingroup
|
\def\tocentry#1#2{\begingroup
|
||||||
\vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
|
\vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
|
||||||
\entry{\turnoffactive #1}{\turnoffactive #2}%
|
% Do not use \turnoffactive in these arguments. Since the toc is
|
||||||
|
% typeset in cmr, so characters such as _ would come out wrong; we
|
||||||
|
% have to do the usual translation tricks.
|
||||||
|
\entry{#1}{#2}%
|
||||||
\endgroup}
|
\endgroup}
|
||||||
|
|
||||||
% Space between chapter (or whatever) number and the title.
|
% Space between chapter (or whatever) number and the title.
|
||||||
|
@ -3497,30 +3531,35 @@ width0pt\relax} \fi
|
||||||
% But \@ or @@ will get a plain tex @ character.
|
% But \@ or @@ will get a plain tex @ character.
|
||||||
|
|
||||||
\def\tex{\begingroup
|
\def\tex{\begingroup
|
||||||
\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
|
\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
|
||||||
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
|
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
|
||||||
\catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
|
\catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
|
||||||
\catcode `\%=14
|
\catcode `\%=14
|
||||||
\catcode 43=12 % plus
|
\catcode 43=12 % plus
|
||||||
\catcode`\"=12
|
\catcode`\"=12
|
||||||
\catcode`\==12
|
\catcode`\==12
|
||||||
\catcode`\|=12
|
\catcode`\|=12
|
||||||
\catcode`\<=12
|
\catcode`\<=12
|
||||||
\catcode`\>=12
|
\catcode`\>=12
|
||||||
\escapechar=`\\
|
\escapechar=`\\
|
||||||
%
|
%
|
||||||
\let\,=\ptexcomma
|
\let\b=\ptexb
|
||||||
\let\{=\ptexlbrace
|
\let\bullet=\ptexbullet
|
||||||
\let\}=\ptexrbrace
|
\let\c=\ptexc
|
||||||
\let\.=\ptexdot
|
\let\,=\ptexcomma
|
||||||
\let\*=\ptexstar
|
\let\.=\ptexdot
|
||||||
\let\dots=\ptexdots
|
\let\dots=\ptexdots
|
||||||
\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
|
\let\equiv=\ptexequiv
|
||||||
\def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
|
\let\!=\ptexexclam
|
||||||
\def\@{@}%
|
\let\i=\ptexi
|
||||||
\let\bullet=\ptexbullet
|
\let\{=\ptexlbrace
|
||||||
\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext
|
\let\}=\ptexrbrace
|
||||||
%
|
\let\*=\ptexstar
|
||||||
|
\let\t=\ptext
|
||||||
|
%
|
||||||
|
\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
|
||||||
|
\def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
|
||||||
|
\def\@{@}%
|
||||||
\let\Etex=\endgroup}
|
\let\Etex=\endgroup}
|
||||||
|
|
||||||
% Define @lisp ... @endlisp.
|
% Define @lisp ... @endlisp.
|
||||||
|
@ -4373,7 +4412,7 @@ width0pt\relax} \fi
|
||||||
\def\refx#1#2{%
|
\def\refx#1#2{%
|
||||||
\expandafter\ifx\csname X#1\endcsname\relax
|
\expandafter\ifx\csname X#1\endcsname\relax
|
||||||
% If not defined, say something at least.
|
% If not defined, say something at least.
|
||||||
$\langle$un\-de\-fined$\rangle$%
|
\angleleft un\-de\-fined\angleright
|
||||||
\ifhavexrefs
|
\ifhavexrefs
|
||||||
\message{\linenumber Undefined cross reference `#1'.}%
|
\message{\linenumber Undefined cross reference `#1'.}%
|
||||||
\else
|
\else
|
||||||
|
@ -4390,10 +4429,13 @@ width0pt\relax} \fi
|
||||||
}
|
}
|
||||||
|
|
||||||
% This is the macro invoked by entries in the aux file.
|
% This is the macro invoked by entries in the aux file.
|
||||||
\def\xrdef #1#2{{%
|
%
|
||||||
\catcode`\'=\other
|
\def\xrdef#1{\begingroup
|
||||||
\expandafter\gdef\csname X#1\endcsname{#2}%
|
% Reenable \ as an escape while reading the second argument.
|
||||||
}}
|
\catcode`\\ = 0
|
||||||
|
\afterassignment\endgroup
|
||||||
|
\expandafter\gdef\csname X#1\endcsname
|
||||||
|
}
|
||||||
|
|
||||||
% Read the last existing aux file, if any. No error if none exists.
|
% Read the last existing aux file, if any. No error if none exists.
|
||||||
\def\readauxfile{\begingroup
|
\def\readauxfile{\begingroup
|
||||||
|
@ -4617,7 +4659,7 @@ width0pt\relax} \fi
|
||||||
% Check for and read epsf.tex up front. If we read it only at @image
|
% Check for and read epsf.tex up front. If we read it only at @image
|
||||||
% time, we might be inside a group, and then its definitions would get
|
% time, we might be inside a group, and then its definitions would get
|
||||||
% undone and the next image would fail.
|
% undone and the next image would fail.
|
||||||
\openin 1 = xepsf.tex
|
\openin 1 = epsf.tex
|
||||||
\ifeof 1 \else
|
\ifeof 1 \else
|
||||||
\closein 1
|
\closein 1
|
||||||
\def\epsfannounce{\toks0 = }% do not bother showing banner
|
\def\epsfannounce{\toks0 = }% do not bother showing banner
|
||||||
|
|
|
@ -67,16 +67,21 @@ nscd_open_socket (void)
|
||||||
{
|
{
|
||||||
struct sockaddr_un addr;
|
struct sockaddr_un addr;
|
||||||
int sock;
|
int sock;
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
sock = socket (PF_UNIX, SOCK_STREAM, 0);
|
sock = socket (PF_UNIX, SOCK_STREAM, 0);
|
||||||
if (sock < 0)
|
if (sock < 0)
|
||||||
return -1;
|
{
|
||||||
|
__set_errno (saved_errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
addr.sun_family = AF_UNIX;
|
addr.sun_family = AF_UNIX;
|
||||||
strcpy (addr.sun_path, _PATH_NSCDSOCKET);
|
strcpy (addr.sun_path, _PATH_NSCDSOCKET);
|
||||||
if (connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0)
|
if (connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0)
|
||||||
{
|
{
|
||||||
close (sock);
|
close (sock);
|
||||||
|
__set_errno (saved_errno);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,16 +67,21 @@ nscd_open_socket (void)
|
||||||
{
|
{
|
||||||
struct sockaddr_un addr;
|
struct sockaddr_un addr;
|
||||||
int sock;
|
int sock;
|
||||||
|
int saved_errno = errno;
|
||||||
|
|
||||||
sock = socket (PF_UNIX, SOCK_STREAM, 0);
|
sock = socket (PF_UNIX, SOCK_STREAM, 0);
|
||||||
if (sock < 0)
|
if (sock < 0)
|
||||||
return -1;
|
{
|
||||||
|
__set_errno (saved_errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
addr.sun_family = AF_UNIX;
|
addr.sun_family = AF_UNIX;
|
||||||
strcpy (addr.sun_path, _PATH_NSCDSOCKET);
|
strcpy (addr.sun_path, _PATH_NSCDSOCKET);
|
||||||
if (connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0)
|
if (connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0)
|
||||||
{
|
{
|
||||||
close (sock);
|
close (sock);
|
||||||
|
__set_errno (saved_errno);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -282,11 +282,17 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
|
||||||
case PATHCONF:
|
case PATHCONF:
|
||||||
if (argc < 3)
|
if (argc < 3)
|
||||||
usage ();
|
usage ();
|
||||||
|
errno = 0;
|
||||||
value = pathconf (argv[2], c->call_name);
|
value = pathconf (argv[2], c->call_name);
|
||||||
if (value == -1)
|
if (value == -1)
|
||||||
error (3, errno, "pathconf: %s", argv[2]);
|
{
|
||||||
|
if (errno)
|
||||||
printf ("%ld\n", value);
|
error (3, errno, "pathconf: %s", argv[2]);
|
||||||
|
else
|
||||||
|
puts (_("undefined"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf ("%ld\n", value);
|
||||||
exit (0);
|
exit (0);
|
||||||
|
|
||||||
case SYSCONF:
|
case SYSCONF:
|
||||||
|
|
|
@ -45,7 +45,6 @@ __fpathconf (fd, name)
|
||||||
#ifdef LINK_MAX
|
#ifdef LINK_MAX
|
||||||
return LINK_MAX;
|
return LINK_MAX;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -53,7 +52,6 @@ __fpathconf (fd, name)
|
||||||
#ifdef MAX_CANON
|
#ifdef MAX_CANON
|
||||||
return MAX_CANON;
|
return MAX_CANON;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -61,7 +59,6 @@ __fpathconf (fd, name)
|
||||||
#ifdef MAX_INPUT
|
#ifdef MAX_INPUT
|
||||||
return MAX_INPUT;
|
return MAX_INPUT;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -69,14 +66,21 @@ __fpathconf (fd, name)
|
||||||
#ifdef NAME_MAX
|
#ifdef NAME_MAX
|
||||||
{
|
{
|
||||||
struct statfs buf;
|
struct statfs buf;
|
||||||
|
int save_errno = errno;
|
||||||
|
|
||||||
if (__fstatfs (fd, &buf) < 0)
|
if (__fstatfs (fd, &buf) < 0)
|
||||||
return errno == ENOSYS ? NAME_MAX : -1;
|
{
|
||||||
|
if (errno == ENOSYS)
|
||||||
|
{
|
||||||
|
errno = save_errno;
|
||||||
|
return NAME_MAX;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return buf.f_namelen;
|
return buf.f_namelen;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -84,7 +88,6 @@ __fpathconf (fd, name)
|
||||||
#ifdef PATH_MAX
|
#ifdef PATH_MAX
|
||||||
return PATH_MAX;
|
return PATH_MAX;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -92,7 +95,6 @@ __fpathconf (fd, name)
|
||||||
#ifdef PIPE_BUF
|
#ifdef PIPE_BUF
|
||||||
return PIPE_BUF;
|
return PIPE_BUF;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -142,13 +144,9 @@ __fpathconf (fd, name)
|
||||||
#ifdef SOCK_MAXBUF
|
#ifdef SOCK_MAXBUF
|
||||||
return SOCK_MAXBUF;
|
return SOCK_MAXBUF;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
weak_alias (__fpathconf, fpathconf)
|
weak_alias (__fpathconf, fpathconf)
|
||||||
|
|
|
@ -43,7 +43,6 @@ __pathconf (const char *path, int name)
|
||||||
#ifdef LINK_MAX
|
#ifdef LINK_MAX
|
||||||
return LINK_MAX;
|
return LINK_MAX;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -51,7 +50,6 @@ __pathconf (const char *path, int name)
|
||||||
#ifdef MAX_CANON
|
#ifdef MAX_CANON
|
||||||
return MAX_CANON;
|
return MAX_CANON;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -59,7 +57,6 @@ __pathconf (const char *path, int name)
|
||||||
#ifdef MAX_INPUT
|
#ifdef MAX_INPUT
|
||||||
return MAX_INPUT;
|
return MAX_INPUT;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -67,14 +64,21 @@ __pathconf (const char *path, int name)
|
||||||
#ifdef NAME_MAX
|
#ifdef NAME_MAX
|
||||||
{
|
{
|
||||||
struct statfs buf;
|
struct statfs buf;
|
||||||
|
int save_errno = errno;
|
||||||
|
|
||||||
if (__statfs (path, &buf) < 0)
|
if (__statfs (path, &buf) < 0)
|
||||||
return errno == ENOSYS ? NAME_MAX : -1;
|
{
|
||||||
|
if (errno == ENOSYS)
|
||||||
|
{
|
||||||
|
errno = save_errno;
|
||||||
|
return NAME_MAX;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return buf.f_namelen;
|
return buf.f_namelen;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -82,7 +86,6 @@ __pathconf (const char *path, int name)
|
||||||
#ifdef PATH_MAX
|
#ifdef PATH_MAX
|
||||||
return PATH_MAX;
|
return PATH_MAX;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -90,7 +93,6 @@ __pathconf (const char *path, int name)
|
||||||
#ifdef PIPE_BUF
|
#ifdef PIPE_BUF
|
||||||
return PIPE_BUF;
|
return PIPE_BUF;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -140,13 +142,9 @@ __pathconf (const char *path, int name)
|
||||||
#ifdef SOCK_MAXBUF
|
#ifdef SOCK_MAXBUF
|
||||||
return SOCK_MAXBUF;
|
return SOCK_MAXBUF;
|
||||||
#else
|
#else
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
__set_errno (ENOSYS);
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
weak_alias (__pathconf, pathconf)
|
weak_alias (__pathconf, pathconf)
|
||||||
|
|
|
@ -42,8 +42,8 @@
|
||||||
vector will have to be laid out to allow for this \
|
vector will have to be laid out to allow for this \
|
||||||
test :-(. */ \
|
test :-(. */ \
|
||||||
if (((ElfW(auxv_t) *)_test)->a_type <= AT_PHDR) \
|
if (((ElfW(auxv_t) *)_test)->a_type <= AT_PHDR) \
|
||||||
|
(auxp) = (ElfW(auxv_t) *) _tmp; \
|
||||||
} \
|
} \
|
||||||
(auxp) = (ElfW(auxv_t) *) _tmp; \
|
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
|
41
sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
Normal file
41
sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||||
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#ifndef _SYS_UCONTEXT_H
|
||||||
|
#define _SYS_UCONTEXT_H 1
|
||||||
|
|
||||||
|
#include <features.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
/* We need the signal context definitions even if they are not used
|
||||||
|
included in <signal.h>. */
|
||||||
|
#include <bits/sigcontext.h>
|
||||||
|
|
||||||
|
typedef struct sigcontext mcontext_t;
|
||||||
|
|
||||||
|
/* Userlevel context. */
|
||||||
|
typedef struct ucontext
|
||||||
|
{
|
||||||
|
unsigned long int uc_flags;
|
||||||
|
struct ucontext *uc_links;
|
||||||
|
stack_t uc_stack;
|
||||||
|
mcontext_t uc_mcontext;
|
||||||
|
__sigset_t uc_sigmask;
|
||||||
|
} ucontext_t;
|
||||||
|
|
||||||
|
#endif /* sys/ucontext.h */
|
Loading…
Reference in a new issue