add ext4,vfat and tar.bz2
[u-tools.git] / u-tools / apps / tar / gnu / symlink.c
blob9339e9a4c6f00758d515fcdee06a549a7d5d9b40
1 /* -*- buffer-read-only: t -*- vi: set ro: */
2 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
3 /* Stub for symlink().
4 Copyright (C) 2009-2011 Free Software Foundation, Inc.
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 #include <config.h>
21 /* Specification. */
22 #include <unistd.h>
24 #include <errno.h>
25 #include <string.h>
26 #include <sys/stat.h>
29 #if HAVE_SYMLINK
31 # undef symlink
33 /* Create a symlink, but reject trailing slash. */
34 int
35 rpl_symlink (char const *contents, char const *name)
37 size_t len = strlen (name);
38 if (len && name[len - 1] == '/')
40 struct stat st;
41 if (lstat (name, &st) == 0)
42 errno = EEXIST;
43 return -1;
45 return symlink (contents, name);
48 #else /* !HAVE_SYMLINK */
50 /* The system does not support symlinks. */
51 int
52 symlink (char const *contents _GL_UNUSED,
53 char const *name _GL_UNUSED)
55 errno = ENOSYS;
56 return -1;
59 #endif /* !HAVE_SYMLINK */