Mercurial > vim
comparison src/arglist.c @ 21845:0e6ee11977b3 v8.2.1472
patch 8.2.1472: ":argdel" does not work like ":.argdel" as documented
Commit: https://github.com/vim/vim/commit/7b22117c4ecf383b6f35acef041773a83ec28220
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Aug 17 19:34:10 2020 +0200
patch 8.2.1472: ":argdel" does not work like ":.argdel" as documented
Problem: ":argdel" does not work like ":.argdel" as documented. (Alexey
Demin)
Solution: Make ":argdel" work like ":.argdel". (closes #6727)
Also fix giving the error "0 more files to edit".
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 17 Aug 2020 19:45:04 +0200 |
parents | 435726a03481 |
children | 808edde1e97d |
comparison
equal
deleted
inserted
replaced
21844:69aca436df65 | 21845:0e6ee11977b3 |
---|---|
774 ex_argdelete(exarg_T *eap) | 774 ex_argdelete(exarg_T *eap) |
775 { | 775 { |
776 int i; | 776 int i; |
777 int n; | 777 int n; |
778 | 778 |
779 if (eap->addr_count > 0) | 779 if (eap->addr_count > 0 || *eap->arg == NUL) |
780 { | 780 { |
781 // ":1,4argdel": Delete all arguments in the range. | 781 // ":argdel" works like ":argdel" |
782 if (eap->line2 > ARGCOUNT) | 782 if (eap->addr_count == 0) |
783 { | |
784 if (curwin->w_arg_idx >= ARGCOUNT) | |
785 { | |
786 emsg(_("E610: No argument to delete")); | |
787 return; | |
788 } | |
789 eap->line1 = eap->line2 = curwin->w_arg_idx + 1; | |
790 } | |
791 else if (eap->line2 > ARGCOUNT) | |
792 // ":1,4argdel": Delete all arguments in the range. | |
783 eap->line2 = ARGCOUNT; | 793 eap->line2 = ARGCOUNT; |
784 n = eap->line2 - eap->line1 + 1; | 794 n = eap->line2 - eap->line1 + 1; |
785 if (*eap->arg != NUL) | 795 if (*eap->arg != NUL) |
786 // Can't have both a range and an argument. | 796 // Can't have both a range and an argument. |
787 emsg(_(e_invarg)); | 797 emsg(_(e_invarg)); |
806 curwin->w_arg_idx = 0; | 816 curwin->w_arg_idx = 0; |
807 else if (curwin->w_arg_idx >= ARGCOUNT) | 817 else if (curwin->w_arg_idx >= ARGCOUNT) |
808 curwin->w_arg_idx = ARGCOUNT - 1; | 818 curwin->w_arg_idx = ARGCOUNT - 1; |
809 } | 819 } |
810 } | 820 } |
811 else if (*eap->arg == NUL) | |
812 emsg(_(e_argreq)); | |
813 else | 821 else |
814 do_arglist(eap->arg, AL_DEL, 0, FALSE); | 822 do_arglist(eap->arg, AL_DEL, 0, FALSE); |
815 #ifdef FEAT_TITLE | 823 #ifdef FEAT_TITLE |
816 maketitle(); | 824 maketitle(); |
817 #endif | 825 #endif |