To: vim_dev@googlegroups.com Subject: Patch 8.2.1658 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.1658 Problem: Expand('') has trailing "..". Solution: Remove the "..". (closes #6927) Files: src/scriptfile.c, src/testdir/test_expand_func.vim *** ../vim-8.2.1657/src/scriptfile.c 2020-09-10 19:25:01.612194701 +0200 --- src/scriptfile.c 2020-09-11 17:57:05.172657242 +0200 *************** *** 144,150 **** entry = ((estack_T *)exestack.ga_data) + idx; if (entry->es_name != NULL) { ! long lnum = 0; len = STRLEN(entry->es_name) + 15; type_name = ""; --- 144,151 ---- entry = ((estack_T *)exestack.ga_data) + idx; if (entry->es_name != NULL) { ! long lnum = 0; ! char *dots; len = STRLEN(entry->es_name) + 15; type_name = ""; *************** *** 165,180 **** lnum = which == ESTACK_STACK ? SOURCING_LNUM : 0; else lnum = entry->es_lnum; if (lnum == 0) // For the bottom entry of : do not add the line number, // it is used in . Also leave it out when the number is // not set. vim_snprintf((char *)ga.ga_data + ga.ga_len, len, "%s%s%s", ! type_name, entry->es_name, ! idx == exestack.ga_len - 1 ? "" : ".."); else ! vim_snprintf((char *)ga.ga_data + ga.ga_len, len, "%s%s[%ld]..", ! type_name, entry->es_name, lnum); ga.ga_len += (int)STRLEN((char *)ga.ga_data + ga.ga_len); } } --- 166,181 ---- lnum = which == ESTACK_STACK ? SOURCING_LNUM : 0; else lnum = entry->es_lnum; + dots = idx == exestack.ga_len - 1 ? "" : ".."; if (lnum == 0) // For the bottom entry of : do not add the line number, // it is used in . Also leave it out when the number is // not set. vim_snprintf((char *)ga.ga_data + ga.ga_len, len, "%s%s%s", ! type_name, entry->es_name, dots); else ! vim_snprintf((char *)ga.ga_data + ga.ga_len, len, "%s%s[%ld]%s", ! type_name, entry->es_name, lnum, dots); ga.ga_len += (int)STRLEN((char *)ga.ga_data + ga.ga_len); } } *** ../vim-8.2.1657/src/testdir/test_expand_func.vim 2020-09-10 19:25:01.612194701 +0200 --- src/testdir/test_expand_func.vim 2020-09-11 17:52:29.249522201 +0200 *************** *** 58,64 **** END call writefile(lines, 'Xstack') source Xstack ! call assert_match('\