mirror of git://sourceware.org/git/glibc.git
				
				
				
			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> | ||||
| 
 | ||||
| 	* 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 is found, like all other GNU packages, on | ||||
| 	ftp://prep.ai.mit.edu/pub/gnu | ||||
| and the many mirror sites.  prep is always overloaded, so try to find | ||||
| 	ftp://ftp.gnu.org/pub/gnu | ||||
| and the many mirror sites.  ftp.gnu.org is always overloaded, so try to find | ||||
| a local mirror first. | ||||
| 
 | ||||
| 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 | ||||
|   `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 | ||||
|   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? | ||||
| 
 | ||||
| {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 | ||||
| 	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. | ||||
| See the end for copying conditions. | ||||
| 
 | ||||
| Please send GNU C library bug reports using the `glibcbug' script to | ||||
| <bugs@gnu.org>.  Questions and suggestions should be send to | ||||
| <bug-glibc@prep.ai.mit.edu>. | ||||
| <bug-glibc@gnu.org>. | ||||
|  | ||||
| Version 2.1 | ||||
| 
 | ||||
|  | @ -52,6 +52,8 @@ Version 2.1 | |||
| * Optimized string functions have been added. | ||||
| 
 | ||||
| * The localedata addon is now part of glibc. | ||||
| 
 | ||||
| * An implementation of profiling shared libraries was added by Ulrich Drepper. | ||||
|  | ||||
| Version 2.0.5 | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										8
									
								
								PROJECTS
								
								
								
								
							
							
						
						
									
										8
									
								
								PROJECTS
								
								
								
								
							|  | @ -1,9 +1,9 @@ | |||
| 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 | ||||
| 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. | ||||
| 
 | ||||
|      Take a look at the matrix in | ||||
| 	ftp://prep.ai.mit.edu/pub/gnu/ABOUT-NLS | ||||
|      for the current status (of course better use a mirror of prep). | ||||
| 	ftp://ftp.gnu.org/pub/gnu/ABOUT-NLS | ||||
|      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 | ||||
|  |  | |||
|  | @ -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. | ||||
| 
 | ||||
| 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 | ||||
| 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. | ||||
| 
 | ||||
| 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. | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 | ||||
| maintainers are encouraged to copy this distribution to their archives | ||||
| 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. | ||||
| 
 | ||||
