From c7e67b309e461192a84b62ac9ff063914db34f55 Mon Sep 17 00:00:00 2001 From: peri4 Date: Wed, 13 Apr 2022 22:46:53 +0300 Subject: [PATCH] picout fix --- libs/main/core/picout.cpp | 5 ++++- libs/main/core/pistring.cpp | 2 +- libs/main/io_devices/piiodevice.cpp | 4 +--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libs/main/core/picout.cpp b/libs/main/core/picout.cpp index 40a19ae6..dd55b0b5 100644 --- a/libs/main/core/picout.cpp +++ b/libs/main/core/picout.cpp @@ -160,6 +160,7 @@ PICout::PICout(int controls): fo_(true), cc_(false), fc_(false), act_(true), cnb } PICout::PICout(bool active): fo_(true), cc_(false), fc_(false), act_(active), cnb_(10), co_(PICoutManipulators::DefaultControls) { + buffer_ = nullptr; if (act_) init(); } @@ -522,6 +523,7 @@ PICout & PICout::newLine() { PICout & PICout::write(const char * str, int len) { + if (!act_) return *this; if (buffer_) { buffer_->append(PIString(str, len)); } else { @@ -533,6 +535,7 @@ PICout & PICout::write(const char * str, int len) { PICout & PICout::writePIString(const PIString & s) { + if (!act_) return *this; if (buffer_) { buffer_->append(s); } else { @@ -555,7 +558,7 @@ void PICout::init() { } attr_ = __Private__::dattr; #endif - buffer_ = 0; + buffer_ = nullptr; id_ = 0; if ((co_ & NoLock) != NoLock) PICout::__mutex__().lock(); diff --git a/libs/main/core/pistring.cpp b/libs/main/core/pistring.cpp index f0449bdb..100f81cb 100644 --- a/libs/main/core/pistring.cpp +++ b/libs/main/core/pistring.cpp @@ -470,7 +470,7 @@ PIString & PIString::operator +=(const wchar_t * str) { PIString & PIString::operator +=(const PIString & str) { - *((PIDeque*)this) << *((PIDeque*)&str); + PIDeque::append(*(const PIDeque*)&str); return *this; } diff --git a/libs/main/io_devices/piiodevice.cpp b/libs/main/io_devices/piiodevice.cpp index 0589cf29..087d7913 100644 --- a/libs/main/io_devices/piiodevice.cpp +++ b/libs/main/io_devices/piiodevice.cpp @@ -396,9 +396,7 @@ bool PIIODevice::close() { } int PIIODevice::write(PIByteArray data) { - if (isOpened()) - return writeDevice(data.data(), data.size_s()); - return -1; + return writeDevice(data.data(), data.size_s()); }