deprecate cuserid
authorAndy Wingo <wingo@pobox.com>
Thu, 18 Nov 2010 10:15:16 +0000 (11:15 +0100)
committerAndy Wingo <wingo@pobox.com>
Thu, 18 Nov 2010 10:15:16 +0000 (11:15 +0100)
* 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.

doc/ref/posix.texi
libguile/deprecated.c
libguile/deprecated.h
libguile/posix.c
libguile/posix.h

index b237002..3499404 100644 (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 ()
index 648efe9..e11d353 100644 (file)
@@ -2361,6 +2361,35 @@ int scm_internal_select (int fds,
 
 \f
 
+#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 */
+
+\f
+
 void
 scm_i_init_deprecated ()
 {
index 893523f..84258fa 100644 (file)
@@ -736,6 +736,11 @@ SCM_DEPRECATED int scm_internal_select (int fds,
                                         SELECT_TYPE *efds,
                                         struct timeval *timeout);
 \f
+/* Deprecated because the cuserid call is deprecated.
+ */
+SCM_API SCM scm_cuserid (void);
+
+\f
 
 void scm_i_init_deprecated (void);
 
index f371cb2..8301a7e 100644 (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),
index ac774d3..da58835 100644 (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);