Added SILC Thread Queue API
[runtime.git] / apps / irssi / src / perl / textui / TextBuffer.xs
1 #include "module.h"
2 #include "recode.h"
3
4 MODULE = Irssi::TextUI::TextBuffer  PACKAGE = Irssi
5 PROTOTYPES: ENABLE
6
7 Irssi::TextUI::TextBuffer
8 textbuffer_create()
9
10 #*******************************
11 MODULE = Irssi::TextUI::TextBuffer  PACKAGE = Irssi::TextUI::TextBuffer  PREFIX = textbuffer_
12 #*******************************
13
14 void
15 textbuffer_destroy(buffer)
16         Irssi::TextUI::TextBuffer buffer
17
18 Irssi::TextUI::Line
19 textbuffer_append(buffer, data, len, info)
20         Irssi::TextUI::TextBuffer buffer
21         char *data
22         int len
23         Irssi::TextUI::LineInfo info
24
25 Irssi::TextUI::Line
26 textbuffer_insert(buffer, insert_after, data, len, info)
27         Irssi::TextUI::TextBuffer buffer
28         Irssi::TextUI::Line insert_after
29         char *data
30         int len
31         Irssi::TextUI::LineInfo info
32
33 void
34 textbuffer_remove(buffer, line)
35         Irssi::TextUI::TextBuffer buffer
36         Irssi::TextUI::Line line
37
38 void
39 textbuffer_remove_all_lines(buffer)
40         Irssi::TextUI::TextBuffer buffer
41
42 #*******************************
43 MODULE = Irssi::TextUI::TextBuffer  PACKAGE = Irssi::TextUI::Line  PREFIX = textbuffer_line_
44 #*******************************
45
46 Irssi::TextUI::Line
47 textbuffer_line_prev(line)
48         Irssi::TextUI::Line line
49 CODE:
50         RETVAL = line->prev;
51 OUTPUT:
52         RETVAL
53
54 Irssi::TextUI::Line
55 textbuffer_line_next(line)
56         Irssi::TextUI::Line line
57 CODE:
58         RETVAL = line->next;
59 OUTPUT:
60         RETVAL
61
62 void
63 textbuffer_line_ref(line)
64         Irssi::TextUI::Line line
65
66 void
67 textbuffer_line_unref(line, buffer)
68         Irssi::TextUI::Line line
69         Irssi::TextUI::TextBuffer buffer
70 CODE:
71         textbuffer_line_unref(buffer, line);
72
73 void
74 textbuffer_line_get_text(line, coloring)
75         Irssi::TextUI::Line line
76         int coloring
77 PREINIT:
78         GString *str;
79         SV *result;
80 PPCODE:
81         str = g_string_new(NULL);
82         textbuffer_line2text(line, coloring, str);
83         result = new_pv(str->str);
84         if (is_utf8())
85                 SvUTF8_on(result);
86         XPUSHs(sv_2mortal(result));
87         g_string_free(str, TRUE);
88