add: base with add function
This commit is contained in:
parent
7c160040b3
commit
85ab7c292a
@ -1 +1 @@
|
|||||||
Subproject commit 357da752fc9495912749f0bff148791cd162e66c
|
Subproject commit a39e4a780d4e8e0344a05577d27a5a1af9956514
|
2
run.sh
2
run.sh
@ -1,7 +1,7 @@
|
|||||||
cd lib/IronGolem/
|
cd lib/IronGolem/
|
||||||
./run.sh
|
./run.sh
|
||||||
cd $OLDPWD
|
cd $OLDPWD
|
||||||
cat lib/IronGolem/tmp.🗿 src/*.🗿 > tmp.🗿
|
cat lib/IronGolem/IronGolem.🗿 src/*/*.🗿 src/*.🗿 > tmp.🗿
|
||||||
golemc tmp.🗿 >tmp.asm
|
golemc tmp.🗿 >tmp.asm
|
||||||
orgaasm tmp.asm tmp.rom
|
orgaasm tmp.asm tmp.rom
|
||||||
orgaemu tmp.rom
|
orgaemu tmp.rom
|
||||||
|
26
src/commands/add.🗿
Normal file
26
src/commands/add.🗿
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
cmd_add(text_ptr, line_pos)
|
||||||
|
{
|
||||||
|
local line;
|
||||||
|
local tmp;
|
||||||
|
local out;
|
||||||
|
local len;
|
||||||
|
local cursor_pos;
|
||||||
|
|
||||||
|
tmp = NULL;
|
||||||
|
loop
|
||||||
|
{
|
||||||
|
line = geadline("(add)");
|
||||||
|
if (line == NULL | strcmp(line, ".\n") == 0)
|
||||||
|
break;
|
||||||
|
tmp = realloc(tmp, strlen(line) + strlen(tmp) + 1);
|
||||||
|
if (tmp == NULL)
|
||||||
|
return 1;
|
||||||
|
strcat(tmp, line);
|
||||||
|
}
|
||||||
|
cursor_pos = line_pos_to_cursor_pos([text_ptr], line_pos);
|
||||||
|
dbg cursor_pos;
|
||||||
|
out = replace([text_ptr], tmp, cursor_pos, cursor_pos);
|
||||||
|
free([text_ptr]);
|
||||||
|
[text_ptr] = out;
|
||||||
|
return 0;
|
||||||
|
}
|
24
src/main.🗿
24
src/main.🗿
@ -0,0 +1,24 @@
|
|||||||
|
define BUFFER_SIZE=1000;
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
local text;
|
||||||
|
local line_pos;
|
||||||
|
local line;
|
||||||
|
local cmd;
|
||||||
|
|
||||||
|
line_pos = 0;
|
||||||
|
text = strdup("");
|
||||||
|
if (text == NULL)
|
||||||
|
return 1;
|
||||||
|
cmd = 0;
|
||||||
|
loop
|
||||||
|
{
|
||||||
|
line = geadline("(default)");
|
||||||
|
if (line == NULL)
|
||||||
|
return;
|
||||||
|
if (strcmp(line, "a\n") == 0)
|
||||||
|
cmd_add(&text, line_pos);
|
||||||
|
putstr(text);
|
||||||
|
}
|
||||||
|
}
|
13
src/utils.🗿
Normal file
13
src/utils.🗿
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
line_pos_to_cursor_pos(text, line_pos)
|
||||||
|
{
|
||||||
|
local ptr = text;
|
||||||
|
loop
|
||||||
|
{
|
||||||
|
if (line_pos == 0)
|
||||||
|
return ptr - text;
|
||||||
|
ptr = strchr(ptr, '\n');
|
||||||
|
if (ptr == NULL)
|
||||||
|
return 0;
|
||||||
|
line_pos--;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user