diff --git a/src/kcrash.cpp b/src/kcrash.cpp --- a/src/kcrash.cpp +++ b/src/kcrash.cpp @@ -258,6 +258,7 @@ return s_launchDrKonqi == 1; } +#if HAVE_X11 || HAVE_XCB // The following functions copy&pasted from kinit/wrapper.cpp : // (which copied it from kdeinit/kinit.cpp) static const char* displayEnvVarName_c() @@ -271,29 +272,32 @@ return "WIN_DISPLAY"; #endif } +#endif // adapted from kdeinit/kinit.cpp // WARNING, if you change the socket name, adjust kinit.cpp too static const QString generate_socket_file_name() { +#if HAVE_X11 || HAVE_XCB QByteArray display = qgetenv(displayEnvVarName_c()); if (display.isEmpty()) { -#if HAVE_X11 fprintf(stderr, "Error: could not determine $%s.\n", displayEnvVarName_c()); return QString(); - } else { -#endif - int i; - if ((i = display.lastIndexOf('.')) > display.lastIndexOf(':') && i >= 0) { - display.truncate(i); - } + } + int i; + if ((i = display.lastIndexOf('.')) > display.lastIndexOf(':') && i >= 0) { + display.truncate(i); + } - display.replace(':', '_'); + display.replace(':', '_'); #ifdef __APPLE__ - display.replace('/', '_'); + display.replace('/', '_'); +#endif +#else + // not using a DISPLAY variable; use an empty string instead + QByteArray display = ""; #endif - } const QString socketFileName = QString::fromLatin1("kdeinit5_%1").arg(QLatin1String(display)); return socketFileName; }