···306306 }
307307308308 fn onSubmit(ptr: ?*anyopaque, ctx: *vxfw.EventContext, input: []const u8) anyerror!void {
309309+ // Check the message is not just whitespace
310310+ for (input) |b| {
311311+ // Break on the first non-whitespace byte
312312+ if (!std.ascii.isWhitespace(b)) break;
313313+ } else return;
314314+309315 const self: *Channel = @ptrCast(@alignCast(ptr orelse unreachable));
310316311317 // Copy the input into a temporary buffer
···18061812 }
1807181318081814 fn onSubmit(ptr: ?*anyopaque, ctx: *vxfw.EventContext, input: []const u8) anyerror!void {
18151815+ // Check the message is not just whitespace
18161816+ for (input) |b| {
18171817+ // Break on the first non-whitespace byte
18181818+ if (!std.ascii.isWhitespace(b)) break;
18191819+ } else return;
18201820+18091821 const self: *Client = @ptrCast(@alignCast(ptr orelse unreachable));
1810182218111823 // Copy the input into a temporary buffer