| 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 mode; | ||||
| { | ||||
|   _IO_ssize_t cur_size = _IO_str_count (fp); | ||||
|   _IO_fpos64_t new_pos = EOF; | ||||
|   _IO_fpos64_t new_pos; | ||||
| 
 | ||||
|   if (mode == 0 && (fp->_flags & _IO_TIED_PUT_GET)) | ||||
|     mode = (fp->_flags & _IO_CURRENTLY_PUTTING ? _IOS_OUTPUT : _IOS_INPUT); | ||||
| 
 | ||||
|   /* Move the get pointer, if requested. */ | ||||
|   if (mode & _IOS_INPUT) | ||||
|   if (mode == 0) | ||||
|     { | ||||
|       switch (dir) | ||||
| 	{ | ||||
| 	case _IO_seek_end: | ||||
| 	  offset += cur_size; | ||||
| 	  break; | ||||
| 	case _IO_seek_cur: | ||||
| 	  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; | ||||
|       /* Don't move any pointers. But there is no clear indication what
 | ||||
| 	 mode FP is in. Let's guess. */ | ||||
|       if (fp->_IO_file_flags & _IO_NO_WRITES) | ||||
|         new_pos = fp->_IO_read_ptr - fp->_IO_read_base; | ||||
|       else | ||||
|         new_pos = fp->_IO_write_ptr - fp->_IO_write_base; | ||||
|     } | ||||
| 
 | ||||
|   /* Move the put pointer, if requested. */ | ||||
|   if (mode & _IOS_OUTPUT) | ||||
|   else | ||||
|     { | ||||
|       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: | ||||
| 	  offset += cur_size; | ||||
| 	  break; | ||||
| 	case _IO_seek_cur: | ||||
| 	  offset += fp->_IO_write_ptr - fp->_IO_write_base; | ||||
| 	  break; | ||||
| 	default: /* case _IO_seek_set: */ | ||||
| 	  break; | ||||
| 	  switch (dir) | ||||
| 	    { | ||||
| 	    case _IO_seek_end: | ||||
| 	      offset += cur_size; | ||||
| 	      break; | ||||
| 	    case _IO_seek_cur: | ||||
| 	      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; | ||||
| 	} | ||||
| 
 | ||||
|       /* 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; | ||||
| } | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
|  * Defines the valid international currency symbols according to ISO 4217. | ||||
|  * 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 !!! | ||||
|  */ | ||||
|  |  | |||
|  | @ -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 | ||||
| work anymore.  Porting the library is not hard.  If you are interested | ||||
| 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}, | ||||
| @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 | ||||
| 
 | ||||
| Send bug reports to the Internet address | ||||
| @email{bug-glibc@@prep.ai.mit.edu} or the UUCP path | ||||
| @email{mit-eddie!prep.ai.mit.edu!bug-glibc}.  If you have other problems | ||||
| @email{bug-glibc@@gnu.org}.  If you have other problems | ||||
| with installation or use, please report those as well.@refill | ||||
| 
 | ||||
| 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 | ||||
| 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 | ||||
| address @email{bug-glibc-manual@@prep.ai.mit.edu} or the UUCP path | ||||
| @email{mit-eddie!prep.ai.mit.edu!bug-glibc-manual}. | ||||
| address @email{bug-glibc-manual@@prep.ai.mit.edu}. | ||||
| 
 | ||||
| @node Source Layout | ||||
| @appendixsec Adding New Functions | ||||
|  |  | |||
|  | @ -1,32 +1,40 @@ | |||
| %% TeX macros to handle Texinfo files. | ||||
| %% $Id: texinfo.tex,v 2.212 1997/08/04 14:14:11 drepper Exp $ | ||||
| 
 | ||||
| %  Copyright (C) 1985, 86, 88, 90, 91, 92, 93, | ||||
| %                94, 95, 96, 97 Free Software Foundation, Inc. | ||||
| 
 | ||||
| %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 | ||||
| %published by the Free Software Foundation; either version 2, or (at | ||||
| %your option) any later version. | ||||
| 
 | ||||
| %This texinfo.tex file 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 | ||||
| %General Public License for more details. | ||||
| 
 | ||||
| %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 | ||||
| %to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
| %Boston, MA 02111-1307, USA. | ||||
| 
 | ||||
| 
 | ||||
| %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 | ||||
| %what you give them.   Help stamp out software-hoarding! | ||||
| 
 | ||||
| 
 | ||||
| % Send bug reports to bug-texinfo@prep.ai.mit.edu. | ||||
| % Please include a *precise* test case in each bug report. | ||||
| % texinfo.tex -- TeX macros to handle Texinfo files. | ||||
| % $Id: texinfo.tex,v 2.213 1998/03/04 17:13:03 drepper Exp $ | ||||
| % | ||||
| % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98 | ||||
| % Free Software Foundation, Inc. | ||||
| % | ||||
| % 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 | ||||
| % published by the Free Software Foundation; either version 2, or (at | ||||
| % your option) any later version. | ||||
| % | ||||
| % This texinfo.tex file 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 | ||||
| % General Public License for more details. | ||||
| % | ||||
| % 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 | ||||
| % to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
| % Boston, MA 02111-1307, USA. | ||||
| % | ||||
| % 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 | ||||
| % 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: | ||||
| % ftp://ftp.cs.umb.edu/pub/tex/texinfo.tex | ||||
| % /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: | ||||
|  | @ -36,7 +44,7 @@ | |||
| 
 | ||||
| % This automatically updates the version number based on RCS. | ||||
| \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} | ||||
| \deftexinfoversion$Revision: 2.212 $ | ||||
| \deftexinfoversion$Revision: 2.213 $ | ||||
| \message{Loading texinfo package [Version \texinfoversion]:} | ||||
| 
 | ||||
| % If in a .fmt file, print the version number | ||||
|  | @ -54,7 +62,8 @@ | |||
| \let\ptexdot=\. | ||||
| \let\ptexdots=\dots | ||||
| \let\ptexend=\end | ||||
| \let\ptexequiv = \equiv | ||||
| \let\ptexequiv=\equiv | ||||
| \let\ptexexclam=\! | ||||
| \let\ptexi=\i | ||||
| \let\ptexlbrace=\{ | ||||
| \let\ptexrbrace=\} | ||||
|  | @ -441,14 +450,11 @@ | |||
| % @. is an end-of-sentence period. | ||||
| \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. | ||||
| \gdef\!{!\spacefactor=3000 } | ||||
| \def\!{!\spacefactor=3000 } | ||||
| 
 | ||||
| % @? is an end-of-sentence query. | ||||
| \gdef\?{?\spacefactor=3000 } | ||||
| \def\?{?\spacefactor=3000 } | ||||
| 
 | ||||
| % @w prevents a word break.  Without the \leavevmode, @w at the | ||||
| % 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 | ||||
| 
 | ||||
| % @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 | ||||
| 
 | ||||
|  | @ -1236,7 +1260,7 @@ where each line of input produces a line of output.} | |||
|   \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy | ||||
|   \let\tenttsl=\titlettsl | ||||
|   \resetmathfonts \setleading{25pt}} | ||||
| \def\titlefont#1{{\titlefonts #1}} | ||||
| \def\titlefont#1{{\titlefonts\rm #1}} | ||||
| \def\chapfonts{% | ||||
|   \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl | ||||
|   \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc | ||||
|  | @ -1263,6 +1287,10 @@ where each line of input produces a line of output.} | |||
| % | ||||
| \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 | ||||
| \newcount\fontdepth \fontdepth=0 | ||||
| 
 | ||||
