write_sdf escape non-alnum chars in port name
This commit is contained in:
parent
35a3f1e4e3
commit
34c312fd52
|
|
@ -717,12 +717,6 @@ SdfWriter::sdfEdge(const Transition *tr)
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
char *
|
|
||||||
SdfWriter::sdfPortName(const Pin *pin)
|
|
||||||
{
|
|
||||||
return const_cast<char *>(network_->portName(pin));
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
char *
|
||||||
SdfWriter::sdfPathName(const Pin *pin)
|
SdfWriter::sdfPathName(const Pin *pin)
|
||||||
{
|
{
|
||||||
|
|
@ -790,4 +784,30 @@ SdfWriter::sdfName(const Instance *inst)
|
||||||
return sdf_name;
|
return sdf_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
SdfWriter::sdfPortName(const Pin *pin)
|
||||||
|
{
|
||||||
|
const char *name = network_->portName(pin);
|
||||||
|
char *sdf_name = makeTmpString(strlen(name) * 2 + 1);
|
||||||
|
const char *p = name;
|
||||||
|
char *s = sdf_name;
|
||||||
|
while (*p) {
|
||||||
|
char ch = *p;
|
||||||
|
if (ch == network_escape_) {
|
||||||
|
// Copy escape and escaped char.
|
||||||
|
*s++ = sdf_escape_;
|
||||||
|
*s++ = *++p;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!(isalnum(ch) || ch == '_' || ch == '[' || ch == ']'))
|
||||||
|
// Insert escape.
|
||||||
|
*s++ = sdf_escape_;
|
||||||
|
*s++ = ch;
|
||||||
|
}
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
*s = '\0';
|
||||||
|
return sdf_name;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue