AbiWord

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Pią, 9 Sie 2002, 13:45:33 CEST


On 9 Aug 2002, Tomasz Witek wrote:

> W liście z pią, 09-08-2002, godz. 11:13, Tomasz Kłoczko pisze: 
> > On 9 Aug 2002, Tomasz Witek wrote:
> > 
> > > Ja mam takie niedyskretne pytanie. Swego czasu po liscie przewijal sie
> > > taki zastaw jak abiword-linked_fonts-pl, kiedys byl nawet w cvsie, teraz
> > > nie moge go znalezc, ale nie o to chodzi. Tam jest smieszna latka ktora
> > > powoduje zrobienie wielu linkow do fontów z /usr/share/fonts/Type1 do
> > > /usr/X11R6/share/AbiSuite/fonts/pl. Po tym zabiegu pliterki w AbiWordzie
> > > dzialaja. Wiem, ze tomek i paru innych zaraz powie, ze to nieeleganckie
> > > i nalezy zmusic AbiWorda do uzywania fontow ze standardowej sciezki, ale
> > > jak nik tego nie zobi to AbiWord nie umie pisac po polsku, a jesdak taka
> > > wlasnosc by sie przydala, szczegolnie wiekszej czesci uzytkownikow.
> > > 
> > > W sumie mozna dorzucic skrypt do /usr/share/doc ktory to na zyczenie
> > > admina zrobi ale po co.
> > 
> > .. skoro możnaby zrobić patcha który spowoduje czytanie fontów z 
> > systemopwych ścieżek :)
> > 
> A nie mowilem ? Ale kto to zrobi, ja probowalem ale sie poddalem, a do
> 1.0 tuz, tuz, wiec mozna by zrobic wprowadzic latke ktora wiadomo jak
> zrobic.

Pogrepowałem i znalazłem.
Wsio co trzeba jest w abi/src/af/xap/unix/xap_UnixFont.cpp. Jest tam:

const encoding_pair * XAP_UnixFont::loadEncodingFile(char * encfile)
{
        if(m_pEncodingTable)
        {
                //UT_DEBUGMSG(("UnixFont: font table already exists\n"));
                return m_pEncodingTable;
        }
        
        if(!encfile)
        {
                UT_ASSERT(UT_SHOULD_NOT_HAPPEN);
                return 0;
        }
        xxx_UT_DEBUGMSG(("Loading encoding file %s \n",encfile));
        
        FILE * ef = fopen(encfile, "r");
        if(!ef)
        {
                //if the file does not exist, we will load a generic one
                //get the path from m_fontfile
                char * full_name = new char[strlen(XAP_App::getApp()->getAbiSuiteLibDir())+30];
                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                strcpy(full_name, m_fontfile);

                char * slash = strrchr(full_name, '/');
                if(slash)
                        *(slash+1) = 0;
                
                //first we look for a locale specific file locale.u2g in the same directory as this font
                strcat(full_name, "locale.u2g");
                UT_DEBUGMSG(("UnixFont: trying to open locale specific encoding file [%s]\n", full_name));


Generalnie trzebaby pooglądać wszystkie wołania 
XAP_App::getApp()->getAbiSuiteLibDir() i powymieniać na wstawienie 
konkretnej ściżki.
Przy okzji .. sa tam takei kwiatki jak:

        sprintf(cmdline, "%s/bin/ttftool -f %sttf -a %safm -u %su2g -p %st42 -e %s",
                          ^^^^^^^^^^^^^^
		libdir, fontfile, fontfile, fontfile, fontfile,enc);
                ^^^^^^

Czy inne podobne które szukaj konkretnych nrzędzie w $(libdir)/bin/ :>
To też trzebaby powymieniać. Mówiąc inaczje abiqword wygląda, że w obecnej 
postaci tak wogóle średnio nadaje się do użytku.

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



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