|  | @ -1300,15 +1328,15 @@ where each line of input produces a line of output.} | |||
|   \null | ||||
| } | ||||
| \let\ttfont=\t | ||||
| \def\samp #1{`\tclose{#1}'\null} | ||||
| \def\samp#1{`\tclose{#1}'\null} | ||||
| \setfont\smallrm\rmshape{8}{1000} | ||||
| \font\smallsy=cmsy9 | ||||
| \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 | ||||
|      \hbox{\raise0.4pt\hbox{\vphantom{$\langle$}}#1}}% | ||||
|      \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% | ||||
|     \kern-0.4pt\hrule}% | ||||
|   \kern-.06em\raise0.4pt\hbox{$\rangle$}}}} | ||||
|   \kern-.06em\raise0.4pt\hbox{\angleright}}}} | ||||
| % The old definition, with no lozenge: | ||||
| %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} | ||||
| \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. | ||||
| % So now @email is just like @uref. | ||||
| %\def\email#1{$\langle${\tt #1}$\rangle$} | ||||
| %\def\email#1{\angleleft{\tt #1}\angleright} | ||||
| \let\email=\uref | ||||
| 
 | ||||
| % 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 | ||||
| %                                                            to baseline. | ||||
| %   0pt means it depends on current normal line spacing. | ||||
| 
 | ||||
| %%%% | ||||
| % Dimensions | ||||
| 
 | ||||
| % | ||||
| \newskip\multitableparskip | ||||
| \newskip\multitableparindent | ||||
| \newdimen\multitablecolspace | ||||
|  | @ -2056,15 +2081,15 @@ July\or August\or September\or October\or November\or December\fi | |||
| \multitablecolspace=12pt | ||||
| \multitablelinespace=0pt | ||||
| 
 | ||||
| %%%% | ||||
| % Macros used to set up halign preamble: | ||||
| %  | ||||
| \let\endsetuptable\relax | ||||
| \def\xendsetuptable{\endsetuptable} | ||||
| \let\columnfractions\relax | ||||
| \def\xcolumnfractions{\columnfractions} | ||||
| \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 % | ||||
| \expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}% | ||||
| \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% | ||||
| \fi\go} | ||||
| 
 | ||||
