|
@@ -17,63 +17,62 @@
|
|
|
Boston, MA 02111-1307, USA. */
|
|
|
|
|
|
#include <stdio.h>
|
|
|
-#include <shadow.h>
|
|
|
+#include "config.h"
|
|
|
|
|
|
#define _S(x) x ? x : ""
|
|
|
|
|
|
|
|
|
|
|
|
This must know the format of the password file. */
|
|
|
-int
|
|
|
-putspent (const struct spwd *p, FILE *stream)
|
|
|
+int putspent (const struct spwd *p, FILE *stream)
|
|
|
{
|
|
|
- int errors = 0;
|
|
|
-
|
|
|
- if (fprintf (stream, "%s:%s:", p->sp_namp, _S (p->sp_pwdp)) < 0)
|
|
|
- ++errors;
|
|
|
-
|
|
|
- if ((p->sp_lstchg != (long int) -1
|
|
|
- && fprintf (stream, "%ld:", p->sp_lstchg) < 0)
|
|
|
- || (p->sp_lstchg == (long int) -1
|
|
|
- && putc (':', stream) == EOF))
|
|
|
- ++errors;
|
|
|
-
|
|
|
- if ((p->sp_min != (long int) -1
|
|
|
- && fprintf (stream, "%ld:", p->sp_min) < 0)
|
|
|
- || (p->sp_min == (long int) -1
|
|
|
- && putc (':', stream) == EOF))
|
|
|
- ++errors;
|
|
|
-
|
|
|
- if ((p->sp_max != (long int) -1
|
|
|
- && fprintf (stream, "%ld:", p->sp_max) < 0)
|
|
|
- || (p->sp_max == (long int) -1
|
|
|
- && putc (':', stream) == EOF))
|
|
|
- ++errors;
|
|
|
-
|
|
|
- if ((p->sp_warn != (long int) -1
|
|
|
- && fprintf (stream, "%ld:", p->sp_warn) < 0)
|
|
|
- || (p->sp_warn == (long int) -1
|
|
|
- && putc (':', stream) == EOF))
|
|
|
- ++errors;
|
|
|
-
|
|
|
- if ((p->sp_inact != (long int) -1
|
|
|
- && fprintf (stream, "%ld:", p->sp_inact) < 0)
|
|
|
- || (p->sp_inact == (long int) -1
|
|
|
- && putc (':', stream) == EOF))
|
|
|
- ++errors;
|
|
|
-
|
|
|
- if ((p->sp_expire != (long int) -1
|
|
|
- && fprintf (stream, "%ld:", p->sp_expire) < 0)
|
|
|
- || (p->sp_expire == (long int) -1
|
|
|
- && putc (':', stream) == EOF))
|
|
|
- ++errors;
|
|
|
-
|
|
|
- if (p->sp_flag != ~0ul
|
|
|
- && fprintf (stream, "%ld", p->sp_flag) < 0)
|
|
|
- ++errors;
|
|
|
-
|
|
|
- if (putc ('\n', stream) == EOF)
|
|
|
- ++errors;
|
|
|
-
|
|
|
- return errors ? -1 : 0;
|
|
|
+ int errors = 0;
|
|
|
+
|
|
|
+ if (fprintf (stream, "%s:%s:", p->sp_namp, _S (p->sp_pwdp)) < 0)
|
|
|
+ ++errors;
|
|
|
+
|
|
|
+ if ((p->sp_lstchg != (long int) -1
|
|
|
+ && fprintf (stream, "%ld:", p->sp_lstchg) < 0)
|
|
|
+ || (p->sp_lstchg == (long int) -1
|
|
|
+ && putc (':', stream) == EOF))
|
|
|
+ ++errors;
|
|
|
+
|
|
|
+ if ((p->sp_min != (long int) -1
|
|
|
+ && fprintf (stream, "%ld:", p->sp_min) < 0)
|
|
|
+ || (p->sp_min == (long int) -1
|
|
|
+ && putc (':', stream) == EOF))
|
|
|
+ ++errors;
|
|
|
+
|
|
|
+ if ((p->sp_max != (long int) -1
|
|
|
+ && fprintf (stream, "%ld:", p->sp_max) < 0)
|
|
|
+ || (p->sp_max == (long int) -1
|
|
|
+ && putc (':', stream) == EOF))
|
|
|
+ ++errors;
|
|
|
+
|
|
|
+ if ((p->sp_warn != (long int) -1
|
|
|
+ && fprintf (stream, "%ld:", p->sp_warn) < 0)
|
|
|
+ || (p->sp_warn == (long int) -1
|
|
|
+ && putc (':', stream) == EOF))
|
|
|
+ ++errors;
|
|
|
+
|
|
|
+ if ((p->sp_inact != (long int) -1
|
|
|
+ && fprintf (stream, "%ld:", p->sp_inact) < 0)
|
|
|
+ || (p->sp_inact == (long int) -1
|
|
|
+ && putc (':', stream) == EOF))
|
|
|
+ ++errors;
|
|
|
+
|
|
|
+ if ((p->sp_expire != (long int) -1
|
|
|
+ && fprintf (stream, "%ld:", p->sp_expire) < 0)
|
|
|
+ || (p->sp_expire == (long int) -1
|
|
|
+ && putc (':', stream) == EOF))
|
|
|
+ ++errors;
|
|
|
+
|
|
|
+ if (p->sp_flag != ~0ul
|
|
|
+ && fprintf (stream, "%ld", p->sp_flag) < 0)
|
|
|
+ ++errors;
|
|
|
+
|
|
|
+ if (putc ('\n', stream) == EOF)
|
|
|
+ ++errors;
|
|
|
+
|
|
|
+ return errors ? -1 : 0;
|
|
|
}
|