Mercurial > vim
comparison src/mark.c @ 24:8ff7fd162d3c v7.0016
updated for version 7.0016
author | vimboss |
---|---|
date | Mon, 13 Sep 2004 20:26:32 +0000 |
parents | 3fc0f57ecb91 |
children | 410fa1a31baf |
comparison
equal
deleted
inserted
replaced
23:3f44e9abe4ec | 24:8ff7fd162d3c |
---|---|
738 if (mustfree) | 738 if (mustfree) |
739 vim_free(name); | 739 vim_free(name); |
740 } | 740 } |
741 } | 741 } |
742 out_flush(); /* show one line at a time */ | 742 out_flush(); /* show one line at a time */ |
743 } | |
744 } | |
745 | |
746 /* | |
747 * ":delmarks[!] [marks]" | |
748 */ | |
749 void | |
750 ex_delmarks(eap) | |
751 exarg_T *eap; | |
752 { | |
753 char_u *p; | |
754 int from, to; | |
755 int i; | |
756 int lower; | |
757 int digit; | |
758 int n; | |
759 | |
760 if (*eap->arg == NUL && eap->forceit) | |
761 /* clear all marks */ | |
762 clrallmarks(curbuf); | |
763 else if (eap->forceit) | |
764 EMSG(_(e_invarg)); | |
765 else if (*eap->arg == NUL) | |
766 EMSG(_(e_argreq)); | |
767 else | |
768 { | |
769 /* clear specified marks only */ | |
770 for (p = eap->arg; *p != NUL; ++p) | |
771 { | |
772 lower = ASCII_ISLOWER(*p); | |
773 digit = VIM_ISDIGIT(*p); | |
774 if (lower || digit || ASCII_ISUPPER(*p)) | |
775 { | |
776 if (p[1] == '-') | |
777 { | |
778 /* clear range of marks */ | |
779 from = *p; | |
780 to = p[2]; | |
781 if (!(lower ? ASCII_ISLOWER(p[2]) | |
782 : (digit ? VIM_ISDIGIT(p[2]) | |
783 : ASCII_ISUPPER(p[2]))) | |
784 || to < from) | |
785 { | |
786 EMSG2(_(e_invarg2), p); | |
787 return; | |
788 } | |
789 p += 2; | |
790 } | |
791 else | |
792 /* clear one lower case mark */ | |
793 from = to = *p; | |
794 | |
795 for (i = from; i <= to; ++i) | |
796 { | |
797 if (lower) | |
798 curbuf->b_namedm[i - 'a'].lnum = 0; | |
799 else | |
800 { | |
801 if (digit) | |
802 n = i - '0' + NMARKS; | |
803 else | |
804 n = i - 'A'; | |
805 namedfm[n].fmark.mark.lnum = 0; | |
806 vim_free(namedfm[n].fname); | |
807 namedfm[n].fname = NULL; | |
808 } | |
809 } | |
810 } | |
811 else | |
812 switch (*p) | |
813 { | |
814 case '"': curbuf->b_last_cursor.lnum = 0; break; | |
815 case '^': curbuf->b_last_insert.lnum = 0; break; | |
816 case '.': curbuf->b_last_change.lnum = 0; break; | |
817 case '[': curbuf->b_op_start.lnum = 0; break; | |
818 case ']': curbuf->b_op_end.lnum = 0; break; | |
819 #ifdef FEAT_VISUAL | |
820 case '<': curbuf->b_visual_start.lnum = 0; break; | |
821 case '>': curbuf->b_visual_end.lnum = 0; break; | |
822 #endif | |
823 case ' ': break; | |
824 default: EMSG2(_(e_invarg2), p); | |
825 return; | |
826 } | |
827 } | |
743 } | 828 } |
744 } | 829 } |
745 | 830 |
746 #if defined(FEAT_JUMPLIST) || defined(PROTO) | 831 #if defined(FEAT_JUMPLIST) || defined(PROTO) |
747 /* | 832 /* |