Commit Graph

50 Commits

Author SHA1 Message Date
christos b6787da498 PR/57857: Ricardo Branco: Always copy regular files, even if they appear to
be zero-sized.
2024-01-15 17:41:06 +00:00
christos f6a91933fb No ACL support for install media (SMALLPROG) 2020-05-17 23:34:11 +00:00
christos 9aa2a9c323 Add ACL support for FFS. From FreeBSD. 2020-05-16 18:31:45 +00:00
christos 7790b32131 PR/54564: Jan Schaumann: cp of a fifo yields an empty file
Don't short-circuit 0 sized stat entries if they don't belong to regular files.
Also don't try to mmap non-regular files.
2019-09-23 18:01:09 +00:00
darcy 22057652ff Re-order the code to short circuit all the opens and closes if linking.
Discussed on tech-userlevel and agreed to by christos@.
Testing suggests an order of magnitude improvement when linking.
2018-07-17 13:04:58 +00:00
mrg 9bb33dce89 for display in the (post) SIGINFO handler use off_t not size_t for
file sizes.  fixes incorrect reporting errors on 32 bit platforms
with >4GB file sizes.
2016-02-29 04:22:21 +00:00
enami 80c6af722d Fix the name of failed function in warning message. 2015-03-03 00:20:38 +00:00
enami c1e351a1b2 Don't truncate at microseconds while preserving timestamps.
One of motivation of this change is to make the behavior of test(1)
-nt/ot with preserved copy (like cp -p) closer to the NetBSD 6.
Of course whether full timestamps are kept or not depends also on
underlying file system.

