summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2018-01-05 06:47:44 +0000
committerAlan Mishchenko <alanmi@berkeley.edu>2018-01-05 06:47:44 +0000
commit29895ca2f8de684af571e010be6914a3ed9b7bf3 (patch)
treee4387703ef62a80e8c3d1822fc16bc740d723b9a /src
parent7d781c37e84850f04796ec8fda2fb4729f6402d3 (diff)
parente513afae09b90c609474e8210e1f1d72ade24896 (diff)
downloadabc-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
Diffstat (limited to 'src')
-rw-r--r--src/map/scl/sclLiberty.c12
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;