From a78231eac58f6f76e22e431250b3fc7d5390ac55 Mon Sep 17 00:00:00 2001 From: Anton Simakov Date: Thu, 9 Oct 2014 21:27:26 +0400 Subject: [PATCH] Build for mac os without significant changes of master's code (insead of osx branch). A bit later I can provide signed binary build for osx. --- .gitignore | 5 +++++ konsole-qml-plugin/konsole-qml-plugin.pro | 5 ++++- konsole-qml-plugin/src/kpty.cpp | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index db0327d..ba2c815 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,8 @@ Makefile* # Excludes compiled files imports cool-retro-term + +# Mac OSX + +.DS_Store +*.app diff --git a/konsole-qml-plugin/konsole-qml-plugin.pro b/konsole-qml-plugin/konsole-qml-plugin.pro index 55e6fab..3fd6eeb 100644 --- a/konsole-qml-plugin/konsole-qml-plugin.pro +++ b/konsole-qml-plugin/konsole-qml-plugin.pro @@ -6,7 +6,10 @@ TEMPLATE = lib CONFIG += qt plugin hide_symbols QT += qml quick widgets -DEFINES += HAVE_POSIX_OPENPT HAVE_SYS_TIME_H HAVE_UPDWTMPX +DEFINES += HAVE_POSIX_OPENPT HAVE_SYS_TIME_H + +!macx:DEFINES += HAVE_UPDWTMPX +macx:DEFINES += HAVE_UTMPX HAVE_UT_USER #MANUALY DEFINED PLATFORM DEFINES += Q_WS_UBUNTU diff --git a/konsole-qml-plugin/src/kpty.cpp b/konsole-qml-plugin/src/kpty.cpp index 5ea5200..d383172 100644 --- a/konsole-qml-plugin/src/kpty.cpp +++ b/konsole-qml-plugin/src/kpty.cpp @@ -506,7 +506,11 @@ void KPty::login(const char * user, const char * remotehost) // note: strncpy without terminators _is_ correct here. man 4 utmp if (user) { +# ifdef HAVE_UT_USER + strncpy(l_struct.ut_user, user, sizeof(l_struct.ut_user)); +#elif strncpy(l_struct.ut_name, user, sizeof(l_struct.ut_name)); +#endif } if (remotehost) { @@ -617,7 +621,13 @@ void KPty::logout() setutent(); if ((ut = getutline(&l_struct))) { # endif + +# ifdef HAVE_UT_USER + memset(ut->ut_user, 0, sizeof(*ut->ut_user)); +#elif memset(ut->ut_name, 0, sizeof(*ut->ut_name)); +#endif + memset(ut->ut_host, 0, sizeof(*ut->ut_host)); # ifdef HAVE_STRUCT_UTMP_UT_SYSLEN ut->ut_syslen = 0;