* bootstrap.conf (gnulib_modules): Add readlink-with-size.
Remove xreadlink and xreadlink-with-size.
* src/copy.c (copy_internal): Use mreadlink_with_size,
not xreadlink_with_size.
* src/ls.c (get_link_name): Likewise.
* src/readlink.c (main): Likewise.
* src/stat.c (print_stat): Likewise.
2007-06-18 Jim Meyering <jim@meyering.net>
+ Use mreadlink_with_size (doesn't exit), not xreadlink_with_size.
+ * bootstrap.conf (gnulib_modules): Add readlink-with-size.
+ Remove xreadlink and xreadlink-with-size.
+ * src/copy.c (copy_internal): Use mreadlink_with_size,
+ not xreadlink_with_size.
+ * src/ls.c (get_link_name): Likewise.
+ * src/readlink.c (main): Likewise.
+ * src/stat.c (print_stat): Likewise.
+
* README-hacking: Don't mention Gzip 1.2.4, now that 1.3.12 is out.
2007-06-16 Jim Meyering <jim@meyering.net>
long-options lstat malloc mbswidth memcasecmp mempcpy
memrchr mkancesdirs mkdir mkdir-p mkstemp mktime modechange
mountlist mpsort obstack pathmax perl physmem posixtm posixver putenv
- quote quotearg raise readlink readtokens readtokens0 readutmp
+ quote quotearg raise readlink mreadlink-with-size readtokens
+ readtokens0 readutmp
realloc regex rename-dest-slash rmdir rmdir-errno
root-dev-ino
rpmatch
uptime userspec utimecmp utimens vasprintf verify version-etc-fsf
wcwidth winsz-ioctl winsz-termios write-any-file
xalloc xgetcwd xgethostname
- xmemcoll xnanosleep xreadlink xreadlink-with-size xstrtod xstrtoimax
+ xmemcoll xnanosleep xstrtod xstrtoimax
xstrtol xstrtold xstrtoumax yesno
"
mountlist.h
mpsort.c
mpsort.h
+mreadlink-with-size.c
+mreadlink.h
nanosleep.c
netinet_in.h
netinet_in_.h
xmemcoll.h
xnanosleep.c
xnanosleep.h
-xreadlink-with-size.c
-xreadlink.c
-xreadlink.h
xsize.h
xstrndup.c
xstrndup.h
mountlist.h
mpsort.c
mpsort.h
+mreadlink-with-size.c
+mreadlink.h
nanosleep.c
netinet_in.h
netinet_in_.h
xmemcoll.h
xnanosleep.c
xnanosleep.h
-xreadlink-with-size.c
-xreadlink.c
-xreadlink.h
xsize.h
xstrndup.c
xstrndup.h
#include "utimecmp.h"
#include "utimens.h"
#include "write-any-file.h"
-#include "xreadlink.h"
+#include "mreadlink.h"
#include "yesno.h"
#ifndef HAVE_FCHOWN
}
else if (S_ISLNK (src_mode))
{
- char *src_link_val = xreadlink_with_size (src_name, src_sb.st_size);
+ char *src_link_val = mreadlink_with_size (src_name, src_sb.st_size);
if (src_link_val == NULL)
{
error (0, errno, _("cannot read symbolic link %s"), quote (src_name));
in some cases, e.g., if the destination symlink has the
wrong ownership, permissions, or time stamps. */
char *dest_link_val =
- xreadlink_with_size (dst_name, dst_sb.st_size);
- if (STREQ (dest_link_val, src_link_val))
+ mreadlink_with_size (dst_name, dst_sb.st_size);
+ if (dest_link_val && STREQ (dest_link_val, src_link_val))
same_link = true;
free (dest_link_val);
}
#include "strverscmp.h"
#include "wcwidth.h"
#include "xstrtol.h"
-#include "xreadlink.h"
+#include "mreadlink.h"
#define PROGRAM_NAME (ls_mode == LS_LS ? "ls" \
: (ls_mode == LS_MULTI_COL \
static void
get_link_name (char const *filename, struct fileinfo *f, bool command_line_arg)
{
- f->linkname = xreadlink_with_size (filename, f->stat.st_size);
+ f->linkname = mreadlink_with_size (filename, f->stat.st_size);
if (f->linkname == NULL)
file_failure (command_line_arg, _("cannot read symbolic link %s"),
filename);
/* readlink -- display value of a symbolic link.
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2002-2007 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "system.h"
#include "canonicalize.h"
#include "error.h"
-#include "xreadlink.h"
+#include "mreadlink.h"
#include "quote.h"
/* The official name of this program (e.g., no `g' prefix). */
value = (can_mode != -1
? canonicalize_filename_mode (fname, can_mode)
- : xreadlink (fname));
+ : mreadlink_with_size (fname, 63));
if (value)
{
printf ("%s%s", value, (no_newline ? "" : "\n"));
#include "quotearg.h"
#include "stat-time.h"
#include "strftime.h"
-#include "xreadlink.h"
+#include "mreadlink.h"
#define alignof(type) offsetof (struct { char c; type x; }, x)
out_string (pformat, prefix_len, quote (filename));
if (S_ISLNK (statbuf->st_mode))
{
- char *linkname = xreadlink_with_size (filename, statbuf->st_size);
+ char *linkname = mreadlink_with_size (filename, statbuf->st_size);
if (linkname == NULL)
{
error (0, errno, _("cannot read symbolic link %s"),