1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#include "struct.h"
#include <libguile.h>
SCM_DEFINE(scm_make_vcomponent, "make-vcomponent", 1, 0, 0,
(SCM type),
"")
{
SCM str = scm_from_utf8_string("pr" "pw" "pw" "pr");
SCM vcomponent_vtable = scm_make_vtable(str, SCM_BOOL_F);
return scm_c_make_struct (vcomponent_vtable, scm_from_int(0),
type, SCM_EOL, SCM_BOOL_F,
scm_make_hash_table(SCM_BOOL_F),
SCM_UNDEFINED);
}
SCM_DEFINE(scm_add_line_x, "add-line!", 3, 0, 0,
(SCM vcomponent, SCM key, SCM line),
"")
{
scm_hash_set_x (scm_struct_ref(vcomponent, vcomponent_lines), key, line);
return SCM_UNSPECIFIED;
}
SCM_DEFINE(scm_add_child_x, "add-child!", 2, 0, 0,
(SCM vcomponent, SCM child),
"")
{
scm_struct_set_x (child, vcomponent_parent, vcomponent);
scm_struct_set_x (vcomponent, vcomponent_children,
scm_cons (child, scm_struct_ref (vcomponent, vcomponent_children)));
return SCM_UNSPECIFIED;
}
SCM_DEFINE(scm_make_vline, "make-vline", 0, 0, 0,
(), "")
{
SCM vline_vtable =
scm_make_vtable(scm_from_utf8_string("pw" "pw"),
SCM_BOOL_F);
return scm_c_make_struct (vline_vtable, scm_from_int(0),
SCM_BOOL_F, scm_make_hash_table(SCM_BOOL_F),
SCM_UNDEFINED);
}
SCM_DEFINE(scm_add_attribute_x, "add-attribute!", 3, 0, 0,
(SCM vline, SCM key, SCM value),
"")
{
SCM table = scm_struct_ref (vline, vline_attributes);
scm_hash_set_x (table, key,
scm_cons(value, scm_hash_ref(table, key, SCM_EOL)));
return SCM_UNSPECIFIED;
}
|