From 53371092904be374af6076449b9d48953ede3177 Mon Sep 17 00:00:00 2001 From: Jaap Eldering Date: Sun, 15 Mar 2026 00:41:20 +0100 Subject: [PATCH 1/2] Accept - as filename for stdin as mentioned in usage info --- checktestdata.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/checktestdata.cc b/checktestdata.cc index 2c5109d..88dd5c9 100644 --- a/checktestdata.cc +++ b/checktestdata.cc @@ -149,6 +149,7 @@ int main(int argc, char **argv) fstream fdata; if ( argc>optind+1 ) { char *datafile = argv[optind+1]; + if ( datafile==string("-") ) goto use_stdin; if ( filesystem::is_directory(datafile) ) { cerr << "Expected a file instead of a directory: '" << datafile << "'.\n"; exit(exit_failure); @@ -160,6 +161,7 @@ int main(int argc, char **argv) exit(exit_failure); } } + use_stdin: iostream& data = fdata.is_open() ? static_cast(fdata) : (generate ? static_cast(cout) : static_cast(cin) ); From 919336d837fd76ad624f05baecba5d11cef7c504 Mon Sep 17 00:00:00 2001 From: Jaap Eldering Date: Sun, 15 Mar 2026 00:43:20 +0100 Subject: [PATCH 2/2] Fall back to old input reading when using stdin The seekg/tellg was not working for me with stdin and reporting "error reading testdata". --- libchecktestdata.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libchecktestdata.cc b/libchecktestdata.cc index d9105e2..4e28c24 100644 --- a/libchecktestdata.cc +++ b/libchecktestdata.cc @@ -164,6 +164,14 @@ void readtestdata(istream &in) data = databuffer(std::move(buffer)); return; } + } else { + in.clear(); + stringstream ss; + ss << in.rdbuf(); + if (!in.fail()) { + data = databuffer(ss.str()); + return; + } } cerr << "error reading testdata" << endl;