diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e27d5dcea..404fd0eae 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2003-01-25 Christopher Faylor + + * pwdgrp.cc (pwdgrp::reparse): Declare. + * uinfo.cc (pwdgrp::reparse): Define. + * grp.cc (pwdgrp::parse_group): Use. + 2003-01-25 Pierre Humblet * syscalls.cc (seteuid32): On Win95 get the pw entry. If it exists diff --git a/winsup/cygwin/grp.cc b/winsup/cygwin/grp.cc index 9cce888a3..b4b590ba9 100644 --- a/winsup/cygwin/grp.cc +++ b/winsup/cygwin/grp.cc @@ -61,6 +61,7 @@ pwdgrp::parse_group () char **namearray = (char **) calloc (i + 2, sizeof (char *)); if (namearray) { + reparse (dp); for (i = 0; (dp = next_str (',')); i++) namearray[i] = dp; namearray[i] = NULL; diff --git a/winsup/cygwin/pwdgrp.h b/winsup/cygwin/pwdgrp.h index ede380866..aa7ab38c6 100644 --- a/winsup/cygwin/pwdgrp.h +++ b/winsup/cygwin/pwdgrp.h @@ -45,8 +45,9 @@ class pwdgrp void read_passwd (); void read_group (); char *add_line (char *); - char *pwdgrp::next_str (char = 0); - int pwdgrp::next_int (char = 0); + char *next_str (char = 0); + int next_int (char = 0); + void reparse (char *); public: int curr_lines; diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index 809dab529..dcc9376ee 100644 --- a/winsup/cygwin/uinfo.cc +++ b/winsup/cygwin/uinfo.cc @@ -410,6 +410,12 @@ pwdgrp::next_str (char c) return res; } +void +pwdgrp::reparse (char *in_lptr) +{ + lptr = in_lptr; +} + int pwdgrp::next_int (char c) {