# HG changeset patch # User lost@l-w.ca # Date 1302061702 21600 # Node ID 51c840679a0e8a57d97ba82316c98d6806d878af # Parent fd1ecc5d6e699d181d57c4a3768b418e8ad36998 Fixed off by one bug parsing long options diff -r fd1ecc5d6e69 -r 51c840679a0e lwlib/lw_cmdline.c --- a/lwlib/lw_cmdline.c Tue Apr 05 00:17:17 2011 -0600 +++ b/lwlib/lw_cmdline.c Tue Apr 05 21:48:22 2011 -0600 @@ -413,15 +413,16 @@ goto do_version; /* look up name */ + fprintf(stderr, "option string: %s\n", argv[i]); for (j = 2; argv[i][j] && argv[i][j] != '='; j++) /* do nothing */ ; tstr = lw_alloc(j - 1); strncpy(tstr, argv[i] + 2, j - 2); - tstr[j - 1] = 0; + tstr[j - 2] = 0; if (argv[i][j] == '=') j++; cch = j; - + fprintf(stderr, "Option: %s, Arg: %s\n", tstr, argv[i]+j); for (j = 0; parser -> options[j].name; j++) { if (strcmp(parser -> options[j].name, tstr) == 0)