annotate lib/readutmp.h @ 40231:9b3c79fdfe0b

strtod: fix clash with strtold Problem reported for RHEL 5 by Jesse Caldwell (Bug#34817). * lib/strtod.c (compute_minus_zero, minus_zero): Simplify by remving the macro / external variable, and having just a function. User changed. This avoids the need for an external variable that might clash.
author Paul Eggert <eggert@cs.ucla.edu>
date Mon, 11 Mar 2019 16:40:29 -0700
parents b06060465f09
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
1 /* Declarations for GNU's read utmp module.
4397
c6450308f123 Assume C89, so PARAMS isn't needed.
Paul Eggert <eggert@cs.ucla.edu>
parents: 3806
diff changeset
2
40057
b06060465f09 maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
3 Copyright (C) 1992-2007, 2009-2019 Free Software Foundation, Inc.
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
4
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 7884
diff changeset
5 This program is free software: you can redistribute it and/or modify
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 7884
diff changeset
7 the Free Software Foundation; either version 3 of the License, or
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 7884
diff changeset
8 (at your option) any later version.
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
9
Jim Meyering <jim@meyering.net>
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
Jim Meyering <jim@meyering.net>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
Jim Meyering <jim@meyering.net>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Jim Meyering <jim@meyering.net>
parents:
diff changeset
13 GNU General Public License for more details.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
14
Jim Meyering <jim@meyering.net>
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
19190
9759915b2aca all: prefer https: URLs
Paul Eggert <eggert@cs.ucla.edu>
parents: 18626
diff changeset
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
17
Jim Meyering <jim@meyering.net>
parents:
diff changeset
18 /* Written by jla; revised by djm */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19
Jim Meyering <jim@meyering.net>
parents:
diff changeset
20 #ifndef __READUTMP_H__
Jim Meyering <jim@meyering.net>
parents:
diff changeset
21 # define __READUTMP_H__
Jim Meyering <jim@meyering.net>
parents:
diff changeset
22
Jim Meyering <jim@meyering.net>
parents:
diff changeset
23 # include <sys/types.h>
Jim Meyering <jim@meyering.net>
parents:
diff changeset
24
4555
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
25 /* AIX 4.3.3 has both utmp.h and utmpx.h, but only struct utmp
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
26 has the ut_exit member. */
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
27 # if (HAVE_UTMPX_H && HAVE_UTMP_H && HAVE_STRUCT_UTMP_UT_EXIT \
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
28 && ! HAVE_STRUCT_UTMPX_UT_EXIT)
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
29 # undef HAVE_UTMPX_H
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
30 # endif
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
31
7181
1090c1338506 * lib/readutmp.h: Skip most definitions if neither <utmp.h> nor
Paul Eggert <eggert@cs.ucla.edu>
parents: 6602
diff changeset
32 # if HAVE_UTMPX_H
1090c1338506 * lib/readutmp.h: Skip most definitions if neither <utmp.h> nor
Paul Eggert <eggert@cs.ucla.edu>
parents: 6602
diff changeset
33 # if HAVE_UTMP_H
2696
bec8bcc12a26 [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
Jim Meyering <jim@meyering.net>
parents: 2403
diff changeset
34 /* HPUX 10.20 needs utmp.h, for the definition of e.g., UTMP_FILE. */
bec8bcc12a26 [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
Jim Meyering <jim@meyering.net>
parents: 2403
diff changeset
35 # include <utmp.h>
bec8bcc12a26 [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
Jim Meyering <jim@meyering.net>
parents: 2403
diff changeset
36 # endif
7884
2a056686c032 * m4/readutmp.m4 (gl_READUTMP): Work around AIX 4.3 struct-
Jim Meyering <jim@meyering.net>
parents: 7521
diff changeset
37 # if defined _THREAD_SAFE && defined UTMP_DATA_INIT
2a056686c032 * m4/readutmp.m4 (gl_READUTMP): Work around AIX 4.3 struct-
Jim Meyering <jim@meyering.net>
parents: 7521
diff changeset
38 /* When including both utmp.h and utmpx.h on AIX 4.3, with _THREAD_SAFE
2a056686c032 * m4/readutmp.m4 (gl_READUTMP): Work around AIX 4.3 struct-
Jim Meyering <jim@meyering.net>
parents: 7521
diff changeset
39 defined, work around the duplicate struct utmp_data declaration. */
2a056686c032 * m4/readutmp.m4 (gl_READUTMP): Work around AIX 4.3 struct-
Jim Meyering <jim@meyering.net>
parents: 7521
diff changeset
40 # define utmp_data gl_aix_4_3_workaround_utmp_data
2a056686c032 * m4/readutmp.m4 (gl_READUTMP): Work around AIX 4.3 struct-
Jim Meyering <jim@meyering.net>
parents: 7521
diff changeset
41 # endif
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
42 # include <utmpx.h>
983
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
43 # define UTMP_STRUCT_NAME utmpx
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
44 # define UT_TIME_MEMBER(UT_PTR) ((UT_PTR)->ut_tv.tv_sec)
1829
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
45 # define SET_UTMP_ENT setutxent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
46 # define GET_UTMP_ENT getutxent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
47 # define END_UTMP_ENT endutxent
2241
2c6457a96048 (UT_USER): Add parens. From Andreas Schwab.
Jim Meyering <jim@meyering.net>
parents: 2229
diff changeset
48 # ifdef HAVE_UTMPXNAME
2c6457a96048 (UT_USER): Add parens. From Andreas Schwab.
Jim Meyering <jim@meyering.net>
parents: 2229
diff changeset
49 # define UTMP_NAME_FUNCTION utmpxname
18033
f282834ddccc readutmp: port to FreeBSD >= 9
Pádraig Brady <P@draigBrady.com>
parents: 17848
diff changeset
50 # elif defined UTXDB_ACTIVE
f282834ddccc readutmp: port to FreeBSD >= 9
Pádraig Brady <P@draigBrady.com>
parents: 17848
diff changeset
51 # define UTMP_NAME_FUNCTION(x) setutxdb (UTXDB_ACTIVE, x)
2241
2c6457a96048 (UT_USER): Add parens. From Andreas Schwab.
Jim Meyering <jim@meyering.net>
parents: 2229
diff changeset
52 # endif
4555
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
53
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
54 # if HAVE_STRUCT_UTMPX_UT_EXIT_E_TERMINATION
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
55 # define UT_EXIT_E_TERMINATION(U) ((U)->ut_exit.e_termination)
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
56 # else
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
57 # if HAVE_STRUCT_UTMPX_UT_EXIT_UT_TERMINATION
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
58 # define UT_EXIT_E_TERMINATION(U) ((U)->ut_exit.ut_termination)
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
59 # else
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
60 # define UT_EXIT_E_TERMINATION(U) 0
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
61 # endif
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
62 # endif
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
63
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
64 # if HAVE_STRUCT_UTMPX_UT_EXIT_E_EXIT
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
65 # define UT_EXIT_E_EXIT(U) ((U)->ut_exit.e_exit)
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
66 # else
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
67 # if HAVE_STRUCT_UTMPX_UT_EXIT_UT_EXIT
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
68 # define UT_EXIT_E_EXIT(U) ((U)->ut_exit.ut_exit)
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
69 # else
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
70 # define UT_EXIT_E_EXIT(U) 0
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
71 # endif
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
72 # endif
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
73
7181
1090c1338506 * lib/readutmp.h: Skip most definitions if neither <utmp.h> nor
Paul Eggert <eggert@cs.ucla.edu>
parents: 6602
diff changeset
74 # elif HAVE_UTMP_H
1090c1338506 * lib/readutmp.h: Skip most definitions if neither <utmp.h> nor
Paul Eggert <eggert@cs.ucla.edu>
parents: 6602
diff changeset
75
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
76 # include <utmp.h>
2403
de3b422867e1 [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
Jim Meyering <jim@meyering.net>
parents: 2241
diff changeset
77 # if !HAVE_DECL_GETUTENT
13052
082bcf732231 Use ANSI C.
Bruno Haible <bruno@clisp.org>
parents: 12559
diff changeset
78 struct utmp *getutent (void);
2403
de3b422867e1 [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent.
Jim Meyering <jim@meyering.net>
parents: 2241
diff changeset
79 # endif
983
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
80 # define UTMP_STRUCT_NAME utmp
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
81 # define UT_TIME_MEMBER(UT_PTR) ((UT_PTR)->ut_time)
1829
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
82 # define SET_UTMP_ENT setutent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
83 # define GET_UTMP_ENT getutent
ae596af5aea1 Add definitions to help read utmpx on systems with utmpname.
Jim Meyering <jim@meyering.net>
parents: 1711
diff changeset
84 # define END_UTMP_ENT endutent
2241
2c6457a96048 (UT_USER): Add parens. From Andreas Schwab.
Jim Meyering <jim@meyering.net>
parents: 2229
diff changeset
85 # ifdef HAVE_UTMPNAME
2c6457a96048 (UT_USER): Add parens. From Andreas Schwab.
Jim Meyering <jim@meyering.net>
parents: 2229
diff changeset
86 # define UTMP_NAME_FUNCTION utmpname
2c6457a96048 (UT_USER): Add parens. From Andreas Schwab.
Jim Meyering <jim@meyering.net>
parents: 2229
diff changeset
87 # endif
4555
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
88
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
89 # if HAVE_STRUCT_UTMP_UT_EXIT_E_TERMINATION
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
90 # define UT_EXIT_E_TERMINATION(U) ((U)->ut_exit.e_termination)
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
91 # else
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
92 # if HAVE_STRUCT_UTMP_UT_EXIT_UT_TERMINATION
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
93 # define UT_EXIT_E_TERMINATION(U) ((U)->ut_exit.ut_termination)
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
94 # else
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
95 # define UT_EXIT_E_TERMINATION(U) 0
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
96 # endif
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
97 # endif
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
98
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
99 # if HAVE_STRUCT_UTMP_UT_EXIT_E_EXIT
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
100 # define UT_EXIT_E_EXIT(U) ((U)->ut_exit.e_exit)
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
101 # else
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
102 # if HAVE_STRUCT_UTMP_UT_EXIT_UT_EXIT
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
103 # define UT_EXIT_E_EXIT(U) ((U)->ut_exit.ut_exit)
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
104 # else
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
105 # define UT_EXIT_E_EXIT(U) 0
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
106 # endif
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
107 # endif
765b7451f784 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4397
diff changeset
108
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
109 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
110
2229
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
111 /* Accessor macro for the member named ut_user or ut_name. */
7181
1090c1338506 * lib/readutmp.h: Skip most definitions if neither <utmp.h> nor
Paul Eggert <eggert@cs.ucla.edu>
parents: 6602
diff changeset
112 # if HAVE_UTMPX_H
2229
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
113
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
114 # if HAVE_STRUCT_UTMPX_UT_USER
2241
2c6457a96048 (UT_USER): Add parens. From Andreas Schwab.
Jim Meyering <jim@meyering.net>
parents: 2229
diff changeset
115 # define UT_USER(Utmp) ((Utmp)->ut_user)
2229
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
116 # endif
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
117 # if HAVE_STRUCT_UTMPX_UT_NAME
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
118 # undef UT_USER
2241
2c6457a96048 (UT_USER): Add parens. From Andreas Schwab.
Jim Meyering <jim@meyering.net>
parents: 2229
diff changeset
119 # define UT_USER(Utmp) ((Utmp)->ut_name)
2229
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
120 # endif
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
121
7181
1090c1338506 * lib/readutmp.h: Skip most definitions if neither <utmp.h> nor
Paul Eggert <eggert@cs.ucla.edu>
parents: 6602
diff changeset
122 # elif HAVE_UTMP_H
2229
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
123
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
124 # if HAVE_STRUCT_UTMP_UT_USER
5159
a535859efd14 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4555
diff changeset
125 # define UT_USER(Utmp) ((Utmp)->ut_user)
2229
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
126 # endif
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
127 # if HAVE_STRUCT_UTMP_UT_NAME
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
128 # undef UT_USER
5159
a535859efd14 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4555
diff changeset
129 # define UT_USER(Utmp) ((Utmp)->ut_name)
2229
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
130 # endif
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
131
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
132 # endif
b3a94d16a532 redo it on per-header basis
Jim Meyering <jim@meyering.net>
parents: 2226
diff changeset
133
3806
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
134 # define HAVE_STRUCT_XTMP_UT_EXIT \
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
135 (HAVE_STRUCT_UTMP_UT_EXIT \
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
136 || HAVE_STRUCT_UTMPX_UT_EXIT)
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
137
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
138 # define HAVE_STRUCT_XTMP_UT_ID \
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
139 (HAVE_STRUCT_UTMP_UT_ID \
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
140 || HAVE_STRUCT_UTMPX_UT_ID)
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
141
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
142 # define HAVE_STRUCT_XTMP_UT_PID \
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
143 (HAVE_STRUCT_UTMP_UT_PID \
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
144 || HAVE_STRUCT_UTMPX_UT_PID)
2fce61138dcb (UT_TYPE): Remove definition (now in who.c).
Jim Meyering <jim@meyering.net>
parents: 3276
diff changeset
145
983
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
146 typedef struct UTMP_STRUCT_NAME STRUCT_UTMP;
4ef0d1a19429 (PARAMS): Update prototype.
Jim Meyering <jim@meyering.net>
parents: 981
diff changeset
147
5159
a535859efd14 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4555
diff changeset
148 enum { UT_USER_SIZE = sizeof UT_USER ((STRUCT_UTMP *) 0) };
a535859efd14 Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4555
diff changeset
149
6602
095cbbd207b1 Remove more useless parentheses.
Jim Meyering <jim@meyering.net>
parents: 5907
diff changeset
150 # if !defined UTMP_FILE && defined _PATH_UTMP
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
151 # define UTMP_FILE _PATH_UTMP
Jim Meyering <jim@meyering.net>
parents:
diff changeset
152 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
153
6602
095cbbd207b1 Remove more useless parentheses.
Jim Meyering <jim@meyering.net>
parents: 5907
diff changeset
154 # if !defined WTMP_FILE && defined _PATH_WTMP
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
155 # define WTMP_FILE _PATH_WTMP
Jim Meyering <jim@meyering.net>
parents:
diff changeset
156 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
157
Jim Meyering <jim@meyering.net>
parents:
diff changeset
158 # ifdef UTMPX_FILE /* Solaris, SysVr4 */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
159 # undef UTMP_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
160 # define UTMP_FILE UTMPX_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
161 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
162
Jim Meyering <jim@meyering.net>
parents:
diff changeset
163 # ifdef WTMPX_FILE /* Solaris, SysVr4 */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
164 # undef WTMP_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
165 # define WTMP_FILE WTMPX_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
166 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
167
Jim Meyering <jim@meyering.net>
parents:
diff changeset
168 # ifndef UTMP_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
169 # define UTMP_FILE "/etc/utmp"
Jim Meyering <jim@meyering.net>
parents:
diff changeset
170 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
171
Jim Meyering <jim@meyering.net>
parents:
diff changeset
172 # ifndef WTMP_FILE
Jim Meyering <jim@meyering.net>
parents:
diff changeset
173 # define WTMP_FILE "/etc/wtmp"
Jim Meyering <jim@meyering.net>
parents:
diff changeset
174 # endif
Jim Meyering <jim@meyering.net>
parents:
diff changeset
175
5813
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
176 # if HAVE_STRUCT_XTMP_UT_PID
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
177 # define UT_PID(U) ((U)->ut_pid)
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
178 # else
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
179 # define UT_PID(U) 0
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
180 # endif
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
181
5502
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
182 # if HAVE_STRUCT_UTMP_UT_TYPE || HAVE_STRUCT_UTMPX_UT_TYPE
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
183 # define UT_TYPE_EQ(U, V) ((U)->ut_type == (V))
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
184 # define UT_TYPE_NOT_DEFINED 0
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
185 # else
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
186 # define UT_TYPE_EQ(U, V) 0
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
187 # define UT_TYPE_NOT_DEFINED 1
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
188 # endif
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
189
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
190 # ifdef BOOT_TIME
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
191 # define UT_TYPE_BOOT_TIME(U) UT_TYPE_EQ (U, BOOT_TIME)
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
192 # else
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
193 # define UT_TYPE_BOOT_TIME(U) 0
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
194 # endif
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
195
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
196 # ifdef USER_PROCESS
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
197 # define UT_TYPE_USER_PROCESS(U) UT_TYPE_EQ (U, USER_PROCESS)
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
198 # else
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
199 # define UT_TYPE_USER_PROCESS(U) 0
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
200 # endif
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
201
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
202 # define IS_USER_PROCESS(U) \
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
203 (UT_USER (U)[0] \
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
204 && (UT_TYPE_USER_PROCESS (U) \
5502
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
205 || (UT_TYPE_NOT_DEFINED && UT_TIME_MEMBER (U) != 0)))
47a1f9959023 Don't include <errno.h>,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5159
diff changeset
206
5813
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
207 /* Options for read_utmp. */
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
208 enum
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
209 {
7521
2e592d70280a (READ_UTMP_USER_PROCESS): New flag
Sergey Poznyakoff <gray@gnu.org.ua>
parents: 7181
diff changeset
210 READ_UTMP_CHECK_PIDS = 1,
2e592d70280a (READ_UTMP_USER_PROCESS): New flag
Sergey Poznyakoff <gray@gnu.org.ua>
parents: 7181
diff changeset
211 READ_UTMP_USER_PROCESS = 2
5813
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
212 };
6962b5c5069f Merge from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5502
diff changeset
213
4397
c6450308f123 Assume C89, so PARAMS isn't needed.
Paul Eggert <eggert@cs.ucla.edu>
parents: 3806
diff changeset
214 char *extract_trimmed_name (const STRUCT_UTMP *ut);
5907
c47674a83a78 Sync from coreutils.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
215 int read_utmp (char const *file, size_t *n_entries, STRUCT_UTMP **utmp_buf,
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
216 int options);
981
Jim Meyering <jim@meyering.net>
parents:
diff changeset
217
Jim Meyering <jim@meyering.net>
parents:
diff changeset
218 #endif /* __READUTMP_H__ */