aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-rc/ResourceFileWriter.cpp
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2018-11-29 12:17:39 +0000
committerMartin Storsjo <martin@martin.st>2018-11-29 12:17:39 +0000
commita876b5c0f5d6a522ad3020149599a4e4d5330fb9 (patch)
tree57ea7bc681d6dc04ba4bdcb53c4e4ee169ba02cf /llvm/tools/llvm-rc/ResourceFileWriter.cpp
parent373a4ccf6cdd69993fbcef7384b741373374269b (diff)
downloadllvm-a876b5c0f5d6a522ad3020149599a4e4d5330fb9.zip
llvm-a876b5c0f5d6a522ad3020149599a4e4d5330fb9.tar.gz
llvm-a876b5c0f5d6a522ad3020149599a4e4d5330fb9.tar.bz2
[llvm-rc] Support EXSTYLE statement.
Patch by Jacek Caban! Differential Revision: https://reviews.llvm.org/D55020 llvm-svn: 347858
Diffstat (limited to 'llvm/tools/llvm-rc/ResourceFileWriter.cpp')
-rw-r--r--llvm/tools/llvm-rc/ResourceFileWriter.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/tools/llvm-rc/ResourceFileWriter.cpp b/llvm/tools/llvm-rc/ResourceFileWriter.cpp
index 95d92a9..e69d479 100644
--- a/llvm/tools/llvm-rc/ResourceFileWriter.cpp
+++ b/llvm/tools/llvm-rc/ResourceFileWriter.cpp
@@ -514,6 +514,11 @@ Error ResourceFileWriter::visitCharacteristicsStmt(
return Error::success();
}
+Error ResourceFileWriter::visitExStyleStmt(const ExStyleStmt *Stmt) {
+ ObjectData.ExStyle = Stmt->Value;
+ return Error::success();
+}
+
Error ResourceFileWriter::visitFontStmt(const FontStmt *Stmt) {
RETURN_IF_ERROR(checkNumberFits<uint16_t>(Stmt->Size, "Font size"));
RETURN_IF_ERROR(checkNumberFits<uint16_t>(Stmt->Weight, "Font weight"));
@@ -1065,6 +1070,7 @@ Error ResourceFileWriter::writeDialogBody(const RCResource *Base) {
UsedStyle |= StyleCaptionFlag;
const uint16_t DialogExMagic = 0xFFFF;
+ uint32_t ExStyle = ObjectData.ExStyle.getValueOr(0);
// Write DIALOG(EX) header prefix. These are pretty different.
if (!Res->IsExtended) {
@@ -1083,7 +1089,7 @@ Error ResourceFileWriter::writeDialogBody(const RCResource *Base) {
ulittle32_t Style;
ulittle32_t ExtStyle;
} Prefix{ulittle32_t(UsedStyle),
- ulittle32_t(0)}; // As of now, we don't keep EXSTYLE.
+ ulittle32_t(ExStyle)};
writeObject(Prefix);
} else {
@@ -1094,7 +1100,7 @@ Error ResourceFileWriter::writeDialogBody(const RCResource *Base) {
ulittle32_t ExtStyle;
ulittle32_t Style;
} Prefix{ulittle16_t(1), ulittle16_t(DialogExMagic),
- ulittle32_t(Res->HelpID), ulittle32_t(0), ulittle32_t(UsedStyle)};
+ ulittle32_t(Res->HelpID), ulittle32_t(ExStyle), ulittle32_t(UsedStyle)};
writeObject(Prefix);
}