diff --git a/base/applications/cmdutils/more/more.c b/base/applications/cmdutils/more/more.c index 161818a5e6b..14dd0d54c32 100644 --- a/base/applications/cmdutils/more/more.c +++ b/base/applications/cmdutils/more/more.c @@ -8,6 +8,7 @@ * PROGRAMMERS: Paolo Pantaleo * Timothy Schepens * Hermes Belusca-Maito (hermes.belusca@sfr.fr) + * Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com) */ /* * MORE.C - external command. @@ -133,6 +134,7 @@ PagePrompt(PCON_PAGER Pager, DWORD Done, DWORD Total) */ ConClearLine(Pager->Screen->Stream); + /* Ctrl+C or Ctrl+Esc: Control Break */ if ((KeyEvent.wVirtualKeyCode == VK_ESCAPE) || ((KeyEvent.wVirtualKeyCode == L'C') && (KeyEvent.dwControlKeyState & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED)))) @@ -143,6 +145,17 @@ PagePrompt(PCON_PAGER Pager, DWORD Done, DWORD Total) return FALSE; } + /* 'Q': Quit */ + // FIXME: Available only when command extensions are enabled. + if ((KeyEvent.wVirtualKeyCode == L'Q') && + !(KeyEvent.dwControlKeyState & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED))) + { + /* We break, output a newline */ + WCHAR ch = L'\n'; + ConStreamWrite(Pager->Screen->Stream, &ch, 1); + return FALSE; + } + return TRUE; }