add initial nuget spec file #1966

This commit is contained in:
nick black 2021-11-18 21:32:06 -05:00
parent b0c75d84d1
commit c6c7d60193
No known key found for this signature in database
GPG Key ID: 5F43400C21CBFACC
2 changed files with 49 additions and 0 deletions

View File

@ -413,3 +413,26 @@ user. We thus keep two queues at all times: received control messages, and
received user input. The received user input is non-segmented UTF-8 (i.e.
translated from control sequences). The received control information is stored
as distinct multibyte escape sequences.
## Windows
We support only the [ConPTY](https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/)
aka the Windows Pseudo Console, introduced in Windows 10. We require that the
environment is already attached to a ConPTY (i.e. we don't create an instance
with `CreatePseudoConsole()`. With this, most of the terminal I/O is portable.
We don't have termios at our disposal, using instead `GetConsoleBufferInfo()`.
ConPTY implements cursor location requests via `u7`.
ConHost/ConPTY do not pass input directly through to the end terminal, instead
effectively handing it rendered surfaces. This means that queries are answered
by ConPTY, and thus that it's impossible to do end-terminal identification via
queries. It barely matters, since almost all interaction is with ConPTY
anyway (i.e. it is probably not possible for a ConPTY terminal to support
bitmap graphics at this time).
We only use the UCRT runtime, as this seems to be the only one with sane UTF8
support. Getting UTF8 on Windows is annoyingly complicated. There is no `LANG`
environment variable in the UNIX sense. It is necessary to explicitly call
`setlocale(LC_ALL, ".UTF8")`, even if `nc_langinfo(LC_ENCODING)` returns
"UTF-8". `SetConsoleOutputCP(CP_UTF8)` also seems advised. Code page 65001 is
UTF-8.

26
tools/nuspec Normal file
View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- Required elements-->
<id>Notcurses</id>
<version>2.4.99</version>
<title>Notcurses TUI/CLI library</title>
<description>Library for blingful TUIs and character graphics</description>
<authors>nick black</authors>
<license type="expression">Apache-2.0</license>
<copyright>copyright 20192021 nick black</copyright>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<tags>tui graphics cli</tags>
</metadata>
<files>
<file src="*.md" target="" />
<file src="*.dll" target="" />
<file src="ncneofetch.exe" target="" />
<file src="ncplayer.exe" target="" />
<file src="nctetris.exe" target="" />
<file src="notcurses-demo.exe" target="" />
<file src="notcurses-info.exe" target="" />
<file src="notcurses-input.exe" target="" />
<file src="notcurses-tester.exe" target="" />
</files>
</package>