~ubuntu-branches/ubuntu/saucy/gengetopt/saucy-proposed

« back to all changes in this revision

Viewing changes to tests/test_multiple_cmd.c.test

  • Committer: Package Import Robot
  • Author(s): Alessio Treglia
  • Date: 2013-05-09 12:48:17 UTC
  • mfrom: (16.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130509124817-ex5jkvyh7cu8o22c
Tags: 2.22.6-2
* Upload to unstable.
* Fix VCS URLs.
* Bump Standards.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
 
30
30
const char *gengetopt_args_info_usage = "Usage: test_multiple [OPTIONS]... [FILES]...";
31
31
 
 
32
const char *gengetopt_args_info_versiontext = "";
 
33
 
32
34
const char *gengetopt_args_info_description = "";
33
35
 
34
36
const char *gengetopt_args_info_help[] = {
42
44
  "  -L, --limited=STRING          limited multiple option",
43
45
  "      --limited-interval=STRING limited multiple option (with interval)",
44
46
  "      --big-limited-interval=STRING\n                                limited multiple option (with interval)",
45
 
  "      --limited-open-right=STRING\n                                limited multiple option (with interval right \n                                  open)",
46
 
  "      --limited-open-left=STRING\n                                limited multiple option (with interval left \n                                  open)",
 
47
  "      --limited-open-right=STRING\n                                limited multiple option (with interval right\n                                  open)",
 
48
  "      --limited-open-left=STRING\n                                limited multiple option (with interval left\n                                  open)",
47
49
  "  -f, --float=FLOAT             float option  (default=`15000')",
48
50
  "      --no-short-opt=STRING     string option with no short",
49
51
  "  -n, --noarg                   multiple option with no arg",
204
206
  printf ("%s %s\n",
205
207
     (strlen(TEST_MULTIPLE_CMD_PARSER_PACKAGE_NAME) ? TEST_MULTIPLE_CMD_PARSER_PACKAGE_NAME : TEST_MULTIPLE_CMD_PARSER_PACKAGE),
206
208
     TEST_MULTIPLE_CMD_PARSER_VERSION);
 
209
 
 
210
  if (strlen(gengetopt_args_info_versiontext) > 0)
 
211
    printf("\n%s\n", gengetopt_args_info_versiontext);
207
212
}
208
213
 
209
214
static void print_help_common(void) {
279
284
    short short_arg;
280
285
    long long_arg;
281
286
    float float_arg;
282
 
#ifdef HAVE_LONG_LONG
 
287
#if defined(HAVE_LONG_LONG) || defined(HAVE_LONG_LONG_INT)
283
288
    long long int longlong_arg;
284
289
#else
285
290
    long longlong_arg;
568
573
int
569
574
check_multiple_option_occurrences(const char *prog_name, unsigned int option_given, unsigned int min, unsigned int max, const char *option_desc)
570
575
{
571
 
  int error = 0;
 
576
  int error_occurred = 0;
572
577
 
573
578
  if (option_given && (min > 0 || max > 0))
574
579
    {
581
586
                {
582
587
                  fprintf (stderr, "%s: %s option occurrences must be %d\n",
583
588
                    prog_name, option_desc, min);
584
 
                  error = 1;
 
589
                  error_occurred = 1;
585
590
                }
586
591
            }
587
592
          else if (option_given < (unsigned int) min
590
595
              /* range occurrences */
591
596
              fprintf (stderr, "%s: %s option occurrences must be between %d and %d\n",
592
597
                prog_name, option_desc, min, max);
593
 
              error = 1;
 
598
              error_occurred = 1;
594
599
            }
595
600
        }
596
601
      else if (min > 0)
600
605
            {
601
606
              fprintf (stderr, "%s: %s option occurrences must be at least %d\n",
602
607
                prog_name, option_desc, min);
603
 
              error = 1;
 
608
              error_occurred = 1;
604
609
            }
605
610
        }
606
611
      else if (max > 0)
610
615
            {
611
616
              fprintf (stderr, "%s: %s option occurrences must be at most %d\n",
612
617
                prog_name, option_desc, max);
613
 
              error = 1;
 
618
              error_occurred = 1;
614
619
            }
615
620
        }
616
621
    }
617
622
    
