Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Locale fixes #25

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from
Draft

Locale fixes #25

wants to merge 6 commits into from

Conversation

softmoth
Copy link
Contributor

@softmoth softmoth commented Jun 6, 2020

Main changes:

  1. Prefer ncursesw (wide-character support) & friends over ncurses
  2. Prefer v6 over v5
  3. Add setlocale

@softmoth softmoth marked this pull request as draft June 6, 2020 09:03
@softmoth
Copy link
Contributor Author

softmoth commented Jun 6, 2020

This depends on rakudo/rakudo#3747

@softmoth softmoth force-pushed the locale-fixes branch 3 times, most recently from 2a9b576 to 5ba5eb4 Compare June 7, 2020 04:32
Raku loves Unicode; we always want the wide-char version of the library
if available.

Also, prefer ncurses 6 over 5 if both are installed.

Don't export `library` routine. It is too common a name to leak out.
Instead, declare it as `our`s, so it can be called if explicitly
qualified with the module name (`NCurses::library()`).

Refactor to remove redundant logic for looking up libraries. Now the one
`library` function can look up all four libraries (`library('menu')`
works as you'd expect).

Cache library lookup in a state variable, only do a single `library-check`
call.

Move "LibraryCheck" from "test-depends" to "depends"; it is needed for
picking the right library (and already was, that's not new in this
patch).
See the 'Initialization' section of the ncurses(3x) man page. Also see
locale(7) and setlocale(3) for details.

Fixes issue azawawi#18 (as long as you use the ncursesw library).
Also remove the `delwin($win)` call; it frees memory of a window, and is
typically not useful to call on stdscr. If it is called on stdscr, then
calling refresh() after endwin() will likely fail. So people should read
the docs before using delwin. Just calling endwin() on exit should be
sufficient for almost all users.

Also document the behavior when only RAKU_NCURSES_LIB is set.

Also recommend apt-get libncurses6.
@azawawi
Copy link
Owner

azawawi commented Sep 24, 2022

@softmoth Any update on this one?

@softmoth
Copy link
Contributor Author

No, I'm not doing anything with Raku nowadays. Feel free to take anything from this that is useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants