Esempio n. 1
0
File: sys.c Progetto: bsmr-haxe/hl
bool hl_sys_put_env( vbyte *e, vbyte *v ) {
#ifdef HL_WIN
	hl_buffer *b = hl_alloc_buffer();
	hl_buffer_str(b,(uchar*)e);
	hl_buffer_char(b,'=');
	if( v ) hl_buffer_str(b,(uchar*)v);
	return putenv(hl_buffer_content(b,NULL)) == 0;
#else
	if( v == NULL ) return unsetenv((char*)e) == 0;
	return setenv((char*)e,(char*)v,1) == 0;
#endif
}
Esempio n. 2
0
static void zlib_error( z_stream *z, int err ) {
	hl_buffer *b = hl_alloc_buffer();
	vdynamic *d;
	hl_buffer_cstr(b, "ZLib Error : ");
	if( z && z->msg ) {
		hl_buffer_cstr(b,z->msg);
		hl_buffer_cstr(b," (");
	}
	d = hl_alloc_dynamic(&hlt_i32);
	d->v.i = err;
	hl_buffer_val(b,d);
	if( z && z->msg )
		hl_buffer_char(b,')');
	d = hl_alloc_dynamic(&hlt_bytes);
	d->v.ptr = hl_buffer_content(b,NULL);
	hl_throw(d);
}
Esempio n. 3
0
File: types.c Progetto: Disar/Kha
static void hl_type_str_rec( hl_buffer *b, hl_type *t, tlist *parents ) {
	const uchar *c = TSTR[t->kind];
	tlist *l, cur;
	int i;
	if( c != NULL ) {
		hl_buffer_str(b,c);
		return;
	}
	l = parents;
	while( l ) {
		if( l->t == t ) {
			hl_buffer_str(b,USTR("<...>"));
			return;
		}
		l = l->next;
	}
	cur.t = t;
	cur.next = parents;
	l = &cur;
	switch( t->kind ) {
	case HFUN:
		hl_buffer_char(b,'(');
		hl_type_str_rec(b,t->fun->ret,l);
		hl_buffer_char(b,' ');
		hl_buffer_char(b,'(');
		for(i=0; i<t->fun->nargs; i++) {
			if( i ) hl_buffer_char(b,',');
			hl_type_str_rec(b,t->fun->args[i],l);
		}
		hl_buffer_char(b,')');
		hl_buffer_char(b,')');
		break;
	case HOBJ:
		hl_buffer_char(b,'#');
		hl_buffer_str(b,t->obj->name);
		break;
	case HREF:
		hl_buffer_str(b,USTR("ref<"));
		hl_type_str_rec(b,t->tparam,l);
		hl_buffer_char(b,'>');
		break;
	case HVIRTUAL:
		hl_buffer_str(b,USTR("virtual<"));
		for(i=0; i<t->virt->nfields; i++) {
			hl_obj_field *f = t->virt->fields + i;
			if( i ) hl_buffer_char(b,',');
			hl_buffer_str(b,f->name);
			hl_buffer_char(b,':');
			hl_type_str_rec(b,f->t,l);
		}
		hl_buffer_char(b,'>');
		break;
	case HABSTRACT:
		hl_buffer_str(b,t->abs_name);
		break;
	case HENUM:
		hl_buffer_str(b,USTR("enum"));
		if( t->tenum->name ) {
			hl_buffer_char(b,'<');
			hl_buffer_str(b,t->tenum->name);
			hl_buffer_char(b,'>');
		}
		break;
	case HNULL:
		hl_buffer_str(b,USTR("null<"));
		hl_type_str_rec(b,t->tparam,l);
		hl_buffer_char(b,'>');
		break;
	default:
		hl_buffer_str(b,USTR("???"));
		break;
	}
}