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