8171386: jshell tool: paging of javadoc output broken on Windows

Fixing detection of console window size.

Reviewed-by: rfield
This commit is contained in:
Jan Lahoda 2017-01-16 09:53:34 +01:00
parent 48706a1a2a
commit e8145f8739

View file

@ -102,26 +102,26 @@ JNIEXPORT jint JNICALL Java_jdk_internal_jline_WindowsTerminal_getConsoleOutputC
JNIEXPORT jint JNICALL Java_jdk_internal_jline_WindowsTerminal_getWindowsTerminalWidth JNIEXPORT jint JNICALL Java_jdk_internal_jline_WindowsTerminal_getWindowsTerminalWidth
(JNIEnv *, jobject) { (JNIEnv *, jobject) {
HANDLE hStdIn; HANDLE hStdOut;
if ((hStdIn = GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE) { if ((hStdOut = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE) {
return -1; return -1;
} }
CONSOLE_SCREEN_BUFFER_INFO info; CONSOLE_SCREEN_BUFFER_INFO info;
if (! GetConsoleScreenBufferInfo(hStdIn, &info)) { if (! GetConsoleScreenBufferInfo(hStdOut, &info)) {
return -1; return -1;
} }
return info.dwSize.X; return info.srWindow.Right - info.srWindow.Left;
} }
JNIEXPORT jint JNICALL Java_jdk_internal_jline_WindowsTerminal_getWindowsTerminalHeight JNIEXPORT jint JNICALL Java_jdk_internal_jline_WindowsTerminal_getWindowsTerminalHeight
(JNIEnv *, jobject) { (JNIEnv *, jobject) {
HANDLE hStdIn; HANDLE hStdOut;
if ((hStdIn = GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE) { if ((hStdOut = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE) {
return -1; return -1;
} }
CONSOLE_SCREEN_BUFFER_INFO info; CONSOLE_SCREEN_BUFFER_INFO info;
if (! GetConsoleScreenBufferInfo(hStdIn, &info)) { if (! GetConsoleScreenBufferInfo(hStdOut, &info)) {
return -1; return -1;
} }
return info.dwSize.Y; return info.srWindow.Bottom - info.srWindow.Top + 1;
} }