Library: Added core library function chr according to FlightGear Nasal
This commit is contained in:
parent
441c02d0fb
commit
8faa4ef2db
4
lib.nas
4
lib.nas
|
@ -116,6 +116,10 @@ var cmp=func(a,b)
|
||||||
{
|
{
|
||||||
return nasal_call_builtin_cmp(a,b);
|
return nasal_call_builtin_cmp(a,b);
|
||||||
}
|
}
|
||||||
|
var chr=func(code)
|
||||||
|
{
|
||||||
|
return nasal_call_builtin_chr(code);
|
||||||
|
}
|
||||||
|
|
||||||
var io=
|
var io=
|
||||||
{
|
{
|
||||||
|
|
|
@ -63,6 +63,7 @@ nasal_val* builtin_streq(nasal_val*,nasal_gc&);
|
||||||
nasal_val* builtin_left(nasal_val*,nasal_gc&);
|
nasal_val* builtin_left(nasal_val*,nasal_gc&);
|
||||||
nasal_val* builtin_right(nasal_val*,nasal_gc&);
|
nasal_val* builtin_right(nasal_val*,nasal_gc&);
|
||||||
nasal_val* builtin_cmp(nasal_val*,nasal_gc&);
|
nasal_val* builtin_cmp(nasal_val*,nasal_gc&);
|
||||||
|
nasal_val* builtin_chr(nasal_val*,nasal_gc&);
|
||||||
|
|
||||||
void builtin_error_occurred(std::string func_name,std::string info)
|
void builtin_error_occurred(std::string func_name,std::string info)
|
||||||
{
|
{
|
||||||
|
@ -119,6 +120,7 @@ struct FUNC_TABLE
|
||||||
{"nasal_call_builtin_left", builtin_left},
|
{"nasal_call_builtin_left", builtin_left},
|
||||||
{"nasal_call_builtin_right", builtin_right},
|
{"nasal_call_builtin_right", builtin_right},
|
||||||
{"nasal_call_builtin_cmp", builtin_cmp},
|
{"nasal_call_builtin_cmp", builtin_cmp},
|
||||||
|
{"nasal_call_builtin_chr", builtin_chr},
|
||||||
{"", NULL}
|
{"", NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -877,4 +879,19 @@ nasal_val* builtin_cmp(nasal_val* local_scope_addr,nasal_gc& gc)
|
||||||
ret_addr->set_number(alen == blen ? 0 : (alen < blen ? -1 : 1));
|
ret_addr->set_number(alen == blen ? 0 : (alen < blen ? -1 : 1));
|
||||||
return ret_addr;
|
return ret_addr;
|
||||||
}
|
}
|
||||||
|
nasal_val* builtin_chr(nasal_val* local_scope_addr,nasal_gc& gc)
|
||||||
|
{
|
||||||
|
nasal_val* code_addr=in_builtin_find("code");
|
||||||
|
if(code_addr->get_type()!=vm_num)
|
||||||
|
{
|
||||||
|
builtin_error_occurred("chr","\"code\" must be number");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
char chr[2];
|
||||||
|
chr[0] = (char)code_addr->get_number();
|
||||||
|
chr[1] = '\0';
|
||||||
|
nasal_val* ret_addr=gc.gc_alloc(vm_str);
|
||||||
|
ret_addr->set_string(chr);
|
||||||
|
return ret_addr;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue