1 Commits

Author SHA1 Message Date
9f6cfc17f8 Restore terminal state on termination 2025-07-24 18:55:49 +02:00
3 changed files with 18 additions and 6 deletions

View File

@ -51,6 +51,8 @@ public:
static enum UserInput readUserInput();
static void terminateTUI();
private:
static string sCpuUsage;
static string sRamUsage;

View File

@ -198,8 +198,9 @@ void reHDD::ThreadUserInput()
ui->updateTUI(&listDrives, u8SelectedEntry);
break;
case TUI::UserInput::Terminate:
cout << "Terminate" << endl;
// cout << "Terminate" << endl;
stopShredAllDrives(&listDrives);
ui->terminateTUI();
sleep(5); // sleep 5 sec
std::exit(1); // Terminates main, doesn't wait for threads
break;
@ -408,11 +409,10 @@ void reHDD::filterIgnoredDrives(list<Drive> *plistDrives)
while ((getline(&cLine, &len, outputfileBlkid)) != -1) // parse UUID from blkid
{
size_t ptuuidPos = string(cLine).find("PTUUID");
if (ptuuidPos != string::npos)
if (string(cLine).find("PTUUID") != string::npos)
{
string sBlkidOut = string(cLine);
sBlkidOut.erase(0, ptuuidPos + 8);
sBlkidOut.erase(0, 18);
sBlkidOut.erase(8, sBlkidOut.length());
sUUID = sBlkidOut;
// cout << "blkid uuid:" << sUUID << endl;

View File

@ -63,6 +63,11 @@ void TUI::initTUI()
void TUI::updateTUI(list<Drive> *plistDrives, uint8_t u8SelectedEntry)
{
if (isendwin())
{
return;
}
mxUIrefresh.lock();
uint16_t u16StdscrX, u16StdscrY;
getmaxyx(stdscr, u16StdscrY, u16StdscrX);
@ -250,6 +255,11 @@ enum TUI::UserInput TUI::readUserInput()
return TUI::UserInput::Undefined;
}
void TUI::terminateTUI()
{
endwin();
}
void TUI::centerTitle(WINDOW *pwin, const char *title)
{
int x, maxX, stringSize;