618
 
  return error;
 
623
  return error_occurred;
619
624
}
620
625
int
621
626
test_multiple_cmd_parser (int argc, char **argv, struct gengetopt_args_info *args_info)
682
687
int
683
688
test_multiple_cmd_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error)
684
689
{
685
 
  int error = 0;
 
690
  int error_occurred = 0;
686
691
  FIX_UNUSED (additional_error);
687
692
 
688
693
  /* checks for required options */
689
694
  if (check_multiple_option_occurrences(prog_name, args_info->string_given, args_info->string_min, args_info->string_max, "'--string' ('-s')"))
690
 
     error = 1;
 
695
     error_occurred = 1;
691
696
  
692
697
  if (! args_info->int_given)
693
698
    {
694
699
      fprintf (stderr, "%s: '--int' ('-i') option required%s\n", prog_name, (additional_error ? additional_error : ""));
695
 
      error = 1;
 
700
      error_occurred = 1;
696
701
    }
697
702
  
698
703
  if (check_multiple_option_occurrences(prog_name, args_info->int_given, args_info->int_min, args_info->int_max, "'--int' ('-i')"))
699
 
     error = 1;
 
704
     error_occurred = 1;
700
705
  
701
706
  if (check_multiple_option_occurrences(prog_name, args_info->short_given, args_info->short_min, args_info->short_max, "'--short' ('-S')"))
702
 
     error = 1;
 
707
     error_occurred = 1;
703
708
  
704
709
  if (check_multiple_option_occurrences(prog_name, args_info->long_given, args_info->long_min, args_info->long_max, "'--long' ('-l')"))
705
 
     error = 1;
 
710
     error_occurred = 1;
706
711
  
707
712
  if (check_multiple_option_occurrences(prog_name, args_info->longlong_given, args_info->longlong_min, args_info->longlong_max, "'--longlong'"))
708
 
     error = 1;
 
713
     error_occurred = 1;
709
714
  
710
715
  if (check_multiple_option_occurrences(prog_name, args_info->limited_given, args_info->limited_min, args_info->limited_max, "'--limited' ('-L')"))
711
 
     error = 1;
 
716
     error_occurred = 1;
712
717
  
713
718
  if (check_multiple_option_occurrences(prog_name, args_info->limited_interval_given, args_info->limited_interval_min, args_info->limited_interval_max, "'--limited-interval'"))
714
 
     error = 1;
 
719
     error_occurred = 1;
715
720
  
716
721
  if (check_multiple_option_occurrences(prog_name, args_info->big_limited_interval_given, args_info->big_limited_interval_min, args_info->big_limited_interval_max, "'--big-limited-interval'"))
717
 
     error = 1;
 
722
     error_occurred = 1;
718
723
  
719
724
  if (check_multiple_option_occurrences(prog_name, args_info->limited_open_right_given, args_info->limited_open_right_min, args_info->limited_open_right_max, "'--limited-open-right'"))
720
 
     error = 1;
 
725
     error_occurred = 1;
721
726
  
722
727
  if (check_multiple_option_occurrences(prog_name, args_info->limited_open_left_given, args_info->limited_open_left_min, args_info->limited_open_left_max, "'--limited-open-left'"))
723
 
     error = 1;
 
728
     error_occurred = 1;
724
729
  
725
730
  if (check_multiple_option_occurrences(prog_name, args_info->float_given, args_info->float_min, args_info->float_max, "'--float' ('-f')"))
726
 
     error = 1;
 
731
     error_occurred = 1;
727
732
  
728
733
  if (check_multiple_option_occurrences(prog_name, args_info->no_short_opt_given, args_info->no_short_opt_min, args_info->no_short_opt_max, "'--no-short-opt'"))
729
 
     error = 1;
 
734
     error_occurred = 1;
730
735
  
731
736
  if (check_multiple_option_occurrences(prog_name, args_info->noarg_given, args_info->noarg_min, args_info->noarg_max, "'--noarg' ('-n')"))
732
 
     error = 1;
 
737
     error_occurred = 1;
733
738
  
734
739
  if (check_multiple_option_occurrences(prog_name, args_info->noarg_noshort_given, args_info->noarg_noshort_min, args_info->noarg_noshort_max, "'--noarg-noshort'"))
735
 
     error = 1;
 
740
     error_occurred = 1;
736
741
  
737
742
  if (check_multiple_option_occurrences(prog_name, args_info->optarg_given, args_info->optarg_min, args_info->optarg_max, "'--optarg' ('-M')"))
738
 
     error = 1;
 
743
     error_occurred = 1;
739
744
  
740
745
  if (check_multiple_option_occurrences(prog_name, args_info->optarg_noshort_given, args_info->optarg_noshort_min, args_info->optarg_noshort_max, "'--optarg-noshort'"))
741
 
     error = 1;
 
746
     error_occurred = 1;
742
747
  
743
748
  
744
749
  /* checks for dependences among options */
745
750
 
746
 
  return error;
 
751
  return error_occurred;
747
752
}
748
753
 
