Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
c8bb3c0b
Commit
c8bb3c0b
authored
Nov 02, 2016
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CommandLine: migrate from class Error to C++ exceptions
parent
9990e847
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
35 deletions
+17
-35
CommandLine.cxx
src/CommandLine.cxx
+14
-21
CommandLine.hxx
src/CommandLine.hxx
+2
-5
Main.cxx
src/Main.cxx
+1
-9
No files found.
src/CommandLine.cxx
View file @
c8bb3c0b
...
...
@@ -35,8 +35,9 @@
#include "fs/Traits.hxx"
#include "fs/FileSystem.hxx"
#include "fs/StandardDirectory.hxx"
#include "system/Error.hxx"
#include "util/Macros.hxx"
#include "util/Error.hxx"
#include "util/
Runtime
Error.hxx"
#include "util/Domain.hxx"
#include "util/OptionDef.hxx"
#include "util/OptionParser.hxx"
...
...
@@ -301,9 +302,8 @@ bool ConfigLoader::TryFile(const AllocatedPath &base_path,
return
TryFile
(
full_path
);
}
bool
parse_cmdline
(
int
argc
,
char
**
argv
,
struct
options
*
options
,
Error
&
error
)
void
ParseCommandLine
(
int
argc
,
char
**
argv
,
struct
options
*
options
)
{
bool
use_config_file
=
true
;
options
->
kill
=
false
;
...
...
@@ -341,9 +341,8 @@ parse_cmdline(int argc, char **argv, struct options *options,
if
(
parser
.
CheckOption
(
opt_help
,
opt_help_alt
))
help
();
error
.
Format
(
cmdline_domain
,
"invalid option: %s"
,
parser
.
GetOption
());
return
false
;
throw
FormatRuntimeError
(
"invalid option: %s"
,
parser
.
GetOption
());
}
/* initialize the logging library, so the configuration file
...
...
@@ -353,7 +352,7 @@ parse_cmdline(int argc, char **argv, struct options *options,
if
(
!
use_config_file
)
{
LogDebug
(
cmdline_domain
,
"Ignoring config, using daemon defaults"
);
return
true
;
return
;
}
// Second pass: find non-option parameters (i.e. config file)
...
...
@@ -365,8 +364,8 @@ parse_cmdline(int argc, char **argv, struct options *options,
config_file
=
argv
[
i
];
continue
;
}
error
.
Set
(
cmdline_domain
,
"too many arguments"
);
return
false
;
throw
std
::
runtime_error
(
"too many arguments"
)
;
}
if
(
config_file
!=
nullptr
)
{
...
...
@@ -375,16 +374,14 @@ parse_cmdline(int argc, char **argv, struct options *options,
wchar_t
buffer
[
MAX_PATH
];
auto
result
=
MultiByteToWideChar
(
CP_ACP
,
0
,
config_file
,
-
1
,
buffer
,
ARRAY_SIZE
(
buffer
));
if
(
result
<=
0
)
{
error
.
SetLastError
(
"MultiByteToWideChar() failed"
);
return
false
;
}
if
(
result
<=
0
)
throw
MakeLastError
(
"MultiByteToWideChar() failed"
);
ReadConfigFile
(
Path
::
FromFS
(
buffer
));
#else
ReadConfigFile
(
Path
::
FromFS
(
config_file
));
#endif
return
true
;
return
;
}
/* use default configuration file path */
...
...
@@ -403,10 +400,6 @@ parse_cmdline(int argc, char **argv, struct options *options,
loader
.
TryFile
(
GetHomeDir
(),
USER_CONFIG_FILE_LOCATION2
)
||
loader
.
TryFile
(
Path
::
FromFS
(
SYSTEM_CONFIG_FILE_LOCATION
));
#endif
if
(
!
found
)
{
error
.
Set
(
cmdline_domain
,
"No configuration file found"
);
return
false
;
}
return
true
;
if
(
!
found
)
throw
std
::
runtime_error
(
"No configuration file found"
);
}
src/CommandLine.hxx
View file @
c8bb3c0b
...
...
@@ -20,8 +20,6 @@
#ifndef MPD_COMMAND_LINE_HXX
#define MPD_COMMAND_LINE_HXX
class
Error
;
struct
options
{
bool
kill
;
bool
daemon
;
...
...
@@ -29,8 +27,7 @@ struct options {
bool
verbose
;
};
bool
parse_cmdline
(
int
argc
,
char
**
argv
,
struct
options
*
options
,
Error
&
error
);
void
ParseCommandLine
(
int
argc
,
char
**
argv
,
struct
options
*
options
);
#endif
src/Main.cxx
View file @
c8bb3c0b
...
...
@@ -49,7 +49,6 @@
#include "pcm/PcmConvert.hxx"
#include "unix/SignalHandlers.hxx"
#include "system/FatalError.hxx"
#include "util/Error.hxx"
#include "thread/Slack.hxx"
#include "lib/icu/Init.hxx"
#include "config/ConfigGlobal.hxx"
...
...
@@ -170,7 +169,6 @@ InitStorage()
static
bool
glue_db_init_and_load
(
void
)
{
Error
error
;
instance
->
database
=
CreateConfiguredDatabase
(
instance
->
event_loop
,
*
instance
);
if
(
instance
->
database
==
nullptr
)
...
...
@@ -367,7 +365,6 @@ static inline
int
mpd_main
(
int
argc
,
char
*
argv
[])
try
{
struct
options
options
;
Error
error
;
#ifdef ENABLE_DAEMON
daemonize_close_stdin
();
...
...
@@ -399,10 +396,7 @@ try {
ReadConfigFile
(
config_path
);
}
#else
if
(
!
parse_cmdline
(
argc
,
argv
,
&
options
,
error
))
{
LogError
(
error
);
return
EXIT_FAILURE
;
}
ParseCommandLine
(
argc
,
argv
,
&
options
);
#endif
#ifdef ENABLE_DAEMON
...
...
@@ -461,8 +455,6 @@ try {
static
int
mpd_main_after_fork
(
struct
options
options
)
try
{
Error
error
;
ConfigureFS
();
glue_mapper_init
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment