From f0eae2ccfe657a4d4dde70fb99d22d759fe1a86b Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Wed, 20 Feb 2008 14:55:25 +0000 Subject: [PATCH] Merge from trunk: Tolerate argc being zero. Patch from C. K. Jester-Young. [SVN r43331] --- include/boost/program_options/detail/parsers.hpp | 2 +- src/cmdline.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/boost/program_options/detail/parsers.hpp b/include/boost/program_options/detail/parsers.hpp index 3391a68..4ac0c7a 100644 --- a/include/boost/program_options/detail/parsers.hpp +++ b/include/boost/program_options/detail/parsers.hpp @@ -38,7 +38,7 @@ namespace boost { namespace program_options { : detail::cmdline( // Explicit template arguments are required by gcc 3.3.1 // (at least mingw version), and do no harm on other compilers. - to_internal(detail::make_vector(argv+1, argv+argc))) + to_internal(detail::make_vector(argv+1, argv+argc+!argc))) {} diff --git a/src/cmdline.cpp b/src/cmdline.cpp index 3468f6a..e236e5f 100644 --- a/src/cmdline.cpp +++ b/src/cmdline.cpp @@ -98,10 +98,10 @@ namespace boost { namespace program_options { namespace detail { { #if defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) vector args; - copy(argv+1, argv+argc, inserter(args, args.end())); + copy(argv+1, argv+argc+!argc, inserter(args, args.end())); init(args); #else - init(vector(argv+1, argv+argc)); + init(vector(argv+1, argv+argc+!argc)); #endif }