version 1.22, 2002/06/27 19:02:40 |
version 1.23, 2002/07/31 22:08:42 |
|
|
|
|
#include "chpass.h" |
#include "chpass.h" |
|
|
void |
int |
edit(tempname, pw) |
edit(tempname, pw) |
char *tempname; |
char *tempname; |
struct passwd *pw; |
struct passwd *pw; |
|
|
|
|
for (;;) { |
for (;;) { |
if (lstat(tempname, &begin) == -1 || S_ISLNK(begin.st_mode)) |
if (lstat(tempname, &begin) == -1 || S_ISLNK(begin.st_mode)) |
pw_error(tempname, 1, 1); |
return (EDIT_ERROR); |
pw_edit(1, tempname); |
pw_edit(1, tempname); |
if (lstat(tempname, &end) == -1 || S_ISLNK(end.st_mode)) |
if (lstat(tempname, &end) == -1 || S_ISLNK(end.st_mode)) |
pw_error(tempname, 1, 1); |
return (EDIT_ERROR); |
if (begin.st_mtime == end.st_mtime && |
if (begin.st_mtime == end.st_mtime && |
begin.st_size == end.st_size) { |
begin.st_size == end.st_size) { |
warnx("no changes made"); |
warnx("no changes made"); |
pw_error(NULL, 0, 0); |
return (EDIT_NOCHANGE); |
} |
} |
if (verify(tempname, pw)) |
if (verify(tempname, pw)) |
break; |
break; |
pw_prompt(); |
pw_prompt(); |
} |
} |
|
return(EDIT_OK); |
} |
} |
|
|
/* |
/* |