annotate lib/error.c @ 4740:892879324c9c

(SIZE_MAX) [!defined SIZE_MAX]: Define. (error_tail): Do not loop, reallocating temporary buffer, since the original size is big enough. This avoids one potential size overflow calculation. Check for size overflow when calculating temporary buffer size. Free temporary buffer when done, if it was allocated with malloc; this closes a memory leak.
author Paul Eggert <eggert@cs.ucla.edu>
date Fri, 26 Sep 2003 07:41:40 +0000
parents 04758f7475fd
children 7717bd4078ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1268
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
1 /* Error handler for noninteractive utilities
4739
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
2 Copyright (C) 1990-1998, 2000-2002, 2003 Free Software Foundation, Inc.
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
3 This file is part of the GNU C Library.
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
4
4020
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
5 This program is free software; you can redistribute it and/or modify
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
6 it under the terms of the GNU General Public License as published by
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
7 the Free Software Foundation; either version 2, or (at your option)
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
8 any later version.
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
9
4020
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
10 This program is distributed in the hope that it will be useful,
724
3f555c6de1b9 Use #if, not #ifdef in test for HAVE_CONFIG_H.
Jim Meyering <jim@meyering.net>
parents: 719
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
4020
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
13 GNU General Public License for more details.
572
55f487a8aeab Update from libc.
Jim Meyering <jim@meyering.net>
parents: 527
diff changeset
14
4020
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
15 You should have received a copy of the GNU General Public License along
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
16 with this program; if not, write to the Free Software Foundation,
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 4009
diff changeset
17 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
18
398
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
19 /* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
20
1268
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
21 #ifdef HAVE_CONFIG_H
1289
8b40e286a0bd new version from Uli
Jim Meyering <jim@meyering.net>
parents: 1268
diff changeset
22 # include <config.h>
398
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
23 #endif
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
24
4636
8b869710f671 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4500
diff changeset
25 #include "error.h"
8b869710f671 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4500
diff changeset
26
8b869710f671 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4500
diff changeset
27 #include <stdarg.h>
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
28 #include <stdio.h>
4636
8b869710f671 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4500
diff changeset
29 #include <stdlib.h>
8b869710f671 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4500
diff changeset
30 #include <string.h>
3966
22d3032f0239 Include gettext.h instead of <libintl.h> with #ifdefs.
Bruno Haible <bruno@clisp.org>
parents: 3618
diff changeset
31
22d3032f0239 Include gettext.h instead of <libintl.h> with #ifdefs.
Bruno Haible <bruno@clisp.org>
parents: 3618
diff changeset
32 #ifdef _LIBC
2984
5b1fa2113060 Add a couple #includes, merging from GNU libc version.
Jim Meyering <jim@meyering.net>
parents: 2643
diff changeset
33 # include <libintl.h>
3966
22d3032f0239 Include gettext.h instead of <libintl.h> with #ifdefs.
Bruno Haible <bruno@clisp.org>
parents: 3618
diff changeset
34 #else
22d3032f0239 Include gettext.h instead of <libintl.h> with #ifdefs.
Bruno Haible <bruno@clisp.org>
parents: 3618
diff changeset
35 # include "gettext.h"
2984
5b1fa2113060 Add a couple #includes, merging from GNU libc version.
Jim Meyering <jim@meyering.net>
parents: 2643
diff changeset
36 #endif
3966
22d3032f0239 Include gettext.h instead of <libintl.h> with #ifdefs.
Bruno Haible <bruno@clisp.org>
parents: 3618
diff changeset
37
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
38 #ifdef _LIBC
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
39 # include <wchar.h>
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
40 # define mbsrtowcs __mbsrtowcs
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
41 #endif
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
42
4072
86ee34b1ec28 Be consistent: change `#ifndef _LIBC' to `#if !_LIBC'.
Jim Meyering <jim@meyering.net>
parents: 4070
diff changeset
43 #if !_LIBC
4070
925594d77a99 Merge in changes from libc's misc/error.c, in preparation
Jim Meyering <jim@meyering.net>
parents: 4020
diff changeset
44 # include "unlocked-io.h"
925594d77a99 Merge in changes from libc's misc/error.c, in preparation
Jim Meyering <jim@meyering.net>
parents: 4020
diff changeset
45 #endif
925594d77a99 Merge in changes from libc's misc/error.c, in preparation
Jim Meyering <jim@meyering.net>
parents: 4020
diff changeset
46
925594d77a99 Merge in changes from libc's misc/error.c, in preparation
Jim Meyering <jim@meyering.net>
parents: 4020
diff changeset
47 #ifndef _
925594d77a99 Merge in changes from libc's misc/error.c, in preparation
Jim Meyering <jim@meyering.net>
parents: 4020
diff changeset
48 # define _(String) String
925594d77a99 Merge in changes from libc's misc/error.c, in preparation
Jim Meyering <jim@meyering.net>
parents: 4020
diff changeset
49 #endif
1268
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
50
398
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
51 /* If NULL, error will flush stdout, then print on stderr the program
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
52 name, a colon and a space. Otherwise, error will call this
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
53 function without parameters instead. */
4636
8b869710f671 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4500
diff changeset
54 void (*error_print_progname) (void);
572
55f487a8aeab Update from libc.
Jim Meyering <jim@meyering.net>
parents: 527
diff changeset
55
55f487a8aeab Update from libc.
Jim Meyering <jim@meyering.net>
parents: 527
diff changeset
56 /* This variable is incremented each time `error' is called. */
55f487a8aeab Update from libc.
Jim Meyering <jim@meyering.net>
parents: 527
diff changeset
57 unsigned int error_message_count;
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
58
527
c6cca2ddbf8d new version from FSF
Jim Meyering <jim@meyering.net>
parents: 482
diff changeset
59 #ifdef _LIBC
572
55f487a8aeab Update from libc.
Jim Meyering <jim@meyering.net>
parents: 527
diff changeset
60 /* In the GNU C library, there is a predefined variable for this. */
55f487a8aeab Update from libc.
Jim Meyering <jim@meyering.net>
parents: 527
diff changeset
61
1289
8b40e286a0bd new version from Uli
Jim Meyering <jim@meyering.net>
parents: 1268
diff changeset
62 # define program_name program_invocation_name
4739
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
63 # include <errno.h>
4070
925594d77a99 Merge in changes from libc's misc/error.c, in preparation
Jim Meyering <jim@meyering.net>
parents: 4020
diff changeset
64 # include <libio/libioP.h>
572
55f487a8aeab Update from libc.
Jim Meyering <jim@meyering.net>
parents: 527
diff changeset
65
1268
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
66 /* In GNU libc we want do not want to use the common name `error' directly.
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
67 Instead make it a weak alias. */
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
68 extern void __error (int status, int errnum, const char *message, ...)
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
69 __attribute__ ((__format__ (__printf__, 3, 4)));
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
70 extern void __error_at_line (int status, int errnum, const char *file_name,
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
71 unsigned int line_number, const char *message,
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
72 ...)
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
73 __attribute__ ((__format__ (__printf__, 5, 6)));;
1289
8b40e286a0bd new version from Uli
Jim Meyering <jim@meyering.net>
parents: 1268
diff changeset
74 # define error __error
8b40e286a0bd new version from Uli
Jim Meyering <jim@meyering.net>
parents: 1268
diff changeset
75 # define error_at_line __error_at_line
1268
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
76
4500
cdb224406ea7 [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4072
diff changeset
77 # include <libio/iolibio.h>
cdb224406ea7 [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4072
diff changeset
78 # define fflush(s) INTUSE(_IO_fflush) (s)
cdb224406ea7 [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4072
diff changeset
79 # undef putc
cdb224406ea7 [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4072
diff changeset
80 # define putc(c, fp) INTUSE(_IO_putc) (c, fp)
2984
5b1fa2113060 Add a couple #includes, merging from GNU libc version.
Jim Meyering <jim@meyering.net>
parents: 2643
diff changeset
81
4739
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
82 # include <bits/libc-lock.h>
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
83
1289
8b40e286a0bd new version from Uli
Jim Meyering <jim@meyering.net>
parents: 1268
diff changeset
84 #else /* not _LIBC */
527
c6cca2ddbf8d new version from FSF
Jim Meyering <jim@meyering.net>
parents: 482
diff changeset
85
3550
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
86 # if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
87 # ifndef HAVE_DECL_STRERROR_R
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
88 "this configure-time declaration test was not run"
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
89 # endif
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
90 char *strerror_r ();
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
91 # endif
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
92
4740
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
93 #ifndef SIZE_MAX
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
94 # define SIZE_MAX ((size_t) -1)
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
95 #endif
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
96
398
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
97 /* The calling program should define program_name and set it to the
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
98 name of the executing program. */
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
99 extern char *program_name;
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
100
3550
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
101 # if HAVE_STRERROR_R || defined strerror_r
1289
8b40e286a0bd new version from Uli
Jim Meyering <jim@meyering.net>
parents: 1268
diff changeset
102 # define __strerror_r strerror_r
4636
8b869710f671 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4500
diff changeset
103 # endif
1289
8b40e286a0bd new version from Uli
Jim Meyering <jim@meyering.net>
parents: 1268
diff changeset
104 #endif /* not _LIBC */
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
105
3550
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
106 static void
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
107 print_errno_message (int errnum)
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
108 {
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
109 char const *s;
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
110
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
111 #if defined HAVE_STRERROR_R || _LIBC
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
112 char errbuf[1024];
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
113 # if STRERROR_R_CHAR_P || _LIBC
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
114 s = __strerror_r (errnum, errbuf, sizeof errbuf);
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
115 # else
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
116 if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
117 s = errbuf;
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
118 else
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
119 s = 0;
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
120 # endif
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
121 #else
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
122 s = strerror (errnum);
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
123 #endif
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
124
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
125 #if !_LIBC
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
126 if (! s)
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
127 s = _("Unknown system error");
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
128 #endif
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
129
4500
cdb224406ea7 [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4072
diff changeset
130 #if _LIBC
3550
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
131 if (_IO_fwide (stderr, 0) > 0)
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
132 {
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
133 __fwprintf (stderr, L": %s", s);
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
134 return;
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
135 }
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
136 #endif
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
137
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
138 fprintf (stderr, ": %s", s);
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
139 }
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
140
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
141 static void
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
142 error_tail (int status, int errnum, const char *message, va_list args)
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
143 {
4695
4cd5b2420ecf Assume vprintf.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4680
diff changeset
144 #if _LIBC
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
145 if (_IO_fwide (stderr, 0) > 0)
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
146 {
4695
4cd5b2420ecf Assume vprintf.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4680
diff changeset
147 # define ALLOCA_LIMIT 2000
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
148 size_t len = strlen (message) + 1;
4740
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
149 const wchar_t *wmessage = L"out of memory";
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
150 mbstate_t st;
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
151 size_t res;
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
152 const char *tmp;
4740
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
153 wchar_t *wbuf = (len < ALLOCA_LIMIT
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
154 ? (void *) alloca (len * sizeof *wbuf)
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
155 : len <= SIZE_MAX / sizeof *wbuf
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
156 ? malloc (len * sizeof *wbuf)
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
157 : NULL);
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
158
4740
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
159 if (wbuf)
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
160 {
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
161 memset (&st, '\0', sizeof (st));
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
162 tmp =message;
4740
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
163 res = mbsrtowcs (wbuf, &tmp, len, &st);
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
164 wmessage = res == (size_t) -1 ? L"???" : wbuf;
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
165 }
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
166
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
167 __vfwprintf (stderr, wmessage, args);
4740
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
168 if (! (len < ALLOCA_LIMIT))
892879324c9c (SIZE_MAX) [!defined SIZE_MAX]: Define.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4739
diff changeset
169 free (wbuf);
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
170 }
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
171 else
4695
4cd5b2420ecf Assume vprintf.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4680
diff changeset
172 #endif
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
173 vfprintf (stderr, message, args);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
174 va_end (args);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
175
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
176 ++error_message_count;
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
177 if (errnum)
3550
c18604dda2d7 (strerror_r): Do not declare unless !_LIBC.
Jim Meyering <jim@meyering.net>
parents: 3446
diff changeset
178 print_errno_message (errnum);
4680
0ec32cb1202f Correct indentation of cpp directives.
Jim Meyering <jim@meyering.net>
parents: 4636
diff changeset
179 #if _LIBC
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
180 if (_IO_fwide (stderr, 0) > 0)
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
181 putwc (L'\n', stderr);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
182 else
4680
0ec32cb1202f Correct indentation of cpp directives.
Jim Meyering <jim@meyering.net>
parents: 4636
diff changeset
183 #endif
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
184 putc ('\n', stderr);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
185 fflush (stderr);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
186 if (status)
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
187 exit (status);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
188 }
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
189
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
190
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
191 /* Print the program name and error message MESSAGE, which is a printf-style
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
192 format string with optional args.
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
193 If ERRNUM is nonzero, print its corresponding system error message.
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
194 Exit with status STATUS if it is nonzero. */
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
195 void
398
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
196 error (int status, int errnum, const char *message, ...)
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
197 {
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
198 va_list args;
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
199
4739
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
200 #if defined _LIBC && defined __libc_ptf_call
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
201 /* We do not want this call to be cut short by a thread
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
202 cancellation. Therefore disable cancellation for now. */
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
203 int state = PTHREAD_CANCEL_ENABLE;
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
204 __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
205 0);
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
206 #endif
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
207
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
208 fflush (stdout);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
209 #ifdef _LIBC
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
210 _IO_flockfile (stderr);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
211 #endif
398
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
212 if (error_print_progname)
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
213 (*error_print_progname) ();
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
214 else
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
215 {
4500
cdb224406ea7 [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4072
diff changeset
216 #if _LIBC
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
217 if (_IO_fwide (stderr, 0) > 0)
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
218 __fwprintf (stderr, L"%s: ", program_name);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
219 else
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
220 #endif
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
221 fprintf (stderr, "%s: ", program_name);
398
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
222 }
Jim Meyering <jim@meyering.net>
parents: 9
diff changeset
223
4636
8b869710f671 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4500
diff changeset
224 va_start (args, message);
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
225 error_tail (status, errnum, message, args);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
226
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
227 #ifdef _LIBC
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
228 _IO_funlockfile (stderr);
4739
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
229 # ifdef __libc_ptf_call
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
230 __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
231 # endif
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
232 #endif
9
f8dce34b5ab0 Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
233 }
572
55f487a8aeab Update from libc.
Jim Meyering <jim@meyering.net>
parents: 527
diff changeset
234
573
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
235 /* Sometimes we want to have at most one error per line. This
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
236 variable controls whether this mode is selected or not. */
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
237 int error_one_per_line;
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
238
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
239 void
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
240 error_at_line (int status, int errnum, const char *file_name,
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
241 unsigned int line_number, const char *message, ...)
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
242 {
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
243 va_list args;
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
244
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
245 if (error_one_per_line)
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
246 {
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
247 static const char *old_file_name;
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
248 static unsigned int old_line_number;
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
249
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
250 if (old_line_number == line_number
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
251 && (file_name == old_file_name
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
252 || strcmp (old_file_name, file_name) == 0))
573
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
253 /* Simply return and print nothing. */
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
254 return;
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
255
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
256 old_file_name = file_name;
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
257 old_line_number = line_number;
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
258 }
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
259
4739
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
260 #if defined _LIBC && defined __libc_ptf_call
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
261 /* We do not want this call to be cut short by a thread
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
262 cancellation. Therefore disable cancellation for now. */
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
263 int state = PTHREAD_CANCEL_ENABLE;
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
264 __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
265 0);
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
266 #endif
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
267
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
268 fflush (stdout);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
269 #ifdef _LIBC
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
270 _IO_flockfile (stderr);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
271 #endif
573
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
272 if (error_print_progname)
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
273 (*error_print_progname) ();
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
274 else
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
275 {
4500
cdb224406ea7 [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4072
diff changeset
276 #if _LIBC
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
277 if (_IO_fwide (stderr, 0) > 0)
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
278 __fwprintf (stderr, L"%s: ", program_name);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
279 else
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
280 #endif
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
281 fprintf (stderr, "%s:", program_name);
573
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
282 }
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
283
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
284 if (file_name != NULL)
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
285 {
4500
cdb224406ea7 [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4072
diff changeset
286 #if _LIBC
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
287 if (_IO_fwide (stderr, 0) > 0)
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
288 __fwprintf (stderr, L"%s:%d: ", file_name, line_number);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
289 else
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
290 #endif
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
291 fprintf (stderr, "%s:%d: ", file_name, line_number);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
292 }
573
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
293
4636
8b869710f671 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4500
diff changeset
294 va_start (args, message);
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
295 error_tail (status, errnum, message, args);
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
296
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
297 #ifdef _LIBC
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
298 _IO_funlockfile (stderr);
4739
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
299 # ifdef __libc_ptf_call
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
300 __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
04758f7475fd Merge changes from glibc.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4695
diff changeset
301 # endif
3446
849a40d65bee Update from GNU libc.
Jim Meyering <jim@meyering.net>
parents: 2984
diff changeset
302 #endif
573
8a90f3b04017 update from FSF:/home/gd/gnu/lib
Jim Meyering <jim@meyering.net>
parents: 572
diff changeset
303 }
1268
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
304
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
305 #ifdef _LIBC
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
306 /* Make the weak alias. */
1289
8b40e286a0bd new version from Uli
Jim Meyering <jim@meyering.net>
parents: 1268
diff changeset
307 # undef error
8b40e286a0bd new version from Uli
Jim Meyering <jim@meyering.net>
parents: 1268
diff changeset
308 # undef error_at_line
1268
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
309 weak_alias (__error, error)
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
310 weak_alias (__error_at_line, error_at_line)
a6946b537568 update from fsf
Jim Meyering <jim@meyering.net>
parents: 882
diff changeset
311 #endif