mirror of
https://github.com/dankamongmen/notcurses
synced 2025-03-09 09:09:03 -04:00
more docing
This commit is contained in:
parent
4ad1321dce
commit
582017a16a
25
README.md
25
README.md
@ -1463,7 +1463,7 @@ some design decisions might surprise NCURSES programmers:
|
||||
the `newpad()` function). All drawable surfaces can exceed the display size.
|
||||
* Multiple threads can freely call into notcurses, so long as they're not
|
||||
accessing the same data. In particular, it is always safe to concurrently
|
||||
mutate different ncplanes in different threads.
|
||||
mutate different `ncplane`s in different threads.
|
||||
* NCURSES has thread-ignorant and thread-semi-safe versions, trace-enabled and
|
||||
traceless versions, and versions with and without support for wide characters.
|
||||
notcurses is one library: no tracing, UTF-8, thread safety.
|
||||
@ -1491,10 +1491,10 @@ to implement".
|
||||
|
||||
### Adapting NCURSES programs
|
||||
|
||||
First off, ask whether you really want to do such a thing. NCURSES and the
|
||||
Curses API it implements are far more portable and better-tested than notcurses
|
||||
is ever likely to be. Will the program really benefit from notcurses's advanced
|
||||
features? If not, it's probably best left as it is.
|
||||
Do you really want to do such a thing? NCURSES and the Curses API it implements
|
||||
are far more portable and better-tested than notcurses is ever likely to be.
|
||||
Will your program really benefit from notcurses's advanced features? If not,
|
||||
it's probably best left as it is.
|
||||
|
||||
Otherwise, most NCURSES concepts have clear partners in notcurses. Any functions
|
||||
making implicit use of `stdscr` ought be replaced with their explicit
|
||||
@ -1502,11 +1502,12 @@ equivalents. `stdscr` ought then be replaced with the result of
|
||||
`notcurses_stdplane()` (the standard plane). `PANEL`s become `ncplane`s; the
|
||||
Panels API is otherwise pretty close. Anything writing a bare character will
|
||||
become a simple `cell`; multibyte or wide characters become complex `cell`s.
|
||||
Color no longer uses "color pairs". You can either hack together a simple table
|
||||
mapping your colors to RGB values and color pairs to foreground and background
|
||||
indices into said table.
|
||||
Color no longer uses "color pairs". You can easily enough hack together a
|
||||
simple table mapping your colors to RGB values, and color pairs to foreground
|
||||
and background indices into said table. That'll work for the duration of a
|
||||
porting effort, certainly.
|
||||
|
||||
I have adapted two large (~5k lines of C UI code each) from NCURSES to
|
||||
I have adapted two large (~5k lines of C UI code each) programs from NCURSES to
|
||||
notcurses, and found it a fairly painless process. It was helpful to introduce
|
||||
a shim layer, e.g. `compat_mvwprintw` for NCURSES's `mvwprintw`:
|
||||
|
||||
@ -1527,6 +1528,8 @@ compat_mvwprintw(struct ncplane* nc, int y, int x, const char* fmt, ...){
|
||||
}
|
||||
```
|
||||
|
||||
These are pretty obvious, implementation-wise.
|
||||
|
||||
## Environment notes
|
||||
|
||||
* If your terminal has an option about default interpretation of "ambiguous-width
|
||||
@ -1536,7 +1539,7 @@ compat_mvwprintw(struct ncplane* nc, int y, int x, const char* fmt, ...){
|
||||
* If you can disable BiDi in your terminal, do so while running notcurses
|
||||
applications, until I have that handled better. notcurses doesn't recognize
|
||||
the BiDi state machine transitions, and thus merrily continues writing
|
||||
left-to-right. ﷽
|
||||
left-to-right. ﷽!
|
||||
|
||||
* The unit tests assume dimensions of at least 80x25. They might work in a
|
||||
smaller terminal. They might not. Don't file bugs on it.
|
||||
@ -1567,7 +1570,7 @@ compat_mvwprintw(struct ncplane* nc, int y, int x, const char* fmt, ...){
|
||||
Outcurses is a collection of routines atop NCURSES, including Panelreels.
|
||||
I study the history of NCURSES, primarily using Thomas E. Dickey's FAQ and
|
||||
the mailing list archives.
|
||||
* 2019-11-14: I file [Ourcurses issue #56](https://github.com/dankamongmen/outcurses/issues/56)
|
||||
* 2019-11-14: I file [Outcurses issue #56](https://github.com/dankamongmen/outcurses/issues/56)
|
||||
regarding use of DirectColor in outcurses. This is partially inspired by
|
||||
Lexi Summer Hale's essay [everything you ever wanted to know about terminals](http://xn--rpa.cc/irl/term.html).
|
||||
I get into contact with Thomas E. Dickey and confirm that what I'm hoping
|
||||
|
Loading…
x
Reference in New Issue
Block a user