clarify code:
add comments. don't get the length of each arg passed, only the last one. check against == or != NULL rather than using a pointer value as truth test.
This commit is contained in:
parent
5573db3f0b
commit
6188858ae1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=91614
@ -53,7 +53,7 @@ static const char rcsid[] =
|
|||||||
int
|
int
|
||||||
main(int argc __unused, char *argv[])
|
main(int argc __unused, char *argv[])
|
||||||
{
|
{
|
||||||
int nflag;
|
int nflag; /* if not set, output a trailing newline. */
|
||||||
|
|
||||||
/* This utility may NOT do getopt(3) option parsing. */
|
/* This utility may NOT do getopt(3) option parsing. */
|
||||||
if (*++argv && !strcmp(*argv, "-n")) {
|
if (*++argv && !strcmp(*argv, "-n")) {
|
||||||
@ -63,12 +63,25 @@ main(int argc __unused, char *argv[])
|
|||||||
else
|
else
|
||||||
nflag = 0;
|
nflag = 0;
|
||||||
|
|
||||||
while (argv[0]) {
|
while (argv[0] != NULL) {
|
||||||
size_t len = strlen(argv[0]);
|
|
||||||
|
|
||||||
if (len >= 2 && !argv[1] && argv[0][len - 2] == '\\' && argv[0][len - 1] == 'c') {
|
/*
|
||||||
argv[0][len - 2] = '\0';
|
* If the next argument is NULL then this is this
|
||||||
nflag = 1;
|
* the last argument, therefore we need to check
|
||||||
|
* for a trailing \c.
|
||||||
|
*/
|
||||||
|
if (argv[1] == NULL) {
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
len = strlen(argv[0]);
|
||||||
|
/* is there room for a '\c' and is there one? */
|
||||||
|
if (len >= 2 &&
|
||||||
|
argv[0][len - 2] == '\\' &&
|
||||||
|
argv[0][len - 1] == 'c') {
|
||||||
|
/* chop it and set the no-newline flag. */
|
||||||
|
argv[0][len - 2] = '\0';
|
||||||
|
nflag = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
(void)printf("%s", argv[0]);
|
(void)printf("%s", argv[0]);
|
||||||
if (*++argv)
|
if (*++argv)
|
||||||
|
Loading…
Reference in New Issue
Block a user