749
754
 
825
830
    if (val) *((float *)field) = (float)strtod (val, &stop_char);
826
831
    break;
827
832
  case ARG_LONGLONG:
828
 
#ifdef HAVE_LONG_LONG
829
 
    if (val) *((long long int*)field) = (long long int) strtol (val, &stop_char, 0);
 
833
#if defined(HAVE_LONG_LONG) || defined(HAVE_LONG_LONG_INT)
 
834
    if (val) *((long long int*)field) = (long long int) strtoll (val, &stop_char, 0);
830
835
#else
831
836
    if (val) *((long *)field) = (long)strtol (val, &stop_char, 0);
832
837
#endif
970
975
    case ARG_FLOAT:
971
976
      *((float **)field) = (float *)realloc (*((float **)field), (field_given + prev_given) * sizeof (float)); break;
972
977
    case ARG_LONGLONG:
973
 
#ifdef HAVE_LONG_LONG
 
978
#if defined(HAVE_LONG_LONG) || defined(HAVE_LONG_LONG_INT)
974
979
      *((long long int **)field) = (long long int *)realloc (*((long long int **)field), (field_given + prev_given) * sizeof (long long int)); break;
975
980
#else
976
981
      *((long **)field) = (long *)realloc (*((long **)field), (field_given + prev_given) * sizeof (long)); break;
995
1000
        case ARG_FLOAT:
996
1001
          (*((float **)field))[i + field_given] = tmp->arg.float_arg; break;
997
1002
        case ARG_LONGLONG:
998
 
#ifdef HAVE_LONG_LONG
 
1003
#if defined(HAVE_LONG_LONG) || defined(HAVE_LONG_LONG_INT)
999
1004
          (*((long long int **)field))[i + field_given] = tmp->arg.longlong_arg; break;
1000
1005
#else
1001
1006
          (*((long **)field))[i + field_given] = tmp->arg.longlong_arg; break;
1037
1042
        }
1038
1043
        break;
1039
1044
      case ARG_LONGLONG:
1040
 
#ifdef HAVE_LONG_LONG
 
1045
#if defined(HAVE_LONG_LONG) || defined(HAVE_LONG_LONG_INT)
1041
1046
        if (! *((long long int **)field)) {
1042
1047
          *((long long int **)field) = (long long int *)malloc (sizeof (long long int));
1043
1048
          (*((long long int **)field))[0] = default_value->longlong_arg;
1087
1092
  struct generic_list * no_short_opt_list = NULL;
1088
1093
  struct generic_list * optarg_list = NULL;
1089
1094
  struct generic_list * optarg_noshort_list = NULL;
1090
 
  int error = 0;
 
1095
  int error_occurred = 0;
1091
1096
  struct gengetopt_args_info local_args_info;
1092
1097
  
1093
1098
  int override;
1430
1435
  
1431
1436
  if (check_required)
1432
1437
    {
1433
 
      error += test_multiple_cmd_parser_required2 (args_info, argv[0], additional_error);
 
1438
      error_occurred += test_multiple_cmd_parser_required2 (args_info, argv[0], additional_error);
1434
1439
    }
1435
1440
 
1436
1441
  test_multiple_cmd_parser_release (&local_args_info);
1437
1442
 
1438
 
  if ( error )
 
1443
  if ( error_occurred )
1439
1444
    return (EXIT_FAILURE);
1440
1445
 
1441
1446
  if (optind < argc)