diff options
Diffstat (limited to 'frontends')
-rw-r--r-- | frontends/ilang/ilang_lexer.l | 6 | ||||
-rw-r--r-- | frontends/verilog/preproc.cc | 8 | ||||
-rw-r--r-- | frontends/verilog/verilog_lexer.l | 6 |
3 files changed, 5 insertions, 15 deletions
diff --git a/frontends/ilang/ilang_lexer.l b/frontends/ilang/ilang_lexer.l index dcbc6b6d..ace992fb 100644 --- a/frontends/ilang/ilang_lexer.l +++ b/frontends/ilang/ilang_lexer.l @@ -35,11 +35,7 @@ USING_YOSYS_NAMESPACE #define YY_INPUT(buf,result,max_size) \ - do { \ - ILANG_FRONTEND::lexin->read(buf, max_size-1); \ - result = ILANG_FRONTEND::lexin->gcount(); \ - if (result >= 0) buf[result] = '\0'; \ - } while (0) + result = readsome(*ILANG_FRONTEND::lexin, buf, max_size) %} diff --git a/frontends/verilog/preproc.cc b/frontends/verilog/preproc.cc index da658410..b4e77c31 100644 --- a/frontends/verilog/preproc.cc +++ b/frontends/verilog/preproc.cc @@ -196,16 +196,14 @@ static std::string next_token(bool pass_newline = false) static void input_file(std::istream &f, std::string filename) { char buffer[513]; + int rc; insert_input(""); auto it = input_buffer.begin(); input_buffer.insert(it, "`file_push " + filename + "\n"); - while (1) { - f.read(buffer, sizeof(buffer)-1); - if (f.gcount() <= 0) - break; - buffer[f.gcount()] = 0; + while ((rc = readsome(f, buffer, sizeof(buffer)-1)) > 0) { + buffer[rc] = 0; input_buffer.insert(it, buffer); } input_buffer.insert(it, "\n`file_pop\n"); diff --git a/frontends/verilog/verilog_lexer.l b/frontends/verilog/verilog_lexer.l index 0d28e2e7..ae16ebf7 100644 --- a/frontends/verilog/verilog_lexer.l +++ b/frontends/verilog/verilog_lexer.l @@ -64,11 +64,7 @@ YOSYS_NAMESPACE_END return TOK_ID; #define YY_INPUT(buf,result,max_size) \ - do { \ - lexin->read(buf, max_size-1); \ - result = lexin->gcount(); \ - if (result >= 0) buf[result] = '\0'; \ - } while (0) + result = readsome(*VERILOG_FRONTEND::lexin, buf, max_size) %} |