tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: tic and a directory terminfo layout

On 05/05/2017 20:54, Kamil Rytarowski wrote:
> I have a pending task to write from scratch in C# for CoreFX (.NET
> platform assemblies) support for extracting registered entries from our
> native terminfo cdb file. (This is currently enforced to be this way,
> the same happens for ncurses)

I'll assume that the goal is to behave 100% the same as NetBSD
libterminfo? So that means you need to actually compile the contents of
$TERMINFO and respect $TERMINFO_DIRS as well?

> Adding another dimension with additional files and directories will make
> things more complicated for users of the database, that need to bypass
> the original tools and libraries.
> It's not that stops it, but gives some context about other potential users.

Well, lets talk about making it easier then.
The basic requirement is that we need to allow $TERMINFO to be a
directory - this mirrors ncurses. What happens beyond this point is
entirely upto us.

My current proposal is that underneath this the directories are created
following the terminals first character and a file inside which is the
terminal name followed by .bin. This tells us it's a flattened terminfo
blob and follow the same format as the blob for the equivalent terminfo
found in the system .cdb file.

We could make this easier by dropping the nested directory (I don't
anticipate many terminfo files being added this way via tic, mainly from
pkgsrc). It could be made easier yet again by writing a .cdb file
instead so it behaves the same way - it will only contain a single
terminal description (well, it could technically hold >1 if there is >1
in the imported terminfo source - thoughts anyone?)?

Lastly, if the file extension doesn't have either .bin or .cdb then we
treat it as plain text terminfo (minus the use= tic exclusive
extension). This is trivial to support because unlike ncurses we need to
also allow $TERMINFO to hold an actual terminfo description - mainly
because we historically allowed $TERMCAP to old a termcap one.

Another idea would be to make your life easier (and conversely mine
harder) would be to get each package to store it's terminfo description
and after installation, register them all using tic into one pkgsrc
compiled database. The downside of this is that each package would need
to install their terminfo file in a set location so that tic can use it
to rebuild (.cdb needs full source to build it, it's not piece-meal - as
such the first solution is less work for me), whereas the just currently
need to call tic to get it installed. Commentary on this welcome,
especially from packagers.


Attachment: signature.asc
Description: OpenPGP digital signature

Home | Main Index | Thread Index | Old Index