Env-C

 view release on metacpan or  search on metacpan

C.xs  view on Meta::CPAN

MODULE = Env::C        PACKAGE = Env::C  PREFIX = env_c_

char *
env_c_getenv(key)
    char *key

    CODE:
    RETVAL = getenv(key);

    OUTPUT:
    RETVAL

MODULE = Env::C        PACKAGE = Env::C  PREFIX = env_c_

int
env_c_setenv(key, val, override=1)
    char *key
    char *val
    int override;

    CODE:
    RETVAL = __setenv(key, val, override);

    OUTPUT:
    RETVAL

MODULE = Env::C        PACKAGE = Env::C  PREFIX = env_c_

void
env_c_unsetenv(key)
    char *key

    CODE:
    __unsetenv(key);

MODULE = Env::C        PACKAGE = Env::C  PREFIX = env_c_

AV*
env_c_getallenv()

    PREINIT:
    int i = 0;
#ifndef __BORLANDC__
    extern char **environ;
#endif

    CODE:
    RETVAL = newAV();

    while ((char*)environ[i] != NULL) {
        Perl_av_push(aTHX_ RETVAL, newSVpv((char*)environ[i++], 0));
    }

    OUTPUT:
    RETVAL

MODULE = Env::C        PACKAGE = Env::C  PREFIX = env_c_

void
env_c_setenv_multi(...)
    PPCODE:
    int i;
    if (items % 3)
        croak("Usage: setenv_multi(var1, value1, override1, var2, value2, override2, ...)");
    for (i=0; i<items; i+=3)
        __setenv(SvPV_nolen(ST(i)), SvPV_nolen(ST(i+1)), SvIV(ST(i+2)));
    XSRETURN(0);


MODULE = Env::C        PACKAGE = Env::C  PREFIX = env_c_

void
env_c_unsetenv_multi(...)
    PPCODE:
    int i;
    for (i=0; i<items; i++)
        __unsetenv(SvPV_nolen(ST(i)));
    XSRETURN(0);


MODULE = Env::C        PACKAGE = Env::C  PREFIX = env_c_

# this is for leak.t, which  needs to know if PERL_USE_SAFE_PUTENV is in
# effect
int
env_c_using_safe_putenv()
    CODE:
#if defined(PERL_USE_SAFE_PUTENV) || defined(USE_SAFE_PUTENV)
    RETVAL = 1;
#else
    RETVAL = 0;
#endif

    OUTPUT:
    RETVAL



( run in 1.027 second using v1.01-cache-2.11-cpan-5511b514fd6 )