12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- ~ Copyright (c) 2006-2017 DMDirc Developers
- ~
- ~ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
- ~ documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
- ~ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
- ~ permit persons to whom the Software is furnished to do so, subject to the following conditions:
- ~
- ~ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
- ~ Software.
- ~
- ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- ~ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
- ~ OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- ~ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- -->
-
- <project basedir=".">
-
- <macrodef name="readdomain">
- <attribute name="contents"/>
- <attribute name="domain"/>
- <attribute name="outputproperty"/>
-
- <sequential>
- <local name="extracted"/>
-
- <!-- Extract the entire domain contents -->
- <propertyregex property="extracted" override="true" input="@{contents}" select="\1" defaultvalue="">
- <regexp pattern="(?si)^.*[\r\n]+\Q@{domain}\E:[\r\n]+(.*?)([\r\n]+[^\r\n]+:[\r\n]+|$)"/>
- </propertyregex>
-
- <!-- Trim leading whitespace -->
- <propertyregex property="@{outputproperty}" override="true" input="${extracted}" replace="" global="true">
- <regexp pattern="(?m)^\s+"/>
- </propertyregex>
- </sequential>
- </macrodef>
-
- <macrodef name="readvalue">
- <attribute name="domaincontents"/>
- <attribute name="setting"/>
- <attribute name="outputproperty"/>
-
- <sequential>
- <local name="extracted"/>
-
- <!-- Extract the raw value -->
- <propertyregex property="extracted" override="true" input="@{domaincontents}" select="\1">
- <regexp pattern="(?mi)^\s*\Q@{setting}\E\s*=\s*(.*?)[\r\n]*?$"/>
- </propertyregex>
-
- <!-- Unescape \r, \n, \=, \#, \: and \\ -->
- <propertyregex property="extracted" override="true" input="${extracted}" defaultvalue="${extracted}" regexp="\\n" replace="\n" global="true"/>
- <propertyregex property="extracted" override="true" input="${extracted}" defaultvalue="${extracted}" regexp="\\r" replace="\r" global="true"/>
- <propertyregex property="extracted" override="true" input="${extracted}" defaultvalue="${extracted}" regexp="\\=" replace="=" global="true"/>
- <propertyregex property="extracted" override="true" input="${extracted}" defaultvalue="${extracted}" regexp="\\#" replace="#" global="true"/>
- <propertyregex property="extracted" override="true" input="${extracted}" defaultvalue="${extracted}" regexp="\\:" replace=":" global="true"/>
- <propertyregex property="@{outputproperty}" override="true" input="${extracted}" defaultvalue="${extracted}" regexp="\\\\" replace="\" global="true"/>
- </sequential>
- </macrodef>
-
- </project>
|