johannes                Thu Mar 22 21:35:41 2007 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/sapi/cli/tests     015.phpt 

  Modified files:              
    /php-src/sapi/cli   getopt.c 
  Log:
  - MFH: Fix handling of not existing long CLI options
  
http://cvs.php.net/viewvc.cgi/php-src/sapi/cli/getopt.c?r1=1.8.2.1.2.2&r2=1.8.2.1.2.3&diff_format=u
Index: php-src/sapi/cli/getopt.c
diff -u php-src/sapi/cli/getopt.c:1.8.2.1.2.2 
php-src/sapi/cli/getopt.c:1.8.2.1.2.3
--- php-src/sapi/cli/getopt.c:1.8.2.1.2.2       Wed Mar 21 23:20:21 2007
+++ php-src/sapi/cli/getopt.c   Thu Mar 22 21:35:41 2007
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: getopt.c,v 1.8.2.1.2.2 2007/03/21 23:20:21 helly Exp $ */
+/* $Id: getopt.c,v 1.8.2.1.2.3 2007/03/22 21:35:41 johannes Exp $ */
 
 #include <stdio.h>
 #include <string.h>
@@ -79,11 +79,16 @@
        }
        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;
                        }

http://cvs.php.net/viewvc.cgi/php-src/sapi/cli/tests/015.phpt?view=markup&rev=1.1
Index: php-src/sapi/cli/tests/015.phpt
+++ php-src/sapi/cli/tests/015.phpt
--TEST--
CLI long options
--SKIPIF--
<?php include "skipif.inc"; ?>
--FILE--
<?php

$php = getenv('TEST_PHP_EXECUTABLE');


echo `"$php" --version | grep built:`;
echo `echo "<?php print_r(\\\$argv);" | "$php" -- foo bar baz`, "\n";
echo `"$php" --version foo bar baz | grep built:`;
echo `"$php" --notexisting foo bar baz | grep Usage:`;

echo "Done\n";
?>
--EXPECTF--     
PHP %d.%d.%d%s(cli) (built: %s)
Array
(
    [0] => -
    [1] => foo
    [2] => bar
    [3] => baz
)

PHP %d.%d.%d%s(cli) (built: %s)
Usage: php [options] [-f] <file> [--] [args...]
Done

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to