AbiWord

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


On 9 Aug 2002, Tomasz Witek wrote:
[..]
> >                 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
> 
> To u gory nic mi nie mowi. Jak dla mnie jest to nielogiczne, moze ktos
> kto to kuma nich to poprawi. Tylko trzeba pamietac o defaultowych
> fontach ktore sa w /usr/X11R6/share/AbiSuite/fonts.

Masz rację że to jest nielogiczne :>

XAP_App::getApp()->getAbiSuiteLibDir() to

a af/xap/xp/xap_App.cpp:

const char * XAP_App::getAbiSuiteLibDir() const
{
        return m_szAbiSuiteLibDir;
}

Znowusz contst char* m_szAbiSuiteLibDir z tego obiektu jest wypełniany 
w af/xap/xp/xap_App.cpp:

void XAP_App::_setAbiSuiteLibDir(const char * sz)
{
        FREEP(m_szAbiSuiteLibDir);
        UT_cloneString((char *&)m_szAbiSuiteLibDir,sz);
}

A sama funkcja XAP_App::_setAbiSuiteLibDir() jest wołana przy inicjacji 
dostająć dodatkowe rzeczy z obiektu zaleznego od architektóry ..
i jeszcze gdzieś kilka poziomów dalej jest używane $(libdir) przekazne z 
Makefile. To *jest* chore. Wszystkie te rzeczy są wykorzystywane tylko raz 
przy stacie programu i można było to zrobić znacznie prościej i to
szczególnie w backend dla unices bo cała ta zabawa jest głównie dla Win*
które nie ma FHS i dla którego musi być robiona cała ta zabawa z gotową
infrastruktórą, w którą bedzie moząń gdzieś wstrzelić gdzieś domyślenie 
się gdzie to są zainstalowane pliki potrzebne dla AbiWorda.
W ten sposób w całosć pakowana jest tona kodu winikowego który tak naprawę
prłni rolę ozdobnika i ładnie wyglądajacej konstrukcji :>

Takich rzeczy w tym programie znajdziesz więcej. Mówiąc inaczje ten
program ma wrodzone wodogłowie, a wiekszosć kombinowania wynika z 
głupich zasad porotowanai całości na rózne platformy (zamiast przyjać że pewne 
rzeczy są zależne od platformy to tworzy się ogólny interfejs któremu 
przekazuje się on run-time różne parametry w postaci obiektótów które to 
onbiekty dopiero coś robią. Już sama analiza niektórych ciągu powiązań 
przyprawia o zawrót głowy ..
O tym że stosuje sie włsne rozwiązanie o umiedzynarodowieni aplikacji (nie
popzrez gettext) któtre .. też jest obiektowe juz nie wspomnę (na 
wszystkich platformach na które sportowany jest AbiWord gettext jest
dostępny i działający).

> AbiWord przychodzi ze swoimi fontami, wiec i je trzeba by wrzucuc do
> odpowiedniej sciezki a nie tam gdzie sa. Poza tym nie zgadzam sie z tym
> ze nie nadaje sie do uzytku, kozystam z niego z dosc ograniczonym
> zakresie, ale spisuje sie znakomicie, wole jego od kworda ktory
> niewiedamo czasem jak sie zachowa.

Tu się jednak mylisz :)
Niewielkim konsztem w tą cąłą taplaninę z czapamie obiektowymi na obiekty
do obiektów można wstrzelić pzrekazanie wprost ścieżki która przychodzi ze 
środowiska Makefile. Pounkt wstrzlenia dla fontów podałem :)

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