[ekg2-devel] Komendy i array_make

Jakub Zawadzki darkjames w darkjames.ath.cx
Wto, 22 Lip 2008, 19:18:20 CEST


Hi,

Na !ekg2 znowu echa mojego commitu naprawiajacego-psujacego array_make()
( http://lists.ziew.org/mailman/pipermail/ekg2-commit/2008-June/004636.html )

W zalozeniach to mialo naprawic stripowanie cytatow, przykladowe:
 - /auth -r "kontakt ze spacja"

Niestety przez to popsulem:
	"chce wyslac ta wiadomosc z cudzyslowiem"
lub
	'chce wyslac z apostrofem'

teraz, zeby wyslac mozna tak:
	'"moge to zrobic tak"'		-> "moge to zrobic tak"
oraz:	"'moge to zrobic tak'"		-> 'moge to zrobic tak'

dzisiejszy cytat z !ekg2:

18:40:27 <@darkjames> np: /echo '"alala"'
18:40:36 < lazy_bum> o_O
18:40:48 < lazy_bum> Mniej wygodnie się nie dało?

kod z ekg1 - czyli przyklad jak zrobic zeby znowu dzialalo.

<code>
/*
 * dla query potrzeba nam cudzysłowów, natomiast
 * dla całej reszty nie są one potrzebne (wymagałoby to
 * strippowania w wielu miejscach i zmienienia paru
 * koncepcji)
 */

if (!strcasecmp(last_name, "query")) {
	par = array_make_quoted(params_string, " \t", len, 1, 1);
} else
	par = array_make(params_string, " \t", len, 1, 1);

</code>

u nas zamiast tego strcasecmp() nowa flaga do command_flags_t
	(* moj faworyt odnosnie nazwy: PARAM_LEAVE_QUOTES *)

i robimy to samo.

Tylko teraz jakby pomyslec... Gdzie dac ta flage a gdzie nie dawac?

1/ / "na pewno"
2/ /away "moj opis w cudzyslowu o/"
3/ /disconnect "j/w"
4/ /msg "ktos ze spacja" "cytat"
(...)

Potrzeba kogos madrego, szczegolnie ze w niektorych wersjach ekg2 
/disconnect przyjmowal dwa parametry, i _trzeba bylo_ zamykac je w cudzyslow.

Howgh.

 PS: ten problem objawia sie tylko przy wiadomosciach ktore w calosci zamykamy w cudzyslow. 
PS2: Mozemy olac flage, bo zwykle te parametry gdzie chcemy cytowac maja tylko 1 parametr.
     a gdy maja tylko 1 parametr, to nie trzeba cytowac.


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