Feature #1168

want a libtermcap that does not force libcurses

Added by Gordon Ross almost 3 years ago. Updated almost 3 years ago.

Status:Resolved Start date:2011-07-01
Priority:Normal Due date:
Assignee:Gordon Ross % Done:

50%

Category:- Spent time: -
Target version:-
Difficulty:Medium Tags:needs-triage

Description

While looking at issue 415 https://www.illumos.org/issues/415 it became apparent that issues like 415 could benefit from the existence of a libtermcap that does not force the consumer to link with libcurses. (See 415 for details on that.)

This feature request proposes a filter library (libtermcap.so.1) that will export the traditional BSD-style termcap symbols, but mark all those exported symbols as NODIRECT. That way, a consuming library or application can link with a different curses implementation, and as long as it provides those symbols, those will be used instead of the ones in libcurses.

With the proposed filter library, we can "properly" fix libreadline so that it uses whatever curses library its consumer uses, only falling back to libcurses if the consumer does not link any curses library. And the fix does not require adding the curses library to libreadline consumers who have no need for curses functions. (That will fix issue 415, etc.)

illumos-1168.export (20.2 kB) Gordon Ross, 07/01/2011 01:43 am

History

Updated by Gordon Ross almost 3 years ago

Here's an implementation of this proposed feature:
http://www.yalms.org/cr/libtermcap/

Updated by Gordon Ross almost 3 years ago

an hg export of the changes, in case anyone wants to try this out.

Updated by Gordon Ross almost 3 years ago

  • Status changed from In Progress to Resolved
changeset:   13400:71e59c2d8715
tag:         tip
user:        Gordon Ross <gwr@nexenta.com>
date:        Fri Jul 15 10:20:38 2011 -0400
description:
    1168 want a libtermcap that does not force libcurses
    Reviewed by: Garrett D'Amore <garrett@nexenta.com>
    Reviewed by: Albert Lee <trisk@nexenta.com>
    Reviewed by: Igor Kozhukhov <igor.kozhukhov@nexenta.com>
    Approved by: Garrett D'Amore <garrett@nexenta.com>

Also available in: Atom PDF