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.
Not a problem (solved / not affected / works already)
arch: no repeatable options
base32: fully handled, see base32/base64/basenc: implement and test proper flag parsing #6007
base64: fully handled, see base32/base64/basenc: implement and test proper flag parsing #6007
basename: fully handled, see basename: Fix handling of repeated flags/arguments #6018
basenc: fully handled, see base32/base64/basenc: implement and test proper flag parsing #6007
cat: at least -u is broken, see cat: Handle all flags correctly #6034
chcon: at least -v is broken, see chcon: Handle repeated flags and overrides between --no-XXX and --XXX #6039
cksum: at least --base64 is broken, see cksum: permit repeated flags, handle overrides correctly, implement base64 output #6041
cut: works already
dd: Seems to already work, not gonna touch it.
df: works already
dir: just defers to ls
dircolors: at least -p is broken, see dircolors: accept repeated flags #6150
dirname: at least -z is broken, see dirname: accept repeated flag #6151
env: at least -i is broken, fixed by id: Handle repeated flags, recognize conflict between pretty-print and passwd file-entry #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 shuf: include all echo args, not just the last #5978 and shuf: treat -e as a flag, not as a multi-value arg #5989
tr: fully handled, see tr: Correctly handle multiple appearances of flag-args #6006
true: has no flags/args
whoami: no repeatable options
yes: no repeatable options
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 brokenchmod: not considered yetchown: not considered yetchroot: not considered yetcomm: at least-1is brokencp: at least-ais handled correctlycsplit: at least-kis brokendate: at least--resolutionis broken: date: implement --resolution #6143 , rest is fixed by date: fix interaction of flags, fix issues around --set #6142du: at least-sis brokenecho: at least-nis brokenfmt: at least-cis broken, fixed by fmt: accept repeated arguments #6355fold: at least-bis brokenid: at least-uis brokeninstall: at least-bis brokenjoin: at least-zis brokenkill: at least-lis brokenln: not considered yetlogname: not considered yetls: not considered yetmkdir: not considered yetmkfifo: not considered yetmknod: not considered yetmktemp: not considered yetmore: not considered yetmv: not considered yetnice: not considered yetnl: not considered yetnohup: not considered yetnproc: not considered yetnumfmt: not considered yetod: not considered yetpaste: not considered yetpathchk: not considered yetpinky: not considered yetpr: not considered yetprintenv: not considered yetprintf: not considered yetptx: not considered yetpwd: not considered yetreadlink: not considered yetrealpath: not considered yetrm: not considered yetrmdir: not considered yetruncon: not considered yetseq: not considered yetshred: not considered yetsleep: not considered yetsort: at least--sort=month --sort=numericis brokensplit: not considered yetstat: not considered yetstdbuf: not considered yetstty: not considered yetsum: not considered yetsync: not considered yettac: not considered yettail: not considered yettee: not considered yettest: not considered yettimeout: not considered yettouch: not considered yettruncate: not considered yettsort: not considered yettty: not considered yetuname: not considered yetunexpand: not considered yetuniq: not considered yetunlink: not considered yetuptime: not considered yetusers: not considered yetvdir: not considered yetwc: not considered yetwho: not considered yetNot a problem (solved / not affected / works already)
arch: no repeatable optionsbase32: fully handled, see base32/base64/basenc: implement and test proper flag parsing #6007base64: fully handled, see base32/base64/basenc: implement and test proper flag parsing #6007basename: fully handled, see basename: Fix handling of repeated flags/arguments #6018basenc: fully handled, see base32/base64/basenc: implement and test proper flag parsing #6007cat: at least-uis broken, see cat: Handle all flags correctly #6034chcon: at least-vis broken, see chcon: Handle repeated flags and overrides between --no-XXX and --XXX #6039cksum: at least--base64is broken, see cksum: permit repeated flags, handle overrides correctly, implement base64 output #6041cut: works alreadydd: Seems to already work, not gonna touch it.df: works alreadydir: just defers tolsdircolors: at least-pis broken, see dircolors: accept repeated flags #6150dirname: at least-zis broken, see dirname: accept repeated flag #6151env: at least-iis broken, fixed by id: Handle repeated flags, recognize conflict between pretty-print and passwd file-entry #6288expand: works alreadyexpr: works completely differentlyfactor: already worksfalse: has no flags/argsgroups: has no flags/argshashsum: not a GNU toolhead: works alreadyhostid: has no flags/argshostname: works, BUT INCOMPLETE AND FRAGILElink: has no flags/argsshuf: fully handled, see shuf: include all echo args, not just the last #5978 and shuf: treat -e as a flag, not as a multi-value arg #5989tr: fully handled, see tr: Correctly handle multiple appearances of flag-args #6006true: has no flags/argswhoami: no repeatable optionsyes: no repeatable options