*updated the list of donors;

*polished the sample code;
*improved stability of the shell;
*updated binaries.
This commit is contained in:
Wang Renxin 2017-02-26 14:42:10 +08:00
parent a1fd96aa03
commit 381a8a87cd
6 changed files with 17 additions and 14 deletions

View File

@ -44,6 +44,7 @@ DO NOT CHANGE THIS FILE.
</p>
<p>
<ul type="none">
<li>Ken Seergobin</li>
<li>Francesco De Simone</li>
<li>Nicola Giacobbe</li>
<li>Devulder Jean-Paul</li>

Binary file not shown.

Binary file not shown.

View File

@ -88,7 +88,7 @@ class level
c.name = "Therapist"
c.talk_handler = lambda (_)
(
print "- " + _.name + ": give you 23 HP";
print "- " + _.name + ": gives you 23 HP";
_.alive = false
role.hp = role.hp + 23
)

View File

@ -4,7 +4,7 @@
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
def cls()
if os() = "WIN" then
if os() = "WINDOWS" then
sys("cls")
else
sys("clear")

View File

@ -441,6 +441,7 @@ static void _destroy_code(void) {
free(code->lines[i]);
free(code->lines);
free(code);
code = 0;
}
static void _clear_code(void) {
@ -582,16 +583,15 @@ static void _destroy_importing_directories(void) {
free(importing_dirs->dirs[i]);
free(importing_dirs->dirs);
free(importing_dirs);
importing_dirs = 0;
}
static _importing_dirs_t* _set_importing_directories(char* dirs) {
static _importing_dirs_t* _set_importing_directories(const char* dirs) {
_importing_dirs_t* result = 0;
char* end = 0;
if(!dirs)
return result;
end = dirs + strlen(dirs);
result = (_importing_dirs_t*)malloc(sizeof(_importing_dirs_t));
_CHECK_MEM(result);
result->count = 0;
@ -599,23 +599,26 @@ static _importing_dirs_t* _set_importing_directories(char* dirs) {
result->dirs = (char**)malloc(sizeof(char*) * result->size);
_CHECK_MEM(result->dirs);
while(dirs && dirs < end && *dirs) {
while(dirs && *dirs) {
int l = 0;
char* buf = 0;
bool_t as = false;
strtok(dirs, ";");
if(!(*dirs))
continue;
if(*dirs == ';') { dirs++; continue; }
const char* p = dirs;
dirs = strchr(dirs, ';');
if(dirs) {
l = dirs - p;
if(*dirs == ';') ++dirs;
} else {
l = strlen(p);
}
if(result->count + 1 == result->size) {
result->size += _REALLOC_INC_STEP;
result->dirs = (char**)realloc(result->dirs, sizeof(char*) * result->size);
}
l = (int)strlen(dirs);
as = dirs[l - 1] != '/' && dirs[l - 1] != '\\';
as = p[l - 1] != '/' && p[l - 1] != '\\';
buf = (char*)malloc(l + (as ? 2 : 1));
_CHECK_MEM(buf);
memcpy(buf, dirs, l);
memcpy(buf, p, l);
if(as) {
buf[l] = '/';
buf[l + 1] = '\0';
@ -627,7 +630,6 @@ static _importing_dirs_t* _set_importing_directories(char* dirs) {
if(*buf == '\\') *buf = '/';
buf++;
}
dirs += l + 1;
}
_destroy_importing_directories();