xaizek / vifm-pdcurses (License: mostly public domain) (since 2019-03-20)
PDCurses 3.4 with vifm-specific patches applied (a couple were upstreamed)
Commit 895986be99522d9c5314718234134042d7fa766b

Restart output using the non-ansi (WriteConsoleOutput) method when running under Windows Terminal, and printing an ACS character below space (i.e. in the control character range). Partial reversal of b6d6abbf -- extended attributes and redefined basic colors will be disabled only in the case when printing one of these characters; i.e., testcurs looks correct now. ;)
Author: William McBrine
Author date (UTC): 2021-12-08 23:04
Committer name: xaizek
Committer date (UTC): 2024-03-24 22:15
Parent(s): d901bc7298c07af6297fb1739b24c3192762d112
Signing key: 99DC5E4DB05F6BE2
Tree: c60a908a3f93da36968f317e2b02a69a23e0cbad
File Lines added Lines deleted
wincon/pdcdisp.c 6 0
wincon/pdcscrn.c 1 5
File wincon/pdcdisp.c changed (mode: 100644) (index b89485a9..14418396)
... ... void _new_packet(attr_t attr, int lineno, int x, int len, const chtype *srcp)
181 181 chtype ch = srcp[j]; chtype ch = srcp[j];
182 182
183 183 if (ch & A_ALTCHARSET && !(ch & 0xff80)) if (ch & A_ALTCHARSET && !(ch & 0xff80))
184 {
184 185 ch = acs_map[ch & 0x7f]; ch = acs_map[ch & 0x7f];
185 186
187 if (pdc_wt && (ch & A_CHARTEXT) < ' ')
188 goto NONANSI;
189 }
190
186 191 if (blink && blinked_off) if (blink && blinked_off)
187 192 ch = ' '; ch = ' ';
188 193
 
... ... void _new_packet(attr_t attr, int lineno, int x, int len, const chtype *srcp)
198 203 #endif #endif
199 204 } }
200 205 else else
206 NONANSI:
201 207 { {
202 208 CHAR_INFO buffer[512]; CHAR_INFO buffer[512];
203 209 COORD bufSize, bufPos; COORD bufSize, bufPos;
File wincon/pdcscrn.c changed (mode: 100644) (index f1f5fdd3..dc729748)
... ... int PDC_scr_open(int argc, char **argv)
416 416 pdc_wt = !!getenv("WT_SESSION"); pdc_wt = !!getenv("WT_SESSION");
417 417 str = pdc_wt ? NULL : getenv("ConEmuANSI"); str = pdc_wt ? NULL : getenv("ConEmuANSI");
418 418 pdc_conemu = !!str; pdc_conemu = !!str;
419 pdc_ansi =
420 #ifdef PDC_WIDE
421 pdc_wt ? TRUE :
422 #endif
423 pdc_conemu ? !strcmp(str, "ON") : FALSE;
419 pdc_ansi = pdc_wt ? TRUE : pdc_conemu ? !strcmp(str, "ON") : FALSE;
424 420
425 421 GetConsoleScreenBufferInfo(pdc_con_out, &csbi); GetConsoleScreenBufferInfo(pdc_con_out, &csbi);
426 422 GetConsoleScreenBufferInfo(pdc_con_out, &orig_scr); GetConsoleScreenBufferInfo(pdc_con_out, &orig_scr);
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm-pdcurses

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm-pdcurses

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master