1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

deprecate cuserid

* libguile/posix.c:
* libguile/posix.h:
* libguile/deprecated.h:
* libguile/deprecated.c (scm_cuserid): Deprecate cuserid, as it only
  returns 8 bytes of a user's login.

* doc/ref/posix.texi: Remove cuserid from docs.
This commit is contained in:
Andy Wingo 2010-11-18 11:15:16 +01:00
parent e75184d5d2
commit cd28785f79
5 changed files with 35 additions and 37 deletions

View file

@ -1112,18 +1112,7 @@ or getgrent respectively.
@end deffn
In addition to the accessor procedures for the user database, the
following shortcut procedures are also available.
@deffn {Scheme Procedure} cuserid
@deffnx {C Function} scm_cuserid ()
Return a string containing a user name associated with the
effective user id of the process. Return @code{#f} if this
information cannot be obtained.
This function has been removed from the latest POSIX specification,
Guile provides it only if the system has it. Using @code{(getpwuid
(geteuid))} may be a better idea.
@end deffn
following shortcut procedure is also available.
@deffn {Scheme Procedure} getlogin
@deffnx {C Function} scm_getlogin ()

View file

@ -2361,6 +2361,35 @@ int scm_internal_select (int fds,
#ifdef HAVE_CUSERID
# if !HAVE_DECL_CUSERID
extern char *cuserid (char *);
# endif
SCM_DEFINE (scm_cuserid, "cuserid", 0, 0, 0,
(void),
"Return a string containing a user name associated with the\n"
"effective user id of the process. Return @code{#f} if this\n"
"information cannot be obtained.")
#define FUNC_NAME s_scm_cuserid
{
char buf[L_cuserid];
char * p;
scm_c_issue_deprecation_warning
("`cuserid' is deprecated. Use `(passwd:name (getpwuid (geteuid)))' instead.");
p = cuserid (buf);
if (!p || !*p)
return SCM_BOOL_F;
return scm_from_locale_string (p);
}
#undef FUNC_NAME
#endif /* HAVE_CUSERID */
void
scm_i_init_deprecated ()
{

View file

@ -736,6 +736,11 @@ SCM_DEPRECATED int scm_internal_select (int fds,
SELECT_TYPE *efds,
struct timeval *timeout);
/* Deprecated because the cuserid call is deprecated.
*/
SCM_API SCM scm_cuserid (void);
void scm_i_init_deprecated (void);

View file

@ -1841,30 +1841,6 @@ SCM_DEFINE (scm_getlogin, "getlogin", 0, 0, 0,
#undef FUNC_NAME
#endif /* HAVE_GETLOGIN */
#ifdef HAVE_CUSERID
# if !HAVE_DECL_CUSERID
extern char *cuserid (char *);
# endif
SCM_DEFINE (scm_cuserid, "cuserid", 0, 0, 0,
(void),
"Return a string containing a user name associated with the\n"
"effective user id of the process. Return @code{#f} if this\n"
"information cannot be obtained.")
#define FUNC_NAME s_scm_cuserid
{
char buf[L_cuserid];
char * p;
p = cuserid (buf);
if (!p || !*p)
return SCM_BOOL_F;
return scm_from_locale_string (p);
}
#undef FUNC_NAME
#endif /* HAVE_CUSERID */
#if HAVE_GETPRIORITY
SCM_DEFINE (scm_getpriority, "getpriority", 2, 0, 0,
(SCM which, SCM who),

View file

@ -83,7 +83,6 @@ SCM_API SCM scm_sync (void);
SCM_API SCM scm_crypt (SCM key, SCM salt);
SCM_API SCM scm_chroot (SCM path);
SCM_API SCM scm_getlogin (void);
SCM_API SCM scm_cuserid (void);
SCM_API SCM scm_getpriority (SCM which, SCM who);
SCM_API SCM scm_setpriority (SCM which, SCM who, SCM prio);
SCM_API SCM scm_getpass (SCM prompt);