Exemplo n.º 1
0
int
SennaPerl_Global_bootstrap()
{
    HV *stash;
    sen_rc rc;

    rc = sen_init();
    if (rc != sen_success) {
        croak("Failed to call sen_init(). sen_init() returned %d", rc);
    }

    stash = gv_stashpv("Senna::Constants", 1);

    newCONSTSUB(stash, "LIBSENNA_VERSION",
        newSVpvf("%d.%d.%d", 
            SENNA_MAJOR_VERSION,
            SENNA_MINOR_VERSION,
            SENNA_MICRO_VERSION
        )
    );
    newCONSTSUB(stash, "LIBSENNA_MAJOR_VERSION", newSViv(SENNA_MAJOR_VERSION));
    newCONSTSUB(stash, "LIBSENNA_MINOR_VERSION", newSViv(SENNA_MINOR_VERSION));
    newCONSTSUB(stash, "LIBSENNA_MICRO_VERSION", newSViv(SENNA_MICRO_VERSION));

    SennaPerl_Index_bootstrap();
    SennaPerl_Encoding_bootstrap();
    SennaPerl_RC_bootstrap();
    SennaPerl_Records_bootstrap();
    SennaPerl_Symbol_bootstrap();
    SennaPerl_Ctx_bootstrap();

    return 1;
}
Exemplo n.º 2
0
void
SennaPerl_Query_bootstrap()
{
    HV *stash;

    stash = gv_stashpv("Senna::Constants", 1);
    newCONSTSUB(stash, "SEN_SEL_OR", newSViv(sen_sel_or));
    newCONSTSUB(stash, "SEN_SEL_AND", newSViv(sen_sel_and));
    newCONSTSUB(stash, "SEN_SEL_BUT", newSViv(sen_sel_but));
    newCONSTSUB(stash, "SEN_SEL_ADJUST", newSViv(sen_sel_adjust));
}
Exemplo n.º 3
0
void
define_constants(const char *pkg, constval_t *cvp)
{
	HV		*stash;
	char		*name;
	AV		*constants;

	/* Create the new perl @_Constants variable. */
	stash = gv_stashpv(pkg, TRUE);
	name = New(0, name, strlen(pkg) + sizeof (CONST_NAME), char);
	PERL_ASSERT(name != NULL);
	strcpy(name, pkg);
	strcat(name, CONST_NAME);
	constants = perl_get_av(name, TRUE);
	Safefree(name);

	/* Populate @_Constants from the contents of the generated array. */
	for (; cvp->name != NULL; cvp++) {
		newCONSTSUB(stash, (char *)cvp->name, newSVuv(cvp->value));
		av_push(constants, newSVpvn((char *)cvp->name, cvp->len));
	}
}
Exemplo n.º 4
0
static void boot_B_Sizeof(void)
{
    HV *stash = gv_stashpvn("B::Sizeof", 9, TRUE);
   (void)newCONSTSUB(stash, "OP", newSViv(sizeof(OP)));
   (void)newCONSTSUB(stash, "PMOP", newSViv(sizeof(PMOP)));
   (void)newCONSTSUB(stash, "UNOP", newSViv(sizeof(UNOP)));
   (void)newCONSTSUB(stash, "BINOP", newSViv(sizeof(BINOP)));
   (void)newCONSTSUB(stash, "LISTOP", newSViv(sizeof(LISTOP)));
   (void)newCONSTSUB(stash, "LOGOP", newSViv(sizeof(LOGOP)));
   (void)newCONSTSUB(stash, "SVOP", newSViv(sizeof(SVOP)));
   (void)newCONSTSUB(stash, "GVOP", newSViv(sizeof(GVOP)));
   (void)newCONSTSUB(stash, "PVOP", newSViv(sizeof(PVOP)));
   (void)newCONSTSUB(stash, "COP", newSViv(sizeof(COP)));
   (void)newCONSTSUB(stash, "LOOP", newSViv(sizeof(LOOP)));
   (void)newCONSTSUB(stash, "SV", newSViv(sizeof(SV)));
   (void)newCONSTSUB(stash, "HV", newSViv(sizeof(HV)));
   (void)newCONSTSUB(stash, "AV", newSViv(sizeof(AV)));
   (void)newCONSTSUB(stash, "NV", newSViv(sizeof(NV)));
   (void)newCONSTSUB(stash, "IV", newSViv(sizeof(IV)));
   (void)newCONSTSUB(stash, "CV", newSViv(sizeof(CV)));
   (void)newCONSTSUB(stash, "GV", newSViv(sizeof(GV)));
   (void)newCONSTSUB(stash, "GP", newSViv(sizeof(GP)));
   (void)newCONSTSUB(stash, "U32", newSViv(sizeof(U32)));
   (void)newCONSTSUB(stash, "U16", newSViv(sizeof(U16)));
   (void)newCONSTSUB(stash, "U8", newSViv(sizeof(U8)));
#ifdef XRV
   (void)newCONSTSUB(stash, "XRV", newSViv(sizeof(XRV)));
#endif
   (void)newCONSTSUB(stash, "XPV", newSViv(sizeof(XPV)));
   (void)newCONSTSUB(stash, "XPVIV", newSViv(sizeof(XPVIV)));
   (void)newCONSTSUB(stash, "XPVUV", newSViv(sizeof(XPVUV)));
   (void)newCONSTSUB(stash, "XPVNV", newSViv(sizeof(XPVNV)));
   (void)newCONSTSUB(stash, "XPVMG", newSViv(sizeof(XPVMG)));
   (void)newCONSTSUB(stash, "XPVLV", newSViv(sizeof(XPVLV)));
   (void)newCONSTSUB(stash, "XPVGV", newSViv(sizeof(XPVGV)));
#ifdef XPVBM
   (void)newCONSTSUB(stash, "XPVBM", newSViv(sizeof(XPVBM)));
#endif
   (void)newCONSTSUB(stash, "XPVFM", newSViv(sizeof(XPVFM)));
   (void)newCONSTSUB(stash, "XPVIO", newSViv(sizeof(XPVIO)));
   (void)newCONSTSUB(stash, "XPVCV", newSViv(sizeof(XPVCV)));
   (void)newCONSTSUB(stash, "XPVAV", newSViv(sizeof(XPVAV)));
   (void)newCONSTSUB(stash, "XPVHV", newSViv(sizeof(XPVHV)));
   (void)newCONSTSUB(stash, "HE", newSViv(sizeof(HE)));
   (void)newCONSTSUB(stash, "HEK", newSViv(sizeof(HEK)));
   (void)newCONSTSUB(stash, "MAGIC", newSViv(sizeof(MAGIC)));
   (void)newCONSTSUB(stash, "REGEXP", newSViv(sizeof(REGEXP)));

}
Exemplo n.º 5
0
/* xs_init is the second argument perl_parse. As the name hints, it
   initializes XS subroutines (see the perlembed manpage) */
