--- SysInfo.cs	Sun May 25 20:20:24 2003
+++ nant-0.8.3-rc2\src\NAnt.Core\Tasks\SysInfo.cs	Wed Aug 13 10:59:38 2003
@@ -58,7 +58,15 @@
     /// </example>
     [TaskName("sysinfo")]
     public class SysInfoTask : Task {
+
+		public enum ChangeCaseItem {
+			None,
+			Upper,
+			Lower
+		}
+
         string _prefix = "sys.";
+		ChangeCaseItem _changeCase = ChangeCaseItem.None;
        
         /// <summary>The string to prefix the property names with.  Default is "sys."</summary>
         [TaskAttribute("prefix", Required=false)]
@@ -67,7 +75,18 @@
             set { _prefix = value; }
         }
 
-        protected override void ExecuteTask() {
+		/// <summary>
+		/// Sets the case for environment variables. Default is "None".
+		/// </summary>
+		[TaskAttribute("changecase", Required=false)]
+		public ChangeCaseItem ChangeCase
+		{
+			get { return _changeCase; }
+			set { _changeCase = value; }
+		}
+
+		protected override void ExecuteTask() 
+		{
             Log(Level.Info, LogPrefix + "Setting system information properties under " + Prefix + "*");
 
             // set properties
@@ -86,7 +105,18 @@
             // set environment variables
             IDictionary variables = Environment.GetEnvironmentVariables();
             foreach (string name in variables.Keys) {
-                Properties[Prefix + "env." + name] = (string)variables[name];
+				switch (_changeCase)
+				{
+					case ChangeCaseItem.Upper:
+						Properties[Prefix + "env." + name.ToUpper()] = (string)variables[name];
+						break;
+					case ChangeCaseItem.Lower:
+						Properties[Prefix + "env." + name.ToLower()] = (string)variables[name];
+						break;
+					default:
+						Properties[Prefix + "env." + name] = (string)variables[name];
+						break;
+				}
             }
 
             // display the properties
