From c5674fd10c42645a2af0755abc315b1977cd7a8a Mon Sep 17 00:00:00 2001 From: Ray Chason Date: Sun, 16 Oct 2022 21:42:42 -0400 Subject: [PATCH] Fix crashes when copying to clipboard --- win/win32/mhstatus.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/win/win32/mhstatus.c b/win/win32/mhstatus.c index 0660af8a7..77e0b6900 100644 --- a/win/win32/mhstatus.c +++ b/win/win32/mhstatus.c @@ -199,15 +199,17 @@ StatusWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) size_t space_remaining = msg_data->max_size; for (int line = 0; line < NHSW_LINES; line++) { - mswin_status_line *status_line = data->status_lines[line].lines; + mswin_status_line *status_line = &data->status_lines->lines[line]; for (int i = 0; i < status_line->status_strings.count; i++) { mswin_status_string * status_string = status_line->status_strings.status_strings[i]; - if (status_string->space_in_front) { - strncat(msg_data->buffer, " ", space_remaining); + if (status_string->str != NULL) { + if (status_string->space_in_front) { + strncat(msg_data->buffer, " ", space_remaining); + space_remaining = msg_data->max_size - strlen(msg_data->buffer); + } + strncat(msg_data->buffer, status_string->str, space_remaining); space_remaining = msg_data->max_size - strlen(msg_data->buffer); } - strncat(msg_data->buffer, status_string->str, space_remaining); - space_remaining = msg_data->max_size - strlen(msg_data->buffer); } strncat(msg_data->buffer, "\r\n", space_remaining); space_remaining = msg_data->max_size - strlen(msg_data->buffer);