version 1.1, 1995/10/18 08:44:59 |
version 1.2, 1996/05/22 11:35:21 |
|
|
/* $NetBSD: edit.c,v 1.5 1995/07/28 07:03:41 phil Exp $ */ |
/* $NetBSD: edit.c,v 1.6 1996/05/15 21:50:45 jtc Exp $ */ |
|
|
/*- |
/*- |
* Copyright (c) 1990, 1993, 1994 |
* Copyright (c) 1990, 1993, 1994 |
|
|
#if 0 |
#if 0 |
static char sccsid[] = "@(#)edit.c 8.3 (Berkeley) 4/2/94"; |
static char sccsid[] = "@(#)edit.c 8.3 (Berkeley) 4/2/94"; |
#else |
#else |
static char rcsid[] = "$NetBSD: edit.c,v 1.5 1995/07/28 07:03:41 phil Exp $"; |
static char rcsid[] = "$NetBSD: edit.c,v 1.6 1996/05/15 21:50:45 jtc Exp $"; |
#endif |
#endif |
#endif /* not lint */ |
#endif /* not lint */ |
|
|
|
|
#include <stdlib.h> |
#include <stdlib.h> |
#include <string.h> |
#include <string.h> |
#include <unistd.h> |
#include <unistd.h> |
|
#include <util.h> |
|
|
#include <pw_scan.h> |
|
#include <pw_util.h> |
|
|
|
#include "chpass.h" |
#include "chpass.h" |
|
|
extern char *tempname; |
|
|
|
void |
void |
edit(pw) |
edit(tempname, pw) |
|
char *tempname; |
struct passwd *pw; |
struct passwd *pw; |
{ |
{ |
struct stat begin, end; |
struct stat begin, end; |
|
|
for (;;) { |
for (;;) { |
if (stat(tempname, &begin)) |
if (stat(tempname, &begin)) |
pw_error(tempname, 1, 1); |
pw_error(tempname, 1, 1); |
pw_edit(1); |
pw_edit(1, tempname); |
if (stat(tempname, &end)) |
if (stat(tempname, &end)) |
pw_error(tempname, 1, 1); |
pw_error(tempname, 1, 1); |
if (begin.st_mtime == end.st_mtime) { |
if (begin.st_mtime == end.st_mtime) { |
warnx("no changes made"); |
warnx("no changes made"); |
|
unlink(tempname); |
pw_error(NULL, 0, 0); |
pw_error(NULL, 0, 0); |
} |
} |
if (verify(pw)) |
if (verify(tempname, pw)) |
break; |
break; |
pw_prompt(); |
pw_prompt(); |
} |
} |
|
|
* set conditional flag if the user gets to edit the shell. |
* set conditional flag if the user gets to edit the shell. |
*/ |
*/ |
void |
void |
display(fd, pw) |
display(tempname, fd, pw) |
|
char *tempname; |
int fd; |
int fd; |
struct passwd *pw; |
struct passwd *pw; |
{ |
{ |
|
|
} |
} |
|
|
int |
int |
verify(pw) |
verify(tempname, pw) |
|
char *tempname; |
struct passwd *pw; |
struct passwd *pw; |
{ |
{ |
ENTRY *ep; |
ENTRY *ep; |