Added patches sent upstream to fix usage with uClibc++. Cleaned up license information. Added several size optimizations. Several other Makefile cleanups. Signed-off-by: Rosen Penev <rosenp@gmail.com>lilik-openwrt-22.03
@ -0,0 +1,27 @@ | |||
From 9e6016b07ff6d1de5143d3dfefb58fb4268a78e1 Mon Sep 17 00:00:00 2001 | |||
From: Rosen Penev <rosenp@gmail.com> | |||
Date: Mon, 7 Oct 2019 15:34:43 -0700 | |||
Subject: [PATCH 1/4] gptcurses: Add missing header | |||
Needed with uClibc++ as it doesn't implicitly include it. | |||
Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||
--- | |||
gptcurses.cc | 1 + | |||
1 file changed, 1 insertion(+) | |||
diff --git a/gptcurses.cc b/gptcurses.cc | |||
index 3e9b240..4ebfde1 100644 | |||
--- a/gptcurses.cc | |||
+++ b/gptcurses.cc | |||
@@ -19,6 +19,7 @@ | |||
* | |||
*/ | |||
+#include <clocale> | |||
#include <iostream> | |||
#include <string> | |||
#include <sstream> | |||
-- | |||
2.17.1 | |||
@ -0,0 +1,28 @@ | |||
From 5542b160fa73e5e81e83c2d8dd1b79c3023094ee Mon Sep 17 00:00:00 2001 | |||
From: Rosen Penev <rosenp@gmail.com> | |||
Date: Mon, 7 Oct 2019 15:36:31 -0700 | |||
Subject: [PATCH 2/4] support: Flush cout in GetYN | |||
uClibc++ does not implicitly flush cout before getline. | |||
Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||
--- | |||
support.cc | 2 +- | |||
1 file changed, 1 insertion(+), 1 deletion(-) | |||
diff --git a/support.cc b/support.cc | |||
index d47965a..5ab8a23 100644 | |||
--- a/support.cc | |||
+++ b/support.cc | |||
@@ -101,7 +101,7 @@ char GetYN(void) { | |||
do { | |||
if ( again ) { cout << "Your option? " ; } | |||
again = 1 ; | |||
- cout << "(Y/N): "; | |||
+ cout << "(Y/N): " << flush; | |||
line = ReadString(); | |||
response = toupper(line[0]); | |||
} while ((response != 'Y') && (response != 'N')); | |||
-- | |||
2.17.1 | |||
@ -0,0 +1,28 @@ | |||
From 31d1f45cd63ec142fc559ea4f8a70bd4a1151c42 Mon Sep 17 00:00:00 2001 | |||
From: Rosen Penev <rosenp@gmail.com> | |||
Date: Mon, 7 Oct 2019 15:39:14 -0700 | |||
Subject: [PATCH 3/4] support: flush cout in GetNumber | |||
uClibc++ does not implicitly do this before getline. | |||
Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||
--- | |||
support.cc | 2 +- | |||
1 file changed, 1 insertion(+), 1 deletion(-) | |||
diff --git a/support.cc b/support.cc | |||
index 5ab8a23..1107993 100644 | |||
--- a/support.cc | |||
+++ b/support.cc | |||
@@ -73,7 +73,7 @@ uint64_t GetNumber(uint64_t low, uint64_t high, uint64_t def, const string & pro | |||
if (low != high) { // bother only if low and high differ... | |||
do { | |||
- cout << prompt; | |||
+ cout << prompt << flush; | |||
cin.getline(line, 255); | |||
if (!cin.good()) | |||
exit(5); | |||
-- | |||
2.17.1 | |||
@ -0,0 +1,27 @@ | |||
From 185f73b1084936f85beddd4523a302cb1f906234 Mon Sep 17 00:00:00 2001 | |||
From: Rosen Penev <rosenp@gmail.com> | |||
Date: Mon, 7 Oct 2019 15:41:53 -0700 | |||
Subject: [PATCH 4/4] support: flush cout in ReadString | |||
uClibc++ does not implicitly do this. | |||
Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||
--- | |||
support.cc | 1 + | |||
1 file changed, 1 insertion(+) | |||
diff --git a/support.cc b/support.cc | |||
index 1107993..891caad 100644 | |||
--- a/support.cc | |||
+++ b/support.cc | |||
@@ -55,6 +55,7 @@ string ReadString(void) { | |||
string ReadString(void) { | |||
string inString; | |||
+ cout << flush; | |||
getline(cin, inString); | |||
if (!cin.good()) | |||
exit(5); | |||
-- | |||
2.17.1 | |||
@ -0,0 +1,79 @@ | |||
From b33f93bea332211afae037e4b6f379f0876302d1 Mon Sep 17 00:00:00 2001 | |||
From: Rosen Penev <rosenp@gmail.com> | |||
Date: Tue, 8 Oct 2019 20:51:54 -0700 | |||
Subject: [PATCH] Add some extra flushes before getline/cin | |||
These are not covered by the previous commits. | |||
Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||
--- | |||
diskio-unix.cc | 2 +- | |||
gptcurses.cc | 4 ++-- | |||
parttypes.cc | 2 +- | |||
support.cc | 2 +- | |||
4 files changed, 5 insertions(+), 5 deletions(-) | |||
diff --git a/diskio-unix.cc b/diskio-unix.cc | |||
index d9f8b8d..c38fda5 100644 | |||
--- a/diskio-unix.cc | |||
+++ b/diskio-unix.cc | |||
@@ -92,7 +92,7 @@ int DiskIO::OpenForRead(void) { | |||
#if defined(__linux__) && !defined(EFI) | |||
if (isOpen && realFilename.substr(0,4) == "/dev") { | |||
ostringstream modelNameFilename; | |||
- modelNameFilename << "/sys/block" << realFilename.substr(4,512) << "/device/model"; | |||
+ modelNameFilename << "/sys/block" << realFilename.substr(4,512) << "/device/model" << flush; | |||
ifstream modelNameFile(modelNameFilename.str().c_str()); | |||
if (modelNameFile.is_open()) { | |||
getline(modelNameFile, modelName); | |||
diff --git a/gptcurses.cc b/gptcurses.cc | |||
index 4ebfde1..ca6f4ea 100644 | |||
--- a/gptcurses.cc | |||
+++ b/gptcurses.cc | |||
@@ -418,7 +418,7 @@ void GPTDataCurses::Verify(void) { | |||
def_prog_mode(); | |||
endwin(); | |||
GPTData::Verify(); | |||
- cout << "\nPress the <Enter> key to continue: "; | |||
+ cout << "\nPress the <Enter> key to continue: " << flush; | |||
cin.get(junk); | |||
reset_prog_mode(); | |||
refresh(); | |||
@@ -816,7 +816,7 @@ void ShowTypes(void) { | |||
def_prog_mode(); | |||
endwin(); | |||
tempType.ShowAllTypes(LINES - 3); | |||
- cout << "\nPress the <Enter> key to continue: "; | |||
+ cout << "\nPress the <Enter> key to continue: " << flush; | |||
cin.get(junk); | |||
reset_prog_mode(); | |||
refresh(); | |||
diff --git a/parttypes.cc b/parttypes.cc | |||
index cd225d1..6c2c8c6 100644 | |||
--- a/parttypes.cc | |||
+++ b/parttypes.cc | |||
@@ -524,7 +524,7 @@ void PartType::ShowAllTypes(int maxLines) const { | |||
if (thisType->next) { | |||
cout << "\n"; | |||
if ((maxLines > 0) && (lineCount++ % maxLines) == 0) { | |||
- cout << "Press the <Enter> key to see more codes: "; | |||
+ cout << "Press the <Enter> key to see more codes: " << flush; | |||
getline(cin, line); | |||
} // if reached screen line limit | |||
} // if there's another entry following this one | |||
diff --git a/support.cc b/support.cc | |||
index 891caad..645ef5d 100644 | |||
--- a/support.cc | |||
+++ b/support.cc | |||
@@ -123,7 +123,7 @@ uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, uint64_t sSize, | |||
char line[255]; | |||
do { | |||
- cout << prompt; | |||
+ cout << prompt << flush; | |||
cin.getline(line, 255); | |||
if (!cin.good()) | |||
exit(5); | |||
-- | |||
2.17.1 | |||