浏览代码

Support skipping to the start and end

Luna Stadler 4 年之前
父节点
当前提交
4959a6f9f8
共有 1 个文件被更改,包括 16 次插入0 次删除
  1. 16 0
      zig/sdl/hello_sdl.zig

+ 16 - 0
zig/sdl/hello_sdl.zig

@ -76,6 +76,7 @@ pub fn main() !void {
76 76
77 77
    var quit = false;
78 78
    var skip: i32 = 0;
79
    var num_lines: i32 = 0;
79 80
    while (!quit) {
80 81
        var event: c.SDL_Event = undefined;
81 82
        while (c.SDL_PollEvent(&event) != 0) {
@ -150,6 +151,13 @@ pub fn main() !void {
150 151
                                }
151 152
                                msg[max_chars] = 0;
152 153
                                pos = 0;
154
155
                                num_lines = 0;
156
                                var lines = std.mem.split(result, "\n");
157
                                var line = lines.next();
158
                                while (line != null) : (line = lines.next()) {
159
                                    num_lines += 1;
160
                                }
153 161
                            },
154 162
                            c.SDLK_UP => {
155 163
                                if (skip > 0) {
@ -169,6 +177,14 @@ pub fn main() !void {
169 177
                            c.SDLK_PAGEDOWN => {
170 178
                                skip += 10;
171 179
                            },
180
                            c.SDLK_HOME => {
181
                                skip = 0;
182
                            },
183
                            c.SDLK_END => {
184
                                if (num_lines > 10) {
185
                                    skip = num_lines - 10;
186
                                }
187
                            },
172 188
                            else => {},
173 189
                        }
174 190
                    }