[MinGW-Notify] [mingw] #38187: update wincon.h

Back to archive index

MinGW Notification List mingw****@lists*****
Mon Aug 13 21:24:38 JST 2018


#38187: update wincon.h

  Open Date: 2018-04-11 09:21
Last Update: 2018-08-13 13:24

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/38187
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=38187

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2018-08-13 13:24 Updated by: keith

Comment:

Reply To osdn-mensch

        Do you happen to know if Vista is a genuine minimum requirement, in
        this case? Or, must we just take this on faith?

    I'd personally just ignore the "minimum version part". I guess you want to
    surround this by NT version number check, correct?

Yes.

    Just checked Win10 SDK - only surrounds CONSOLE_SCREEN_BUFFER_INFOEX by
    "not phone" (the COMMON_LVB_ attributes are not surrounded and I assume
    they just don't do anything on Win95/Win2k)

I wouldn't be too confident about that: normal behaviour of Microsoft APIs is
to crash, when passed a flag which they don't understand ... even if the flag
may be defined for a later version of the API. My concern is that exposing new
flags, unconditionally, may lead to unexpected run-time application crashes, on
legacy OS versions, where an appropriate #if guard block could catch the
potential for crashing, at compile time. We need to either accept the Microsoft
documentation at face value, of we need to devise a test for safety of such
flags on legacy OS versions ... and to find testers who can run that test on a
multitude of legacy Win32 versions.

    Note: cmd replacements like ConEmu may support these on older OS versions,
    too.

Really? Even if the supporting API isn't provided by the underlying (legacy) OS
version? That would imply that ConEmu, (or other terminal emulator), provides
its own fall-back emulation of such APIs: not impossible, but by no means a
trivial task; seems kind of improbable.

Also note: ConEmu is not a cmd replacement; cmd.exe is a shell; AIUI, ConEmu is
a terminal emulator ... a container in which a shell is run, (and that shell
may well be cmd.exe).



---------------------------------------------------------------------
Ticket Status:

      Reporter: osdn-mensch
         Owner: (None)
          Type: Feature Request
        Status: Open
      Priority: 5 - Medium
     MileStone: (None)
     Component: WSL
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

The current one seems very outdated.

It misses some older things (I was told that this is around since 2007) like
the CONSOLE_SCREEN_BUFFER_INFOEX structure

 1.  typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
 2.    ULONG      cbSize;
 3.    COORD      dwSize;
 4.    COORD      dwCursorPosition;
 5.    WORD       wAttributes;
 6.    SMALL_RECT srWindow;
 7.    COORD      dwMaximumWindowSize;
 8.    WORD       wPopupAttributes;
 9.    BOOL       bFullscreenSupported;
10.    COLORREF   ColorTable[16];
11.  } CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;

and the newer COMMON_LVB_ defines for CHAR_INFO structure such as

 1.  #ifndef COMMON_LVB_GRID_HORIZONTAL
 2.  #define COMMON_LVB_GRID_HORIZONTAL      0x0400  /* Top horizontal */
 3.  #endif
 4.  #ifndef COMMON_LVB_GRID_LVERTICAL
 5.  #define COMMON_LVB_GRID_LVERTICAL       0x0800  /* Left vertical */
 6.  #endif
 7.  #ifndef COMMON_LVB_GRID_RVERTICAL
 8.  #define COMMON_LVB_GRID_RVERTICAL       0x1000  /* Right vertical */
 9.  #endif
10.  #ifndef COMMON_LVB_REVERSE_VIDEO
11.  #define COMMON_LVB_REVERSE_VIDEO        0x4000  /* Reverse foreground and background attribute */
12.  #endif
13.  #ifndef COMMON_LVB_UNDERSCORE
14.  #define COMMON_LVB_UNDERSCORE   0x8000  /* Underscore */
15.  #endif

Note: all these are included in mingw-w64 since some time but I think the
original should be updated, too :-)



-- 
Ticket information of MinGW - Minimalist GNU for Windows project
MinGW - Minimalist GNU for Windows Project is hosted on OSDN

Project URL: https://osdn.net/projects/mingw/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/38187
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=38187




More information about the MinGW-Notify mailing list
Back to archive index