| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.065 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.3.065 |
| Problem: Can't get current line number in a source file. |
| Solution: Add the <slnum> item, similar to <sfile>. |
| Files: src/ex_docmd.c |
| |
| |
| |
| |
| |
| *** 9538,9554 **** |
| #define SPEC_CFILE 4 |
| "<sfile>", /* ":so" file name */ |
| #define SPEC_SFILE 5 |
| #ifdef FEAT_AUTOCMD |
| "<afile>", /* autocommand file name */ |
| ! # define SPEC_AFILE 6 |
| "<abuf>", /* autocommand buffer number */ |
| ! # define SPEC_ABUF 7 |
| "<amatch>", /* autocommand match name */ |
| ! # define SPEC_AMATCH 8 |
| #endif |
| #ifdef FEAT_CLIENTSERVER |
| "<client>" |
| ! # define SPEC_CLIENT 9 |
| #endif |
| }; |
| |
| --- 9538,9560 ---- |
| #define SPEC_CFILE 4 |
| "<sfile>", /* ":so" file name */ |
| #define SPEC_SFILE 5 |
| + "<slnum>", /* ":so" file line number */ |
| + #define SPEC_SLNUM 6 |
| #ifdef FEAT_AUTOCMD |
| "<afile>", /* autocommand file name */ |
| ! # define SPEC_AFILE 7 |
| "<abuf>", /* autocommand buffer number */ |
| ! # define SPEC_ABUF 8 |
| "<amatch>", /* autocommand match name */ |
| ! # define SPEC_AMATCH 9 |
| #endif |
| #ifdef FEAT_CLIENTSERVER |
| "<client>" |
| ! # ifdef FEAT_AUTOCMD |
| ! # define SPEC_CLIENT 10 |
| ! # else |
| ! # define SPEC_CLIENT 7 |
| ! # endif |
| #endif |
| }; |
| |
| |
| *** 9573,9578 **** |
| --- 9579,9585 ---- |
| * '<cWORD>' to WORD under the cursor |
| * '<cfile>' to path name under the cursor |
| * '<sfile>' to sourced file name |
| + * '<slnum>' to sourced file line number |
| * '<afile>' to file name for autocommand |
| * '<abuf>' to buffer number for autocommand |
| * '<amatch>' to matching name for autocommand |
| |
| *** 9604,9613 **** |
| #ifdef FEAT_MODIFY_FNAME |
| int skip_mod = FALSE; |
| #endif |
| - |
| - #if defined(FEAT_AUTOCMD) || defined(FEAT_CLIENTSERVER) |
| char_u strbuf[30]; |
| - #endif |
| |
| *errormsg = NULL; |
| if (escaped != NULL) |
| --- 9611,9617 ---- |
| |
| *** 9796,9801 **** |
| --- 9800,9814 ---- |
| return NULL; |
| } |
| break; |
| + case SPEC_SLNUM: /* line in file for ":so" command */ |
| + if (sourcing_name == NULL || sourcing_lnum == 0) |
| + { |
| + *errormsg = (char_u *)_("E842: no line number to use for \"<slnum>\""); |
| + return NULL; |
| + } |
| + sprintf((char *)strbuf, "%ld", (long)sourcing_lnum); |
| + result = strbuf; |
| + break; |
| #if defined(FEAT_CLIENTSERVER) |
| case SPEC_CLIENT: /* Source of last submitted input */ |
| sprintf((char *)strbuf, PRINTF_HEX_LONG_U, |
| |
| |
| |
| *** 716,717 **** |
| --- 716,719 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 65, |
| /**/ |
| |
| |
| -- |
| If you don't get everything you want, think of |
| everything you didn't get and don't want. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |