From 3a425c7623d2062ae931dc83050c00a12873217b Mon Sep 17 00:00:00 2001 From: aycabta Date: Thu, 29 Aug 2019 21:05:19 +0900 Subject: [PATCH] Fix alignment of a SHORT variable typedef struct _COORD { SHORT X; SHORT Y; // I wanted to take this... } COORD, *PCOORD; typedef struct _CONSOLE_SCREEN_BUFFER_INFO { COORD dwSize; COORD dwCursorPosition; // ...of this one WORD wAttributes; // But it's combined with first 2bytes of this SMALL_RECT srWindow; COORD dwMaximumWindowSize; } CONSOLE_SCREEN_BUFFER_INFO; If wAttributes has non-zero value, the code breaks. --- lib/reline/windows.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/reline/windows.rb b/lib/reline/windows.rb index 0bd8d1b147..7d112e7632 100644 --- a/lib/reline/windows.rb +++ b/lib/reline/windows.rb @@ -131,7 +131,7 @@ class Reline::Windows csbi = 0.chr * 22 @@GetConsoleScreenBufferInfo.call(@@hConsoleHandle, csbi) x = csbi[4, 2].unpack('s*').first - y = csbi[6, 4].unpack('s*').first + y = csbi[6, 2].unpack('s*').first Reline::CursorPos.new(x, y) end