diff options
| author | Rob Mensching <rob@firegiant.com> | 2020-06-12 06:51:37 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2020-06-12 08:20:50 -0700 |
| commit | 49ce77951ca980848b275cef082309c49b117f47 (patch) | |
| tree | a57e22fef0451b65edf6744440b84af04704c9e7 /src/WixToolset.Core | |
| parent | a82e58ab8a47f4b5d189213da4d7c1dea8437972 (diff) | |
| download | wix-49ce77951ca980848b275cef082309c49b117f47.tar.gz wix-49ce77951ca980848b275cef082309c49b117f47.tar.bz2 wix-49ce77951ca980848b275cef082309c49b117f47.zip | |
Fix custom table column values case in compiler and decompiler
Diffstat (limited to 'src/WixToolset.Core')
| -rw-r--r-- | src/WixToolset.Core/Compiler.cs | 100 |
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 | } |