The ifdef added in mv(1) since existing ifdefs was our local change
to compile it on solaris (though I couldn't test it):
http://mail-index.netbsd.org/tech-userlevel/2014/11/28/msg008831.html
2015-03-02 03:17:24 +00:00
dholland 473e706d2d Remove entirely bogus /* NOTREACHED */ annotation. 2013-12-11 06:00:11 +00:00
christos eb8f42a53b Add siginfo support from Daniel Loffgren. 2012-01-04 15:58:37 +00:00
manu 32c00d6291 Make cp -p and mv preverve extended attributes, and complain if they cannot.
Also introduce library functions for copying extended attributes from one
file to another:
- extattr_copy_file, extattr_copy_fd, extattr_copy_link, with FreeBSD style,
  where a namespace is to be supplied
- cpxattr, fcpxattr, lcpxattr, with Linux style, where all namespaces
  accessible to the caller are copied, and the others are silently ignored.
2011-08-03 04:11:15 +00:00
darcy d87812693f Add -l option to copy a tree as links.
Non-standard option similar to Gnutools cp(1)
Approved by core.
2011-02-06 12:37:48 +00:00
wiz 59dc922deb Fix fd leak in error case. Found by cppcheck. 2011-01-04 10:35:10 +00:00
christos 9985da2181 Add -a archive flag. from Aleksey Cheusov 2010-12-21 20:56:01 +00:00
tron 1181f40421 Re-enable support for reading files of at most 8MB via mmap(2).
Write out the mmap-ed data in small chunks to avoid locking the output
file for a long time.

Suggested by David Holland on "source-changes-d" mailing list.
2010-10-25 08:19:47 +00:00
pooka efab5715bc Disable mmap path. With the current vnode locking scheme it has
a very annoying property: if the source media is slow (like a slow
network), the target file will be locked for the duration of the
entire max 8MB write and cause processes attempting to e.g. stat()
it to "tstile" (for several minutes in the worst case).  Revisit
this if/when vnode locking gets a little smarter.

chs ok (although he would rather see vnode locking improvements,
but that's a slightly larger project)
2010-10-22 17:56:06 +00:00
hira c710611df5 Add -N to usage. 2007-10-26 16:21:25 +00:00
jld eaef8d4ad7 Touching up the permissions to preserve set-ID bits is appropriate
only in the case where the destination did not previously exist, and
necessary only when -p isn't given.

Closes PR bin/30188.
2007-10-25 03:51:14 +00:00
jschauma 471c8a8e68 return functionality backed out yesterday after fixing the bug I had
introduced before.  A regression test will be added to src/regress
shortly.
2006-07-16 16:22:24 +00:00
jschauma d8c803bc48 The last commit introduced a bug. Revert until that's found and fixed. 2006-07-15 20:42:55 +00:00
jschauma 2b5fd7fd97 As suggested on tech-userlevel:
"-R" claims:
 -R	[...] Created directories have the same mode as the corre-
	sponding source directory, unmodified
	by the process' umask.

Make this actually true.

In addition, make '-P' (no symbolic links are followed) apply even if
'-R' is not specified.  This allows users to overwrite symbolic links
with files and/or to copy symbolic links over a file without indirecting
through the link (ie a copy of a link turns the target into a link, not
a copy of the file pointed to by the source).
2006-07-15 02:09:47 +00:00
christos 509c72ef94 - Don't output 'src -> dst' when -v and there was an error.
- Mark usage as noreturn, and remove extraneous exit.
- Pass lint.
Reported by Liam Foy.
2005-10-15 18:22:18 +00:00
elad 76ed05e8b1 Add and document -N: When used with -p, it will not copy the file flags.
PR 13645.
2005-08-15 17:13:35 +00:00
jschauma ad8530d1eb remove unused code left from printescaped() backput as pointed out by Jeff
Ito in PR bin/23969 and PR bin/23970.
2004-01-04 16:04:18 +00:00
jschauma 6a75fbb636 Following private discussion with kleink@ and hubertf@ and public discussion
on tech-userlevel@, back out printescaped() functionality.
kleink: ``We sell rope.''
2003-09-14 19:20:16 +00:00
agc b5b2954259 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22249, verified by myself.
2003-08-07 09:05:01 +00:00
jschauma 458ed23412 As discusses a little while back on tech-userlevel:
If stdout is a tty, use vis(3) to print any filenames to prevent garbage
from being printed if the filename contains control- or other non-printable
characters.

While here, sprinkle some EXIT_FAILURE and NOTREACHED where appropriate.
2003-08-04 22:31:21 +00:00
simonb 276fd1665c The Double-Semi-Colon Police. 2003-01-20 05:29:53 +00:00
jrf 4e81454aa9 Added a -v verbose option to the cp(1) command. Updated man page and utils as well. This applies to PR bin/16834. This change was approved by Christos. 2002-12-16 14:44:14 +00:00
provos 32b88027c7 use readlink with bufsize - 1; approved thorpej. 2002-10-19 20:33:17 +00:00
wiz 633b06fe1e ANSIfication and some KNF fixes by Petri Koistinen from bin/13681. 2001-09-13 09:53:59 +00:00
chs ec039eb93d enable use of mmap(), falling back to read()/write() if mmap() fails. 2001-08-30 04:45:56 +00:00
tron 8ae0a016a0 Use madvise(2) after mmap(2) in case "VM_AND_BUFFER_CACHE_SYNCHRONIZED"
is defined which it is not right now.
2001-07-18 11:01:54 +00:00
mjl 382ab5ae40 Correct behaviour in case of dangling symlinks: they would be (contrary
to what the manpage and POSIX say) copied as symlinks, even without -R.
Return ENOENT instead. Closes PR 6975 by Johan Danielsson <joda@pdc.kth.se>.

From FreeBSD: return correct error message if source directory is
unreadable; remove unnecessarily included headers.
1999-03-01 18:57:29 +00:00
wsanchez 8a99d7cf5d Fix bug where "cp -f" didn't work.
It's suppsed to remove the file and then copy, which it wasn't doing.
But no wait, it turns out that the described behaviour in the manual doesn't
  agree with POSIX. So we change the above fix and the manual to "try copy, and
  if fail, try remove, then copy".
Fix bug where "cp -R" didn't work on read-only directories:
  It would make the directory, set the mode, and not be able to write files into it.
Don't bother mmap()ing files of zero length. Was a workaround for a bug in Rhapsody
  mmap(), which didn't get along with such files, but makes sense anyway.
Fix race condition where "cp -p" would set the mod time of a file before close()ing
  the file, which would update the mod time and therefore screw up the "-p" idea,
  except, of course, while running in gdb, which sucked.
Add -f option to usage message in binary and man page. Already documented in man page.
1998-10-08 17:43:24 +00:00
thorpej 8d68a9dce5 Add some braces to keep egcs happy. 1998-08-19 01:29:11 +00:00
mycroft 9dc385beb1 Delint. 1998-07-28 05:31:22 +00:00
mycroft ce7d757530 Delint. 1998-07-28 03:47:14 +00:00
mycroft f49407ea34 Nit: Use MAP_SHARED for read-only mappings where appropriate. 1998-02-20 09:26:00 +00:00
augustss 81b7d9b217 Use MAP_PRIVATE|MAP_FILE instead of 0 in mmap(). 1998-02-17 22:02:35 +00:00
mycroft 688ecf2a69 Use futimes(2) if possible. Also correct an error message. 1997-10-19 12:50:47 +00:00
enami fa580a821a Preserve owner/group/mode/atime/mtime of symlink if -p flag is given. 1997-10-19 12:28:01 +00:00
thorpej efc20a3095 - Use __COPYRIGHT() and __RCSID()
- Fix compiler warnings.
1997-07-20 05:13:36 +00:00
mikel 72f823dad3 add missing close-brackets; from Greg Oster in PR bin/3613. 1997-05-15 05:27:14 +00:00
cgd 4f2bfe8b13 Patch from BSDI (via Keith Bostic):
>NFS doesn't support chflags; ignore errors unless there's reason
>to believe we're losing bits.  (Note, this still won't be right
>if the server supports flags and we were trying to *remove* flags
>on a file that we copied, i.e., that we didn't create.)
1997-02-26 14:40:51 +00:00
tls 4c7b22f594 kill use of register 1997-01-09 16:07:09 +00:00
jtc bdf0a24b3d Don't remove the destination file if there is a write error. This is
very bad if it is actually a device or fifo.  POSIX.2 requires that a
diagnostic message be written, the file descriptor be closed, and for
cp to continue on with the rest of the files.
1995-08-02 07:17:02 +00:00
cgd 49f0ad8601 convert to new RCS id conventions. 1995-03-21 09:01:59 +00:00
mycroft 051219a643 Merge 4.4-Lite version. 1994-09-22 09:24:35 +00:00
mycroft e40b06360c Import original 4.4-Lite version. 1994-09-22 03:04:15 +00:00