diff --git a/qucs/extsimkernels/s2spice.cpp b/qucs/extsimkernels/s2spice.cpp index 73294a994..626b7f4cd 100644 --- a/qucs/extsimkernels/s2spice.cpp +++ b/qucs/extsimkernels/s2spice.cpp @@ -77,6 +77,7 @@ bool S2Spice::convertTouchstone(QTextStream *stream) QString next_line; while(in_stream.readLineInto(&next_line)) { + if (next_line.isEmpty()) continue; if (next_line.at(0) == '#') break; } @@ -130,6 +131,11 @@ bool S2Spice::convertTouchstone(QTextStream *stream) while(in_stream.readLineInto(&next_line)) { if(next_line.isEmpty()) continue; if(next_line.at(0)=='#') continue; + if(next_line.startsWith("!noise parameters")) { + err_text = "Noise simulation in S2P files is not supported!\n" + "Noise data ignored"; + break; + } if(next_line.at(0)=='!') continue; tmp_lst = next_line.split(QRegularExpression("[ \\t]"), qucs::SkipEmptyParts); if (tmp_lst.count() < 2*(ports*ports)+1) { diff --git a/qucs/schematic_file.cpp b/qucs/schematic_file.cpp index 49ad1564a..e30f20f49 100644 --- a/qucs/schematic_file.cpp +++ b/qucs/schematic_file.cpp @@ -1464,10 +1464,13 @@ bool Schematic::throughAllComps(QTextStream *stream, int& countInit, S2Spice *conv = new S2Spice(); conv->setFile(f); conv->setDeviceName(sub_name); - if (!conv->convertTouchstone(stream)) { - QMessageBox::warning(this,tr("Netlist error"), - conv->getErrText()); + bool r = conv->convertTouchstone(stream); + QString msg = conv->getErrText(); + if (!r) { + QMessageBox::warning(this,tr("Netlist error"), msg); return false; + } else if (!msg.isEmpty()) { + QMessageBox::warning(this,tr("S2Spice warning"), msg); } delete conv; }