aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/quickfix.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-06-08 07:03:22 +0800
committerGitHub <noreply@github.com>2023-06-08 07:03:22 +0800
commit38b0bb3c93022afcc54c0891d2eced02d2a9fa3a (patch)
treeb38520f58433299aa3a6ac9e0f594b796d8ba76c /src/nvim/quickfix.c
parent0329f5c2f4f300b9ffe66b0b4b2db1d51c6293d1 (diff)
downloadrneovim-38b0bb3c93022afcc54c0891d2eced02d2a9fa3a.tar.gz
rneovim-38b0bb3c93022afcc54c0891d2eced02d2a9fa3a.tar.bz2
rneovim-38b0bb3c93022afcc54c0891d2eced02d2a9fa3a.zip
vim-patch:9.0.1616: quickfix text field is truncated (#23951)
Problem: Quickfix text field is truncated. Solution: Fix output of text field after pattern field in quickfix buffer. (Shane Harper, closes vim/vim#12498) https://github.com/vim/vim/commit/5bf042810b19a627eda2f170624a0cfd7b4f6ed6 Co-authored-by: Shane Harper <shane@shaneharper.net>
Diffstat (limited to 'src/nvim/quickfix.c')
-rw-r--r--src/nvim/quickfix.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index 8a78a3cd80..90dac4d3bf 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -2848,6 +2848,7 @@ static void qf_jump_print_msg(qf_info_T *qi, int qf_index, qfline_T *qf_ptr, buf
// Add the message, skipping leading whitespace and newlines.
ga_concat(gap, IObuff);
qf_fmt_text(gap, skipwhite(qf_ptr->qf_text));
+ ga_append(gap, NUL);
// Output the message. Overwrite to avoid scrolling when the 'O'
// flag is present in 'shortmess'; But when not jumping, print the
@@ -3123,9 +3124,7 @@ static void qf_list_entry(qfline_T *qfp, int qf_idx, bool cursel)
msg_puts_attr(":", qfSepAttr);
}
garray_T *gap = qfga_get();
- if (qfp->qf_lnum == 0) {
- ga_append(gap, NUL);
- } else {
+ if (qfp->qf_lnum != 0) {
qf_range_text(gap, qfp);
}
ga_concat(gap, qf_types(qfp->qf_type, qfp->qf_nr));
@@ -3135,6 +3134,7 @@ static void qf_list_entry(qfline_T *qfp, int qf_idx, bool cursel)
if (qfp->qf_pattern != NULL) {
gap = qfga_get();
qf_fmt_text(gap, qfp->qf_pattern);
+ ga_append(gap, NUL);
msg_puts(gap->ga_data);
msg_puts_attr(":", qfSepAttr);
}
@@ -3145,6 +3145,7 @@ static void qf_list_entry(qfline_T *qfp, int qf_idx, bool cursel)
// with ^^^^.
gap = qfga_get();
qf_fmt_text(gap, (fname != NULL || qfp->qf_lnum != 0) ? skipwhite(qfp->qf_text) : qfp->qf_text);
+ ga_append(gap, NUL);
msg_prt_line(gap->ga_data, false);
}
@@ -3229,7 +3230,6 @@ static void qf_fmt_text(garray_T *gap, const char *restrict text)
FUNC_ATTR_NONNULL_ALL
{
const char *p = text;
-
while (*p != NUL) {
if (*p == '\n') {
ga_append(gap, ' ');
@@ -3242,8 +3242,6 @@ static void qf_fmt_text(garray_T *gap, const char *restrict text)
ga_append(gap, (uint8_t)(*p++));
}
}
-
- ga_append(gap, NUL);
}
/// Add the range information from the lnum, col, end_lnum, and end_col values
@@ -3268,7 +3266,6 @@ static void qf_range_text(garray_T *gap, const qfline_T *qfp)
len += strlen(buf + len);
}
}
- buf[len] = NUL;
ga_concat_len(gap, buf, len);
}
@@ -3983,7 +3980,6 @@ static int qf_buf_add_line(qf_list_T *qfl, buf_T *buf, linenr_T lnum, const qfli
// for this entry, then use it.
if (qftf_str != NULL && *qftf_str != NUL) {
ga_concat(gap, qftf_str);
- ga_append(gap, NUL);
} else {
buf_T *errbuf;
if (qfp->qf_module != NULL) {
@@ -4026,6 +4022,7 @@ static int qf_buf_add_line(qf_list_T *qfl, buf_T *buf, linenr_T lnum, const qfli
qf_fmt_text(gap, gap->ga_len > 3 ? skipwhite(qfp->qf_text) : qfp->qf_text);
}
+ ga_append(gap, NUL);
if (ml_append_buf(buf, lnum, gap->ga_data, gap->ga_len, false) == FAIL) {
return FAIL;
}