diff options
Diffstat (limited to 'cpp/tangle')
-rw-r--r-- | cpp/tangle/002main.cc | 9 | ||||
-rw-r--r-- | cpp/tangle/030tangle.cc | 29 |
2 files changed, 4 insertions, 34 deletions
diff --git a/cpp/tangle/002main.cc b/cpp/tangle/002main.cc index 04d10c8d..aaa91e6f 100644 --- a/cpp/tangle/002main.cc +++ b/cpp/tangle/002main.cc @@ -1,14 +1,7 @@ -string Last_file = ""; int main(int argc, const char* argv[]) { - Last_file = flag_value("--until", argc, argv); if (flag("test", argc, argv)) return run_tests(); - return tangle_files_in_cwd(); -} - -bool eof(istream& in) { - in.peek(); - return in.eof(); + return tangle(argc, argv); } bool flag(const string& flag, int argc, const char* argv[]) { diff --git a/cpp/tangle/030tangle.cc b/cpp/tangle/030tangle.cc index 52bf4c61..ec34c944 100644 --- a/cpp/tangle/030tangle.cc +++ b/cpp/tangle/030tangle.cc @@ -1,12 +1,9 @@ #include<sys/param.h> -int tangle_files_in_cwd() { +int tangle(int argc, const char* argv[]) { list<string> result; - vector<char*> files = sorted_files(".", /*no extension*/ ""); - for (vector<char*>::iterator p = files.begin(); p != files.end(); ++p) { - if ((*p)[0] < '0' || (*p)[0] > '9') continue; - if (!Last_file.empty() && *p > Last_file) break; - ifstream in(*p); + for (int i = 1; i < argc; ++i) { + ifstream in(argv[i]); tangle(in, result); } for (list<string>::iterator p = result.begin(); p != result.end(); ++p) @@ -367,23 +364,3 @@ string trim(const string& s) { ++last; return string(first, last); } - -#include<dirent.h> - -vector<char*> sorted_files(const char* dirname, const char* ext) { - vector<char*> result; - dirent** files; - int num_files = scandir(dirname, &files, NULL, alphasort); - for (int i = 0; i < num_files; ++i) { - unsigned long n = strlen(files[i]->d_name), extn = strlen(ext); - if (n < extn) continue; - if (strncmp(&files[i]->d_name[n-extn], ext, extn)) continue; - if (!isdigit(files[i]->d_name[0])) continue; - char* s = new char[n+1]; - strncpy(s, files[i]->d_name, n+1); - result.push_back(s); - free(files[i]); - } - free(files); - return result; -} |