uutils/coreutils

date: strftime flags propagate into composite specifiers (%-D, %-F, …)

Aberta

#11.657 aberto em 5 de abr. de 2026

 (4 comentários) (0 reação) (0 responsável)Rust (1.976 forks)batch import
U - datefuzzinggood first issue

Métricas do repositório

Stars
 (23.854 estrelas)
Métricas de merge de PR
 (Mesclagem média 5d 23h) (239 fundiu PRs em 30d)

Description

Summary

GNU date treats composite strftime specifiers (%D, %F, %T, %r, %R, %c, %x, %X) as atomic: flags like - apply to the whole expansion, not to inner sub-fields. uutils lets the - flag propagate into the inner %m, producing 6/15/24 instead of 06/15/24.

Found by a fuzz_date run.

Reproduction

$ LC_ALL=C TZ=UTC /usr/bin/date -d '2024-06-15' '+%-D'
06/15/24

$ LC_ALL=C TZ=UTC target/debug/coreutils date -d '2024-06-15' '+%-D'
6/15/24

Test

#[test]
fn test_date_strftime_flag_on_composite() {
    new_ucmd!()
        .env("LC_ALL", "C")
        .env("TZ", "UTC")
        .arg("-d")
        .arg("2024-06-15")
        .arg("+%-D")
        .succeeds()
        .stdout_is("06/15/24\n");
}

Guia do colaborador