• [^] # Re: Super journal... que je lirai plus tard

    Posté par (site web personnel, Mastodon) . En réponse au journal rétrospective sur la mise en page en console. Évalué à 4.

    Donc soit il y a un problème dans la page de manuel, soit je n'ai pas compris ce que sont le goal et le maximum.

    Je ne me suis pas attardé sur cet aspect parce-que la syntaxe varie d'une implémentation à une autre et que pour des raisons de portabilité il vaut mieux rester au dénominateur commun : -w Mais s'il y a beaucoup de demandes de précisions (auxquelles je tenterai de répondre sans prétendre avoir la maîtrise ultime vu que je n'utilise pas toutes les options) je compulserai dans un épisode (journal) complémentaire.

    Pour en revenir à la question, le maximum est le mur infranchissable... (dans le contexte des quotas c'est l'équivalent du « hard limit » je dirai.) D'après les manpages, quand on indique max seul, le programme doit en déduire le goal (semble que BSD utilise la même valeur, tandis que GNU calcule que ça fait 93%.)
    Par contre, le goal est la limite désirée, désirable mais légèrement déspassable... (donc l'équivalent du « soft limit » quand on fait l'analogie avec la gestion des quotas.) De même, quand on indique goal seul, le programme doit en déduire le max (BSD fait plus dix et GNU fait plus sept pour cent.)
    Quand on spécifie les deux, le programme va essayer de couper un peu après (ou juste à) goal et toujours avant max !
    Test avec une forme commune du Lorem (il faudra tester plusieurs valeurs pour trouver celles qui sont les plus parlantes)

    $ fmt -v
    fmt: illegal option -- v
    usage: fmt [-cmps] [-d chars] [-l num] [-t num]
     [-w width | -width | goal [maximum]] [file ...]
    Options: -c center each line instead of formatting
     -d <chars> double-space after <chars> at line end
     -l <n> turn each <n> spaces at start of line into a tab
     -m try to make sure mail header lines stay separate
     -n format lines beginning with a dot
     -p allow indented paragraphs
     -s coalesce whitespace inside lines
     -t <n> have tabs every <n> columns
     -w <n> set maximum width to <n>
     goal set target width to goal
    # mon fichier de test
    $ wc lorem
     1 69 446 lorem
    ## soft 52 (soit max vers 62?)
    # BSD: fmt 52 lorem
    # GNU: fmt -g 52 lorem
    # 1 2 3 4 5 G 6 m
    #23456789012345678901234567890123456789012345678901234567890123456789
    $ fmt 52 lorem
    Lorem ipsum dolor sit amet, consectetur adipiscing
    elit, sed do eiusmod tempor incididunt ut labore et
    dolore magna aliqua. Ut enim ad minim veniam, quis
    nostrud exercitation ullamco laboris nisi ut aliquip
    ex ea commodo consequat. Duis aute irure dolor in
    reprehenderit in voluptate velit esse cillum dolore
    eu fugiat nulla pariatur. Excepteur sint occaecat
    cupidatat non proident, sunt in culpa qui officia
    deserunt mollit anim id est laborum.
    ## soft 47 (soit max vers 57?)
    # 1 2 3 4 G 5 m 6
    #23456789012345678901234567890123456789012345678901234567890123456789
    $ fmt 47 lorem
    Lorem ipsum dolor sit amet, consectetur adipiscing
    elit, sed do eiusmod tempor incididunt ut labore
    et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi
    ut aliquip ex ea commodo consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit
    esse cillum dolore eu fugiat nulla pariatur.
    Excepteur sint occaecat cupidatat non proident,
    sunt in culpa qui officia deserunt mollit anim
    id est laborum.
    ## hard 65 (soit but vers 55?)
    # BSD: fmt -w 65 lorem
    # GNU: fmt -w 65 lorem
    # 1 2 3 4 5 g 6 M
    #23456789012345678901234567890123456789012345678901234567890123456789
    $ fmt -w 65 lorem
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
    enim ad minim veniam, quis nostrud exercitation ullamco laboris
    nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
    reprehenderit in voluptate velit esse cillum dolore eu fugiat
    nulla pariatur. Excepteur sint occaecat cupidatat non proident,
    sunt in culpa qui officia deserunt mollit anim id est laborum.
    ## hard 57 (soit but vers 47?)
    # 1 2 3 4 g 5 M 6
    #23456789012345678901234567890123456789012345678901234567890123456789
    $ fmt -w 57 lorem
    Lorem ipsum dolor sit amet, consectetur adipiscing elit,
    sed do eiusmod tempor incididunt ut labore et dolore
    magna aliqua. Ut enim ad minim veniam, quis nostrud
    exercitation ullamco laboris nisi ut aliquip ex ea
    commodo consequat. Duis aute irure dolor in reprehenderit
    in voluptate velit esse cillum dolore eu fugiat nulla
    pariatur. Excepteur sint occaecat cupidatat non proident,
    sunt in culpa qui officia deserunt mollit anim id est
    laborum.
    ## intervalle 48--52
    # BSD: fmt 48 52 lorem
    # GNU: fmt -w 52 -g 48 lorem
    # GNU: fmt -g 48 -w 52 lorem
    # 1 2 3 4 G 5 M 6
    #23456789012345678901234567890123456789012345678901234567890123456789
    $ fmt 48 52 lorem
    Lorem ipsum dolor sit amet, consectetur adipiscing
    elit, sed do eiusmod tempor incididunt ut labore
    et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut
    aliquip ex ea commodo consequat. Duis aute irure
    dolor in reprehenderit in voluptate velit esse
    cillum dolore eu fugiat nulla pariatur. Excepteur
    sint occaecat cupidatat non proident, sunt in culpa
    qui officia deserunt mollit anim id est laborum.
    ## intervalle 47--54
    # 1 2 3 4 G 5 M 6
    #23456789012345678901234567890123456789012345678901234567890123456789
    $ fmt 47 54 lorem
    Lorem ipsum dolor sit amet, consectetur adipiscing
    elit, sed do eiusmod tempor incididunt ut labore
    et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi
    ut aliquip ex ea commodo consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit
    esse cillum dolore eu fugiat nulla pariatur.
    Excepteur sint occaecat cupidatat non proident,
    sunt in culpa qui officia deserunt mollit anim
    id est laborum.

    Bon, il y a quand même des lignes où il se permet de descendre un ou deux caractères en dessous de goal ici.

    "It is seldom that liberty of any kind is lost all at once." ― David Hume