]> err.no Git - yubikey-personalization/commitdiff
Handle both GNU/WIN32 and BSD getopt reinit
authorMatt Stofko <matt@mjslabs.com>
Wed, 30 Jan 2013 01:13:05 +0000 (17:13 -0800)
committerMatt Stofko <matt@mjslabs.com>
Wed, 30 Jan 2013 01:13:05 +0000 (17:13 -0800)
This allows all the tests to pass on systems that use the BSD version of getopt which uses optind = 1 and optreset to reinitialize getopt.

tests/test_args_to_config.c

index 87e84ae47a7f4a2e19a68be0cc8a0e50bd8ea7f5..7e438734d65cf28c0491cacad9daa0531583b15d 100644 (file)
@@ -123,7 +123,13 @@ int _test_config (YKP_CONFIG *cfg, YK_STATUS *st, int argc, char **argv)
        int rc;
 
        ykp_errno = 0;
-       optind = 0; /* getopt reinit */
+
+/* getopt reinit (BSD systems use optreset and a different optind value) */
+#if defined(__GLIBC__) || defined(_WIN32)
+       optind = 0;
+#else
+       optind = optreset = 1;
+#endif
 
        /* copy version number from st into cfg */
        assert(ykp_configure_for(cfg, 1, st) == 1);
@@ -308,7 +314,13 @@ int _test_non_config_args(void)
        int argc = 7;
 
        ykp_errno = 0;
-       optind = 0; /* getopt reinit */
+
+/* getopt reinit (BSD systems use optreset and a different optind value) */
+#if defined(__GLIBC__) || defined(_WIN32)
+       optind = 0;
+#else
+       optind = optreset = 1;
+#endif
 
        /* copy version number from st into cfg */
   ykp_configure_version(cfg, st);