Merge pull request #899 from KLayout/issue-898

Issue 898 (Spice reader ignores last line)
This commit is contained in:
Matthias Köfferlein 2021-09-21 22:42:53 +02:00 committed by GitHub
commit a2e171b330
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 2 deletions

View File

@ -662,7 +662,7 @@ NetlistSpiceReader::SpiceReaderStream::close ()
std::pair<std::string, bool>
NetlistSpiceReader::SpiceReaderStream::get_line ()
{
if (mp_text_stream->at_end ()) {
if (at_end ()) {
return std::make_pair (std::string (), false);
}
@ -708,7 +708,7 @@ NetlistSpiceReader::SpiceReaderStream::source () const
bool
NetlistSpiceReader::SpiceReaderStream::at_end () const
{
return mp_text_stream->at_end ();
return !m_has_stored_line && mp_text_stream->at_end ();
}
void

View File

@ -590,3 +590,24 @@ TEST(15_ContinuationWithBlanks)
"end;\n"
);
}
TEST(16_issue898)
{
db::Netlist nl;
std::string path = tl::combine_path (tl::combine_path (tl::testdata (), "algo"), "issue-898.cir");
db::NetlistSpiceReader reader;
tl::InputStream is (path);
reader.read (is, nl);
EXPECT_EQ (nl.to_string (),
"circuit .TOP ();\n"
" device RES $1 (A=VDD,B=GND) (R=1000,L=0,W=0,A=0,P=0);\n"
" subcircuit FILLER_CAP '0' (VDD=VDD,GND=GND);\n"
"end;\n"
"circuit FILLER_CAP (VDD=VDD,GND=GND);\n"
" device NMOS '0' (S=GND,G=VDD,D=GND,B=GND) (L=10,W=10,AS=0,AD=0,PS=0,PD=0);\n"
"end;\n"
);
}

10
testdata/algo/issue-898.cir vendored Normal file
View File

@ -0,0 +1,10 @@
X0 FILLER_CAP
R$1 vdd gnd 1k
.subckt FILLER_CAP
M0 gnd vdd gnd gnd NMOS W=10u L=10u
.ends FILLER_CAP
.global vdd gnd