rename packages/ to recipes/ per earlier agreement
[openembedded.git] / recipes / mgetty / mgetty-1.1.30 / 45-logfile.c
1 --- mgetty-1.1.30.orig/logfile.c        2002-11-25 08:08:26.000000000 -0500
2 +++ mgetty-1.1.30/logfile.c     2003-04-28 00:08:35.000000000 -0400
3 @@ -56,10 +56,14 @@
4  /* Most systems have these variables but do not declare them. On many
5     of those systems that _do_ declare them, it won't hurt */
6  
7 -extern int sys_nerr;
8 -#if !defined(__NetBSD__) && !defined( __FreeBSD__ ) && !defined(__OpenBSD__) && !defined(__GLIBC__) && !defined(__MACH__)
9 -extern char *sys_errlist[];
10 -#endif
11 +/* commented in by was@debian.org on Wed, 27 Nov 2002 01:15:11 -0500
12 +   because sys_nerr and sys_errlist are deprecated. strerror() is used
13 +   instead below.*/
14 +
15 +/* extern int sys_nerr; */
16 +/* #if !defined(__NetBSD__) && !defined( __FreeBSD__ ) && !defined(__OpenBSD__) && !defined(__GLIBC__) && !defined(__MACH__) */
17 +/* extern char *sys_errlist[]; */
18 +/* #endif */
19  
20  /* Interactive Unix is a little bit braindead - does not have atexit(),
21   */
22 @@ -209,6 +213,7 @@
23  va_list pvar;
24  int     errnr;
25  char * p;
26 +char *error_string;
27  static int first_open = TRUE;
28  
29      if ( level > log_level )   /* log level high enough? */
30 @@ -325,12 +330,20 @@
31      }
32      else               /* ERROR or FATAL */
33      {
34 +        error_string = strerror (errnr);
35 +       if ( error_string == NULL )
36 +       {
37 +            if ( errno == EINVAL )
38 +               error_string = "<error not in list>";
39 +           else
40 +               error_string = "<error calling strerror()>";
41 +       }
42 +
43         fprintf(log_fp, "\n%02d/%02d %02d:%02d:%02d %s %s: %s",
44                              tm->tm_mon+1,  tm->tm_mday,
45                              tm->tm_hour, tm->tm_min, tm->tm_sec,
46                              log_infix, ws,
47 -                            ( errnr <= sys_nerr ) ? sys_errlist[errnr]:
48 -                            "<error not in list>" );
49 +                            strerror (errnr));
50  #ifdef SYSLOG
51         syslog( level == L_FATAL? LOG_ALERT: LOG_ERR, "%s: %m", ws );
52  #endif