[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r107946: Add functions to get system
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r107946: Add functions to get system user names, group names |
Date: |
Mon, 16 Apr 2012 21:29:58 -0400 |
User-agent: |
Bazaar (2.3.1) |
------------------------------------------------------------
revno: 107946
fixes bug(s): http://debbugs.gnu.org/7900
author: Dmitry Antipov <address@hidden>
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Mon 2012-04-16 21:29:58 -0400
message:
Add functions to get system user names, group names
Note from committer:
I removed the part that adds grp.h to AC_CHECK_HEADERS and
+#ifdef HAVE_GRP_H
#include <grp.h>
+#endif
to src/dired.c, because the latter has unconditionally included grp.h
since 2003, and uses it eg in stat_gname.
* configure.in (AC_CHECK_FUNCS): Add getpwent, endpwent, getgrent, endgrent.
* src/dired.c (Fsystem_users, Fsystem_groups): New functions.
(syms_of_dired): Add them.
modified:
ChangeLog
configure.in
src/ChangeLog
src/dired.c
=== modified file 'ChangeLog'
--- a/ChangeLog 2012-04-16 19:13:44 +0000
+++ b/ChangeLog 2012-04-17 01:29:58 +0000
@@ -1,3 +1,8 @@
+2012-04-17 Dmitry Antipov <address@hidden>
+
+ * configure.in (AC_CHECK_FUNCS):
+ Add getpwent, endpwent, getgrent, endgrent. (Bug#7900)
+
2012-04-16 Glenn Morris <address@hidden>
* configure.in (NS_HAVE_NSINTEGER): Remove unnecessary variable.
=== modified file 'configure.in'
--- a/configure.in 2012-04-16 19:13:44 +0000
+++ b/configure.in 2012-04-17 01:29:58 +0000
@@ -2736,6 +2736,7 @@
sendto recvfrom getsockopt setsockopt getsockname getpeername \
gai_strerror mkstemp getline getdelim mremap fsync sync \
difftime mempcpy mblen mbrlen posix_memalign \
+getpwent endpwent getgrent endgrent \
cfmakeraw cfsetspeed copysign __executable_start)
dnl Cannot use AC_CHECK_FUNCS
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2012-04-16 06:39:21 +0000
+++ b/src/ChangeLog 2012-04-17 01:29:58 +0000
@@ -1,3 +1,8 @@
+2012-04-17 Dmitry Antipov <address@hidden>
+
+ * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
+ (syms_of_dired): Add them.
+
2012-04-16 Paul Eggert <address@hidden>
Fix minor alloc.c problems found by static checking.
=== modified file 'src/dired.c'
--- a/src/dired.c 2012-01-19 07:21:25 +0000
+++ b/src/dired.c 2012-04-17 01:29:58 +0000
@@ -1015,6 +1015,45 @@
return Fstring_lessp (Fcar (f1), Fcar (f2));
}
+
+DEFUN ("system-users", Fsystem_users, Ssystem_users, 0, 0, 0,
+ doc: /* Return a list of user names currently registered in the system.
+The value may be nil if not supported on this platform. */)
+ (void)
+{
+ Lisp_Object users = Qnil;
+#if defined(HAVE_GETPWENT) && defined(HAVE_ENDPWENT)
+ struct passwd *pw;
+
+ while ((pw = getpwent ()))
+ users = Fcons (DECODE_SYSTEM (build_string (pw->pw_name)), users);
+
+ endpwent ();
+#endif
+ if (EQ (users, Qnil))
+ /* At least current user is always known. */
+ users = Fcons (Vuser_real_login_name, Qnil);
+ return users;
+}
+
+DEFUN ("system-groups", Fsystem_groups, Ssystem_groups, 0, 0, 0,
+ doc: /* Return a list of user group names currently registered in the
system.
+The value may be nil if not supported on this platform. */)
+ (void)
+{
+ Lisp_Object groups = Qnil;
+#if defined(HAVE_GETGRENT) && defined(HAVE_ENDGRENT)
+ struct group *gr;
+ int length;
+
+ while ((gr = getgrent ()))
+ groups = Fcons (DECODE_SYSTEM (build_string (gr->gr_name)), groups);
+
+ endgrent ();
+#endif
+ return groups;
+}
+
void
syms_of_dired (void)
{
@@ -1032,6 +1071,8 @@
defsubr (&Sfile_name_all_completions);
defsubr (&Sfile_attributes);
defsubr (&Sfile_attributes_lessp);
+ defsubr (&Ssystem_users);
+ defsubr (&Ssystem_groups);
DEFVAR_LISP ("completion-ignored-extensions", Vcompletion_ignored_extensions,
doc: /* Completion ignores file names ending in any string in
this list.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r107946: Add functions to get system user names, group names,
Glenn Morris <=