tech@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: Ingo Schwarze <schwarze@usta.de>
To: tech@mdocml.bsd.lv
Subject: Re: mandocdb: handle formatted manuals
Date: Sat, 26 Nov 2011 12:54:29 +0100	[thread overview]
Message-ID: <20111126115429.GB13912@iris.usta.de> (raw)
In-Reply-To: <4ECE1B81.7080902@bsd.lv>

Hi Kristaps,

Kristaps Dzonsons wrote on Thu, Nov 24, 2011 at 11:25:05AM +0100:
> On 11/19/11 01:56, Ingo Schwarze wrote:

>> right, extracting information from formatted manuals is a rather
>> dirty business and never going to be that reliable, but there is
>> no choice:  Sometimes, nothing else is available, and we have to
>> deal with it.  Of course, on OpenBSD, we could leave that dirty
>> work to espie@'s OpenBSD::Makewhatis perl modules, but i'd rather
>> have a portable solution, and i'd rather not have makewhatis(8)
>> split into two pieces.  I still hope that mandocdb(8) can replace
>> makewhatis(8) completely (except for the pkg_add(1)/pkg_delete(1)/
>> pkg_create(1)-integration of course, which is not going to be
>> portable given how different pkg_add and pkgsrc are).
>>
>> So here is what i did on my train ride from the p2k11 ports hackathon
>> in Budapest back to Karlsruhe (including the one hour lockup in
>> Hegyeshalom when the locomotive stopped working, grrr):
>>
>>  * Even without -a, walk the cat* dirs in addition to man*.
>>  * Only use those cats where men^Wmans are not available
>>    because mans are just greater than cats.
>>
>> There is still a lot of room for improvement, several features of
>> OpenBSD::Makewhatis are not yet implemented.  However, this is
>> already working in most respects, and i'd like to put it in for
>> in-tree polishing.

> There's a slight problem with this: when a file is entered into
> mandocdb's databases, there's an implicit assumption that it was
> parsed.  In other words, mandocdb entries are "safe" for mandoc.
> 
> We need to clearly demark which files are "safe" and which are not.
> In this way, progs interfacing with mandocdb databases can act
> accordingly.
> 
> The easiest way, of course, is a bit in the index file.  Can you
> modify this patch, and the mandoc.index format, to do something like
> that?

I think that is clearly possible and may be useful.

To avoid confounding patches across the two repositories,
i'm first going to commit my unchanged patch to bsd.lv,
even if that's going to cause the problems you describe for
a short period of time, then write an additional patch to
introduce the flag you suggest.

> While we're updating the mandoc.index format, is there anything else
> that should be going in there?

Currently, we have

  recno -> filename \0 section \0 title \0 arch \0 description \0

Given that the description will typically be dozens of characters,
i don't think encoding the file type in a single byte with a set
of #defines is worth the obfuscation, so i'd just make that

  recno -> type \0 filename \0 section \0 title \0 arch \0 description \0

where type = ( mdoc | man | cat ).

Do you agree with that?

I don't think any other information is required in the index.

However, you planned to check endian-neutrality, right?

Yours,
  Ingo
--
 To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv

  reply	other threads:[~2011-11-26 11:54 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-19  0:56 Ingo Schwarze
2011-11-24 10:25 ` Kristaps Dzonsons
2011-11-26 11:54   ` Ingo Schwarze [this message]
2011-11-26 12:01     ` Kristaps Dzonsons
2011-11-26 12:41       ` Ingo Schwarze

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111126115429.GB13912@iris.usta.de \
    --to=schwarze@usta.de \
    --cc=tech@mdocml.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).