Allow repeated flags much more often
Open
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 24.1k
- Forks
- 2k
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 365
Description
If seems that there are many cases where we define self-conflicts, but GNU accepts repeated arguments. This is especially unnecessary for boolean flags. Let's fix that! This issue tracks progress for all utils.
-
chgrp: at least-vis broken -
chmod: not considered yet -
chown: not considered yet -
chroot: not considered yet -
comm: at least-1is broken -
cp: at least-ais handled correctly -
csplit: at least-kis broken -
date: at least--resolutionis broken: #6143 , rest is fixed by #6142 -
du: at least-sis broken -
echo: at least-nis broken -
fmt: at least-cis broken, fixed by #6355 -
fold: at least-bis broken -
id: at least-uis broken -
install: at least-bis broken -
join: at least-zis broken -
kill: at least-lis broken -
ln: not considered yet -
logname: not considered yet -
ls: not considered yet -
mkdir: not considered yet -
mkfifo: not considered yet -
mknod: not considered yet -
mktemp: not considered yet -
more: not considered yet -
mv: not considered yet -
nice: not considered yet -
nl: not considered yet -
nohup: not considered yet -
nproc: not considered yet -
numfmt: not considered yet -
od: not considered yet -
paste: not considered yet -
pathchk: not considered yet -
pinky: not considered yet -
pr: not considered yet -
printenv: not considered yet -
printf: not considered yet -
ptx: not considered yet -
pwd: not considered yet -
readlink: not considered yet -
realpath: not considered yet -
rm: not considered yet -
rmdir: not considered yet -
runcon: not considered yet -
seq: not considered yet -
shred: not considered yet -
sleep: not considered yet -
sort: at least--sort=month --sort=numericis broken -
split: not considered yet -
stat: not considered yet -
stdbuf: not considered yet -
stty: not considered yet -
sum: not considered yet -
sync: not considered yet -
tac: not considered yet -
tail: not considered yet -
tee: not considered yet -
test: not considered yet -
timeout: not considered yet -
touch: not considered yet -
truncate: not considered yet -
tsort: not considered yet -
tty: not considered yet -
uname: not considered yet -
unexpand: not considered yet -
uniq: not considered yet -
unlink: not considered yet -
uptime: not considered yet -
users: not considered yet -
vdir: not considered yet -
wc: not considered yet -
who: not considered yet
Not a problem (solved / not affected / works already)
-
arch: no repeatable options -
base32: fully handled, see #6007 -
base64: fully handled, see #6007 -
basename: fully handled, see #6018 -
basenc: fully handled, see #6007 -
cat: at least-uis broken, see #6034 -
chcon: at least-vis broken, see #6039 -
cksum: at least--base64is broken, see #6041 -
cut: works already -
dd: Seems to already work, not gonna touch it. -
df: works already -
dir: just defers tols -
dircolors: at least-pis broken, see #6150 -
dirname: at least-zis broken, see #6151 -
env: at least-iis broken, fixed by #6288 -
expand: works already -
expr: works completely differently -
factor: already works -
false: has no flags/args -
groups: has no flags/args -
hashsum: not a GNU tool -
head: works already -
hostid: has no flags/args -
hostname: works, BUT INCOMPLETE AND FRAGILE -
link: has no flags/args -
shuf: fully handled, see #5978 and #5989 -
tr: fully handled, see #6006 -
true: has no flags/args -
whoami: no repeatable options -
yes: no repeatable options
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin with the unchecked utility entries in the issue and compare their repeated-flag behavior with GNU, starting with the explicitly broken flags. Treat each utility as complete when repeated flags no longer conflict where GNU accepts them, then update the checklist with the relevant result or linked work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100