logo

utils-std

Collection of commonly available Unix tools git clone https://anongit.hacktivis.me/git/utils-std.git
commit: ed86b3a7785e5ffdb522229e68bdf683b4c672c6
parent 2b5177fa20637891eeca9aa969e33ca45e5dceb9
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Thu,  5 Dec 2024 16:41:00 +0100

cmd/touch: add ignore for -f option

Diffstat:

Mcmd/touch.1.in18++++++++++++++++--
Mcmd/touch.c15++++++++++++++-
2 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/cmd/touch.1.in b/cmd/touch.1.in @@ -9,7 +9,7 @@ .Nd change file access and modification times .Sh SYNOPSIS .Nm -.Op Fl achm +.Op Fl acfhm .Op Fl d Ar isotime | Fl t Ar datetime | Fl r Ar ref_file .Ar file... .Sh DESCRIPTION @@ -25,8 +25,20 @@ is also given. .It Fl c Do not create .Ar file . +.It Fl f +Ignored. +coreutils and BusyBox never supported it, +.Ox +removed it in 2005, +.Nx +in 2011, +.Fx +in 2012. +.\" Let's not publicly document too much that illumos still supports it .It Fl d Ar isotime include(lib/iso_parse.mdoc) +.It Fl c +Ignored. .It Fl h Do not follow symlinks. .It Fl m @@ -73,6 +85,8 @@ IEEE Std 1003.1-2024 (“POSIX.1”) specification. .Pp .Fl h -is an extension. +and +.Fl f +are extensions. .Sh AUTHORS .An Haelwenn (lanodan) Monnier Aq Mt contact+utils@hacktivis.me diff --git a/cmd/touch.c b/cmd/touch.c @@ -125,7 +125,7 @@ main(int argc, char *argv[]) int utimensat_flags = 0; int c = 0; - while((c = getopt(argc, argv, ":achmr:t:d:")) != -1) + while((c = getopt(argc, argv, ":acfhmr:t:d:")) != -1) { const char *errstr = NULL; @@ -137,6 +137,19 @@ main(int argc, char *argv[]) case 'c': FIELD_CLR(open_flags, O_CREAT); break; + case 'f': + /* Legacy from BSD, ignored + * + * As of 2024-12-05: + * + * coreutils: Ignored since first commit in 1992 + * OpenBSD: Ignored since OpenBSD 3.8 (commit in 2005) + * NetBSD: Ignored since NetBSD 6.0 (commit in 2011) + * FreeBSD: Ignored since FreeBSD 10 (commit in 2012) + * BusyBox: Ignored (and not documented) + * illumos: Ignored in SystemV emulation, supported otherwise + */ + break; case 'h': FIELD_SET(open_flags, O_NOFOLLOW); FIELD_SET(utimensat_flags, AT_SYMLINK_NOFOLLOW);