reactos/base/applications
Hermès Bélusca-Maïto 31322f5df9
[CONUTILS:PAGER][MORE] Implement text line caching + fix some bugs.
- Implement caching of individual (newline-separated) text lines; this
  behaviour can be enabled with a flag (enabled by MORE):
  CON_PAGER_CACHE_INCOMPLETE_LINE.
  This feature is necessary when reading a text file, whose text lines
  may span across two or more successive temporary read buffers, and is
  required for correctly determining whether the lines being read are
  blank and may be squeezed.

- When squeezing blank lines, the blank-line check must be done for each
  line segment corresponding to the screen line (and following) that
  need to be displayed. This matches the behaviour of MS MORE.COM.

- Fix the IsBlankLine() check to not consider FORM-FEEDs as being blank
  characters: This is necessary for correctly handling FORM-FEED
  expansion. Also note that MS MORE.COM only checks for spaces and TABs,
  so we are slightly overdoing these checks (considering other types of
  whitespace).

- Get rid of ConCallPagerLine() and the intermediate CON_PAGER_DONT_OUTPUT
  state flag that were used repeatedly for each and every small line
  chunks. Instead, call directly the user-specified 'PagerLine' callback
  when we are about to start treating the next line segment to be
  displayed (see comment above).

- Fix the exit return condition of ConPagerWorker(): it should return
  TRUE whenever we displayed all the required lines, and FALSE otherwise.
  Otherwise, the previous (buggy) condition on the data being read from
  the text file, may lead to the prompt not showing when a screenful of
  text has been displayed, if it happened that the current text buffer
  becomes empty at the same time (even if, overall, the text file hasn't
  been fully displayed).

- In MorePagerLine(), when we encounter for the first time a blank line
  that will be squeezed with other successive ones, display a single
  blank line. But for that, just display one space and a newline: this
  single space is especially needed in order to force line wrapping when
  the ENABLE_VIRTUAL_TERMINAL_PROCESSING or DISABLE_NEWLINE_AUTO_RETURN
  console modes are enabled. Otherwise the cursor remains at the
  previous line (without wrapping), and just outputting one newline will
  not make it move past 2 lines as one would naively expect.
