summaryrefslogtreecommitdiffstats
path: root/bin/cp/cp.c
Commit message (Collapse)AuthorAgeFilesLines
* Constify and staticify for lint.markm2002-10-181-2/+2
|
* cp -p could report success even if a file copy failed. This was due tomckay2002-09-221-3/+4
| | | | | | | | | | | the cumulative exit status being overwritten when directory permissions were being set. This was particularly bad when called from mv(1) to perform a cross-device move as the original files were deleted even if the copy failed. Reported by: Slaven Rezic <slaven.rezic@berlin.de> Patch by: bde PR: 42789
* Make the threatened fts(3) ABI fix. FTSENT now avoids the use of the structwollman2002-09-211-2/+2
| | | | | | | | | | | | | | | | hack, thereby allowing future extensions to the structure (e.g., for extended attributes) without rebreaking the ABI. FTSENT now contains a pointer to the parent stream, which fts_compar() can then take advantage of, avoiding the undefined behavior previously warned about. As a consequence of this change, the prototype of the comparison function passed to fts_open() has changed to reflect the required amount of constness for its use. All callers in the tree are updated to use the correct prototype. Comparison functions can now make use of the new parent pointer to access the new stream-specific private data pointer, which is intended to assist creation of reentrant library routines which use fts(3) internally. Not objected to in spirit by: -arch
* Add the -n option, which automatically answers "no" to the overwrite question.johan2002-07-231-5/+9
| | | | | | | PR: 7828 Suggested by: Daniel O'Connor <doconnor@gsoft.com.au> Approved by: sheldonh (mentor) MFC after: 2 weeks
* err() is documented as allowing NULL for the format string but GCC isn'tdillon2002-07-101-1/+1
| | | | happy about it any more so change the usage to make buildworld work again.
* Fix some low-hanging lint-fruit: endianness and staticness warnings.markm2002-07-031-2/+2
|
* Consistently use __FBSDIDobrien2002-06-301-2/+2
|
* When -R is not specified, fail to copy the contents of dangling symlinkstjr2002-06-131-3/+11
| | | | | | instead of making a copy of the link itself (SUSv3) Obtained from: NetBSD
* Optimize prev. commit code a bitache2002-05-171-4/+4
|
* Trailing slash fixes.ache2002-05-171-2/+12
| | | | | | | | | | Fix the case: cp file nonexistent/ which create nonextstent as file while trailing slash clearly indicates that nonexistent must be a directory. Also fix the case: cp file1 file2/ which should produce error.
* Add semicolon to empty default case to silence warning.alfred2002-05-111-0/+1
|
* Fix warnings inspired by lint, a commercial lint and WARNS=4.markm2002-02-221-4/+10
|
* Modernization effort for bin/c*:imp2002-02-021-11/+5
| | | | | | | | | | | | o __P has been reoved o Old-style K&R declarations have been converted to new C89 style o register has been removed o prototype for main() has been removed (gcc3 makes it an error) o int main(int argc, char *argv[]) is the preferred main definition. o Attempt to not break style(9) conformance for declarations more than they already are. Approved by: arch@, new style(9)
* Bruce thought some of the comments I added were not clear enough. This ismckay2002-01-011-8/+8
| | | | a combination of my words and his. We will stop fiddling now. :-)
* The previous fix caused cp to emit spurious warnings under somemckay2001-12-231-22/+26
| | | | | | | circumstances. This is a reworked version of the same fix, that does not have this defect, and which fixes some style bugs at the same time. Bug reported and fix reviewed by: bde
* Preserve directory timestamps with -p. Allow non-empty read-onlymckay2001-12-111-11/+39
| | | | | | | | | | directories to be copied. Apply umask to newly created directories when -p is not specified. PR: 27970 PR: 31633 MFC after: 4 days
* Add more headers that are required with -fno-builtin (stdlib and strings)des2001-06-191-0/+1
|
* Removed the broken code which claimed to lose the set[ug]id bits inbde2001-06-111-8/+0
| | | | | | | | | | | | | | | | | | | | | the !(pflag && setfile()) case for regular files unless the copy is owned by the same user and group. These bits have already been lost (or never gained) in the correct way. The code didn't actually lose the bits; it depended on them being lost already (apparently in all cases) and attempted to gain them as necessary, but it often gained them (and sometimes collateral bits) when wrong: - pflag && setfile() == 0 case (i.e., for a successful cp -p): setfile() copies all the attributes as correctly as possible (as specified by POSIX), and we sometimes messed up the up the mode by setting it again. Also, if the file is immutable, then setting the mode again gave spurious errors (PR 20646). - !pflag case. If the target is created, POSIX requires it to not have the set[ug]id bits, but we sometimes copied them from the source. If the target already exists, POSIX requires its mode to be unchanged, but we sometimes copied the whole mode from the source. PR: 20646 MFC after: 4 weeks
* Migrate from using MAXPATHLEN to MAX_PATH. Use strlcpy to copy theimp2001-05-161-3/+3
| | | | strings.
* brucifymharo1999-11-281-16/+16
| | | | Reviewed by: obrien
* brucify and move printf() to catch cases of special filesmharo1999-08-291-2/+2
|
* $Id$ -> $FreeBSD$peter1999-08-271-1/+1
|
* Add a verbose mode to show what files are being copied.mharo1999-08-261-3/+9
| | | | | | Idea taken from obrien. Reviewed by: obrien
* Add -W and fix the warning due to missing struct initializerkris1999-07-101-2/+2
|
* Various spelling/formatting changes.kris1999-05-081-2/+2
| | | | Submitted by: Philippe Charnier <charnier@xp11.frmug.org>
* First set of fixes to keep egcs happy. These include {} around singleimp1999-04-251-2/+3
| | | | | | | | | | statement if blocks[*] when the else could be ambiguous, not defaulting to int type and removal of some unused variables. [*] This is explicitly allowed by style(9) when the single statement spans more than one line. Reviewed by: obrien, chuckr
* Print correct error message if we copy an unreadable directory.dt1998-06-091-1/+2
|
* Restore Lite-2 sccsid.charnier1998-05-131-2/+2
|
* Correct use of .Nm and other cosmetics. Add rcsid. Remove unused #inc.charnier1998-05-061-8/+4
|
* compare return value from getopt against -1 rather than EOF, per the finalimp1997-03-281-2/+2
| | | | posix standard on the topic.
* Revert $FreeBSD$ to $Id$peter1997-02-221-1/+1
|
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Merge Lite2 mods and -Wall cleaning.steve1996-12-141-5/+12
|
* Option -f implemented (remove + create)wosch1996-03-081-3/+5
| | | | | | | | | option -f and -i are exclusive respond `Y' is equal to `y' fix usage string remove isatty(3) check Reviewed by: pst
* Don't initialize udata, remove bogus case, fix usage stringpst1996-02-191-3/+2
|
* delete my last commitwosch1996-02-191-6/+3
| | | | Submitted by: pst, ache
* Option -f implemented (remove + create)wosch1996-02-181-4/+7
| | | | | | | option -f and -i are exclusive all flag variables initialized with zero respond `Y' is equal to `y' update usage string
* Remove trailing whitespace.rgrimes1995-05-301-17/+17
| | | | Reviewed by: phk
* Add braces to fix wrong if-if-else-if nesting that broke `cp -pR' forbde1995-04-021-4/+6
| | | | fifos.
* Fix bogus format string; fixes problem reported by Wolfram Schneider.dg1995-01-251-2/+2
|
* Don't strip off the last slash in the pathname "/". cp used tobde1994-12-301-18/+15
| | | | | | | | | | | | | | stat the pathname "" in order to decide that the pathname "/" is a directory. This caused `cp kernel /' to fail if the kernel has the POSIX behaviour of not allowing the pathname "" to be an alias for ".". It presumably also caused `cp /etc/motd /' to fail in the unlikely event that "." is not stat'able. Be more careful about concatenating pathnames: don't check that the pathname fits until prefixes have been discarded (the check was too strict). Print the final pathname in error messages. Terminate the target directory name properly for error messages. Don't add a slash between components if there is already a slash.
* Added $Id$dg1994-09-241-0/+2
|
* BSD 4.4 Lite bin Sourcesrgrimes1994-05-261-0/+441
OpenPOWER on IntegriCloud