| %%%% | ||||
| % multitable syntax | ||||
| \def\tab{&\hskip1sp\relax} % 2/2/96 | ||||
|                            % tiny skip here makes sure this column space is | ||||
|                            % maintained, even if it is never used. | ||||
| 
 | ||||
| 
 | ||||
| %%%% | ||||
| % @multitable ... @end multitable definitions: | ||||
| 
 | ||||
| \def\multitable{\parsearg\dotable} | ||||
| 
 | ||||
| \def\dotable#1{\bgroup | ||||
| \let\item\cr | ||||
| \tolerance=9500 | ||||
| \hbadness=9500 | ||||
| \setmultitablespacing | ||||
| \parskip=\multitableparskip | ||||
| \parindent=\multitableparindent | ||||
| \overfullrule=0pt | ||||
| \global\colcount=0\relax% | ||||
| \def\Emultitable{\global\setpercentfalse\global\everycr{}\cr\egroup\egroup}% | ||||
|  % To parse everything between @multitable and @item : | ||||
| \setuptable#1 \endsetuptable | ||||
|  % Need to reset this to 0 after \setuptable. | ||||
| \global\colcount=0\relax% | ||||
|  % | ||||
|  % This preamble sets up a generic column definition, which will | ||||
|  % be used as many times as user calls for columns. | ||||
|  % \vtop will set a single line and will also let text wrap and | ||||
|  % continue for many paragraphs if desired. | ||||
| \halign\bgroup&\global\advance\colcount by 1\relax% | ||||
| \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname | ||||
|  % 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 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. | ||||
| \ifnum\colcount=1 | ||||
| \else | ||||
|   \ifsetpercent | ||||
|   \vskip\parskip | ||||
|   \let\item\crcr | ||||
|   \tolerance=9500 | ||||
|   \hbadness=9500 | ||||
|   \setmultitablespacing | ||||
|   \parskip=\multitableparskip | ||||
|   \parindent=\multitableparindent | ||||
|   \overfullrule=0pt | ||||
|   \global\colcount=0 | ||||
|   \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}% | ||||
|   % | ||||
|   % To parse everything between @multitable and @item: | ||||
|   \setuptable#1 \endsetuptable | ||||
|   % | ||||
|   % \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. | ||||
|   \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}}% | ||||
|   % | ||||
|   % This preamble sets up a generic column definition, which will | ||||
|   % be used as many times as user calls for columns. | ||||
|   % \vtop will set a single line and will also let text wrap and | ||||
|   % continue for many paragraphs if desired. | ||||
|   \halign\bgroup&\global\advance\colcount by 1\relax | ||||
|     \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname | ||||
|   % | ||||
|   % 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 | ||||
|    % If user has <not> set preamble in terms of percent of \hsize | ||||
|    % we will advance \hsize by \multitablecolspace | ||||
|   \advance\hsize by \multitablecolspace | ||||
|     \ifsetpercent \else | ||||
|       % If user has not set preamble in terms of percent of \hsize | ||||
|       % we will advance \hsize by \multitablecolspace. | ||||
|       \advance\hsize by \multitablecolspace | ||||
|     \fi | ||||
|    % In either case we will make \leftskip=\multitablecolspace: | ||||
|   \leftskip=\multitablecolspace | ||||
|   \fi | ||||
|  % In either case we will make \leftskip=\multitablecolspace: | ||||
| \leftskip=\multitablecolspace | ||||
| \fi | ||||
|  % Ignoring space at the beginning and end avoids an occasional spurious | ||||
|  % blank line, when TeX decides to break the line at the space before the | ||||
|  % box from the multistrut, so the strut ends up on a line by itself. | ||||
|  % For example: | ||||
|  % @multitable @columnfractions .11 .89 | ||||
|  % @item @code{#} | ||||
|  % @tab Legal holiday which is valid in major parts of the whole country. | ||||
|  % 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}} | ||||
|   % Ignoring space at the beginning and end avoids an occasional spurious | ||||
|   % blank line, when TeX decides to break the line at the space before the | ||||
|   % box from the multistrut, so the strut ends up on a line by itself. | ||||
|   % For example: | ||||
|   % @multitable @columnfractions .11 .89 | ||||
|   % @item @code{#} | ||||
|   % @tab Legal holiday which is valid in major parts of the whole country. | ||||
|   % Is automatically provided with highlighting sequences respectively marking | ||||
|   % characters. | ||||
|   \noindent\ignorespaces##\unskip\multistrut}\cr | ||||
| } | ||||
| 
 | ||||
