1
Fork 0
mirror of https://https.git.savannah.gnu.org/git/guix.git/ synced 2025-07-12 01:50:46 +02:00
guix/gnu/packages/patches/mono-6.12.0-fix-ConditionParser.patch
unmush 84df0c4f39
gnu: Add mono-6.12.0.
This includes a patch to add support for a <runpath> element to
mono's *.dll.config and *.exe.config files.  See
mono-6.12.0-add-runpath.patch for details.

* gnu/packages/dotnet.scm (mono-6.12.0-external-repo-specs,
mono-6.12.0): New variable.
* gnu/packages/patches/mono-6.12.0-add-runpath.patch,
gnu/packages/patches/mono-6.12.0-fix-AssemblyResolver.patch,
gnu/packages/patches/mono-6.12.0-fix-ConditionParser.patch: New patches.
* gnu/local.mk (dist_patch_DATA): Register new patches.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I937715ad00df17b92137b8cd364652e7d445e22e
2024-12-22 15:37:35 +02:00

46 lines
2 KiB
Diff

diff --git a/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionParser.cs b/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionParser.cs
index b5e2e809ae4..757492d15e4 100644
--- a/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionParser.cs
+++ b/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionParser.cs
@@ -205,19 +205,30 @@ ConditionExpression ParseFunctionExpression (string function_name)
{
List <ConditionFactorExpression> list = new List <ConditionFactorExpression> ();
ConditionFactorExpression e;
-
+
+ /* starts looking at the open paren, move past it */
+ tokenizer.GetNextToken ();
+ if (tokenizer.Token.Type == TokenType.RightParen) {
+ /* leave us looking past the end of the argument list */
+ tokenizer.GetNextToken ();
+ return list;
+ }
while (true) {
- tokenizer.GetNextToken ();
- if (tokenizer.Token.Type == TokenType.RightParen) {
- tokenizer.GetNextToken ();
- break;
- }
- if (tokenizer.Token.Type == TokenType.Comma)
+ e = (ConditionFactorExpression) ParseFactorExpression ();
+ list.Add (e);
+ /* ParseFactorExpression leaves us looking at what follows the
+ * expression */
+ if (tokenizer.Token.Type == TokenType.RightParen) {
+ /* leave us looking past the end of the argument list */
+ tokenizer.GetNextToken ();
+ break;
+ }
+ if (tokenizer.Token.Type == TokenType.Comma) {
+ tokenizer.GetNextToken ();
continue;
-
- tokenizer.Putback (tokenizer.Token);
- e = (ConditionFactorExpression) ParseFactorExpression ();
- list.Add (e);
+ }
+
+ throw new ExpressionParseException (String.Format ("Unexpected token {0} in argument list while parsing condition \"{1}\"", tokenizer.Token, conditionStr));
}
return list;