xml-i18n-tools-merge_lines.patch

Jakub Bogusz qboosh w prioris.mini.pw.edu.pl
Pią, 5 Paź 2001, 15:39:02 CEST


On Fri, Oct 05, 2001 at 08:45:37AM +0200, Tomasz Kłoczko wrote:
> On Thu, 4 Oct 2001, Jakub Bogusz wrote:
> > Do czego ten patch służy wiem (właśnie się przekonałem próbując
> > skompilować gal.spec z xml-i18n-tools 0.9-1, zanim zobaczyłem, że jest
> > 0.9-2 i co się zmieniło w nim) i też w pierszej chwili pomyślałem o
> > takim sposobie poprawienia - ale niestety jest on niepoprawny.
> > 
> > Te makra @XML_I18N_.*_RULE@ muszą być dwuliniowe, bo to są reguły dla
> > make - pierwsza linia "%.xxx : %.xxx.in inne-zależności", druga linia
> > to właściwa komenda do uruchomienia. Czyli po poprawce nie będzie
> > działać. To, że do tej pory to nie wyszło wynika prawdopodobnie z tego,
> > że nigdzie te makra nie były używane.
> > 
> > Jeżeli to ma gdzieś działać, to trzeba jakoś inaczej poprawić (zmienić
> > config.status, żeby dopuszczał wieloliniowe makra? zastąpić makro
> > .*RULE makrami .*RULE1 i .*RULE2 (i zmieniać ich wystąpienia w
> > Makefile.in/am)?) - tak jak teraz, to równie dobrze można te regułki
> > usunąć z xml-i18n-tools.m4.
> 
> W jednym wypadku jakoś mi to zadziałało ale wygląda że masz rację.
> Kłopot bierze się z tąd, że przy confiure.status to co jest przez ten 
> skrpt robione to głównie generowanbei substów w plikach takich jak 
> Makefile.in czy innych ale te substy są genrowane paczkami po ściśle 
> okręślona ilość linijek. Powoduje to tyle że to co wpada w skrypty dla 
> seda czasami trafi między lininki makr xml-i18n

To wiem, dosyć dokładnie zdiagnozowałem problem i miałem go już tu
opisać, ale coś mnie tknęło i zajrzałem czy nie ma nowszej wersji w repo :)

> czyli nie chodzi o to że 
> te makra mają po wiecej niż jedna linjkę ale o to że są w losowy sposób 
> łamane w sirodku. Rozwiązanie jaki mi przyszło do głowy polegało na 
> posklejaniu poleceń seda do pojedynczych linijek wtedy byłaby pewność, że 
> nic złego się tu nie będzie dziać.

Tylko niestety sed nie interpretuje \n w podstawieniu. Jako sposób
zamiany ciągu na więcej niż jedną linię jest podane \<newline>, co
właśnie powoduje problemy z dzieleniem skryptu przez config.status.

Żeby nie zmieniać działania makr xml-i18n trzeba by było poprawić
config.status, żeby jakoś zwracał uwagę na takie rzeczy przy dzieleniu.

Drugi sposób to zmienić sposób używania makr xml-i18n, tak żeby w
podstawieniach nie musiało występować \n - wtedy prawdopodobnie trzeba
by zmieniać Makefile.am/in w projektach, które z tego korzystają
(możliwe, że na razie takich nie mamy, skoro złe działanie patcha się
nie ujawniło). Chyba najlepiej byłoby zasygnalizować problem ludziom
od xml-i18n-tools, żeby sami jakoś ten problem rozwiązali na przyszłość,
w końcu to ich makra :)


PS. grrr. próbuję coś zrobić w sprawie pdksh+gal. Znowu podmazuje jakieś
pojedyncze zaalokowane bajty długimi stringami - i znowu nie wiem, czy
to jakiś overflow, czy niesłusznie zwolnił jakiś blok...

-- 
Jakub Bogusz
http://prioris.mini.pw.edu.pl/~qboosh/



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