| \def\setmultitablespacing{% test to see if user has set \multitablelinespace. | ||||
|  | @ -2510,6 +2539,11 @@ width0pt\relax} \fi | |||
|   \indexbreaks | ||||
|   % | ||||
|   % 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 | ||||
|   \ifeof 1 | ||||
|     % \enddoublecolumns gets confused if there is no text in the index, | ||||
|  | @ -2531,7 +2565,6 @@ width0pt\relax} \fi | |||
|       % to make right now. | ||||
|       \def\indexbackslash{\rawbackslashxx}% | ||||
|       \catcode`\\ = 0 | ||||
|       \catcode`\@ = 11 | ||||
|       \escapechar = `\\ | ||||
|       \begindoublecolumns | ||||
|       \input \jobname.#1s | ||||
|  | @ -3427,11 +3460,12 @@ width0pt\relax} \fi | |||
| % the index entries, but we want to suppress hyphenation here.  (We | ||||
| % 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.) | ||||
| % | ||||
| % \turnoffactive is for the sake of @" used for umlauts. | ||||
| \def\tocentry#1#2{\begingroup | ||||
|   \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} | ||||
| 
 | ||||
| % Space between chapter (or whatever) number and the title. | ||||
|  | @ -3497,30 +3531,35 @@ width0pt\relax} \fi | |||
| % But \@ or @@ will get a plain tex @ character. | ||||
| 
 | ||||
| \def\tex{\begingroup | ||||
| \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 | ||||
| \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 | ||||
| \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie | ||||
| \catcode `\%=14 | ||||
| \catcode 43=12 % plus | ||||
| \catcode`\"=12 | ||||
| \catcode`\==12 | ||||
| \catcode`\|=12 | ||||
| \catcode`\<=12 | ||||
| \catcode`\>=12 | ||||
| \escapechar=`\\ | ||||
| % | ||||
| \let\,=\ptexcomma | ||||
| \let\{=\ptexlbrace | ||||
| \let\}=\ptexrbrace | ||||
| \let\.=\ptexdot | ||||
| \let\*=\ptexstar | ||||
| \let\dots=\ptexdots | ||||
| \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% | ||||
| \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% | ||||
| \def\@{@}% | ||||
| \let\bullet=\ptexbullet | ||||
| \let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext | ||||
| % | ||||
|   \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 | ||||
|   \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 | ||||
|   \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie | ||||
|   \catcode `\%=14 | ||||
|   \catcode 43=12 % plus | ||||
|   \catcode`\"=12 | ||||
|   \catcode`\==12 | ||||
|   \catcode`\|=12 | ||||
|   \catcode`\<=12 | ||||
|   \catcode`\>=12 | ||||
|   \escapechar=`\\ | ||||
|   % | ||||
|   \let\b=\ptexb | ||||
|   \let\bullet=\ptexbullet | ||||
|   \let\c=\ptexc | ||||
|   \let\,=\ptexcomma | ||||
|   \let\.=\ptexdot | ||||
|   \let\dots=\ptexdots | ||||
|   \let\equiv=\ptexequiv | ||||
|   \let\!=\ptexexclam | ||||
|   \let\i=\ptexi | ||||
|   \let\{=\ptexlbrace | ||||
|   \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} | ||||
| 
 | ||||
| % Define @lisp ... @endlisp. | ||||
|  | @ -4373,7 +4412,7 @@ width0pt\relax} \fi | |||
| \def\refx#1#2{% | ||||
|   \expandafter\ifx\csname X#1\endcsname\relax | ||||
|     % If not defined, say something at least. | ||||
|     $\langle$un\-de\-fined$\rangle$% | ||||
|     \angleleft un\-de\-fined\angleright | ||||
|     \ifhavexrefs | ||||
|       \message{\linenumber Undefined cross reference `#1'.}% | ||||
|     \else | ||||
|  | @ -4390,10 +4429,13 @@ width0pt\relax} \fi | |||
| } | ||||
| 
 | ||||
