Added history file read/write to driver
authorClifford Wolf <clifford@clifford.at>
Mon, 10 Jun 2013 13:42:52 +0000 (15:42 +0200)
committerClifford Wolf <clifford@clifford.at>
Mon, 10 Jun 2013 13:42:52 +0000 (15:42 +0200)
kernel/driver.cc

index 886cb1f4a06ff96ad2d9ab1f6b1b023a2f140d0a..0bb12f94ddc4eb45092613dd7bed97c6c8bef9aa 100644 (file)
@@ -429,6 +429,14 @@ int main(int argc, char **argv)
        bool scriptfile_tcl = false;
        bool got_output_filename = false;
 
+       int history_offset = 0;
+       std::string history_file;
+       if (getenv("HOME") != NULL) {
+               history_file = stringf("%s/.yosys_history", getenv("HOME"));
+               read_history(history_file.c_str());
+               history_offset = where_history();
+       }
+
        int opt;
        while ((opt = getopt(argc, argv, "Sm:f:b:o:p:l:qts:c:")) != -1)
        {
@@ -601,6 +609,14 @@ int main(int argc, char **argv)
        log("\nREADY.\n");
        log_pop();
 
+       if (!history_file.empty()) {
+               if (history_offset > 0) {
+                       history_truncate_file(history_file.c_str(), 100);
+                       append_history(where_history() - history_offset, history_file.c_str());
+               } else
+                       write_history(history_file.c_str());
+       }
+
        for (auto f : log_files)
                if (f != stderr)
                        fclose(f);