[ekg2-devel] chatstates i talk.google.com

Jakub Zawadzki darkjames w darkjames.ath.cx
Sob, 19 Sty 2008, 16:54:04 CET


On Sat, Jan 19, 2008 at 04:18:15PM +0100, Michał Górny wrote:
> 
> Na razie przesyłam diffkę wzgl. aktualnego CVS do przejrzenia i komentowania.

Dzieki za -u :)

> @@ -769,7 +813,7 @@ static WATCHER(jabber_handle_connect_tle
>  XML_Parser jabber_parser_recreate(XML_Parser parser, void *data) {
>  /*	debug_function("jabber_parser_recreate() 0x%x 0x%x\n", parser, data); */
>  
> -	if (!parser) 	parser = XML_ParserCreate("UTF-8");	/*   new parser */
> +	if (!parser) 	parser = XML_ParserCreateNS("UTF-8",'#');	/*   new parser */

Nie moze byc '#'

> +		{
> +			char *x		= NULL;
> +			char *tmp	= xstrdup(name);
> +			char *sep	= xstrchr(tmp, '#');
> +			if (sep) {
> +				*(sep++) = '\0';
> +				name	= sep;
> +				x	= tmp;
> +			}
> +
> +			newnode->name = xstrdup(name);
> +			newnode->xmlns = xstrdup(x);
> +			xfree(tmp);
> +		}

Bo jak dostaniesz:
	<foo xmlns="http://jabber.org/protocol/foo#bar"

to w name dostaniesz: http://jabber.org/protocol/foo#bar#foo

stripujesz do pierwszego '#' dostajesz xmlns:
'http://jabber.org/protocol/foo' (wczesniej 'http://jabber.org/protocol/foo#bar')
i nazwe: 'bar#foo' (wczesniej 'foo')

[bardziej rzeczywisty przyklad: disco i muce wykorzystuja '#' w xmlns]

strrchr() niby bedzie robic to co powinno, ale ja jednak jestem przeciwny uzywaniu '#'

Juz wole wczesniejsze '|' Chociaz najbardziej, najbardziej to wolalbym jakis
nietypowy znaczek ASCII '\0' byloby fajne, ale niebezpieczne; Moze BEL albo ESC? Albo w sumie obojetnie jaki kontrolny.

Reszta komentarzy taka sama jak wczesniej.

Pozdrawiam.


Więcej informacji o liście dyskusyjnej ekg2-devel