@@ -110,7 +110,8 @@ optparse_option_dup (const struct optparse_option *src)
110110 struct optparse_option * o = calloc (1 , sizeof (* o ));
111111 if (o == NULL )
112112 return NULL ;
113- if ((src -> name && !(o -> name = strdup (src -> name )))
113+ if ((src -> name
114+ && !(o -> name = strdup (src -> name )))
114115 || (src -> arginfo && !(o -> arginfo = strdup (src -> arginfo )))
115116 || (src -> usage && !(o -> usage = strdup (src -> usage ))))
116117 goto err ;
@@ -283,7 +284,8 @@ static optparse_err_t optparse_set_fatalerr_handle (optparse_t *p,
283284 return (0 );
284285}
285286
286- static optparse_err_t optparse_set_option_cb (optparse_t * p , const char * name ,
287+ static optparse_err_t optparse_set_option_cb (optparse_t * p ,
288+ const char * name ,
287289 optparse_cb_f fn )
288290{
289291 struct option_info * o ;
@@ -324,10 +326,12 @@ static const char * optparse_fullname (optparse_t *p)
324326{
325327 if (!p -> fullname ) {
326328 char buf [1024 ];
327- snprintf (buf , sizeof (buf ) - 1 , "%s%s%s" ,
328- p -> parent ? optparse_fullname (p -> parent ) :"" ,
329- p -> parent ? " " : "" ,
330- p -> program_name );
329+ snprintf (buf ,
330+ sizeof (buf ) - 1 ,
331+ "%s%s%s" ,
332+ p -> parent ? optparse_fullname (p -> parent ) :"" ,
333+ p -> parent ? " " : "" ,
334+ p -> program_name );
331335 p -> fullname = strdup (buf );
332336 }
333337 return (p -> fullname );
@@ -746,7 +750,8 @@ optparse_t *optparse_create (const char *prog)
746750 * Register -h, --help
747751 */
748752 if (optparse_add_option (p , & help ) != OPTPARSE_SUCCESS ) {
749- fprintf (stderr , "failed to register --help option: %s\n" ,
753+ fprintf (stderr ,
754+ "failed to register --help option: %s\n" ,
750755 strerror (errno ));
751756 optparse_destroy (p );
752757 return (NULL );
@@ -806,12 +811,15 @@ optparse_err_t optparse_reg_subcommand (optparse_t *p,
806811 new = optparse_add_subcommand (p , name , cb );
807812 if (new == NULL )
808813 return OPTPARSE_NOMEM ;
809- if ((usage &&
810- (e = optparse_set (new , OPTPARSE_USAGE , usage )) != OPTPARSE_SUCCESS )
811- || (doc &&
812- (e = optparse_add_doc (new , doc , -1 )) != OPTPARSE_SUCCESS )
813- || (opts &&
814- (e = optparse_add_option_table (new , opts ) != OPTPARSE_SUCCESS ))) {
814+ if ((usage && (e = optparse_set (new ,
815+ OPTPARSE_USAGE ,
816+ usage )) != OPTPARSE_SUCCESS )
817+ || (doc && (e = optparse_add_doc (new ,
818+ doc ,
819+ -1 )) != OPTPARSE_SUCCESS )
820+ || (opts
821+ && (e = optparse_add_option_table (new ,
822+ opts ) != OPTPARSE_SUCCESS ))) {
815823 optparse_destroy (new );
816824 return (e );
817825 }
@@ -828,8 +836,13 @@ optparse_err_t optparse_reg_subcommands (optparse_t *p,
828836 optparse_err_t e ;
829837 struct optparse_subcommand * cmd = & cmds [0 ];
830838 while (cmd -> name ) {
831- e = optparse_reg_subcommand (p , cmd -> name , cmd -> fn , cmd -> usage ,
832- cmd -> doc , cmd -> flags , cmd -> opts );
839+ e = optparse_reg_subcommand (p ,
840+ cmd -> name ,
841+ cmd -> fn ,
842+ cmd -> usage ,
843+ cmd -> doc ,
844+ cmd -> flags ,
845+ cmd -> opts );
833846 if (e != OPTPARSE_SUCCESS )
834847 return (e );
835848 cmd ++ ;
@@ -864,9 +877,11 @@ bool optparse_hasopt (optparse_t *p, const char *name)
864877{
865878 int n ;
866879 if ((n = optparse_getopt (p , name , NULL )) < 0 ) {
867- optparse_fatalmsg (p , 1 ,
880+ optparse_fatalmsg (p ,
881+ 1 ,
868882 "%s: optparse error: no such argument '%s'\n" ,
869- p -> program_name , name );
883+ p -> program_name ,
884+ name );
870885 return false;
871886 }
872887 return (n > 0 );
@@ -880,9 +895,11 @@ int optparse_get_int (optparse_t *p, const char *name, int default_value)
880895 char * endptr ;
881896
882897 if ((n = optparse_getopt (p , name , & s )) < 0 ) {
883- optparse_fatalmsg (p , 1 ,
898+ optparse_fatalmsg (p ,
899+ 1 ,
884900 "%s: optparse error: no such argument '%s'\n" ,
885- p -> program_name , name );
901+ p -> program_name ,
902+ name );
886903 return -1 ;
887904 }
888905 if (n == 0 )
@@ -897,13 +914,16 @@ int optparse_get_int (optparse_t *p, const char *name, int default_value)
897914 goto badarg ;
898915 return l ;
899916badarg :
900- optparse_fatalmsg (p , 1 ,
917+ optparse_fatalmsg (p ,
918+ 1 ,
901919 "%s: Option '%s' requires an integer argument\n" ,
902- p -> program_name , name );
920+ p -> program_name ,
921+ name );
903922 return -1 ;
904923}
905924
906- double optparse_get_double (optparse_t * p , const char * name ,
925+ double optparse_get_double (optparse_t * p ,
926+ const char * name ,
907927 double default_value )
908928{
909929 int n ;
@@ -912,9 +932,11 @@ double optparse_get_double (optparse_t *p, const char *name,
912932 char * endptr ;
913933
914934 if ((n = optparse_getopt (p , name , & s )) < 0 ) {
915- optparse_fatalmsg (p , 1 ,
935+ optparse_fatalmsg (p ,
936+ 1 ,
916937 "%s: optparse error: no such argument '%s'\n" ,
917- p -> program_name , name );
938+ p -> program_name ,
939+ name );
918940 return -1 ;
919941 }
920942 if (n == 0 )
@@ -927,30 +949,38 @@ double optparse_get_double (optparse_t *p, const char *name,
927949 goto badarg ;
928950 return d ;
929951badarg :
930- optparse_fatalmsg (p , 1 ,
952+ optparse_fatalmsg (p ,
953+ 1 ,
931954 "%s: Option '%s' requires a floating point argument\n" ,
932- p -> program_name , name );
955+ p -> program_name ,
956+ name );
933957 return -1 ;
934958}
935959
936- double optparse_get_duration (optparse_t * p , const char * name ,
960+ double optparse_get_duration (optparse_t * p ,
961+ const char * name ,
937962 double default_value )
938963{
939964 int n ;
940965 double d ;
941966 const char * s = NULL ;
942967
943968 if ((n = optparse_getopt (p , name , & s )) < 0 ) {
944- optparse_fatalmsg (p , 1 ,
969+ optparse_fatalmsg (p ,
970+ 1 ,
945971 "%s: optparse error: no such argument '%s'\n" ,
946- p -> program_name , name );
972+ p -> program_name ,
973+ name );
947974 }
948975 if (n == 0 )
949976 return default_value ;
950977 if (fsd_parse_duration (s , & d ) < 0 ) {
951- optparse_fatalmsg (p , 1 ,
978+ optparse_fatalmsg (p ,
979+ 1 ,
952980 "%s: Invalid argument for option '%s': '%s'" ,
953- p -> program_name , name , s );
981+ p -> program_name ,
982+ name ,
983+ s );
954984 return -1 ;
955985 }
956986 return d ;
@@ -968,15 +998,18 @@ uint64_t optparse_get_size (optparse_t *p,
968998 default_value = "0" ;
969999
9701000 if ((n = optparse_getopt (p , name , & s )) < 0 ) {
971- optparse_fatalmsg (p , 1 ,
1001+ optparse_fatalmsg (p ,
1002+ 1 ,
9721003 "%s: optparse error: no such argument '%s'\n" ,
973- p -> program_name , name );
1004+ p -> program_name ,
1005+ name );
9741006 return (uint64_t ) -1 ;
9751007 }
9761008 if (n == 0 )
9771009 s = default_value ;
9781010 if (parse_size (s , & result ) < 0 ) {
979- optparse_fatalmsg (p , 1 ,
1011+ optparse_fatalmsg (p ,
1012+ 1 ,
9801013 "%s: invalid argument for option '%s': %s: %s\n" ,
9811014 p -> program_name ,
9821015 name ,
@@ -1009,16 +1042,19 @@ int optparse_get_size_int (optparse_t *p,
10091042 return (int )val ;
10101043}
10111044
1012- const char * optparse_get_str (optparse_t * p , const char * name ,
1045+ const char * optparse_get_str (optparse_t * p ,
1046+ const char * name ,
10131047 const char * default_value )
10141048{
10151049 int n ;
10161050 const char * s ;
10171051
10181052 if ((n = optparse_getopt (p , name , & s )) < 0 ) {
1019- optparse_fatalmsg (p , 1 ,
1053+ optparse_fatalmsg (p ,
1054+ 1 ,
10201055 "%s: optparse error: no such argument '%s'\n" ,
1021- p -> program_name , name );
1056+ p -> program_name ,
1057+ name );
10221058 return NULL ;
10231059 }
10241060 if (n == 0 )
@@ -1375,14 +1411,18 @@ static int opt_append_sep (struct option_info *opt, const char *str)
13751411 return (0 );
13761412}
13771413
1378- static void opt_append_optarg (optparse_t * p , struct option_info * opt , const char * optarg )
1414+ static void opt_append_optarg (optparse_t * p ,
1415+ struct option_info * opt ,
1416+ const char * optarg )
13791417{
13801418 char * s ;
13811419 if (!opt -> optargs )
13821420 opt -> optargs = zlist_new ();
13831421 if (opt -> autosplit ) {
13841422 if (opt_append_sep (opt , optarg ) < 0 )
1385- optparse_fatalmsg (p , 1 , "%s: append '%s': %s\n" ,
1423+ optparse_fatalmsg (p ,
1424+ 1 ,
1425+ "%s: append '%s': %s\n" ,
13861426 p -> program_name ,
13871427 optarg ,
13881428 strerror (errno ));
@@ -1401,12 +1441,22 @@ static void opt_append_optarg (optparse_t *p, struct option_info *opt, const cha
14011441 * Call reentrant internal version of getopt_long() directly copied from
14021442 * glibc. See getopt.c and getopt_int.h in this directory.
14031443 */
1404- static int getopt_long_r (int argc , char * const * argv , const char * options ,
1405- const struct option * long_options , int * opt_index ,
1406- struct _getopt_data * d , int posixly_correct )
1407- {
1408- return _getopt_internal_r (argc , argv , options , long_options , opt_index ,
1409- 0 , d , posixly_correct );
1444+ static int getopt_long_r (int argc ,
1445+ char * const * argv ,
1446+ const char * options ,
1447+ const struct option * long_options ,
1448+ int * opt_index ,
1449+ struct _getopt_data * d ,
1450+ int posixly_correct )
1451+ {
1452+ return _getopt_internal_r (argc ,
1453+ argv ,
1454+ options ,
1455+ long_options ,
1456+ opt_index ,
1457+ 0 ,
1458+ d ,
1459+ posixly_correct );
14101460}
14111461
14121462int optparse_parse_args (optparse_t * p , int argc , char * argv [])
@@ -1427,23 +1477,31 @@ int optparse_parse_args (optparse_t *p, int argc, char *argv[])
14271477 */
14281478 memset (& d , 0 , sizeof (d ));
14291479
1430- while ((c = getopt_long_r (argc , argv , optstring , optz ,
1431- & li , & d , p -> posixly_correct )) >= 0 ) {
1480+ while ((c = getopt_long_r (argc ,
1481+ argv ,
1482+ optstring ,
1483+ optz ,
1484+ & li ,
1485+ & d ,
1486+ p -> posixly_correct )) >= 0 ) {
14321487 struct option_info * opt ;
14331488 struct optparse_option * o ;
14341489 if (c == ':' ) {
14351490 (* p -> log_fn ) ("%s: '%s' missing argument\n" ,
1436- fullname , argv [d .optind - 1 ]);
1491+ fullname ,
1492+ argv [d .optind - 1 ]);
14371493 d .optind = -1 ;
14381494 break ;
14391495 }
14401496 else if (c == '?' ) {
14411497 if (d .optopt != '\0' )
14421498 (* p -> log_fn ) ("%s: unrecognized option '-%c'\n" ,
1443- fullname , d .optopt );
1499+ fullname ,
1500+ d .optopt );
14441501 else
14451502 (* p -> log_fn ) ("%s: unrecognized option '%s'\n" ,
1446- fullname , argv [d .optind - 1 ]);
1503+ fullname ,
1504+ argv [d .optind - 1 ]);
14471505 (* p -> log_fn ) ("Try `%s --help' for more information.\n" ,
14481506 fullname );
14491507 d .optind = -1 ;
@@ -1512,8 +1570,10 @@ int optparse_run_subcommand (optparse_t *p, int argc, char *argv[])
15121570 return optparse_fatalerr (sp , 1 );
15131571
15141572 if (!(cb = zhash_lookup (sp -> dhash , "optparse::cb" ))) {
1515- return optparse_fatalmsg (p , 1 ,
1516- "subcommand %s: failed to lookup callback!\n" , av [0 ]);
1573+ return optparse_fatalmsg (p ,
1574+ 1 ,
1575+ "subcommand %s: failed to lookup callback!\n" ,
1576+ av [0 ]);
15171577 }
15181578
15191579 return ((* cb ) (sp , ac , av ));
0 commit comments