From: Rob M. <ro...@us...> - 2006-01-18 10:52:48
|
Update of /cvsroot/wix/wix/toolsrc/XsdGen In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15800/toolsrc/XsdGen Modified Files: StronglyTypedClasses.cs Log Message: DerekC: - Fix a bug in the XsdGen code for special xml characters in comments. - Add decompiler support for the remaining standard MSI tables. - Fix the help information for dark/light/lit/candle for new short extension syntax. - Lots of other random little fixes. BobArnso: - Use whole sentences for localization, instead of building up sentences by using properties to specify different verbs and word forms, as many languages don't easily follow English word order. - Add ActionText/Template loc strings BobArnso: Add build requirements to WiX.chm, fixing sfbug:1318424. RobMen: Allow MIME to not be advertised independent of parent Extension. BobArnso: - UI fails with 2803 if you click the enabled modify button in maintenance mode - Add ARPNOMODIFY to WixUI_Minimal - Adjust MaintenanceTypeDlg modify text/button based on ARPNOMODIFY setting ScotK: Cleaning up server custom action memory allocation code and other stuff. BobArnson: Fix WixTasks build to copy wix.targets to output tree DerekC: Correctly modularize the RegLocator.Key and RemoveRegistry.Key columns. DerekC: Cleanup wix.xsd: - Remove minOccurs="1" and maxOccurs="1" (since they are the defaults). - Remove unnecessary mixed="true". - Remove unnecessary sequence from under the Fragment element. DerekC: Support grabbing binary registry keys in tallow. SBonev: Modify candle.exe to not compile the input files if -p is specified. This behavior is consisent with the current C/C++ compilers. DerekC: Fix invalid xml in a patching example inside wix.chm. DerekC: Remove the entry section id from wixout files since it is not used. This is a breaking change to the wixout file format. DerekC: Allow DocCompiler to correctly generate documentation for a deprecated element which does not specify a replacement element. RobMen: Add FeatureGroup and allow deeply nested FeatureGroups and ComponentGroups. DerekC: Make the Component/@Guid attribute mandatory. JohnLs: Fixes for the MSBuild related WixTasks.dll and wix.targets. SBonev: Modify the PreprocessorExtension to work with an XmlDocument instead of text. DerekC: Deprecate the FragmentRef element and support UIRef under UI. SBonev: Move CompilerCore.GetSourceLineNumbers to Preprocessor and make it static. Logically, this is a better place for it because the ln processing instructions are generated by the preprocessor. This also allows consumers other than compiler extensions, for example preprocessor extensions, to determine the source information for a given XmlNode. EdYoung: Change the compiler so that if a user specifies a multistring registry key, they actually get one, even if they only provide one or zero values to put in the value. BobArnso: Added instructions in "Building WiX" .CHM topic on modifying NAnt.exe.config to support .NET Framework 2.0. DerekC: Fix 2 bugs with registry identifier generation: 1. Registry keys may unintentionally collide if they share similar key and name values. For example a registry entry with a key ending with "EndOfKey" and name "Name" may collide with another entry with a key ending with "End" and name "OfKeyName". The problem is that the hashing algorithm does not insert a separator between the parts of the registry entry before hashing them. 2. Registry keys generated by COM registration will not appropriately collide with entries authored via Registry elements (if they should collide because they have identical component, root, key, and name values which differ only by case of the key or name). Before hashing the parts of the registry entry for Registry elements, the key and name parts were lowercased to ensure proper canonicalization. Unfortunately, the code for the COM elements like Class and ProgId did not canonicalize properly, so the identifier for two registry entries that are essentially identical may not collide (and thus provide the user with early feedback that an authoring error has occurred). Index: StronglyTypedClasses.cs =================================================================== RCS file: /cvsroot/wix/wix/toolsrc/XsdGen/StronglyTypedClasses.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** StronglyTypedClasses.cs 26 Dec 2005 12:06:24 -0000 1.5 --- StronglyTypedClasses.cs 18 Jan 2006 10:52:03 -0000 1.6 *************** *** 25,28 **** --- 25,29 ---- using System.Diagnostics; using System.Globalization; + using System.IO; using System.Text; using System.Xml; *************** *** 907,926 **** private static void GenerateSummaryComment(CodeCommentStatementCollection comments, string content) { ! comments.Add(new CodeCommentStatement("<summary>", true)); ! ! string nextComment; ! int newlineIndex = content.IndexOf(Environment.NewLine); ! int offset = 0; ! while (newlineIndex != -1) { ! nextComment = content.Substring(offset, newlineIndex - offset).Trim(); ! comments.Add(new CodeCommentStatement(nextComment, true)); ! offset = newlineIndex + Environment.NewLine.Length; ! newlineIndex = content.IndexOf(Environment.NewLine, offset); ! } ! nextComment = content.Substring(offset).Trim(); ! comments.Add(new CodeCommentStatement(nextComment, true)); ! comments.Add(new CodeCommentStatement("</summary>", true)); } --- 908,960 ---- private static void GenerateSummaryComment(CodeCommentStatementCollection comments, string content) { ! using (StringWriter sw = new StringWriter()) { ! XmlTextWriter writer = null; ! // create the comment as xml to ensure proper escaping of special xml characters ! try ! { ! writer = new XmlTextWriter(sw); ! writer.Indentation = 0; ! ! writer.WriteStartElement("summary"); ! writer.WriteString(Environment.NewLine); ! ! string nextComment; ! int newlineIndex = content.IndexOf(Environment.NewLine); ! int offset = 0; ! while (newlineIndex != -1) ! { ! nextComment = content.Substring(offset, newlineIndex - offset).Trim(); ! writer.WriteString(nextComment); ! writer.WriteString(Environment.NewLine); ! offset = newlineIndex + Environment.NewLine.Length; ! newlineIndex = content.IndexOf(Environment.NewLine, offset); ! } ! nextComment = content.Substring(offset).Trim(); ! writer.WriteString(nextComment); ! writer.WriteString(Environment.NewLine); ! ! writer.WriteEndElement(); ! } ! finally ! { ! if (null != writer) ! { ! writer.Close(); ! } ! } ! ! // create the comment statements (one per line of xml) ! using (StringReader sr = new StringReader(sw.ToString())) ! { ! string line; ! ! while (null != (line = sr.ReadLine())) ! { ! comments.Add(new CodeCommentStatement(line, true)); ! } ! } ! } } |