aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/Compiler.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/WixToolset.Core/Compiler.cs100
1 files changed, 95 insertions, 5 deletions
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs
index 3365789f..da0806fb 100644
--- a/src/WixToolset.Core/Compiler.cs
+++ b/src/WixToolset.Core/Compiler.cs
@@ -3712,7 +3712,6 @@ namespace WixToolset.Core
3712 { 3712 {
3713 case "Column": 3713 case "Column":
3714 string columnName = null; 3714 string columnName = null;
3715 var category = String.Empty;
3716 IntermediateFieldType? columnType = null; 3715 IntermediateFieldType? columnType = null;
3717 var description = String.Empty; 3716 var description = String.Empty;
3718 int? keyColumn = null; 3717 int? keyColumn = null;
@@ -3720,6 +3719,7 @@ namespace WixToolset.Core
3720 var localizable = false; 3719 var localizable = false;
3721 long? maxValue = null; 3720 long? maxValue = null;
3722 long? minValue = null; 3721 long? minValue = null;
3722 WixCustomTableColumnCategoryType? category = null;
3723 var modularization = WixCustomTableColumnModularizeType.None; 3723 var modularization = WixCustomTableColumnModularizeType.None;
3724 var nullable = false; 3724 var nullable = false;
3725 var primaryKey = false; 3725 var primaryKey = false;
@@ -3735,7 +3735,97 @@ namespace WixToolset.Core
3735 columnName = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, childAttrib); 3735 columnName = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, childAttrib);
3736 break; 3736 break;
3737 case "Category": 3737 case "Category":
3738 category = this.Core.GetAttributeValue(childSourceLineNumbers, childAttrib); 3738 var categoryValue = this.Core.GetAttributeValue(childSourceLineNumbers, childAttrib);
3739 switch (categoryValue)
3740 {
3741 case "text":
3742 category = WixCustomTableColumnCategoryType.Text;
3743 break;
3744 case "upperCase":
3745 category = WixCustomTableColumnCategoryType.UpperCase;
3746 break;
3747 case "lowerCase":
3748 category = WixCustomTableColumnCategoryType.LowerCase;
3749 break;
3750 case "integer":
3751 category = WixCustomTableColumnCategoryType.Integer;
3752 break;
3753 case "doubleInteger":
3754 category = WixCustomTableColumnCategoryType.DoubleInteger;
3755 break;
3756 case "timeDate":
3757 category = WixCustomTableColumnCategoryType.TimeDate;
3758 break;
3759 case "identifier":
3760 category = WixCustomTableColumnCategoryType.Identifier;
3761 break;
3762 case "property":
3763 category = WixCustomTableColumnCategoryType.Property;
3764 break;
3765 case "filename":
3766 category = WixCustomTableColumnCategoryType.Filename;
3767 break;
3768 case "wildCardFilename":
3769 category = WixCustomTableColumnCategoryType.WildCardFilename;
3770 break;
3771 case "path":
3772 category = WixCustomTableColumnCategoryType.Path;
3773 break;
3774 case "paths":
3775 category = WixCustomTableColumnCategoryType.Paths;
3776 break;
3777 case "anyPath":
3778 category = WixCustomTableColumnCategoryType.AnyPath;
3779 break;
3780 case "defaultDir":
3781 category = WixCustomTableColumnCategoryType.DefaultDir;
3782 break;
3783 case "regPath":
3784 category = WixCustomTableColumnCategoryType.RegPath;
3785 break;
3786 case "formatted":
3787 category = WixCustomTableColumnCategoryType.Formatted;
3788 break;
3789 case "formattedSddl":
3790 category = WixCustomTableColumnCategoryType.FormattedSddl;
3791 break;
3792 case "template":
3793 category = WixCustomTableColumnCategoryType.Template;
3794 break;
3795 case "condition":
3796 category = WixCustomTableColumnCategoryType.Condition;
3797 break;
3798 case "guid":
3799 category = WixCustomTableColumnCategoryType.Guid;
3800 break;
3801 case "version":
3802 category = WixCustomTableColumnCategoryType.Version;
3803 break;
3804 case "language":
3805 category = WixCustomTableColumnCategoryType.Language;
3806 break;
3807 case "binary":
3808 category = WixCustomTableColumnCategoryType.Binary;
3809 break;
3810 case "customSource":
3811 category = WixCustomTableColumnCategoryType.CustomSource;
3812 break;
3813 case "cabinet":
3814 category = WixCustomTableColumnCategoryType.Cabinet;
3815 break;
3816 case "shortcut":
3817 category = WixCustomTableColumnCategoryType.Shortcut;
3818 break;
3819 case "":
3820 break;
3821 default:
3822 this.Core.Write(ErrorMessages.IllegalAttributeValue(childSourceLineNumbers, child.Name.LocalName, "Category", categoryValue,
3823 "text", "upperCase", "lowerCase", "integer", "doubleInteger", "timeDate", "identifier", "property", "filename",
3824 "wildCardFilename", "path", "paths", "anyPath", "defaultDir", "regPath", "formatted", "formattedSddl", "template",
3825 "condition", "guid", "version", "language", "binary", "customSource", "cabinet", "shortcut"));
3826 columnType = IntermediateFieldType.String; // set a value to prevent expected attribute error below.
3827 break;
3828 }
3739 break; 3829 break;
3740 case "Description": 3830 case "Description":
3741 description = this.Core.GetAttributeValue(childSourceLineNumbers, childAttrib); 3831 description = this.Core.GetAttributeValue(childSourceLineNumbers, childAttrib);
@@ -3854,11 +3944,11 @@ namespace WixToolset.Core
3854 } 3944 }
3855 else if (columnType == IntermediateFieldType.Path) 3945 else if (columnType == IntermediateFieldType.Path)
3856 { 3946 {
3857 if (String.IsNullOrEmpty(category)) 3947 if (!category.HasValue)
3858 { 3948 {
3859 category = "Binary"; 3949 category = WixCustomTableColumnCategoryType.Binary;
3860 } 3950 }
3861 else if (category != "Binary") 3951 else if (category != WixCustomTableColumnCategoryType.Binary)
3862 { 3952 {
3863 this.Core.Write(ErrorMessages.ExpectedBinaryCategory(childSourceLineNumbers)); 3953 this.Core.Write(ErrorMessages.ExpectedBinaryCategory(childSourceLineNumbers));
3864 } 3954 }