From ddfdeb339e9f4e5b264d6921a095d5d0b6656b8e Mon Sep 17 00:00:00 2001 From: Erthilo Date: Thu, 7 Jun 2012 01:15:10 +0100 Subject: [PATCH] TG: - Committing the source code of the "Unstandardness Text For DM" program. The program can currently map out defines. Revision: r3728 Author: baloh.matevz --- .../UnstandardnessTestForDM.sln | 20 + .../UnstandardnessTestForDM.suo | Bin 0 -> 23040 bytes .../UnstandardnessTestForDM/Form1.Designer.cs | 160 ++++++ .../UnstandardnessTestForDM/Form1.cs | 484 ++++++++++++++++++ .../UnstandardnessTestForDM/Form1.resx | 120 +++++ .../UnstandardnessTestForDM/Program.cs | 21 + .../Properties/AssemblyInfo.cs | 36 ++ .../Properties/Resources.Designer.cs | 71 +++ .../Properties/Resources.resx | 117 +++++ .../Properties/Settings.Designer.cs | 30 ++ .../Properties/Settings.settings | 7 + .../UnstandardnessTestForDM.csproj | 87 ++++ .../bin/Debug/UnstandardnessTestForDM.exe | Bin 0 -> 17920 bytes .../bin/Debug/UnstandardnessTestForDM.pdb | Bin 0 -> 38400 bytes .../Debug/UnstandardnessTestForDM.vshost.exe | Bin 0 -> 11600 bytes ...nstandardnessTestForDM.vshost.exe.manifest | 11 + ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6426 bytes .../x86/Debug/GenerateResource.read.1.tlog | Bin 0 -> 416 bytes .../x86/Debug/GenerateResource.write.1.tlog | Bin 0 -> 994 bytes .../UnstandardnessTestForDM.Form1.resources | Bin 0 -> 180 bytes ...ssTestForDM.Properties.Resources.resources | Bin 0 -> 180 bytes ...dnessTestForDM.csproj.FileListAbsolute.txt | 18 + .../obj/x86/Debug/UnstandardnessTestForDM.exe | Bin 0 -> 17920 bytes .../obj/x86/Debug/UnstandardnessTestForDM.pdb | Bin 0 -> 38400 bytes tools/readme.txt | 6 + 25 files changed, 1188 insertions(+) create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM.sln create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM.suo create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.Designer.cs create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.cs create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.resx create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Program.cs create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/AssemblyInfo.cs create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.Designer.cs create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.resx create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.Designer.cs create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.settings create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/UnstandardnessTestForDM.csproj create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.exe create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.pdb create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.vshost.exe create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.vshost.exe.manifest create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.read.1.tlog create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.write.1.tlog create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Form1.resources create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Properties.Resources.resources create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.txt create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.exe create mode 100644 tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.pdb create mode 100644 tools/readme.txt diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.sln b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.sln new file mode 100644 index 00000000000..22ed586bbbf --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnstandardnessTestForDM", "UnstandardnessTestForDM\UnstandardnessTestForDM.csproj", "{A0EEBFC9-41D4-474D-853D-126AFDFB82DE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A0EEBFC9-41D4-474D-853D-126AFDFB82DE}.Debug|x86.ActiveCfg = Debug|x86 + {A0EEBFC9-41D4-474D-853D-126AFDFB82DE}.Debug|x86.Build.0 = Debug|x86 + {A0EEBFC9-41D4-474D-853D-126AFDFB82DE}.Release|x86.ActiveCfg = Release|x86 + {A0EEBFC9-41D4-474D-853D-126AFDFB82DE}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.suo b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM.suo new file mode 100644 index 0000000000000000000000000000000000000000..e62a5089375aa55ea8e93a9619aceeff27e5a495 GIT binary patch literal 23040 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 + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.listBox1 = new System.Windows.Forms.ListBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.listBox2 = new System.Windows.Forms.ListBox(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(12, 12); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(222, 23); + this.button1.TabIndex = 0; + this.button1.Text = "Locate all #defines"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // listBox1 + // + this.listBox1.FormattingEnabled = true; + this.listBox1.Location = new System.Drawing.Point(12, 82); + this.listBox1.Name = "listBox1"; + this.listBox1.Size = new System.Drawing.Size(696, 160); + this.listBox1.TabIndex = 1; + this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged); + // + // panel1 + // + this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel1.Controls.Add(this.listBox2); + this.panel1.Controls.Add(this.label4); + this.panel1.Controls.Add(this.label3); + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.label1); + this.panel1.Location = new System.Drawing.Point(12, 297); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(696, 244); + this.panel1.TabIndex = 2; + // + // listBox2 + // + this.listBox2.FormattingEnabled = true; + this.listBox2.Location = new System.Drawing.Point(8, 71); + this.listBox2.Name = "listBox2"; + this.listBox2.Size = new System.Drawing.Size(683, 160); + this.listBox2.TabIndex = 4; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(5, 55); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(69, 13); + this.label4.TabIndex = 3; + this.label4.Text = "Referenced: "; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(5, 42); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(40, 13); + this.label3.TabIndex = 2; + this.label3.Text = "Value: "; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(5, 29); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(61, 13); + this.label2.TabIndex = 1; + this.label2.Text = "Defined in: "; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); + this.label1.Location = new System.Drawing.Point(3, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(79, 29); + this.label1.TabIndex = 0; + this.label1.Text = "label1"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(9, 38); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(81, 13); + this.label5.TabIndex = 3; + this.label5.Text = "Files searched: "; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(720, 553); + this.Controls.Add(this.label5); + this.Controls.Add(this.panel1); + this.Controls.Add(this.listBox1); + this.Controls.Add(this.button1); + this.Name = "Form1"; + this.Text = "Unstandardness Test For DM"; + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + public System.Windows.Forms.ListBox listBox2; + public System.Windows.Forms.Label label5; + public System.Windows.Forms.ListBox listBox1; + } +} + diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.cs new file mode 100644 index 00000000000..4966c3f0c18 --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.cs @@ -0,0 +1,484 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Collections; +using System.IO; + +namespace UnstandardnessTestForDM +{ + public partial class Form1 : Form + { + DMSource source; + + public Form1() + { + InitializeComponent(); + source = new DMSource(); + source.mainform = this; + } + + private void button1_Click(object sender, EventArgs e) + { + source.find_all_defines(); + generate_define_report(); + } + + public void generate_define_report() + { + + TextWriter tw = new StreamWriter("DEFINES REPORT.txt"); + + tw.WriteLine("Unstandardness Test For DM report for DEFINES"); + tw.WriteLine("Generated on " + DateTime.Now); + tw.WriteLine("Total number of defines " + source.defines.Count()); + tw.WriteLine("Total number of Files " + source.filessearched); + tw.WriteLine("Total number of references " + source.totalreferences); + tw.WriteLine("Total number of errorous defines " + source.errordefines); + tw.WriteLine("------------------------------------------------"); + + foreach (Define d in source.defines) + { + tw.WriteLine(d.name); + tw.WriteLine("\tValue: " + d.value); + tw.WriteLine("\tComment: " + d.comment); + tw.WriteLine("\tDefined in: " + d.location + " : " + d.line); + tw.WriteLine("\tNumber of references: " + d.references.Count()); + foreach (String s in d.references) + { + tw.WriteLine("\t\t" + s); + } + } + + tw.WriteLine("------------------------------------------------"); + tw.WriteLine("SUCCESS"); + + tw.Close(); + + } + + private void listBox1_SelectedIndexChanged(object sender, EventArgs e) + { + try + { + Define d = (Define)listBox1.Items[listBox1.SelectedIndex]; + label1.Text = d.name; + label2.Text = "Defined in: " + d.location + " : " + d.line; + label3.Text = "Value: " + d.value; + label4.Text = "References: " + d.references.Count(); + listBox2.Items.Clear(); + foreach (String s in d.references) + { + listBox2.Items.Add(s); + } + + } + catch (Exception ex) { Console.WriteLine("ERROR HERE: " + ex.Message); } + } + + + } + + public class DMSource + { + public List defines; + public const int FLAG_DEFINE = 1; + public Form1 mainform; + + public int filessearched = 0; + public int totalreferences = 0; + public int errordefines = 0; + + public List filenames; + + public DMSource() + { + defines = new List(); + filenames = new List(); + } + + public void find_all_defines() + { + find_all_files(); + foreach(String filename in filenames){ + searchFileForDefines(filename); + } + + } + + public void find_all_files() + { + filenames = new List(); + String dmefilename = ""; + + foreach (string f in Directory.GetFiles(".")) + { + if (f.ToLower().EndsWith(".dme")) + { + dmefilename = f; + break; + } + } + + if (dmefilename.Equals("")) + { + MessageBox.Show("dme file not found"); + return; + } + + using (var reader = File.OpenText(dmefilename)) + { + String s; + while (true) + { + s = reader.ReadLine(); + + if (!(s is String)) + break; + + if (s.StartsWith("#include")) + { + int start = s.IndexOf("\"")+1; + s = s.Substring(start, s.Length - 11); + + if (s.EndsWith(".dm")) + { + filenames.Add(s); + } + } + + s = s.Trim(' '); + if (s == "") { continue; } + } + reader.Close(); + } + } + + + public void DirSearch(string sDir, int flag) + { + try + { + foreach (string d in Directory.GetDirectories(sDir)) + { + foreach (string f in Directory.GetFiles(d)) + { + if (f.ToLower().EndsWith(".dm")) + { + if ((flag & FLAG_DEFINE) > 0) + { + searchFileForDefines(f); + } + } + } + DirSearch(d, flag); + } + } + catch (System.Exception excpt) + { + Console.WriteLine("ERROR IN DIRSEARCH"); + Console.WriteLine(excpt.Message); + Console.WriteLine(excpt.Data); + Console.WriteLine(excpt.ToString()); + Console.WriteLine(excpt.StackTrace); + Console.WriteLine("END OF ERROR IN DIRSEARCH"); + } + } + + //DEFINES + public void searchFileForDefines(String fileName) + { + filessearched++; + FileInfo f = new FileInfo(fileName); + List lines = new List(); + List lines_without_comments = new List(); + + mainform.label5.Text = "Files searched: " + filessearched + "; Defines found: " + defines.Count() + "; References found: " + totalreferences + "; Errorous defines: " + errordefines; + mainform.label5.Refresh(); + + //This code segment reads the file and stores it into the lines variable. + using (var reader = File.OpenText(fileName)) + { + try + { + String s; + while (true) + { + s = reader.ReadLine(); + lines.Add(s); + s = s.Trim(' '); + if (s == "") { continue; } + } + } + catch { } + reader.Close(); + } + + mainform.listBox1.Items.Add("ATTEMPTING: " + fileName); + lines_without_comments = remove_comments(lines); + + /*TextWriter tw = new StreamWriter(fileName); + foreach (String s in lines_without_comments) + { + tw.WriteLine(s); + } + tw.Close(); + mainform.listBox1.Items.Add("REWRITE: "+fileName);*/ + + try + { + for (int i = 0; i < lines_without_comments.Count; i++) + { + String line = lines_without_comments[i]; + + if (!(line is string)) + continue; + + //Console.WriteLine("LINE: " + line); + + foreach (Define define in defines) + { + + if (line.IndexOf(define.name) >= 0) + { + define.references.Add(fileName + " : " + i); + totalreferences++; + } + } + + if( line.ToLower().IndexOf("#define") >= 0 ) + { + line = line.Trim(); + line = line.Replace('\t', ' '); + //Console.WriteLine("LINE = "+line); + String[] slist = line.Split(' '); + if(slist.Length >= 3){ + //slist[0] has the value of "#define" + String name = slist[1]; + String value = slist[2]; + + for (int j = 3; j < slist.Length; j++) + { + value += " " + slist[j]; + //Console.WriteLine("LISTITEM["+j+"] = "+slist[j]); + } + + value = value.Trim(); + + String comment = ""; + + if (value.IndexOf("//") >= 0) + { + comment = value.Substring(value.IndexOf("//")); + value = value.Substring(0, value.IndexOf("//")); + } + + comment = comment.Trim(); + value = value.Trim(); + + Define d = new Define(fileName,i,name,value,comment); + defines.Add(d); + mainform.listBox1.Items.Add(d); + mainform.listBox1.Refresh(); + }else{ + Define d = new Define(fileName, i, "ERROR ERROR", "Something went wrong here", line); + errordefines++; + defines.Add(d); + mainform.listBox1.Items.Add(d); + mainform.listBox1.Refresh(); + } + } + } + } + catch (Exception e) { + Console.WriteLine(e.Message); + Console.WriteLine(e.StackTrace); + MessageBox.Show("Exception: " + e.Message + " | " + e.ToString()); + } + } + + bool iscomment = false; + int ismultilinecomment = 0; + bool isstring = false; + bool ismultilinestring = false; + int escapesequence = 0; + int stringvar = 0; + + public List remove_comments(List lines) + { + List r = new List(); + + iscomment = false; + ismultilinecomment = 0; + isstring = false; + ismultilinestring = false; + + bool skiponechar = false; //Used so the / in */ doesn't get written; + + for (int i = 0; i < lines.Count(); i++) + { + + String line = lines[i]; + + if (!(line is String)) + continue; + + iscomment = false; + isstring = false; + char ca = ' '; + escapesequence = 0; + + String newline = ""; + + int k = line.Length; + + for (int j = 0; j < k; j++) + { + + char c = line.ToCharArray()[j]; + + if (escapesequence == 0) + if (normalstatus()) + { + if (ca == '/' && c == '/') + { + c = ' '; + iscomment = true; + + newline = newline.Remove(newline.Length - 1); + k = line.Length; + } + if (ca == '/' && c == '*') + { + c = ' '; + ismultilinecomment = 1; + newline = newline.Remove(newline.Length - 1); + k = line.Length; + } + if (c == '"') + { + isstring = true; + } + if (ca == '{' && c == '"') + { + ismultilinestring = true; + } + } + else if (isstring) + { + + if (c == '\\') + { + escapesequence = 2; + } + else if (stringvar > 0) + { + if (c == ']') + { + stringvar--; + } + else if (c == '[') + { + stringvar++; + } + } + else if (c == '"') + { + isstring = false; + } + else if (c == '[') + { + stringvar++; + } + } + else if (ismultilinestring) + { + if (ca == '"' && c == '}') + { + ismultilinestring = false; + } + } + else if (ismultilinecomment > 0) + { + if (ca == '/' && c == '*') + { + c = ' '; //These things are here to prevent /*/ from bieng interpreted as the start and end of a comment. + skiponechar = true; + ismultilinecomment++; + } + if (ca == '*' && c == '/') + { + c = ' '; //These things are here to prevent /*/ from bieng interpreted as the start and end of a comment. + skiponechar = true; + ismultilinecomment--; + } + } + + if (!iscomment && (ismultilinecomment==0) && !skiponechar) + { + newline += c; + } + + if (skiponechar) + { + skiponechar = false; + } + if (escapesequence > 0) + { + escapesequence--; + } + else + { + ca = c; + } + } + + r.Add(newline.TrimEnd()); + + } + + return r; + } + + private bool normalstatus() + { + return !isstring && !ismultilinestring && (ismultilinecomment==0) && !iscomment && (escapesequence == 0); + } + + + } + + public class Define + { + public String location; + public int line; + public String name; + public String value; + public String comment; + public List references; + + public Define(String location, int line, String name, String value, String comment) + { + this.location = location; + this.line = line; + this.name = name; + this.value = value; + this.comment = comment; + this.references = new List(); + } + + public override String ToString() + { + return "DEFINE: \""+name+"\" is defined as \""+value+"\" AT "+location+" : "+line; + } + + } + + + + +} diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.resx b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.resx new file mode 100644 index 00000000000..1af7de150c9 --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Program.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Program.cs new file mode 100644 index 00000000000..1e8ac829d9e --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace UnstandardnessTestForDM +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/AssemblyInfo.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/AssemblyInfo.cs new file mode 100644 index 00000000000..99c88721b31 --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("UnstandardnessTestForDM")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("UnstandardnessTestForDM")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c0e09000-1840-4416-8bb2-d86a8227adf1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.Designer.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.Designer.cs new file mode 100644 index 00000000000..92534f43fed --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace UnstandardnessTestForDM.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UnstandardnessTestForDM.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.resx b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.resx new file mode 100644 index 00000000000..af7dbebbace --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.Designer.cs b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.Designer.cs new file mode 100644 index 00000000000..ab81379593f --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace UnstandardnessTestForDM.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.settings b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.settings new file mode 100644 index 00000000000..39645652af6 --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/UnstandardnessTestForDM.csproj b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/UnstandardnessTestForDM.csproj new file mode 100644 index 00000000000..7cafd94f656 --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/UnstandardnessTestForDM.csproj @@ -0,0 +1,87 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {A0EEBFC9-41D4-474D-853D-126AFDFB82DE} + WinExe + Properties + UnstandardnessTestForDM + UnstandardnessTestForDM + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + \ No newline at end of file diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.exe b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.exe new file mode 100644 index 0000000000000000000000000000000000000000..bb55cad8fd79a29b2bd20e19c06f1dc03af0c30f GIT binary patch literal 17920 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 f!L1v;8A3spLJh!~a=*V>&iS81BEgcrT$<5` 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 z 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 + + + + + + + + + + diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..f4263115dfbb1263623b498558f2b704760184c8 GIT binary patch literal 6426 zcmeHL-BTMk5VyfxFoZUyDM_G7E^Rsuse6NK2#^^bf{k0IA;Z`X=?v!~vQIWDvgAlQ zjKlEMxBe6T3p)K1+ugH$d<1A8Y!44UhDGROf7;bb`w@voB9VXK!@v059s%NQv5Jyf zR*kd6v`=`!_#Tr^M%L?6Y-Tr-_6}8=NwJn%aDtzto$t0fuzY8LatnawC*$RA>O7iRLRCWMH&sNoIFvRqTw4o1B)LJ z&SjH&ue7H1GH-1h87gpBdJ1M|q^Po5j&V9uA;M!GF|<1qd-Yt^=RBuKoi?R9=nfT0 z8OH9O8_P-VfxM5fvq)5pns8acFKcSv02BR`)r3?uOREG_u_?5H{hjWv&G`BCliKXs zQ}40MSv>rt|LiK8gPhu2*k+a~S}{^Fs_!&BLsWqhRoUMrW?xS>l&pe6P>5+oYfKx} zIvtOL9EPICW?|h~+0QVYxiGXP1v{YX$>rTyrW>5J5b)x{j$O^Q7j7$Ap;}Az3O36O zhyWJWSwg+MFAS^G&XS9q+Dg&Zh&5_ik;n+pXf%qyK>r*ow6vjhFfllzib11sexiaZ zR&ic~2HvN3cdwZOR=q>GPqztE?|%%Z7K~z|mbB}-A{A%l(|fY`zpu&iGFhrDy-2O5 z7wN*vYAJc$K5pn%`=N(YZ`FFk*+rv66YYl;g}136%x}0&_4oo|q!1qkG7*nqa|{W* zw2}BNAlN;Q|HP3@0I?>KWH_V3Shu0Qew^=ko0kQMHJU_GH;e~d=gmejbhF7rctDd~ zAKmfC8%HPB6!7^YntAEI)!?Dsb;9Moo2B}|$cAfbI+b>flw7-S(U}U5C{KV#DT0g4 zNtNBYvR{^ebB|VD0I#xNLyq9Mi{NeYR7-vsMiO~irHTshQci_b_G$bx6!LQ*^XCQV z226n<;MdUOu62}g2c|#9>2@fvy=b=w?ao{)0h405+M0&eDD2Jp0vZ$8<)jzVsnz&h z_&6L?Uldg~q#*$1`3ZXr%H5NEgrY7BTo?LdGOG_3mo zdI+E}sRnVE9fV=_GZ1Co4Hap3P8nI8T0^Lq^LF8)^vDm@>9#d?y2{BE_K9i)I(Pus zqW{=k&mUmU0_KPQV}@~xq5mjK{f zXvA_*^NV646Qnoic7mA=eu*Hvfrj-Rko(7(OUsQX)-xELKK_{rgLSu@g6byRkrQhk z`e%=emlxMsC)RTq??tZkJ@A=2&XXp_-B^4(v69eL0v+}`dnz;0$($0H5C!V|0UD(D j=XD|aPhb*+->u-R5E;MGzlQJ5e--G5?@m~BElvIldB}37 literal 0 HcmV?d00001 diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.read.1.tlog b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..247c250f975958656053cca6e22ad8a5cf24ce20 GIT binary patch literal 416 zcmdUsI}XA?3`Adz#8r?G9bF*&M3Rk?jYJV~|5E_Z3k@YD&DtJ$#vbqUac9q#nTe4D zgYV3aiiX75ycQj~lC68|%*lGqrsPSqDV&MUm}PcyDwS%p;078obF@3~R_?F;Z*J@4 jl^UUUW66Sl*}r$|xM18kb14qykCWsz2LB;keY<-Bpfx{< literal 0 HcmV?d00001 diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.write.1.tlog b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/GenerateResource.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..d100f54085bd324a4ba75bfa9efbbea9766b8d06 GIT binary patch literal 994 zcmd^-%?^S<420)w;;WDt6JxxADEP@#laZ*00fHA+r}uZ0?!AUe|v5c2MDPqC|%&`YBs$wGeHNYq_z{Mtkjub}tc{ clG!^BhWi-rcis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Properties.Resources.resources b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.txt b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.txt new file mode 100644 index 00000000000..1d36d1cd556 --- /dev/null +++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.txt @@ -0,0 +1,18 @@ +c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.exe +c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.pdb +c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\ResolveAssemblyReference.cache +c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Form1.resources +c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Properties.Resources.resources +c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.read.1.tlog +c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.write.1.tlog +c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.exe +c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.pdb +C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.exe +C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.pdb +C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\ResolveAssemblyReference.cache +C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Form1.resources +C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Properties.Resources.resources +C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.read.1.tlog +C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.write.1.tlog +C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.exe +C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.pdb diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.exe b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.exe new file mode 100644 index 0000000000000000000000000000000000000000..bb55cad8fd79a29b2bd20e19c06f1dc03af0c30f GIT binary patch literal 17920 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 f!L1v;8A3spLJh!~a=*V>&iS81BEgcrT$<5` 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