From e2d52a39485d0ab9d5cb5ae027372b612eb32e60 Mon Sep 17 00:00:00 2001 From: Mathias Gumz Date: Wed, 13 Oct 2010 15:48:29 +0200 Subject: bugfix: std::string() does not like NULL on construction not having DISPLAY set (eg: on a headless system) caused fluxbox to crash. --- src/main.cc | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main.cc b/src/main.cc index b678738..4b4bdc5 100644 --- a/src/main.cc +++ b/src/main.cc @@ -216,14 +216,23 @@ static void showInfo(ostream &ostr) { } struct Options { - Options() : - session_display(getenv("DISPLAY")), - rc_path(std::string(getenv("HOME")) + "/." + realProgramName("fluxbox")), - rc_file(rc_path + "/init"), - xsync(false) { + Options() : xsync(false) { + const char* env; + + env = getenv("DISPLAY"); + if (env) { + session_display.assign(env); + } + + env = getenv("HOME"); + if (env) { + rc_path.assign(std::string(env) + "/." + realProgramName("fluxbox")); + rc_file = rc_path + "/init"; + } } + std::string session_display; std::string rc_path; std::string rc_file; @@ -394,7 +403,11 @@ void updateConfigFilesIfNeeded(const std::string& rc_file) { string commandargs = realProgramName("fluxbox-update_configs"); commandargs += " -rc " + rc_file; - system(commandargs.c_str()); + if (system(commandargs.c_str())) { + fbdbg << "running '" + << commandargs + << "' failed." << endl; + } } } -- cgit v0.11.2