| % This is the macro invoked by entries in the aux file. | ||||
| \def\xrdef #1#2{{% | ||||
|   \catcode`\'=\other | ||||
|   \expandafter\gdef\csname X#1\endcsname{#2}% | ||||
| }} | ||||
| %  | ||||
| \def\xrdef#1{\begingroup | ||||
|   % 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. | ||||
| \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 | ||||
| % time, we might be inside a group, and then its definitions would get | ||||
| % undone and the next image would fail. | ||||
| \openin 1 = xepsf.tex | ||||
| \openin 1 = epsf.tex | ||||
| \ifeof 1 \else | ||||
|   \closein 1 | ||||
|   \def\epsfannounce{\toks0 = }% do not bother showing banner | ||||
|  |  | |||
|  | @ -67,16 +67,21 @@ nscd_open_socket (void) | |||
| { | ||||
|   struct sockaddr_un addr; | ||||
|   int sock; | ||||
|   int saved_errno = errno; | ||||
| 
 | ||||
|   sock = socket (PF_UNIX, SOCK_STREAM, 0); | ||||
|   if (sock < 0) | ||||
|     return -1; | ||||
|     { | ||||
|       __set_errno (saved_errno); | ||||
|       return -1; | ||||
|     } | ||||
| 
 | ||||
|   addr.sun_family = AF_UNIX; | ||||
|   strcpy (addr.sun_path, _PATH_NSCDSOCKET); | ||||
|   if (connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0) | ||||
|     { | ||||
|       close (sock); | ||||
|       __set_errno (saved_errno); | ||||
|       return -1; | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -67,16 +67,21 @@ nscd_open_socket (void) | |||
| { | ||||
|   struct sockaddr_un addr; | ||||
|   int sock; | ||||
|   int saved_errno = errno; | ||||
| 
 | ||||
|   sock = socket (PF_UNIX, SOCK_STREAM, 0); | ||||
|   if (sock < 0) | ||||
|     return -1; | ||||
|     { | ||||
|       __set_errno (saved_errno); | ||||
|       return -1; | ||||
|     } | ||||
| 
 | ||||
|   addr.sun_family = AF_UNIX; | ||||
|   strcpy (addr.sun_path, _PATH_NSCDSOCKET); | ||||
|   if (connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0) | ||||
|     { | ||||
|       close (sock); | ||||
|       __set_errno (saved_errno); | ||||
|       return -1; | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -282,11 +282,17 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ | |||
| 	  case PATHCONF: | ||||
| 	    if (argc < 3) | ||||
| 	      usage (); | ||||
| 	    errno = 0; | ||||
| 	    value = pathconf (argv[2], c->call_name); | ||||
| 	    if (value == -1) | ||||
| 	      error (3, errno, "pathconf: %s", argv[2]); | ||||
| 
 | ||||
| 	    printf ("%ld\n", value); | ||||
| 	      { | ||||
| 		if (errno) | ||||
| 		  error (3, errno, "pathconf: %s", argv[2]); | ||||
| 		else | ||||
| 		  puts (_("undefined")); | ||||
| 	      } | ||||
| 	    else | ||||
| 	      printf ("%ld\n", value); | ||||
| 	    exit (0); | ||||
| 
 | ||||
| 	  case SYSCONF: | ||||
|  |  | |||
|  | @ -45,7 +45,6 @@ __fpathconf (fd, name) | |||
| #ifdef	LINK_MAX | ||||
|       return LINK_MAX; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -53,7 +52,6 @@ __fpathconf (fd, name) | |||
| #ifdef	MAX_CANON | ||||
|       return MAX_CANON; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -61,7 +59,6 @@ __fpathconf (fd, name) | |||
| #ifdef	MAX_INPUT | ||||
|       return MAX_INPUT; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -69,14 +66,21 @@ __fpathconf (fd, name) | |||
| #ifdef	NAME_MAX | ||||
|       { | ||||
| 	struct statfs buf; | ||||
| 	int save_errno = errno; | ||||
| 
 | ||||
| 	if (__fstatfs (fd, &buf) < 0) | ||||
| 	  return errno == ENOSYS ? NAME_MAX : -1; | ||||
| 	  { | ||||
| 	    if (errno == ENOSYS) | ||||
| 	      { | ||||
| 		errno = save_errno; | ||||
| 		return NAME_MAX; | ||||
| 	      } | ||||
| 	    return -1; | ||||
| 	  } | ||||
| 	else | ||||
| 	  return buf.f_namelen; | ||||
|       } | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -84,7 +88,6 @@ __fpathconf (fd, name) | |||
| #ifdef	PATH_MAX | ||||
|       return PATH_MAX; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -92,7 +95,6 @@ __fpathconf (fd, name) | |||
| #ifdef	PIPE_BUF | ||||
|       return PIPE_BUF; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -142,13 +144,9 @@ __fpathconf (fd, name) | |||
| #ifdef	SOCK_MAXBUF | ||||
|       return SOCK_MAXBUF; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
|     } | ||||
| 
 | ||||
|   __set_errno (ENOSYS); | ||||
|   return -1; | ||||
| } | ||||
| 
 | ||||
| weak_alias (__fpathconf, fpathconf) | ||||
|  |  | |||
|  | @ -43,7 +43,6 @@ __pathconf (const char *path, int name) | |||
| #ifdef	LINK_MAX | ||||
|       return LINK_MAX; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -51,7 +50,6 @@ __pathconf (const char *path, int name) | |||
| #ifdef	MAX_CANON | ||||
|       return MAX_CANON; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -59,7 +57,6 @@ __pathconf (const char *path, int name) | |||
| #ifdef	MAX_INPUT | ||||
|       return MAX_INPUT; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -67,14 +64,21 @@ __pathconf (const char *path, int name) | |||
| #ifdef	NAME_MAX | ||||
|       { | ||||
| 	struct statfs buf; | ||||
| 	int save_errno = errno; | ||||
| 
 | ||||
| 	if (__statfs (path, &buf) < 0) | ||||
| 	  return errno == ENOSYS ? NAME_MAX : -1; | ||||
| 	  { | ||||
| 	    if (errno == ENOSYS) | ||||
| 	      { | ||||
| 		errno = save_errno; | ||||
| 		return NAME_MAX; | ||||
| 	      } | ||||
| 	    return -1; | ||||
| 	  } | ||||
| 	else | ||||
| 	  return buf.f_namelen; | ||||
|       } | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -82,7 +86,6 @@ __pathconf (const char *path, int name) | |||
| #ifdef	PATH_MAX | ||||
|       return PATH_MAX; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -90,7 +93,6 @@ __pathconf (const char *path, int name) | |||
| #ifdef	PIPE_BUF | ||||
|       return PIPE_BUF; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
| 
 | ||||
|  | @ -140,13 +142,9 @@ __pathconf (const char *path, int name) | |||
| #ifdef	SOCK_MAXBUF | ||||
|       return SOCK_MAXBUF; | ||||
| #else | ||||
|       __set_errno (ENOSYS); | ||||
|       return -1; | ||||
| #endif | ||||
|     } | ||||
| 
 | ||||
|   __set_errno (ENOSYS); | ||||
|   return -1; | ||||
| } | ||||
| 
 | ||||
| weak_alias (__pathconf, pathconf) | ||||
|  |  | |||
|  | @ -42,8 +42,8 @@ | |||
| 	   vector will have to be laid out to allow for this	\ | ||||
| 	   test :-(.  */					\ | ||||
| 	if (((ElfW(auxv_t) *)_test)->a_type <= AT_PHDR)		\ | ||||
| 	  (auxp) = (ElfW(auxv_t) *) _tmp;			\ | ||||
|       }								\ | ||||
|     (auxp) = (ElfW(auxv_t) *) _tmp;				\ | ||||
|   } while (0) | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 New Issue