diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2018-01-05 06:47:44 +0000 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2018-01-05 06:47:44 +0000 |
commit | 29895ca2f8de684af571e010be6914a3ed9b7bf3 (patch) | |
tree | e4387703ef62a80e8c3d1822fc16bc740d723b9a | |
parent | 7d781c37e84850f04796ec8fda2fb4729f6402d3 (diff) | |
parent | e513afae09b90c609474e8210e1f1d72ade24896 (diff) | |
download | abc-29895ca2f8de684af571e010be6914a3ed9b7bf3.tar.gz abc-29895ca2f8de684af571e010be6914a3ed9b7bf3.tar.bz2 abc-29895ca2f8de684af571e010be6914a3ed9b7bf3.zip |
Merged in Fatsie/abc/liberty_value_expression (pull request #87)
Allow expression in value in liberty file
-rw-r--r-- | src/map/scl/sclLiberty.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/map/scl/sclLiberty.c b/src/map/scl/sclLiberty.c index b48cfbe1..fc06bc47 100644 --- a/src/map/scl/sclLiberty.c +++ b/src/map/scl/sclLiberty.c @@ -399,6 +399,18 @@ int Scl_LibertyBuildItem( Scl_Tree_t * p, char ** ppPos, char * pEnd ) if ( Scl_LibertySkipSpaces( p, ppPos, pEnd, 1 ) ) goto exit; pNext = *ppPos; + while ( *pNext == '+' || *pNext == '-' || *pNext == '*' || *pNext == '/' ) + { + (*ppPos) += 1; + if ( Scl_LibertySkipSpaces( p, ppPos, pEnd, 0 ) ) + goto exit; + if ( Scl_LibertySkipEntry( ppPos, pEnd ) ) + goto exit; + Head.End = *ppPos - p->pContents; + if ( Scl_LibertySkipSpaces( p, ppPos, pEnd, 1 ) ) + goto exit; + pNext = *ppPos; + } if ( *pNext != ';' && *pNext != '\n' ) goto exit; *ppPos = pNext + 1; |