|
|
@ -71,6 +71,7 @@ pub fn main() !void {
|
|
71
|
71
|
c.SDL_StartTextInput();
|
|
72
|
72
|
|
|
73
|
73
|
var quit = false;
|
|
|
74
|
var skip: i32 = 0;
|
|
74
|
75
|
while (!quit) {
|
|
75
|
76
|
var event: c.SDL_Event = undefined;
|
|
76
|
77
|
while (c.SDL_PollEvent(&event) != 0) {
|
|
|
@ -115,6 +116,7 @@ pub fn main() !void {
|
|
115
|
116
|
msg[pos] = '_';
|
|
116
|
117
|
},
|
|
117
|
118
|
c.SDLK_RETURN => {
|
|
|
119
|
skip = 0;
|
|
118
|
120
|
gpa.free(result);
|
|
119
|
121
|
result = try runCommand(&msg, gpa);
|
|
120
|
122
|
var i: usize = 0;
|
|
|
@ -124,6 +126,24 @@ pub fn main() !void {
|
|
124
|
126
|
msg[max_chars] = 0;
|
|
125
|
127
|
pos = 0;
|
|
126
|
128
|
},
|
|
|
129
|
c.SDLK_UP => {
|
|
|
130
|
if (skip > 0) {
|
|
|
131
|
skip -= 1;
|
|
|
132
|
}
|
|
|
133
|
},
|
|
|
134
|
c.SDLK_PAGEUP => {
|
|
|
135
|
if (skip < 10) {
|
|
|
136
|
skip = 0;
|
|
|
137
|
} else {
|
|
|
138
|
skip -= 10;
|
|
|
139
|
}
|
|
|
140
|
},
|
|
|
141
|
c.SDLK_DOWN => {
|
|
|
142
|
skip += 1;
|
|
|
143
|
},
|
|
|
144
|
c.SDLK_PAGEDOWN => {
|
|
|
145
|
skip += 10;
|
|
|
146
|
},
|
|
127
|
147
|
else => {},
|
|
128
|
148
|
}
|
|
129
|
149
|
}
|
|
|
@ -154,7 +174,13 @@ pub fn main() !void {
|
|
154
|
174
|
var i: c_int = 1;
|
|
155
|
175
|
var lines = std.mem.split(result, "\n");
|
|
156
|
176
|
var line = lines.next();
|
|
157
|
|
while (line != null) {
|
|
|
177
|
{
|
|
|
178
|
var skipped: i32 = 0;
|
|
|
179
|
while (skipped < skip and line != null) : (skipped += 1) {
|
|
|
180
|
line = lines.next();
|
|
|
181
|
}
|
|
|
182
|
}
|
|
|
183
|
while (line != null and i * glyph_height < window_height) {
|
|
158
|
184
|
const line_c = try gpa.dupeZ(u8, line.?);
|
|
159
|
185
|
const result_text = c.TTF_RenderUTF8_Shaded(font, line_c, white, black);
|
|
160
|
186
|
gpa.free(line_c);
|