Commit Graph

33 Commits

Author SHA1 Message Date
Warner Losh
fbbd9655e5 Renumber copyright clause 4
Renumber cluase 4 to 3, per what everybody else did when BSD granted
them permission to remove clause 3. My insistance on keeping the same
numbering for legal reasons is too pedantic, so give up on that point.

Submitted by:	Jan Schaumann <jschauma@stevens.edu>
Pull Request:	https://github.com/freebsd/freebsd/pull/96
2017-02-28 23:42:47 +00:00
Jilles Tjoelker
51492908f9 touch: Fix some subtle bugs related to NULL times fallback:
* Do not subvert vfs.timestamp_precision by reading the time and passing
  that to utimensat(). Instead, pass UTIME_NOW. A fallback to a NULL times
  pointer is no longer used.

* Do not ignore -a/-m if the user has write access but does not own the
  file. Leave timestamps unchanged using UTIME_OMIT and do not fall back to
  a NULL times pointer (which would set both timestamps) if that fails.

Reviewed by:	bde
2015-02-15 21:28:00 +00:00
Jilles Tjoelker
5faf2ae160 cp,mv,touch: Set timestamps with nanosecond precision.
This uses utimensat().
2015-01-24 13:50:13 +00:00
Eitan Adler
b268ae6440 Constify where appropriate.
Reported by:	emaste
Approved by:	cperciva (mentor)
MFC After:	3 days
2013-04-23 13:03:17 +00:00
Eitan Adler
4145c5f17e Cleanups to touch.c
- use const where appropriate
	- use static where appropriate
	- use explicit checks checks for error conditions

Reviewed by:	sbruno
Approved by:	cperciva (mentor)
Obtained by:	DragonFlyBSD
2013-04-23 13:03:14 +00:00
Jilles Tjoelker
587714504f touch: Add the -d option from POSIX.1-2008.
This is much like -t but with a different format which is ISO8601-like and
allows fractions of a second.

The precision is limited to microseconds because of utimes() and friends,
even though stat() returns nanoseconds.

MFC after:	10 days
2012-06-10 14:26:51 +00:00
Jaakko Heinonen
401c9fda42 Remove useless and potentially dangerous rw() function which tries to
update access and modification times by reading and writing the file.
chmod(2) in rw() doesn't help because utimes(2) allow owner and the
super-user to change times. Using just utimes(2) should be sufficient.

The -f option becomes no-op.

Reviewed by:	jilles
2012-02-04 13:37:31 +00:00
Joel Dahl
da52b4caaf Remove the advertising clause from UCB copyrighted files in usr.bin. This
is in accordance with the information provided at
ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change

Also add $FreeBSD$ to a few files to keep svn happy.

Discussed with:	imp, rwatson
2010-12-11 08:32:16 +00:00
Ed Schouten
99742a231f Change all our own code to use st_*tim instead of st_*timespec.
Also remove some local patches to diff(1) which are now unneeded.
2010-03-28 13:16:08 +00:00
Jaakko Heinonen
c64b097bfc - If lstat()/stat() fails with an error other than ENOENT, don't ignore
the error and assume that the file doesn't exist. Touch could return
  success with -c option even if the file existed and time was not set.
- If the first utimes_f() call fails with -A option, give up and don't
  continue trying to set times to current time. [1]
- Set exit status to 1 when setting of timestamps fails for a directory
  or symbolic link even though lstat()/stat() would succeed.
- Don't print bogus error message when rw() succeeds.

PR:		bin/112213
Submitted by:	jilles [1]
Reviewed by:	jilles
Approved by:	trasz (mentor)
2009-10-16 20:52:45 +00:00
Greg Lehey
1b54381b5a Usage: print base name of program.
-A flag: respect the -a and -m flags.
	 imply the -c flag.

Requested in principle by: brian
2007-04-10 07:22:30 +00:00
Greg Lehey
3481910d32 Add -A flag to adjust existing time stamps.
Print name by which program was started in usage() message.

MFC after:  2 weeks
2007-04-09 02:19:37 +00:00
Andrey A. Chernov
fb1a11d799 Don't set time to current, if set to specific time fails
PR:             92577
2006-01-31 02:21:18 +00:00
David Malone
f4ac32def2 ANSIify function definitions.
Add some constness to avoid some warnings.
Remove use register keyword.
Deal with missing/unneeded extern/prototypes.
Some minor type changes/casts to avoid warnings.

Reviewed by:	md5
2002-09-04 23:29:10 +00:00
Philippe Charnier
93b0017f88 Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
Juli Mallett
3a7fc8ce59 Remove local prototypes for main(). 2002-08-19 03:07:56 +00:00
Eric Melville
4d01a8fb5f Handle directories correctly.
PR:		40801
MFC after:	5 days
2002-07-23 04:54:57 +00:00
Warner Losh
3f330d7d1a remove __P 2002-03-22 01:42:45 +00:00
Mark Murray
1a9e1c9da1 WARNS=2 is going to be the default, so don't specify it. Use __FBSDID(). 2001-12-11 23:38:24 +00:00
David E. O'Brien
d39947fd41 blah, remove debugging code that crept in with last commit. 2001-09-23 00:11:48 +00:00
David E. O'Brien
842d1c6c96 Add the 'h' flag to operate on symlinks rather than what they point to. 2001-09-22 18:45:03 +00:00
Kris Kennaway
16dd925f16 Fix some trivial warnings and clamp down with WARNS=2
MFC after:	1 week
2001-05-26 22:39:33 +00:00
Bill Fumerola
9ef5c48bef Clean up some ambiguous nested if/elses. 1999-07-04 17:26:16 +00:00
Dag-Erling Smørgrav
ecb80458eb Brucify. 1999-05-12 06:57:07 +00:00
Dag-Erling Smørgrav
6b284d8ad2 Sync usage() with man page.
PR:		11539
Submitted by:	Ruslan Ermilov <ru@ucb.crimea.ua>
1999-05-11 14:23:16 +00:00
Daniel O'Callaghan
25c4d00840 Merge from 2_2 man page change. 1999-01-05 10:13:54 +00:00
Daniel O'Callaghan
34c7ff495d PR: 9323
Submitted by:	ishisone@sra.co.jp
Make touch handle years 2000-2038 in the obsoleted format, rather
than 1902-1969 as was previously the case with two digit year spec.
1999-01-05 09:58:02 +00:00
Bruce Evans
39470616b1 Don't assume that time_t is long. 1998-06-29 15:52:49 +00:00
Warner Losh
1c8af87873 compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-29 04:34:07 +00:00
Bruce Evans
eaa86f9d7f Don't use __dead or __pure in user code. They were obfuscations
for gcc >= 2.5 and no-ops for gcc >= 2.6.  Converted to use __dead2
or __pure2 where it wasn't already done, except in math.h where use
of __pure was mostly wrong.
1996-09-14 03:00:32 +00:00
Joerg Wunsch
d38ca307b7 PR # bin/274
> The command:
>
> touch -t 199504011200 testfile
>
> gives the error message:
>
> touch: out of range or illegal time specification: [[CC]YY]MMDDhhmm[.SS]

Submitted by:	mpp@legarto.minn.net (Mike Pritchard)
1995-07-08 16:47:47 +00:00
Rodney W. Grimes
7799f52a32 Remove trailing whitespace. 1995-05-30 06:41:30 +00:00
Rodney W. Grimes
9b50d90275 BSD 4.4 Lite Usr.bin Sources 1994-05-27 12:33:43 +00:00