static void
xs_init (pTHX)
{
	HV *stash;
	SV *version;
	/* This one allows dynamic loading of perl modules in perl
	   scripts by the 'use perlmod;' construction */
	newXS ("DynaLoader::boot_DynaLoader", boot_DynaLoader, __FILE__);
	/* load up all the custom IRC perl functions */
	newXS ("Xchat::Internal::register", XS_Xchat_register, __FILE__);
	newXS ("Xchat::Internal::hook_server", XS_Xchat_hook_server, __FILE__);
	newXS ("Xchat::Internal::hook_command", XS_Xchat_hook_command, __FILE__);
	newXS ("Xchat::Internal::hook_print", XS_Xchat_hook_print, __FILE__);
	newXS ("Xchat::Internal::hook_timer", XS_Xchat_hook_timer, __FILE__);
	newXS ("Xchat::Internal::hook_fd", XS_Xchat_hook_fd, __FILE__);
	newXS ("Xchat::Internal::unhook", XS_Xchat_unhook, __FILE__);
	newXS ("Xchat::Internal::print", XS_Xchat_print, __FILE__);
	newXS ("Xchat::Internal::command", XS_Xchat_command, __FILE__);
	newXS ("Xchat::Internal::set_context", XS_Xchat_set_context, __FILE__);
	newXS ("Xchat::Internal::get_info", XS_Xchat_get_info, __FILE__);
	newXS ("Xchat::Internal::context_info", XS_Xchat_context_info, __FILE__);
	newXS ("Xchat::Internal::get_list", XS_Xchat_get_list, __FILE__);
	
	newXS ("Xchat::find_context", XS_Xchat_find_context, __FILE__);
	newXS ("Xchat::get_context", XS_Xchat_get_context, __FILE__);
	newXS ("Xchat::get_prefs", XS_Xchat_get_prefs, __FILE__);
	newXS ("Xchat::emit_print", XS_Xchat_emit_print, __FILE__);
	newXS ("Xchat::send_modes", XS_Xchat_send_modes, __FILE__);
	newXS ("Xchat::nickcmp", XS_Xchat_nickcmp, __FILE__);

	newXS ("Xchat::Embed::plugingui_remove", XS_Xchat_Embed_plugingui_remove,
			 __FILE__);

	stash = get_hv ("Xchat::", TRUE);
	if (stash == NULL) {
		exit (1);
	}

	newCONSTSUB (stash, "PRI_HIGHEST", newSViv (XCHAT_PRI_HIGHEST));
	newCONSTSUB (stash, "PRI_HIGH", newSViv (XCHAT_PRI_HIGH));
	newCONSTSUB (stash, "PRI_NORM", newSViv (XCHAT_PRI_NORM));
	newCONSTSUB (stash, "PRI_LOW", newSViv (XCHAT_PRI_LOW));
	newCONSTSUB (stash, "PRI_LOWEST", newSViv (XCHAT_PRI_LOWEST));

	newCONSTSUB (stash, "EAT_NONE", newSViv (XCHAT_EAT_NONE));
	newCONSTSUB (stash, "EAT_XCHAT", newSViv (XCHAT_EAT_XCHAT));
	newCONSTSUB (stash, "EAT_PLUGIN", newSViv (XCHAT_EAT_PLUGIN));
	newCONSTSUB (stash, "EAT_ALL", newSViv (XCHAT_EAT_ALL));
	newCONSTSUB (stash, "FD_READ", newSViv (XCHAT_FD_READ));
	newCONSTSUB (stash, "FD_WRITE", newSViv (XCHAT_FD_WRITE));
	newCONSTSUB (stash, "FD_EXCEPTION", newSViv (XCHAT_FD_EXCEPTION));
	newCONSTSUB (stash, "FD_NOTSOCKET", newSViv (XCHAT_FD_NOTSOCKET));
	newCONSTSUB (stash, "KEEP", newSViv (1));
	newCONSTSUB (stash, "REMOVE", newSViv (0));

	version = get_sv( "Xchat::VERSION", 1 );
	sv_setpv( version, PACKAGE_VERSION );
}
Exemplo n.º 6
0
void test3(void)
{
	newCONSTSUB(gv_stashpv("Devel::PPPort", FALSE), "test_value_3", newSViv(3));
}