sniper Sun Apr 15 22:50:58 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/sapi/cgi getopt.c php_getopt.h Log: - Synch these files from sapi/cli/ and allow using s.c. long-options with CGI. http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/getopt.c?r1=1.9.2.1.2.1&r2=1.9.2.1.2.2&diff_format=u Index: php-src/sapi/cgi/getopt.c diff -u php-src/sapi/cgi/getopt.c:1.9.2.1.2.1 php-src/sapi/cgi/getopt.c:1.9.2.1.2.2 --- php-src/sapi/cgi/getopt.c:1.9.2.1.2.1 Mon Jan 1 09:36:12 2007 +++ php-src/sapi/cgi/getopt.c Sun Apr 15 22:50:58 2007 @@ -16,6 +16,8 @@ +----------------------------------------------------------------------+ */ +/* $Id: getopt.c,v 1.9.2.1.2.2 2007/04/15 22:50:58 sniper Exp $ */ + #include <stdio.h> #include <string.h> #include <assert.h> @@ -77,29 +79,34 @@ } if ((argv[*optind][0] == '-') && (argv[*optind][1] == '-')) { /* '--' indicates end of args if not followed by a known long option name */ + if (argv[*optind][2] == '\0') { + (*optind)++; + return(EOF); + } + while (1) { opts_idx++; if (opts[opts_idx].opt_char == '-') { (*optind)++; - return(EOF); + return(php_opt_error(argc, argv, *optind-1, optchr, OPTERRARG, show_err)); } else if (opts[opts_idx].opt_name && !strcmp(&argv[*optind][2], opts[opts_idx].opt_name)) { break; } } optchr = 0; - dash = 1; - arg_start = 2 + strlen(opts[opts_idx].opt_name); - } - if (!dash) { - dash = 1; - optchr = 1; - } - - /* Check if the guy tries to do a -: kind of flag */ - if (argv[*optind][optchr] == ':') { dash = 0; - (*optind)++; - return (php_opt_error(argc, argv, *optind-1, optchr, OPTERRCOLON, show_err)); + arg_start = 2 + strlen(opts[opts_idx].opt_name); + } else { + if (!dash) { + dash = 1; + optchr = 1; + } + /* Check if the guy tries to do a -: kind of flag */ + if (argv[*optind][optchr] == ':') { + dash = 0; + (*optind)++; + return (php_opt_error(argc, argv, *optind-1, optchr, OPTERRCOLON, show_err)); + } } if (opts_idx < 0) { while (1) { http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/php_getopt.h?r1=1.7.2.1.2.1&r2=1.7.2.1.2.2&diff_format=u Index: php-src/sapi/cgi/php_getopt.h diff -u php-src/sapi/cgi/php_getopt.h:1.7.2.1.2.1 php-src/sapi/cgi/php_getopt.h:1.7.2.1.2.2 --- php-src/sapi/cgi/php_getopt.h:1.7.2.1.2.1 Mon Jan 1 09:36:12 2007 +++ php-src/sapi/cgi/php_getopt.h Sun Apr 15 22:50:58 2007 @@ -16,8 +16,17 @@ +----------------------------------------------------------------------+ */ +/* $Id: php_getopt.h,v 1.7.2.1.2.2 2007/04/15 22:50:58 sniper Exp $ */ + #include "php.h" +#ifdef NETWARE +/* +As NetWare LibC has optind and optarg macros defined in unistd.h our local variables were getting mistakenly preprocessed so undeffing optind and optarg +*/ +#undef optarg +#undef optind +#endif /* Define structure for one recognized option (both single char and long name). * If short_open is '-' this is the last option. */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php