Ticket #3628 (new enhancement)

Opened 3 years ago

Last modified 3 years ago

screen library: ncurses vs ncursesw

Reported by: and Owned by:
Priority: minor Milestone: Future Releases
Component: mc-tty Version: master
Keywords: Cc:
Blocked By: Blocking:
Branch state: no branch Votes for changeset:

Description

Currently mc support following screen library (--with-screen=) selection:

  • slang
  • ncurses
  • ncursesw (not documented yet)

This leads to imprecision for ncurses,
because autoconf logic of ncurses detection deals (partly) with ncursesw too.

1) Exact match/use of ncurses or ncursesw
to give full control about ncurses selection.

2) Single ncurses switch
with ncursesw lib preference if both libs found.

3) Single ncurses switch
with ncurses lib preference if both libs found.

4) Ncurses and ncursesw switch
where ncurses switch also prefer ncursesw lib if both libs found.
(current state)

Before I attach patches, which way is preferred?
(I prefer exact match selection)

Change History

comment:1 in reply to: ↑ description Changed 3 years ago by andrew_b

Replying to and:

Before I attach patches, which way is preferred?
(I prefer exact match selection)

Me too.

comment:2 Changed 3 years ago by zaytsev

I'm very confused about this ticket. What is wrong with the current situation? It seems to me that option (4) makes total sense.

As far as I understand, ncursesw is the focus of current development (whereas ncurses is no longer actively developed), and it is source-compatible with ncurses, but behaves better in response to user locale settings.

Therefore, if both ncurses and ncursesw are available, and ncurses is selected as the screen library, it makes total sense to silently prefer ncursesw instead. Using ncurses if ncursesw is available doesn't bring any advantages, which would justify offering a choice. Those, who want to force ncurses for some reason can patch it themselves, but most likely they don't know what they are doing.

What am I missing?

comment:3 Changed 3 years ago by and

Currently Debian compile failed in combination of --with-screen=ncurses and libncursesw5-dev.
This means screen ncurses flag wrongly chosen or not for ncursesw library?

If no, why we have a screen ncursesw flag?
If yes, update manual plus strict evaluation of ncurses/ncursesw screen flag.

comment:4 Changed 3 years ago by and

Reflect about that issue again.

In point of mc maintenance its more practicable to have only -with-screen=ncurses
for both variation of ncurses and ncursesw. Furthermore both are compatible:
http://invisible-island.net/ncurses/ncurses.faq.html

The normal ncurses libraries support 8-bit characters. 
The ncurses library can also be configured (--enable-widec) 
to support wide-characters (for instance Unicode and the UTF-8 encoding). 
The corresponding wide-character ncursesw libraries are 
source-compatible with the normal applications. 
That is, applications must be compiled and linked against the ncursesw library.

So, agreement for that?
Then I will patch cooking for that plus including strip away --with-screen=ncursesw.

comment:5 follow-up: ↓ 6 Changed 3 years ago by zaytsev

I don't get it; in the end, you want to change from (4) to (2), is that correct?

comment:6 in reply to: ↑ 5 Changed 3 years ago by and

Replying to zaytsev:

I don't get it; in the end, you want to change from (4) to (2), is that correct?

Jep

Changed 3 years ago by and

Changed 3 years ago by and

Note: See TracTickets for help on using tickets.