Esempio n. 1
0
    ArrayObject * ProgramClass::_getEnviron()
    {
        Toplevel *toplevel = this->toplevel();
        AvmCore *core = this->core();

        ArrayObject *array = toplevel->arrayClass()->newArray();

        #if AVMSYSTEM_WIN32
            wchar **cur = VMPI_GetEnviron16();
            int i = 0;
            while( cur[i] )
            {
                Stringp value = core->newStringUTF16(cur[i]);
                StUTF8String valueUTF8(value);

                array->setUintProperty( i, core->newStringUTF8( valueUTF8.c_str() )->atom() );
                i++;
            }
        #else
            char **cur = VMPI_GetEnviron();
            int i = 0;
            while( cur[i] )
            {
                array->setUintProperty( i, core->newStringUTF8( cur[i] )->atom() );
                i++;
            }
        #endif
        
        return array;
    }
Esempio n. 2
0
    /*static*/ Stringp CStdlibClass::getenv(ScriptObject* self, Stringp name)
    {
        AvmCore *core = self->core();
        Toplevel* toplevel = self->toplevel();

        if( !name )
        {
            toplevel->throwArgumentError(kNullArgumentError, "name");
        }
        
        #if AVMSYSTEM_WIN32
            StUTF16String nameUTF16(name);
            const wchar * str = VMPI_getenv16( nameUTF16.c_str() );
            
            Stringp value = core->newStringUTF16( str );
            StUTF8String valueUTF8(value);
            return core->newStringUTF8( valueUTF8.c_str() );
        #else
            StUTF8String nameUTF8(name);
            const char * str = VMPI_getenv( nameUTF8.c_str() );
            return core->newStringUTF8( str );
        #endif
    }
Esempio n. 3
0
    /*static*/ Stringp CStdlibClass::realpath(ScriptObject* self, Stringp path)
    {
        AvmCore *core = self->core();
        Toplevel* toplevel = self->toplevel();

        if( !path )
        {
            toplevel->throwArgumentError(kNullArgumentError, "path");
        }
        
        #if AVMSYSTEM_WIN32
            StUTF16String pathUTF16(path);
            wchar * str = VMPI_realpath16( pathUTF16.c_str() );
            
            Stringp value = core->newStringUTF16( str );
            StUTF8String valueUTF8(value);
            return core->newStringUTF8( valueUTF8.c_str() );
        #else
            StUTF8String pathUTF8(path);
            char * str = VMPI_realpath( pathUTF8.c_str() );

            return core->newStringUTF8( str );
        #endif
    }