+
+std::istream *check_istream(const client_options &opt, const char *file, std::ifstream &stream) {
+ if (file && *file) {
+ if (file[0] != '-' || file[1] != 0) {
+ if (opt.isset("debug")) {
+ std::cerr << "Opening '" << file << "' for reading.\n";
+ }
+ errno = 0;
+ stream.open(file, std::ios::binary | std::ios::in);
+ if (stream.is_open()) {
+ return &stream;
+ } else if (!opt.isset("quiet")) {
+ std::cerr << "Failed to open '" << file << "' for reading: " << strerror(errno) << ".\n";
+ }
+ return nullptr;
+ }
+ }
+ return &std::cin;
+}