aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/touch/touch.c
Commit message (Collapse)AuthorAgeFilesLines
* touch: Allow setting the timestamp to -1.Dag-Erling Smørgrav2024-03-271-7/+14
| | | | | | | | | | | | Note that VFS internally interprets a timestamp of -1 as “do not set”, so this has no effect, but at least touch won't incorrectly reject the given date / time (1969-12-31 23:59:59 UTC) as invalid. While here, fix some style issues. MFC after: 1 week Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D44504
* Remove copyright strings ifdef'd outWarner Losh2023-11-271-8/+0
| | | | | | | | | | | We've ifdef'd out the copyright strings for some time now. Go ahead and remove the ifdefs. Plus whatever other detritis was left over from other recent removals. These copyright strings are present in the comments and are largely from CSRG's attempt at adding their copyright to every binary file (which modern interpretations of the license doesn't require). Sponsored by: Netflix
* usr.bin: Remove ancient SCCS tags.Warner Losh2023-11-271-3/+0
| | | | | | | | Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script. Sponsored by: Netflix
* Remove $FreeBSD$: two-line .c patternWarner Losh2023-08-161-3/+0
| | | | Remove /^#include\s+<sys/cdefs.h>.*$\n\s+__FBSDID\("\$FreeBSD\$"\);\n/
* touch: don't leak descriptor if fstat(2) failsMariusz Zaborski2022-03-121-1/+9
| | | | | | | | | | If fstat(2) fails the close(2) won't be called, which will leak the file descriptor. The idea was borrowed from OpenBSD, where similar patch was applied for futimens(2). MFC after: 1 week
* General further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-201-1/+3
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Notes: svn path=/head/; revision=326025
* Renumber copyright clause 4Warner Losh2017-02-281-1/+1
| | | | | | | | | | | | 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 Notes: svn path=/head/; revision=314436
* touch: Fix some subtle bugs related to NULL times fallback:Jilles Tjoelker2015-02-151-28/+11
| | | | | | | | | | | | | | | * 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 Notes: svn path=/head/; revision=278817
* cp,mv,touch: Set timestamps with nanosecond precision.Jilles Tjoelker2015-01-241-41/+38
| | | | | | | This uses utimensat(). Notes: svn path=/head/; revision=277645
* Constify where appropriate.Eitan Adler2013-04-231-2/+2
| | | | | | | | | Reported by: emaste Approved by: cperciva (mentor) MFC After: 3 days Notes: svn path=/head/; revision=249806
* Cleanups to touch.cEitan Adler2013-04-231-20/+22
| | | | | | | | | | | | | - 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 Notes: svn path=/head/; revision=249805
* touch: Add the -d option from POSIX.1-2008.Jilles Tjoelker2012-06-101-3/+55
| | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=236852
* Remove useless and potentially dangerous rw() function which tries toJaakko Heinonen2012-02-041-62/+6
| | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=230979
* Remove the advertising clause from UCB copyrighted files in usr.bin. ThisJoel Dahl2010-12-111-4/+0
| | | | | | | | | | | | 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 Notes: svn path=/head/; revision=216370
* Change all our own code to use st_*tim instead of st_*timespec.Ed Schouten2010-03-281-6/+6
| | | | | | | Also remove some local patches to diff(1) which are now unneeded. Notes: svn path=/head/; revision=205793
* - If lstat()/stat() fails with an error other than ENOENT, don't ignoreJaakko Heinonen2009-10-161-4/+11
| | | | | | | | | | | | | | | | | | 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) Notes: svn path=/head/; revision=198175
* Usage: print base name of program.Greg Lehey2007-04-101-20/+47
| | | | | | | | | | -A flag: respect the -a and -m flags. imply the -c flag. Requested in principle by: brian Notes: svn path=/head/; revision=168571
* Add -A flag to adjust existing time stamps.Greg Lehey2007-04-091-10/+52
| | | | | | | | | Print name by which program was started in usage() message. MFC after: 2 weeks Notes: svn path=/head/; revision=168525
* Don't set time to current, if set to specific time failsAndrey A. Chernov2006-01-311-0/+1
| | | | | | | PR: 92577 Notes: svn path=/head/; revision=155082
* ANSIify function definitions.David Malone2002-09-041-18/+6
| | | | | | | | | | | | 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 Notes: svn path=/head/; revision=102944
* Replace various spelling with FALLTHROUGH which is lint()ablePhilippe Charnier2002-08-251-1/+1
| | | | Notes: svn path=/head/; revision=102412
* Remove local prototypes for main().Juli Mallett2002-08-191-1/+0
| | | | Notes: svn path=/head/; revision=102084
* Handle directories correctly.Eric Melville2002-07-231-3/+6
| | | | | | | | PR: 40801 MFC after: 5 days Notes: svn path=/head/; revision=100546
* remove __PWarner Losh2002-03-221-6/+6
| | | | Notes: svn path=/head/; revision=92922
* WARNS=2 is going to be the default, so don't specify it. Use __FBSDID().Mark Murray2001-12-111-5/+5
| | | | Notes: svn path=/head/; revision=87706
* blah, remove debugging code that crept in with last commit.David E. O'Brien2001-09-231-1/+0
| | | | Notes: svn path=/head/; revision=83846
* Add the 'h' flag to operate on symlinks rather than what they point to.David E. O'Brien2001-09-221-5/+15
| | | | Notes: svn path=/head/; revision=83826
* Fix some trivial warnings and clamp down with WARNS=2Kris Kennaway2001-05-261-2/+7
| | | | | | | MFC after: 1 week Notes: svn path=/head/; revision=77247
* Clean up some ambiguous nested if/elses.Bill Fumerola1999-07-041-1/+2
| | | | Notes: svn path=/head/; revision=48566
* Brucify.Dag-Erling Smørgrav1999-05-121-2/+1
| | | | Notes: svn path=/head/; revision=47042
* Sync usage() with man page.Dag-Erling Smørgrav1999-05-111-2/+2
| | | | | | | | PR: 11539 Submitted by: Ruslan Ermilov <ru@ucb.crimea.ua> Notes: svn path=/head/; revision=47016
* Merge from 2_2 man page change.Daniel O'Callaghan1999-01-051-1/+1
| | | | Notes: svn path=/head/; revision=42310
* PR: 9323Daniel O'Callaghan1999-01-051-1/+4
| | | | | | | | | 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. Notes: svn path=/head/; revision=42307
* Don't assume that time_t is long.Bruce Evans1998-06-291-2/+6
| | | | Notes: svn path=/head/; revision=37259
* compare return value from getopt against -1 rather than EOF, per the finalWarner Losh1997-03-291-1/+1
| | | | | | | posix standard on the topic. Notes: svn path=/head/; revision=24360
* Don't use __dead or __pure in user code. They were obfuscationsBruce Evans1996-09-141-1/+1
| | | | | | | | | 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. Notes: svn path=/head/; revision=18286
* PR # bin/274Joerg Wunsch1995-07-081-1/+1
| | | | | | | | | | | | | | | > 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) Notes: svn path=/head/; revision=9446
* Remove trailing whitespace.Rodney W. Grimes1995-05-301-1/+1
| | | | Notes: svn path=/head/; revision=8874
* BSD 4.4 Lite Usr.bin SourcesRodney W. Grimes1994-05-271-0/+342
Notes: svn path=/cvs2svn/branches/CHRISTOS/; revision=1590