[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/dired.c,v
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] Changes to emacs/src/dired.c,v |
Date: |
Fri, 09 May 2008 19:03:03 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Eli Zaretskii <eliz> 08/05/09 19:03:01
Index: dired.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/dired.c,v
retrieving revision 1.145
retrieving revision 1.146
diff -u -b -r1.145 -r1.146
--- dired.c 3 May 2008 10:16:35 -0000 1.145
+++ dired.c 9 May 2008 19:03:01 -0000 1.146
@@ -899,6 +899,36 @@
Fcons (make_number (time & 0177777), Qnil));
}
+static char *
+stat_uname (struct stat *st)
+{
+#ifdef WINDOWSNT
+ return st->st_uname;
+#else
+ struct passwd *pw = (struct passwd *) getpwuid (st->st_uid);
+
+ if (pw)
+ return pw->pw_name;
+ else
+ return NULL;
+#endif
+}
+
+static char *
+stat_gname (struct stat *st)
+{
+#ifdef WINDOWSNT
+ return st->st_gname;
+#else
+ struct group *gr = (struct group *) getgrgid (st->st_gid);
+
+ if (gr)
+ return gr->gr_name;
+ else
+ return NULL;
+#endif
+}
+
DEFUN ("file-attributes", Ffile_attributes, Sfile_attributes, 1, 2, 0,
doc: /* Return a list of attributes of file FILENAME.
Value is nil if specified file cannot be opened.
@@ -935,8 +965,6 @@
Lisp_Object values[12];
Lisp_Object encoded;
struct stat s;
- struct passwd *pw;
- struct group *gr;
#if defined (BSD4_2) || defined (BSD4_3)
Lisp_Object dirname;
struct stat sdir;
@@ -945,6 +973,7 @@
Lisp_Object handler;
struct gcpro gcpro1;
EMACS_INT ino;
+ char *uname, *gname;
filename = Fexpand_file_name (filename, Qnil);
@@ -987,11 +1016,11 @@
else
{
BLOCK_INPUT;
- pw = (struct passwd *) getpwuid (s.st_uid);
- values[2] = (pw ? build_string (pw->pw_name)
+ uname = stat_uname (&s);
+ values[2] = (uname ? build_string (uname)
: make_fixnum_or_float (s.st_uid));
- gr = (struct group *) getgrgid (s.st_gid);
- values[3] = (gr ? build_string (gr->gr_name)
+ gname = stat_gname (&s);
+ values[3] = (gname ? build_string (gname)
: make_fixnum_or_float (s.st_gid));
UNBLOCK_INPUT;
}
- [Emacs-diffs] Changes to emacs/src/dired.c,v, Eli Zaretskii, 2008/05/03
- [Emacs-diffs] Changes to emacs/src/dired.c,v,
Eli Zaretskii <=
- [Emacs-diffs] Changes to emacs/src/dired.c,v, Eli Zaretskii, 2008/05/10
- [Emacs-diffs] Changes to emacs/src/dired.c,v, Stefan Monnier, 2008/05/13
- [Emacs-diffs] Changes to emacs/src/dired.c,v, Stefan Monnier, 2008/05/13
- [Emacs-diffs] Changes to emacs/src/dired.c,v, Glenn Morris, 2008/05/14
- [Emacs-diffs] Changes to emacs/src/dired.c,v, Eli Zaretskii, 2008/05/16