2021-06-28 21:26:32 +02:00
..
atactl [CMAKE] Get rid of the set_cpp macro 2020-10-20 21:44:54 +02:00
cacls [TRANSLATION][CACLS] Add Serbian translation (#859) 2021-04-24 20:38:20 +02:00
calc [TRANSLATION] Chinese Traditional (zh-TW) translation update (#3526) 2021-04-11 10:59:19 +02:00
charmap [TRANSLATION] Improve zh-TW translation (#3218) 2020-11-21 18:03:37 +01:00
charmap_new Replace my E-mail with the ReactOS org one (#3475) 2021-02-22 18:26:55 +03:00
clipbrd [NOTEPAD][WORDPAD][MSPAINT]... Use newer file open dialog (#3571) 2021-04-01 22:50:32 +09:00
cmdutils [CONUTILS:PAGER][MORE] Implement text line caching + fix some bugs. 2021-06-28 21:26:32 +02:00
control [CONTROL] Fix hang while calling RunControlPanel() CORE-11373 2020-04-25 19:04:09 +02:00
drwtsn32 [TRANSLATION] Chinese Traditional (zh-TW) translation update (#3526) 2021-04-11 10:59:19 +02:00
dxdiag [TRANSLATION] Chinese Traditional (zh-TW) translation update (#3526) 2021-04-11 10:59:19 +02:00
extrac32 [EXTRAC32] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:07:01 +01:00
findstr [TRANSLATION] Update Traditional Chinese translation. (#1193) 2018-12-27 16:24:24 +09:00
fltmc [FLTMC] Do not ignore failures of some functions 2021-06-28 10:20:57 +02:00
fontview [TRANSLATION] Chinese Traditional (zh-TW) translation update (#3526) 2021-04-11 10:59:19 +02:00
games [TRANSLATION] indonesian add and update apps/shell translation 2021-05-05 11:34:28 +02:00
hh Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
iexplore [IEXPLORE] Make duckduckgo our default search engine 2020-04-26 13:36:33 +03:00
kbswitch [CMAKE] Use modules instead of shared libraries 2019-04-06 17:43:38 +02:00
logoff [TRANSLATION] Chinese Traditional (zh-TW) translation update (#3526) 2021-04-11 10:59:19 +02:00
magnify [MAGNIFY] Minor whitespace / formatting fixes; use the new file headers + some code simplifications here and there... 2019-06-15 19:11:21 +02:00
mmc [TRANSLATION] Chinese Traditional (zh-TW) translation update (#3526) 2021-04-11 10:59:19 +02:00
mplay32 [TRANSLATION] Chinese Traditional (zh-TW) translation update (#3526) 2021-04-11 10:59:19 +02:00
msconfig [TRANSLATION] Chinese Traditional translation improvements (#3085) 2020-09-18 00:50:27 +02:00
msconfig_new [CMAKE] Introduce the atl_classes interface library 2020-10-20 21:44:54 +02:00
mscutils [REACTOS] Explicitly link against pseh & include pseh headers in a few places 2021-04-28 13:10:23 +02:00
mshta [MSHTA] Implement MSHTA.exe (#577) CORE-12813 2018-06-05 17:17:00 +02:00
mspaint [NOTEPAD][WORDPAD][MSPAINT]... Use newer file open dialog (#3571) 2021-04-01 22:50:32 +09:00
mstsc [REACTOS] Fix SIZE_T related warnings 2019-08-15 14:20:00 +02:00
network [NSLOOKUP] Check WSAStartup return value 2021-06-28 10:20:57 +02:00
notepad [NOTEPAD] Fix resource file 2021-05-03 22:00:57 +02:00
osk [TRANSLATION] Chinese Traditional (zh-TW) translation update (#3526) 2021-04-11 10:59:19 +02:00
rapps [RAPPS] Fix double free when closing rapps 2021-06-10 21:25:34 +02:00
rapps_com [RAPPS.COM] Use HeapAlloc/Free instead of the deprecated LocalAlloc/Free. 2020-11-06 01:06:12 +01:00
regedit [REGEDIT] Use InitCommonControlsEx instead of InitCommonControls (#3686) 2021-05-26 21:11:10 +09:00
regedt32 Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
sc [APPLICATIONS] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
screensavers [TRANSLATION][SCREENSAVERS][SYSSETUP] Add Portuguese (PT) translation (#3156) 2020-09-13 23:14:05 +02:00
sdbinst [SDBINST] Minor quick fixes after merge 2021-05-08 18:36:15 +03:00
setup16 Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
shutdown [TRANSLATION][INF] Update Chinese Traditional (zh-TW) translation (#3468) 2021-03-09 16:51:37 +01:00
sndrec32 [TRANSLATION] Chinese Traditional (zh-TW) translation update (#3526) 2021-04-11 10:59:19 +02:00
sndvol32 [SNDVOL32] Fix GetDC/ReleaseDC error management (#2713) 2020-05-02 18:43:30 +09:00
taskmgr [TRANSLATION] indonesian add and update apps/shell translation 2021-05-05 11:34:28 +02:00
utilman [UMANDLG] DlgProc(): Fix 'paramater' typo, in documentation 2021-04-11 09:30:28 +03:00
winhlp32 [CMAKE] Properly generate all Bison and Flex files at build time 2021-04-03 21:50:08 +03:00
winver [WINVER] Fix WINVER theming. CORE-13343 (#1428) 2019-03-23 17:45:27 +01:00
wordpad [NOTEPAD][WORDPAD][MSPAINT]... Use newer file open dialog (#3571) 2021-04-01 22:50:32 +09:00
write [TRANSLATION] Chinese Traditional (zh-TW) translation improvement (#3430) 2021-02-07 22:14:19 +01:00
wusa [UPDATES] New stubs for Automatic Updates service and WUSA.exe. Presence of this modules required for installation by some NT6+ applications. 2018-08-19 19:56:18 +02:00
CMakeLists.txt [SDBINST] Minor quick fixes after merge 2021-05-08 18:36:15 +03:00