╭ changed ──╮ │src/web.zig│ ╰───────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1165 try out.appendSlice(allocator, "\" style=\"left:"); │ │1166 var pos_buf: [128]u8 = undefined; │ │1167 try out.appendSlice(allocator, try std.fmt.bufPrint(&pos_buf, "{d}ch;top:{d}em;width:{d}ch;height:{d}em", .{ inner_left, inner_top, inner_width, inner_height }));│ │1168 - try out.appendSlice(allocator, "\">"); │ │1168 + // textarea discards the first newline immediately following │ │1169 + // its start tag, so add one of our own so text that begins │ │1170 + // with a newline doesn't lose it │ │1171 + try out.appendSlice(allocator, "\">\n"); │ │1172 if (session.input_values.get(inner_id)) |value| try appendEscapedHtml(allocator, &out, value); │ │1173 try out.appendSlice(allocator, "</textarea>"); │ │1174 }, │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