On Sat, Jan 09 2021, Christian Weisgerber <na...@mips.inka.de> wrote:
> Edgar Pettijohn:
>
>> In the BUGS section for the getopt(3) manual it mentions not using
>> single digits for options. I know spamd uses -4 and -6 there are
>> probably others. Should they be changed? Or is the manual mistaken?
>
> You misunderstand.  The manual warns against the use of digits to
> pass numerical arguments.  This usage exists in some historical
> cases, e.g. "nice -10" where <10> is the number 10.

IMO giving a *number* as an example would make things clearer.

Index: getopt.3
===================================================================
RCS file: /d/cvs/src/lib/libc/stdlib/getopt.3,v
retrieving revision 1.46
diff -u -p -p -u -r1.46 getopt.3
--- getopt.3    4 Jan 2016 19:43:13 -0000       1.46
+++ getopt.3    9 Jan 2021 13:39:06 -0000
@@ -326,7 +326,7 @@ It is possible to handle digits as optio
 This allows
 .Fn getopt
 to be used with programs that expect a number
-.Pq Dq Li \-3
+.Pq Dq Li \-389
 as an option.
 This practice is wrong, and should not be used in any current development.
 It is provided for backward compatibility


Other ideas for improvement:
- give a real life example

Index: getopt.3
===================================================================
RCS file: /d/cvs/src/lib/libc/stdlib/getopt.3,v
retrieving revision 1.46
diff -u -p -p -u -r1.46 getopt.3
--- getopt.3    4 Jan 2016 19:43:13 -0000       1.46
+++ getopt.3    9 Jan 2021 13:44:29 -0000
@@ -326,7 +326,7 @@ It is possible to handle digits as optio
 This allows
 .Fn getopt
 to be used with programs that expect a number
-.Pq Dq Li \-3
+.Pq Dq Li nice \-10 program
 as an option.
 This practice is wrong, and should not be used in any current development.
 It is provided for backward compatibility

- move this warning to CAVEATS, since it's not a bug

Index: getopt.3
===================================================================
RCS file: /d/cvs/src/lib/libc/stdlib/getopt.3,v
retrieving revision 1.46
diff -u -p -p -u -r1.46 getopt.3
--- getopt.3    4 Jan 2016 19:43:13 -0000       1.46
+++ getopt.3    9 Jan 2021 13:47:08 -0000
@@ -309,24 +309,12 @@ The
 .Fn getopt
 function appeared in
 .Bx 4.3 .
-.Sh BUGS
-The
-.Fn getopt
-function was once specified to return
-.Dv EOF
-instead of \-1.
-This was changed by
-.St -p1003.2-92
-to decouple
-.Fn getopt
-from
-.In stdio.h .
-.Pp
+.Sh CAVEATS
 It is possible to handle digits as option letters.
 This allows
 .Fn getopt
 to be used with programs that expect a number
-.Pq Dq Li \-3
+.Pq Dq Li nice \-10 program
 as an option.
 This practice is wrong, and should not be used in any current development.
 It is provided for backward compatibility
@@ -361,3 +349,15 @@ while ((ch = getopt(argc, argv, "0123456
        prevoptind = optind;
 }
 .Ed
+.Sh BUGS
+The
+.Fn getopt
+function was once specified to return
+.Dv EOF
+instead of \-1.
+This was changed by
+.St -p1003.2-92
+to decouple
+.Fn getopt
+from
+.In stdio.h .


Would the mention of EOF vs -1 fit better in HISTORY or CAVEATS too?

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to