Merge branch 'master' of github.com:mono/mono
[mono.git] / mcs / class / Microsoft.Build.Utilities / Microsoft.Build.Utilities / TaskLoggingHelper.cs
index 8e99e10ecb5a414e50fd77f6988eefa59b27f713..11a9229539adb164159595e77069596f8d5aa672 100644 (file)
@@ -45,7 +45,9 @@ namespace Microsoft.Build.Utilities
        
                public TaskLoggingHelper (ITask taskInstance)
                {
-                       this.buildEngine = taskInstance.BuildEngine;
+                       if (taskInstance != null)
+                               this.buildEngine = taskInstance.BuildEngine;
+                       taskName = null;
                }
 
                [MonoTODO]
@@ -55,8 +57,8 @@ namespace Microsoft.Build.Utilities
                        if (message == null)
                                throw new ArgumentNullException ("message");
                                
-                       messageWithoutCodePrefix = "";
-                       return "";
+                       messageWithoutCodePrefix = String.Empty;
+                       return String.Empty;
                }
 
                [MonoTODO]
@@ -76,7 +78,7 @@ namespace Microsoft.Build.Utilities
                        if (unformatted == null)
                                throw new ArgumentNullException ("unformatted");
                
-                       if (args == null)
+                       if (args == null || args.Length == 0)
                                return unformatted;
                        else
                                return String.Format (unformatted, args);
@@ -100,7 +102,7 @@ namespace Microsoft.Build.Utilities
                                throw new ArgumentNullException ("message");
                                
                        BuildErrorEventArgs beea = new BuildErrorEventArgs (
-                               null, null, null, 0, 0, 0, 0, FormatString (message, messageArgs),
+                               null, null, buildEngine.ProjectFileOfTaskNode, 0, 0, 0, 0, FormatString (message, messageArgs),
                                helpKeywordPrefix, null);
                        buildEngine.LogErrorEvent (beea);
                        hasLoggedErrors = true;
@@ -119,7 +121,7 @@ namespace Microsoft.Build.Utilities
                        BuildErrorEventArgs beea = new BuildErrorEventArgs (
                                subcategory, errorCode, file, lineNumber,
                                columnNumber, endLineNumber, endColumnNumber,
-                               FormatString (message, messageArgs), helpKeywordPrefix /*it's helpKeyword*/,
+                               FormatString (message, messageArgs), helpKeyword /*it's helpKeyword*/,
                                null /*it's senderName*/);
                        buildEngine.LogErrorEvent (beea);
                        hasLoggedErrors = true;
@@ -127,11 +129,18 @@ namespace Microsoft.Build.Utilities
 
                public void LogErrorFromException (Exception e)
                {
-                       LogErrorFromException (e, false);
+                       LogErrorFromException (e, true);
                }
 
                public void LogErrorFromException (Exception e,
                                                   bool showStackTrace)
+               {
+                       LogErrorFromException (e, showStackTrace, true, String.Empty);
+               }
+
+               [MonoTODO ("Arguments @showDetail and @file are not honored")]
+               public void LogErrorFromException (Exception e,
+                                                  bool showStackTrace, bool showDetail, string file)
                {
                        if (e == null)
                                throw new ArgumentNullException ("e");
@@ -141,7 +150,7 @@ namespace Microsoft.Build.Utilities
                        if (showStackTrace == true)
                                sb.Append (e.StackTrace);
                        BuildErrorEventArgs beea = new BuildErrorEventArgs (
-                               null, null, null, 0, 0, 0, 0, sb.ToString (),
+                               null, null, buildEngine.ProjectFileOfTaskNode, 0, 0, 0, 0, sb.ToString (),
                                e.HelpLink, e.Source);
                        buildEngine.LogErrorEvent (beea);
                        hasLoggedErrors = true;
@@ -212,10 +221,7 @@ namespace Microsoft.Build.Utilities
                        if (message == null)
                                throw new ArgumentNullException ("message");
                
-                       BuildMessageEventArgs bmea = new BuildMessageEventArgs (
-                               FormatString (message, messageArgs), helpKeywordPrefix,
-                               null, importance);
-                       buildEngine.LogMessageEvent (bmea);
+                       LogMessageFromText (FormatString (message, messageArgs), importance);
                }
 
                public void LogMessageFromResources (string messageResourceName,
@@ -268,13 +274,18 @@ namespace Microsoft.Build.Utilities
                                stream.Close ();
                        }
                }
-               
-               [MonoTODO]
+
                public bool LogMessageFromText (string lineOfText,
                                                MessageImportance importance)
                {
                        if (lineOfText == null)
                                throw new ArgumentNullException ("lineOfText");
+
+                       BuildMessageEventArgs bmea = new BuildMessageEventArgs (
+                               lineOfText, helpKeywordPrefix,
+                               null, importance);
+                       buildEngine.LogMessageEvent (bmea);
+
                        return true;
                }
 
@@ -283,7 +294,7 @@ namespace Microsoft.Build.Utilities
                {
                        // FIXME: what about all the parameters?
                        BuildWarningEventArgs bwea = new BuildWarningEventArgs (
-                               null, null, null, 0, 0, 0, 0, FormatString (message, messageArgs),
+                               null, null, buildEngine.ProjectFileOfTaskNode, 0, 0, 0, 0, FormatString (message, messageArgs),
                                helpKeywordPrefix, null);
                        buildEngine.LogWarningEvent (bwea);
                }
@@ -298,7 +309,7 @@ namespace Microsoft.Build.Utilities
                        BuildWarningEventArgs bwea = new BuildWarningEventArgs (
                                subcategory, warningCode, file, lineNumber,
                                columnNumber, endLineNumber, endColumnNumber,
-                               FormatString (message, messageArgs), helpKeywordPrefix, null);
+                               FormatString (message, messageArgs), helpKeyword, null);
                        buildEngine.LogWarningEvent (bwea);
                }