Mercurial > pidgin
diff libpurple/plugins/perl/common/Request.xs @ 16739:39c7bb133a9f
Remove the const-c and const-xs stuff and replace it with real constants
exposed to perl.
author | Etan Reisner <pidgin@unreliablesource.net> |
---|---|
date | Tue, 01 May 2007 02:34:22 +0000 |
parents | 08db93bbd798 |
children | 8e54f40a60f3 |
line wrap: on
line diff
--- a/libpurple/plugins/perl/common/Request.xs Mon Apr 30 05:06:29 2007 +0000 +++ b/libpurple/plugins/perl/common/Request.xs Tue May 01 02:34:22 2007 +0000 @@ -80,6 +80,41 @@ MODULE = Purple::Request PACKAGE = Purple::Request PREFIX = purple_request_ PROTOTYPES: ENABLE +BOOT: +{ + HV *request_stash = gv_stashpv("Purple::RequestType", 1); + HV *request_field_stash = gv_stashpv("Purple::RequestFieldType", 1); + + static const constiv *civ, request_const_iv[] = { +#define const_iv(name) {#name, (IV)PURPLE_REQUEST_##name} + const_iv(INPUT), + const_iv(CHOICE), + const_iv(ACTION), + const_iv(FIELDS), + const_iv(FILE), + const_iv(FOLDER), + }; + static const constiv request_field_const_iv[] = { +#undef const_iv +#define const_iv(name) {#name, (IV)PURPLE_REQUEST_FIELD_##name} + const_iv(NONE), + const_iv(STRING), + const_iv(INTEGER), + const_iv(BOOLEAN), + const_iv(CHOICE), + const_iv(LIST), + const_iv(LABEL), + const_iv(IMAGE), + const_iv(ACCOUNT), + }; + + for (civ = request_const_iv + sizeof(request_const_iv) / sizeof(request_const_iv[0]); civ-- > request_const_iv; ) + newCONSTSUB(request_stash, (char *)civ->name, newSViv(civ->iv)); + + for (civ = request_field_const_iv + sizeof(request_field_const_iv) / sizeof(request_field_const_iv[0]); civ-- > request_field_const_iv; ) + newCONSTSUB(request_field_stash, (char *)civ->name, newSViv(civ->iv)); +} + void * purple_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, ok_cb, cancel_text, cancel_cb) Purple::Plugin handle