[llvm-rc] Allow ALT on non-virtkey accelerators (#143374) · llvm/llvm-project@c4f257c (original) (raw)

4 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -110,5 +110,6 @@ LANGUAGE 5, 1
110 110 "7", 71, VIRTKEY, NOINVERT, CONTROL, SHIFT, ALT
111 111 "^j", 72, ASCII
112 112 "^j", 73, ASCII, NOINVERT
113 + "A", 15, ASCII, ALT
113 114 }
114 115
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@
37 37 ; ACCELERATORS-NEXT: Version (major): 0
38 38 ; ACCELERATORS-NEXT: Version (minor): 0
39 39 ; ACCELERATORS-NEXT: Characteristics: 0
40 -; ACCELERATORS-NEXT: Data size: 592
40 +; ACCELERATORS-NEXT: Data size: 600
41 41 ; ACCELERATORS-NEXT: Data: (
42 42 ; ACCELERATORS-NEXT: 0000: 00002A00 00000000 01002A00 01000000 |..*.......*.....
43 43 ; ACCELERATORS-NEXT: 0010: 02002A00 02000000 03002A00 03000000 |..*.......*.....
@@ -75,7 +75,8 @@
75 75 ; ACCELERATORS-NEXT: 0210: 15003700 42000000 0F003700 43000000 |..7.B.....7.C...
76 76 ; ACCELERATORS-NEXT: 0220: 1B003700 44000000 17003700 45000000 |..7.D.....7.E...
77 77 ; ACCELERATORS-NEXT: 0230: 1D003700 46000000 1F003700 47000000 |..7.F.....7.G...
78 -; ACCELERATORS-NEXT: 0240: 00000A00 48000000 82000A00 49000000 |....H.......I...
78 +; ACCELERATORS-NEXT: 0240: 00000A00 48000000 02000A00 49000000 |....H.......I...
79 +; ACCELERATORS-NEXT: 0250: 90004100 0F000000 |..A.....
79 80 ; ACCELERATORS-NEXT: )
80 81
81 82
@@ -94,19 +95,13 @@
94 95 ; RUN: not llvm-rc -no-preprocess /FO %t -- %p/Inputs/tag-accelerators-ascii-control.rc 2>&1 | FileCheck %s --check-prefix ASCII2
95 96
96 97 ; ASCII2: llvm-rc: Error in ACCELERATORS statement (ID 2):
97 -; ASCII2-NEXT: Accelerator ID 15: Can only apply ALT, SHIFT or CONTROL to VIRTKEY accelerators
98 +; ASCII2-NEXT: Accelerator ID 15: Can only apply SHIFT or CONTROL to VIRTKEY accelerators
98 99
99 100
100 101 ; RUN: not llvm-rc -no-preprocess /FO %t -- %p/Inputs/tag-accelerators-ascii-shift.rc 2>&1 | FileCheck %s --check-prefix ASCII3
101 102
102 103 ; ASCII3: llvm-rc: Error in ACCELERATORS statement (ID 2):
103 -; ASCII3-NEXT: Accelerator ID 15: Can only apply ALT, SHIFT or CONTROL to VIRTKEY accelerators
104 -
105 -
106 -; RUN: not llvm-rc -no-preprocess /FO %t -- %p/Inputs/tag-accelerators-ascii-alt.rc 2>&1 | FileCheck %s --check-prefix ASCII4
107 -
108 -; ASCII4: llvm-rc: Error in ACCELERATORS statement (ID 2):
109 -; ASCII4-NEXT: Accelerator ID 15: Can only apply ALT, SHIFT or CONTROL to VIRTKEY accelerators
104 +; ASCII3-NEXT: Accelerator ID 15: Can only apply SHIFT or CONTROL to VIRTKEY accelerators
110 105
111 106
112 107 ; RUN: not llvm-rc -no-preprocess /FO %t -- %p/Inputs/tag-accelerators-bad-key-id.rc 2>&1 | FileCheck %s --check-prefix BADKEYID
Original file line number Diff line number Diff line change
@@ -631,8 +631,8 @@ Error ResourceFileWriter::writeSingleAccelerator(
631 631 if (IsASCII && IsVirtKey)
632 632 return createAccError("Accelerator can't be both ASCII and VIRTKEY");
633 633
634 -if (!IsVirtKey && (Obj.Flags & (Opt::ALT | Opt::SHIFT Opt::CONTROL)))
635 -return createAccError("Can only apply ALT, SHIFT or CONTROL to VIRTKEY"
634 +if (!IsVirtKey && (Obj.Flags & (Opt::SHIFT | Opt::CONTROL)))
635 +return createAccError("Can only apply SHIFT or CONTROL to VIRTKEY"
636 636 " accelerators");
637 637
638 638 if (Obj.Event.isInt()) {