Re: [PATCH] uuidparse: add new command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 06/19/2017 03:03 PM, Ruediger Meier wrote:
> On Monday 19 June 2017, J William Piggott wrote:
>> On 06/19/2017 05:55 AM, Ruediger Meier wrote:
>>> On Monday 19 June 2017, Karel Zak wrote:
>>>> On Mon, Jun 19, 2017 at 11:22:48AM +0200, Ruediger Meier wrote:
>>
>>  -->8
>>
>> On a related note: could we add USAGE_*_NN with no trailing newline
>> for use with puts() on new/converted commands? For example:
>>
>> #define USAGE_HEADER        _("\nUsage:\n")
>> #define USAGE_HEADER_NN     _("\nUsage:")
> 
> My plan is to remove the trailing newline from USAGE_HEADER and friends 
> when no usage() funtion needs to use fputs() anymore.

I got the impression from the other discussion that legacy apps would
continue to use fputs() so that their strings would not have to be
modified. But I guess they won't need to use it for USAGE_*, if that is
what you mean.

Removing the trailing newline from USAGE_* will mean changing
fputs(USAGE_*) to puts(USAGE_*) in every command project wide, yes?


>>>>> BTW currently I'm going through the whole project to correct all
>>>>> commands where we spam the whole usage in case of errors.
>>
>> I had that on my todo list, but I'll gladly let you handle it ;)
>> Here are a few more to add to your list:
>>
>> grep -ErnI 'usage\(stderr' | sort
> 
> Yes it's a lot of work.
> 
> To get it done a bit faster I will just use generic "bad usage" messages 
> like this in delpart.
> 
> -       if (argc != 3)
> -               usage(stderr);
> +       if (argc != 3) {
> +               warnx(_("bad usage"));
> +               errtryhelp(EXIT_FAILURE);
> +       }
> 
> This will generate followup-todos: grepping for "bad usage" to improve 
> error messages.
> 
>> disk-utils/addpart.c:53:                usage(stderr);
>> disk-utils/blockdev.c:229:              usage(stderr);
>> disk-utils/blockdev.c:271:              usage(stderr);
>> disk-utils/blockdev.c:318:              usage(stderr);
>> disk-utils/blockdev.c:335:              usage(stderr);
>> disk-utils/delpart.c:53:                usage(stderr);
>> disk-utils/fdformat.c:219:              usage(stderr);
>> disk-utils/fdisk.c:1003:                usage(stderr);
>> disk-utils/fdisk.c:855:                 usage(stderr);
>> disk-utils/fdisk.c:884:                 usage(stderr);
>> disk-utils/fdisk.c:932:                 usage(stderr);
>> disk-utils/fdisk.c:989:                 usage(stderr);
>> disk-utils/fsck.c:1539:                 usage(stderr);
>> disk-utils/fsck.c:1545:                 usage(stderr);
>> disk-utils/fsck.minix.c:1339:           usage(stderr);
>> disk-utils/isosize.c:190:               usage(stderr);
>> disk-utils/mkfs.bfs.c:133:              usage(stderr);
>> disk-utils/mkfs.bfs.c:180:              usage(stderr);
>> disk-utils/mkfs.bfs.c:195:              usage(stderr);
>> disk-utils/mkfs.c:118:                  usage(stderr);
>> disk-utils/mkfs.minix.c:809:            usage(stderr);
>> disk-utils/mkswap.c:415:                usage(stderr);
>> disk-utils/mkswap.c:431:                usage(stderr);
>> disk-utils/partx.c:968:                 usage(stderr);
>> disk-utils/resizepart.c:95:             usage(stderr);
>> disk-utils/swaplabel.c:176:             usage(stderr);
>> libsmartcols/samples/fromfile.c:303:    usage(stderr);
>> libsmartcols/samples/tree.c:220:        usage(stderr);
>> login-utils/chfn.c:193:                 usage(stderr);
>> login-utils/chsh.c:239:                 usage(stderr);
>> login-utils/chsh.c:249:                 usage(stderr);
>> login-utils/sulogin.c:878:              usage(stderr);
>> misc-utils/cal.c:473:                   usage(stderr);
>> misc-utils/look.c:146:                  usage(stderr);
>> misc-utils/rename.c:201:                usage(stderr);
>> misc-utils/test_uuidd.c:291:            usage(stderr);
>> misc-utils/whereis.c:506:               usage(stderr);
>> misc-utils/whereis.c:551:               usage(stderr);
>> misc-utils/whereis.c:560:               usage(stderr);
>> misc-utils/whereis.c:569:               usage(stderr);
>> misc-utils/whereis.c:609:               usage(stderr);
>> misc-utils/wipefs.c:556:                usage(stderr);
>> schedutils/ionice.c:262:                usage(stderr);
>> schedutils/taskset.c:188:               usage(stderr);
>> sys-utils/blkdiscard.c:177:             usage(stderr);
>> sys-utils/chcpu.c:341:                  usage(stderr);
>> sys-utils/chmem.c:317:                  chmem_usage(stderr);
>> sys-utils/dmesg.c:1390:                 usage(stderr);
>> sys-utils/fsfreeze.c:112:               usage(stderr);
>> sys-utils/fstrim.c:335:                 usage(stderr);
>> sys-utils/ipcmk.c:135:                  usage(stderr);
>> sys-utils/ipcrm.c:161:                  usage(stderr);
>> sys-utils/losetup.c:863:                usage(stderr);
>> sys-utils/lscpu.c:2178:                 usage(stderr);
>> sys-utils/lsipc.c:1231:                 usage(stderr);
>> sys-utils/lsmem.c:498:                  lsmem_usage(stderr);
>> sys-utils/mount.c:694:                  usage(stderr);
>> sys-utils/mount.c:705:                  usage(stderr);
>> sys-utils/mount.c:772:                  usage(stderr);
>> sys-utils/mountpoint.c:181:             usage(stderr);
>> sys-utils/pivot_root.c:72:              usage(stderr);
>> sys-utils/renice.c:146:                 usage(stderr);
>> sys-utils/renice.c:150:                 usage(stderr);
>> sys-utils/rtcwake.c:501:                usage(stderr);
>> sys-utils/setsid.c:87:                  usage(stderr);
>> sys-utils/swapoff.c:231:                usage(stderr);
>> sys-utils/swapon.c:984:                 usage(stderr);
>> sys-utils/switch_root.c:241:            usage(stderr);
>> sys-utils/switch_root.c:248:            usage(stderr);
>> sys-utils/tunelp.c:148:                 print_usage(stderr);
>> sys-utils/tunelp.c:246:                 print_usage(stderr);
>> sys-utils/tunelp.c:262:                 print_usage(stderr);
>> sys-utils/umount.c:524:                 usage(stderr);
>> term-utils/agetty.c:790:                usage(stderr);
>> term-utils/agetty.c:798:                usage(stderr);
>> term-utils/agetty.c:807:                usage(stderr);
>> term-utils/mesg.c:162:                  usage(stderr);
>> term-utils/setterm.c:1174:              usage(stderr);
>> term-utils/write.c:322:                 usage(stderr);
>> tests/helpers/test_sigreceive.c:73:     usage(stderr);
>> text-utils/col.c:230:                   usage(stderr);
>> text-utils/more.c:323:                  usage(stderr);
>> text-utils/more.c:491:                  usage(stderr);
>> text-utils/pg.c:259:                    usage(stderr);
>> text-utils/pg.c:265:                    usage(stderr);
>>
>>>> That's legacy from time we used usage(stderr) for command line
>>>> parsing errors. Now we use errtryhelp().
>>>
>>> Yes I know, but there are still a few commands where we could
>>> correct --help, etc.
>>>
>>> FYI I've made a little script to find candidates to fix, see below.
>>> I will send some patches.
>>>
>>> $ ./tools/check_help.sh
>>> flock: --help, no stdout
>>> flock: --help, non-empty stderr
>>> getopt: --help, returns error
>>> kill: --unknownopt, stderr too short: 1
>>> mkfs.cramfs: --help, returns error
>>> mkfs.cramfs: --version, returns error
>>> whereis: --help, returns error
>>> whereis: --version, returns error
>>> whereis: --unknownopt, stderr too long: 18
>>> agetty: --unknownopt, stderr too long: 45
>>> blockdev: --unknownopt, stderr too long: 28
>>> fsck: --help, returns error
>>> fsck: --version, returns error
>>> fsck: --unknownopt, non-empty stdout
>>> fsck: --unknownopt, stderr too long: 18
>>> login: --help, returns error
>>> login: --version, returns error
>>> login: --unknownopt, stderr too long: 4
>>> lsipc: --unknownopt, stderr too long: 77
>>> mkfs: --unknownopt, stderr too long: 8
>>> more: --help, returns error
>>> more: --version, returns error
>>> more: --unknownopt, stderr too long: 21
>>> nologin: --help, returns error
>>> nologin: --version, returns error
>>> pg: --unknownopt, stderr too long: 23
>>> renice: --unknownopt, stderr too long: 18
>>> rtcwake: --unknownopt, non-empty stdout
>>> rtcwake: --unknownopt, stderr too long: 21
>>> sulogin: --unknownopt, stderr too long: 17
>>> write: --unknownopt, stderr too long: 12
>>>
>>> (There are also some false positives like nologin.)
>>>
>>> cu,
>>> Rudi
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe
>>> util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe util-linux" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux