# HG changeset patch # User John W. Eaton # Date 1463589337 14400 # Node ID c218a5b31ad7ca94a96c99e753229c2b99105f51 # Parent e0da98857c196b52972230456d71d0700dd3b78e use namespace for system group wrapper class * oct-group.h, oct-group.cc: Put group class in octave::sys namespace. Change all uses. (octave_group): Now a deprecated typedef for octave::sys::group. diff -r e0da98857c19 -r c218a5b31ad7 libinterp/corefcn/getgrent.cc --- a/libinterp/corefcn/getgrent.cc Wed May 18 12:14:34 2016 -0400 +++ b/libinterp/corefcn/getgrent.cc Wed May 18 12:35:37 2016 -0400 @@ -41,7 +41,7 @@ // Group file functions. (Why not?) static octave_value -mk_gr_map (const octave_group& gr) +mk_gr_map (const octave::sys::group& gr) { octave_value retval; @@ -76,8 +76,8 @@ std::string msg; - // octave_group::getgrent may set msg. - octave_value val = mk_gr_map (octave_group::getgrent (msg)); + // octave::sys::group::getgrent may set msg. + octave_value val = mk_gr_map (octave::sys::group::getgrent (msg)); return ovl (val, msg); } @@ -104,8 +104,8 @@ std::string msg; - // octave_group::getgrgid may set msg. - octave_value val = mk_gr_map (octave_group::getgrgid (gid, msg)); + // octave::sys::group::getgrgid may set msg. + octave_value val = mk_gr_map (octave::sys::group::getgrgid (gid, msg)); return ovl (val, msg); } @@ -127,8 +127,8 @@ std::string msg; - // octave_group::getgrnam may set msg. - octave_value val = mk_gr_map (octave_group::getgrnam (s.c_str (), msg)); + // octave::sys::group::getgrnam may set msg. + octave_value val = mk_gr_map (octave::sys::group::getgrnam (s.c_str (), msg)); return ovl (val, msg); } @@ -145,8 +145,8 @@ std::string msg; - // octave_group::setgrent may set msg. - int status = octave_group::setgrent (msg); + // octave::sys::group::setgrent may set msg. + int status = octave::sys::group::setgrent (msg); return ovl (static_cast (status), msg); } @@ -163,8 +163,8 @@ std::string msg; - // octave_group::endgrent may set msg. - int status = octave_group::endgrent (msg); + // octave::sys::group::endgrent may set msg. + int status = octave::sys::group::endgrent (msg); return ovl (static_cast (status), msg); } diff -r e0da98857c19 -r c218a5b31ad7 liboctave/system/oct-group.cc --- a/liboctave/system/oct-group.cc Wed May 18 12:14:34 2016 -0400 +++ b/liboctave/system/oct-group.cc Wed May 18 12:35:37 2016 -0400 @@ -44,180 +44,187 @@ (*current_liboctave_error_handler) ("invalid group object"); } -std::string -octave_group::name (void) const +namespace +octave { - if (! ok ()) - err_invalid (); - - return gr_name; -} - -std::string -octave_group::passwd (void) const -{ - if (! ok ()) - err_invalid (); - - return gr_passwd; -} + namespace + sys + { + std::string + group::name (void) const + { + if (! ok ()) + err_invalid (); -gid_t -octave_group::gid (void) const -{ - if (! ok ()) - err_invalid (); - - return gr_gid; -} + return m_name; + } -string_vector -octave_group::mem (void) const -{ - if (! ok ()) - err_invalid (); + std::string + group::passwd (void) const + { + if (! ok ()) + err_invalid (); - return gr_mem; -} + return m_passwd; + } -octave_group -octave_group::getgrent (void) -{ - std::string msg; - return getgrent (msg); -} + gid_t + group::gid (void) const + { + if (! ok ()) + err_invalid (); + + return m_gid; + } + + string_vector + group::mem (void) const + { + if (! ok ()) + err_invalid (); -octave_group -octave_group::getgrent (std::string& msg) -{ + return m_mem; + } + + group + group::getgrent (void) + { + std::string msg; + return getgrent (msg); + } + + group + group::getgrent (std::string& msg) + { #if defined (HAVE_GETGRENT) - msg = ""; - return octave_group (::getgrent (), msg); + msg = ""; + return group (::getgrent (), msg); #else - msg = NOT_SUPPORTED ("getgrent"); - return octave_group (); -#endif -} - -octave_group -octave_group::getgrgid (gid_t gid) -{ - std::string msg; - return getgrgid (gid, msg); -} - -octave_group -octave_group::getgrgid (gid_t gid, std::string& msg) -{ -#if defined (HAVE_GETGRGID) - msg = ""; - return octave_group (::getgrgid (gid), msg); -#else - msg = NOT_SUPPORTED ("getgruid"); - return octave_group (); + msg = NOT_SUPPORTED ("getgrent"); + return group (); #endif -} + } -octave_group -octave_group::getgrnam (const std::string& nm) -{ - std::string msg; - return getgrnam (nm, msg); -} + group + group::getgrgid (gid_t gid) + { + std::string msg; + return getgrgid (gid, msg); + } -octave_group -octave_group::getgrnam (const std::string& nm, std::string& msg) -{ -#if defined (HAVE_GETGRNAM) - msg = ""; - return octave_group (::getgrnam (nm.c_str ()), msg); + group + group::getgrgid (gid_t gid, std::string& msg) + { +#if defined (HAVE_GETGRGID) + msg = ""; + return group (::getgrgid (gid), msg); #else - msg = NOT_SUPPORTED ("getgrnam"); - return octave_group (); + msg = NOT_SUPPORTED ("getgruid"); + return group (); #endif -} + } -int -octave_group::setgrent (void) -{ - std::string msg; - return setgrent (msg); -} + group + group::getgrnam (const std::string& nm) + { + std::string msg; + return getgrnam (nm, msg); + } -int -octave_group::setgrent (std::string& msg) -{ -#if defined (HAVE_SETGRENT) - msg = ""; - ::setgrent (); - return 0; + group + group::getgrnam (const std::string& nm, std::string& msg) + { +#if defined (HAVE_GETGRNAM) + msg = ""; + return group (::getgrnam (nm.c_str ()), msg); #else - msg = NOT_SUPPORTED ("setgrent"); - return -1; + msg = NOT_SUPPORTED ("getgrnam"); + return group (); #endif -} + } + + int + group::setgrent (void) + { + std::string msg; + return setgrent (msg); + } -int -octave_group::endgrent (void) -{ - std::string msg; - return endgrent (msg); -} + int + group::setgrent (std::string& msg) + { +#if defined (HAVE_SETGRENT) + msg = ""; + ::setgrent (); + return 0; +#else + msg = NOT_SUPPORTED ("setgrent"); + return -1; +#endif + } -int -octave_group::endgrent (std::string& msg) -{ + int + group::endgrent (void) + { + std::string msg; + return endgrent (msg); + } + + int + group::endgrent (std::string& msg) + { #if defined (HAVE_ENDGRENT) - msg = ""; - ::endgrent (); - return 0; + msg = ""; + ::endgrent (); + return 0; #else - msg = NOT_SUPPORTED ("endgrent"); - return -1; + msg = NOT_SUPPORTED ("endgrent"); + return -1; #endif -} + } -octave_group::octave_group (void *p, std::string& msg) - : gr_name (), gr_passwd (), gr_gid (0), gr_mem (), valid (false) -{ + group::group (void *p, std::string& msg) + : m_name (), m_passwd (), m_gid (0), m_mem (), valid (false) + { #if defined (HAVE_GRP_H) - msg = ""; + msg = ""; - if (p) - { - struct group *gr = static_cast (p); + if (p) + { + struct ::group *gr = static_cast (p); - gr_name = gr->gr_name; + m_name = gr->gr_name; #if defined (HAVE_GR_PASSWD) - gr_passwd = gr->gr_passwd; + m_passwd = gr->gr_passwd; #endif - gr_gid = gr->gr_gid; + m_gid = gr->gr_gid; - // FIXME: Maybe there should be a string_vector constructor - // that takes a NUL terminated list of C strings? + // FIXME: Maybe there should be a string_vector constructor + // that takes a NUL terminated list of C strings? + + const char * const *tmp = gr->gr_mem; - const char * const *tmp = gr->gr_mem; + int k = 0; + while (*tmp++) + k++; - int k = 0; - while (*tmp++) - k++; + if (k > 0) + { + tmp = gr->gr_mem; - if (k > 0) - { - tmp = gr->gr_mem; + m_mem.resize (k); - gr_mem.resize (k); + for (int i = 0; i < k; i++) + m_mem[i] = tmp[i]; + } - for (int i = 0; i < k; i++) - gr_mem[i] = tmp[i]; + valid = true; } - - valid = true; +#else + msg = NOT_SUPPORTED ("group functions"); +#endif } -#else - msg = NOT_SUPPORTED ("group functions"); -#endif + } } - diff -r e0da98857c19 -r c218a5b31ad7 liboctave/system/oct-group.h --- a/liboctave/system/oct-group.h Wed May 18 12:14:34 2016 -0400 +++ b/liboctave/system/oct-group.h Wed May 18 12:35:37 2016 -0400 @@ -31,82 +31,97 @@ #include "str-vec.h" -class -OCTAVE_API -octave_group +namespace +octave { -public: - - octave_group (void) - : gr_name (), gr_passwd (), gr_gid (0), gr_mem (), valid (false) - { } - - octave_group (const octave_group& gr) - : gr_name (gr.gr_name), gr_passwd (gr.gr_passwd), - gr_gid (gr.gr_gid), gr_mem (gr.gr_mem), valid (gr.valid) - { } - - octave_group& operator = (const octave_group& gr) + namespace + sys { - if (this != &gr) - { - gr_name = gr.gr_name; - gr_passwd = gr.gr_passwd; - gr_gid = gr.gr_gid; - gr_mem = gr.gr_mem; - valid = gr.valid; - } + class + OCTAVE_API + group + { + public: + + group (void) + : m_name (), m_passwd (), m_gid (0), m_mem (), valid (false) + { } + + group (const group& gr) + : m_name (gr.m_name), m_passwd (gr.m_passwd), + m_gid (gr.m_gid), m_mem (gr.m_mem), valid (gr.valid) + { } - return *this; - } - - std::string name (void) const; + group& operator = (const group& gr) + { + if (this != &gr) + { + m_name = gr.m_name; + m_passwd = gr.m_passwd; + m_gid = gr.m_gid; + m_mem = gr.m_mem; + valid = gr.valid; + } - std::string passwd (void) const; + return *this; + } - gid_t gid (void) const; + std::string name (void) const; - string_vector mem (void) const; + std::string passwd (void) const; + + gid_t gid (void) const; - bool ok (void) const { return valid; } + string_vector mem (void) const; + + bool ok (void) const { return valid; } - operator bool () const { return ok (); } + operator bool () const { return ok (); } + + static group getgrent (void); + static group getgrent (std::string& msg); - static octave_group getgrent (void); - static octave_group getgrent (std::string& msg); + static group getgrgid (gid_t gid); + static group getgrgid (gid_t gid, std::string& msg); - static octave_group getgrgid (gid_t gid); - static octave_group getgrgid (gid_t gid, std::string& msg); + static group getgrnam (const std::string& nm); + static group getgrnam (const std::string& nm, std::string& msg); - static octave_group getgrnam (const std::string& nm); - static octave_group getgrnam (const std::string& nm, std::string& msg); + static int setgrent (void); + static int setgrent (std::string& msg); - static int setgrent (void); - static int setgrent (std::string& msg); + static int endgrent (void); + static int endgrent (std::string& msg); - static int endgrent (void); - static int endgrent (std::string& msg); + private: -private: + // The group name. + std::string m_name; - // The group name. - std::string gr_name; + // The group password. + std::string m_passwd; + + // The numeric group id. + gid_t m_gid; - // The group password. - std::string gr_passwd; + // The members of the group; + string_vector m_mem; - // The numeric group id. - gid_t gr_gid; + // Flag that says whether we have been properly initialized. + bool valid; - // The members of the group; - string_vector gr_mem; + // This is how we will create an group object from a pointer + // to a struct group. + group (void *p, std::string& msg); + }; + } +} - // Flag that says whether we have been properly initialized. - bool valid; +#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - // This is how we will create an octave_group object from a pointer - // to a struct group. - octave_group (void *p, std::string& msg); -}; +OCTAVE_DEPRECATED ("use octave::sys::group instead") +typedef octave::sys::group octave_group; #endif + +#endif