mirror of
https://github.com/neovim/neovim.git
synced 2025-10-01 15:38:33 +00:00
vim-patch:8.1.0362: cannot get the script line number when executing a function
Problem: Cannot get the script line number when executing a function.
Solution: Store the line number besides the script ID. (Ozaki Kiichi,
closes vim/vim#3362) Also display the line number with ":verbose set".
f29c1c6aa3
This commit is contained in:
@@ -824,7 +824,8 @@ char_u *replace_termcodes(const char_u *from, const size_t from_len,
|
||||
|
||||
// Allocate space for the translation. Worst case a single character is
|
||||
// replaced by 6 bytes (shifted special key), plus a NUL at the end.
|
||||
result = xmalloc(from_len * 6 + 1);
|
||||
const size_t buf_len = from_len * 6 + 1;
|
||||
result = xmalloc(buf_len);
|
||||
|
||||
src = from;
|
||||
|
||||
@@ -849,14 +850,15 @@ char_u *replace_termcodes(const char_u *from, const size_t from_len,
|
||||
// Replace <SID> by K_SNR <script-nr> _.
|
||||
// (room: 5 * 6 = 30 bytes; needed: 3 + <nr> + 1 <= 14)
|
||||
if (end - src >= 4 && STRNICMP(src, "<SID>", 5) == 0) {
|
||||
if (current_SID <= 0) {
|
||||
if (current_sctx.sc_sid <= 0) {
|
||||
EMSG(_(e_usingsid));
|
||||
} else {
|
||||
src += 5;
|
||||
result[dlen++] = K_SPECIAL;
|
||||
result[dlen++] = (int)KS_EXTRA;
|
||||
result[dlen++] = (int)KE_SNR;
|
||||
sprintf((char *)result + dlen, "%" PRId64, (int64_t)current_SID);
|
||||
snprintf((char *)result + dlen, buf_len - dlen, "%" PRId64,
|
||||
(int64_t)current_sctx.sc_sid);
|
||||
dlen += STRLEN(result + dlen);
|
||||
result[dlen++] = '_';
|
||||
continue;
|
||||
|
Reference in New Issue
Block a user