Michael Forney
3c12b287ec
touch: Avoid unnecessary call to stat
...
Now, we first try a utimensat. If it succeeds, we are done, if not (and no -c
flag), create the file, then set the times with futimens.
2016-07-09 10:17:16 +01:00
Michael Forney
2e5f1281ed
touch: Use special UTIME_NOW and UTIME_OMIT values
...
This allows users to touch files they have write access to, but aren't the
owner.
Also, remove utime.h include (not necessary since
4132561c17
), and make sure to check the return
value of localtime (potentially preventing a NULL pointer derefence).
2016-07-09 10:17:16 +01:00
Michael Forney
36a0a6cd92
touch: Remove useless variable
...
The only possible return values of stat are 0 or -1, so it doesn't make sense to
store the return value in a variable to make sure it is not positive.
2016-07-09 10:17:16 +01:00
Michael Forney
0941c9ab2c
touch: Respect caller's umask
...
Currently, if the caller has a umask of 002 or 000, the file gets created as 644
anyway.
Also, add O_WRONLY to the open call, since POSIX says that "Applications shall
specify exactly one of the first five values (file access modes) below in the
value of oflag".
2016-07-09 10:17:16 +01:00
Hiltjo Posthuma
8d96afd4fb
touch: make invalid date an error and fix uninitialised value
...
reproduce: touch -t 12345678 mytralala
would only give a warning and use uninitialised time values. The proper
way is to treat it as an error. Clear the "struct tm" and kill some lines
just in case.
2016-04-15 19:53:01 +01:00
Quentin Rameau
6e7743eb56
Cleanup usage() across sbase
...
Some tools didn't use argv0 for tool name, or usage() at all.
2015-12-21 18:07:25 +00:00
sin
2366164de7
No need for semicolon after ARGEND
...
This is also the style used in Plan 9.
2015-11-01 10:18:55 +00:00
Michael Forney
b4adb4bb87
touch: Use both atime and mtime of reference file
2015-05-16 13:34:00 +01:00
Michael Forney
4132561c17
touch: Handle nanosecond timestamps
2015-05-16 13:34:00 +01:00
FRIGN
95fb7364a8
Audit touch(1)
...
Only minor things, as I already worked heavily on this tool a while
ago.
Fix style in the main loop and wording in the manpage.
2015-03-17 23:38:09 +01:00
Hiltjo Posthuma
0c17cd0fb3
staticize some functions
2015-03-07 13:33:39 +01:00
FRIGN
d02327d0eb
Get rid of the %Z-flag in strptime-format
...
We don't actually need it for Zulu-time and handroll it.
We can add the gmt-offset to hour without range-checking, because
the implementation will take care of it in mktime().
2015-02-19 19:27:17 +01:00
FRIGN
0f4192e6b2
Update usage and add actual d-parsing to touch(1)
2015-02-19 18:58:19 +01:00
FRIGN
14b1db88bf
Correct error-handling in touch(1)
2015-02-19 18:56:59 +01:00
FRIGN
b00a00703f
Add proper d- and t-flag support to touch(1)
...
except the [,frac], [.frac] respectively, but that's ok.
2015-02-19 18:54:56 +01:00
FRIGN
31572c8b0e
Clean up #includes
2015-02-14 21:12:23 +01:00
sin
8f5d77d8c7
Do not rely on the underlying type of time_t in date(1) and touch(1)
...
Use LLONG_MAX unconditionally. In practice this only causes trouble
with systems that are not 2038 ready.
2015-02-08 23:45:03 +00:00
FRIGN
d6b3890af6
Add r-flag to touch(1), refactor manpage and code
...
and mark it as finished in README.
2015-02-09 00:41:57 +01:00
FRIGN
27b770c02c
Adjust some limits to more flexibility for strtonum
2015-02-01 01:24:03 +01:00
FRIGN
fd562481f3
Convert estrto{l, ul} to estrtonum
...
Enough with this insanity!
2015-01-30 16:52:44 +01:00
sin
72f43adc54
touch: Style fix
2015-01-20 11:24:37 +00:00
sin
45c54bff0b
touch: Add support for -a and -m
...
Update the manpage.
2015-01-20 11:16:17 +00:00
FRIGN
1436518f9d
Use < 0 instead of == -1
2014-11-19 20:09:29 +00:00
FRIGN
ec8246bbc6
Un-boolify sbase
...
It actually makes the binaries smaller, the code easier to read
(gems like "val == true", "val == false" are gone) and actually
predictable in the sense of that we actually know what we're
working with (one bitwise operator was quite adventurous and
should now be fixed).
This is also more consistent with the other suckless projects
around which don't use boolean types.
2014-11-14 10:54:20 +00:00
FRIGN
7d2683ddf2
Sort includes and more cleanup and fixes in util/
2014-11-14 10:54:10 +00:00
FRIGN
eee98ed3a4
Fix coding style
...
It was about damn time. Consistency is very important in such a
big codebase.
2014-11-13 18:08:43 +00:00
sin
0c5b7b9155
Stop using EXIT_{SUCCESS,FAILURE}
2014-10-02 23:46:59 +01:00
Hiltjo Posthuma
953ebf3573
code style
...
Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
2014-06-01 18:02:30 +01:00
sin
b5a511dacf
Exit with EXIT_SUCCESS/EXIT_FAILURE instead of 0 and 1
...
Fixed for consistency purposes.
2013-10-07 16:44:22 +01:00
sin
428cd4fe84
None of these work without the proper # of arguments so print usage
2013-10-05 13:51:45 +01:00
stateless
7216a53a7e
Remove unnecessary exit(1) in usage()
...
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-06-19 19:58:19 +02:00
Christoph Lohmann
4d38f60685
Eliminating the getopt disgrace.
2013-06-14 20:20:47 +02:00
Connor Lane Smith
444de72fd3
touch: posix open
2011-06-18 06:43:10 +01:00
Connor Lane Smith
954106050f
rename estrtol
2011-06-10 14:55:01 +01:00
Connor Lane Smith
7c251bcd4f
refactor strnum
2011-06-10 05:41:40 +01:00
Connor Lane Smith
d90ced2047
consistent error check
2011-06-04 12:20:41 +01:00
Connor Lane Smith
3172b979dc
pwd -LP
2011-05-28 15:37:42 +01:00
Connor Lane Smith
262f357fdd
add head
2011-05-25 11:42:17 +01:00
Connor Lane Smith
f458397d5a
no, getopt.h is gnu specific
2011-05-24 18:58:36 +01:00
pancake
da547fb294
add missing #include <getopt.h>
...
do not override CC in config.mk
2011-05-24 14:34:26 +02:00
Connor Lane Smith
8c76381e91
add rm, thanks rob
2011-05-24 01:52:28 +01:00
Connor Lane Smith
9714d7b1d3
getopt
2011-05-24 01:13:34 +01:00
Connor Lane Smith
474ee643ed
add sleep & date, thanks kamil
2011-05-23 19:00:31 +01:00
Connor Lane Smith
8e26716a5a
initial commit
2011-05-23 02:36:34 +01:00