Mercurial > vim
comparison src/ops.c @ 6557:c1ed973fb58f v7.4.605
updated for version 7.4.605
Problem: The # register is not writable, it cannot be restored after
jumping around.
Solution: Make the # register writable. (Marcin Szamotulski)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 27 Jan 2015 18:44:16 +0100 |
parents | f9d02ce2f745 |
children | a287b0e9e87b |
comparison
equal
deleted
inserted
replaced
6556:35e6873f13a0 | 6557:c1ed973fb58f |
---|---|
854 int writing; /* if TRUE check for writable registers */ | 854 int writing; /* if TRUE check for writable registers */ |
855 { | 855 { |
856 if ( (regname > 0 && ASCII_ISALNUM(regname)) | 856 if ( (regname > 0 && ASCII_ISALNUM(regname)) |
857 || (!writing && vim_strchr((char_u *) | 857 || (!writing && vim_strchr((char_u *) |
858 #ifdef FEAT_EVAL | 858 #ifdef FEAT_EVAL |
859 "/.%#:=" | 859 "/.%:=" |
860 #else | 860 #else |
861 "/.%#:" | 861 "/.%:" |
862 #endif | 862 #endif |
863 , regname) != NULL) | 863 , regname) != NULL) |
864 || regname == '#' | |
864 || regname == '"' | 865 || regname == '"' |
865 || regname == '-' | 866 || regname == '-' |
866 || regname == '_' | 867 || regname == '_' |
867 #ifdef FEAT_CLIPBOARD | 868 #ifdef FEAT_CLIPBOARD |
868 || regname == '*' | 869 || regname == '*' |
6512 { | 6513 { |
6513 set_last_search_pat(str, RE_SEARCH, TRUE, TRUE); | 6514 set_last_search_pat(str, RE_SEARCH, TRUE, TRUE); |
6514 return; | 6515 return; |
6515 } | 6516 } |
6516 | 6517 |
6518 if (name == '#') | |
6519 { | |
6520 buf_T *buf; | |
6521 | |
6522 if (VIM_ISDIGIT(*str)) | |
6523 { | |
6524 int num = atoi((char *)str); | |
6525 | |
6526 buf = buflist_findnr(num); | |
6527 if (buf == NULL) | |
6528 EMSGN(_(e_nobufnr), (long)num); | |
6529 } | |
6530 else | |
6531 buf = buflist_findnr(buflist_findpat(str, str + STRLEN(str), | |
6532 TRUE, FALSE, FALSE)); | |
6533 if (buf == NULL) | |
6534 return; | |
6535 curwin->w_alt_fnum = buf->b_fnum; | |
6536 return; | |
6537 } | |
6538 | |
6517 #ifdef FEAT_EVAL | 6539 #ifdef FEAT_EVAL |
6518 if (name == '=') | 6540 if (name == '=') |
6519 { | 6541 { |
6520 char_u *p, *s; | 6542 char_u *p, *s; |
6521 | 6543 |