This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.16-ports-merge-98-gd2a5425


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  d2a54255fe7a72dc6841df3a91f0607563524dc1 (commit)
      from  789bd351b45f024b7f51e4886bf46b8e887ab6da (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d2a54255fe7a72dc6841df3a91f0607563524dc1

commit d2a54255fe7a72dc6841df3a91f0607563524dc1
Author: Pino Toscano <toscano.pino@tiscali.it>
Date:   Tue Jul 31 19:59:03 2012 +0200

    Hurd: implement renameat
    
    Provide an implementation of renameat, mostly based on rename.

diff --git a/ChangeLog b/ChangeLog
index 30b9a9e..102a878 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2012-07-31  Pino Toscano  <toscano.pino@tiscali.it>
+
+	* sysdeps/mach/hurd/renameat.c: New file, mostly copied from rename.c.
+
 2012-07-31  Roland McGrath  <roland@hack.frob.com>
 
 	* include/sys/socket.h (__libc_accept, __libc_accept4):
diff --git a/sysdeps/mach/hurd/renameat.c b/sysdeps/mach/hurd/renameat.c
new file mode 100644
index 0000000..8ab5906
--- /dev/null
+++ b/sysdeps/mach/hurd/renameat.c
@@ -0,0 +1,51 @@
+/* Rename a file using relative source and destination names.  Hurd version.
+   Copyright (C) 1991-2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <hurd.h>
+#include <hurd/fd.h>
+
+/* Rename the file OLD relative to OLDFD to NEW relative to NEWFD.  */
+int
+renameat (oldfd, old, newfd, new)
+     int oldfd;
+     const char *old;
+     int newfd;
+     const char *new;
+{
+  error_t err;
+  file_t olddir, newdir;
+  const char *oldname, *newname;
+
+  olddir = __directory_name_split_at (oldfd, old, (char **) &oldname);
+  if (olddir == MACH_PORT_NULL)
+    return -1;
+  newdir = __directory_name_split_at (newfd, new, (char **) &newname);
+  if (newdir == MACH_PORT_NULL)
+    {
+       __mach_port_deallocate (__mach_task_self (), olddir);
+      return -1;
+    }
+
+  err = __dir_rename (olddir, oldname, newdir, newname, 0);
+  __mach_port_deallocate (__mach_task_self (), olddir);
+  __mach_port_deallocate (__mach_task_self (), newdir);
+  if (err)
+    return __hurd_fail (err);
+  return 0;
+}

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                  |    4 ++++
 sysdeps/mach/hurd/{rename.c => renameat.c} |   14 +++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)
 copy sysdeps/mach/hurd/{rename.c => renameat.c} (74%)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]