Commit 23dff4f2 authored by Max Kellermann's avatar Max Kellermann

util/OptionParser: use ConstBuffer<const char*> to store argv/argc

parent 4a304bf3
......@@ -40,9 +40,7 @@ bool
OptionParser::ParseNext() noexcept
{
assert(HasEntries());
const char *arg = *argv;
++argv;
--argc;
const char *arg = args.shift();
if (arg[0] == '-') {
if (arg[1] == '-') {
option = arg + 2;
......
......@@ -20,6 +20,8 @@
#ifndef MPD_UTIL_OPTIONPARSER_HXX
#define MPD_UTIL_OPTIONPARSER_HXX
#include "util/ConstBuffer.hxx"
#include <assert.h>
class OptionDef;
......@@ -29,8 +31,7 @@ class OptionDef;
*/
class OptionParser
{
int argc;
char *const*argv;
ConstBuffer<const char *> args;
const char *option = nullptr;
const char *option_raw = nullptr;
bool is_long = false;
......@@ -40,13 +41,13 @@ public:
* Constructs #OptionParser.
*/
constexpr OptionParser(int _argc, char *const*_argv) noexcept
:argc(_argc - 1), argv(_argv + 1) {}
:args(_argv + 1, _argc - 1) {}
/**
* Checks if there are command line entries to process.
*/
constexpr bool HasEntries() const noexcept {
return argc > 0;
return !args.empty();
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment