makewhatis [man.spec]

Tomasz Wittner twittner w o2.pl
Pon, 1 Sie 2005, 23:18:48 CEST


On Mon 1. of August 2005 18:20, Charles wrote:
> Dnia poniedziałek 01 sierpnia 2005 17:46, Tomasz Wittner napisał:
[...]
> 1. Dodatkowa instalacja, choć do obejścia poprzez R: makewhatis w man.spec 
>    + nieinstalowanie makewhatis w man.spec + skrypty crona w makewhatis.spec
albo można wrzucić źródła makewhatisa-bsd do man.spec. I jak w man.spec
R: makewhatis to konfiguracja crona może sobie zostać w man.spec
> 
> 2. Problemy z locale:
> # makewhatis -w -r
> # whatis ps
> ps                   (1)  - zgłoś status procesuX
> ps                   (1)  - report a snapshot of the current processes.X
> 
> # makewhatis-bsd -o /var/cache/man/whatis /usr/share/man /usr/X11R6/man /usr/local/man
> # whatis ps
> ps(1)                    - report a snapshot of the current processes
> 
> # makewhatis-bsd -L
> wywala się z błędami i zostawia fragment /var/cache/man/whatis
Błędy to się poprawia ;) i trzeba podać albo explitice /usr/share/man/pl
albo w drugim przebiegu z -L dodać -a (by aktualizować, a nie zamieniać bazy
ang. polską). Patrz:
           while (!done && readline() > 0) {
                gsub(/.\b/, "");
                if (($1 ~ /^\.[Ss][Hh]/ &&
                  ($2 ~ /[Nn][Aa][Mm][Ee]/ ||
                   $2 ~ /^JMÉNO/ || $2 ~ /^NAVN/ || $2 ~ /^NUME/ ||
                   $2 ~ /^BEZEICHNUNG/ || $2 ~ /^NOMBRE/ ||
                   $2 ~ /^NIMI/ || $2 ~ /^NOM/ || $2 ~ /^IME/ ||
                   $2 ~ /^N[ÉE]V/ || $2 ~ /^NAMA/ || $2 ~ /^EzÁ°/ ||
                   $2 ~ /^EzzÎ/ || $2 ~ /^RE¸§/ || $2 ~ /^NAZWA/ ||
                   $2 ~ /^îáú÷áîél/ || $2 ~ /^Au"l/C/ || $2 ~ /^SWsU/ ||
                   $2 ~ /^NOME/ || $2 ~ /^NAAM/)) ||
                  (pages == "cat" && $1 ~ /^NAME/)) {

to w makewhatis_by_charles.sh

a w makewhatis.c mamy:
/* A set of possible names for the NAME man page section */
static const char *name_section_titles[] = {
    "NAME", "Name", "NAMN", "BEZEICHNUNG", "\xcc\xbe\xbe\xce",
    "\xee\xe1\xfa\xf7\xe1\xee\xe9\xe5", NULL
 
ale to poprawimy:
/* A set of possible names for the NAME man page section */
static const char *name_section_titles[] = {
    "NAME", "Name",
    "NAMN",
    "NAZWA", "Nazwa",
    "BEZEICHNUNG",
    "\xcc\xbe\xbe\xce",
    "\xee\xe1\xfa\xf7\xe1\xee\xe9\xe5",
/* put more suahili translations of "NAME" here */
/* o resztę języków muszą zadbać zainteresowani */
/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
    NULL
};

$ whatis ps 
ps(1)                    - report a snapshot of the current processes
$ sudo ./makewhatis-bsd -a -v -L -o /var/cache/man/whatis
makewhatis-bsd: /usr/share/man/pl_PL: No such file or directory
man directory /usr/share/man/pl
  /usr/share/man/pl/man1
        reading /usr/share/man/pl/man1/zsh.1.gz
        reading /usr/share/man/pl/man1/wget.1.gz
[...]
reading /usr/share/man/pl/man1/rbash.1.gz
        ignoring junk description ""
 ale taki rbash.1.gz zawiera tylko .so bash.1
Ogólnie wynik jest zadowalający:

$ whatis ps 
ps(1)                    - report a snapshot of the current processes
ps(1)                    - zgłoś status procesu
$

Tyle, że co chwila neo zrywa i póki co releasea makewhatisa obsługującego
polskawe many nie będzie. A - i proszę mnie nie zrozumieć źle - ja się wcale
nie upieram, żeby zamienić makewhatisa shellowego binarnym.

-- 
Tomasz Wittner



Więcej informacji o liście dyskusyjnej pld-devel-pl