]> git.pld-linux.org Git - packages/vim.git/blame - 7.2.190
- new
[packages/vim.git] / 7.2.190
CommitLineData
ef0610d1
AG
1To: vim-dev@vim.org
2Subject: Patch 7.2.190
3Fcc: outbox
4From: Bram Moolenaar <Bram@moolenaar.net>
5Mime-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8------------
9
10Patch 7.2.190
11Problem: The register executed by @@ isn't restored.
12Solution: Mark the executable register in the viminfo file.
13Files: src/ops.c
14
15
16*** ../vim-7.2.189/src/ops.c 2009-05-13 12:46:36.000000000 +0200
17--- src/ops.c 2009-05-26 18:05:23.000000000 +0200
18***************
19*** 1143,1148 ****
20--- 1143,1150 ----
21 return OK;
22 }
23
24+ static int execreg_lastc = NUL;
25+
26 /*
27 * execute a yank register: copy it into the stuff buffer
28 *
29***************
30*** 1155,1161 ****
31 int addcr; /* always add '\n' to end of line */
32 int silent; /* set "silent" flag in typeahead buffer */
33 {
34- static int lastc = NUL;
35 long i;
36 char_u *p;
37 int retval = OK;
38--- 1157,1162 ----
39***************
40*** 1163,1174 ****
41
42 if (regname == '@') /* repeat previous one */
43 {
44! if (lastc == NUL)
45 {
46 EMSG(_("E748: No previously used register"));
47 return FAIL;
48 }
49! regname = lastc;
50 }
51 /* check for valid regname */
52 if (regname == '%' || regname == '#' || !valid_yank_reg(regname, FALSE))
53--- 1164,1175 ----
54
55 if (regname == '@') /* repeat previous one */
56 {
57! if (execreg_lastc == NUL)
58 {
59 EMSG(_("E748: No previously used register"));
60 return FAIL;
61 }
62! regname = execreg_lastc;
63 }
64 /* check for valid regname */
65 if (regname == '%' || regname == '#' || !valid_yank_reg(regname, FALSE))
66***************
67*** 1176,1182 ****
68 emsg_invreg(regname);
69 return FAIL;
70 }
71! lastc = regname;
72
73 #ifdef FEAT_CLIPBOARD
74 regname = may_get_selection(regname);
75--- 1177,1183 ----
76 emsg_invreg(regname);
77 return FAIL;
78 }
79! execreg_lastc = regname;
80
81 #ifdef FEAT_CLIPBOARD
82 regname = may_get_selection(regname);
83***************
84*** 5337,5347 ****
85--- 5338,5351 ----
86
87 /* We only get here (hopefully) if line[0] == '"' */
88 str = virp->vir_line + 1;
89+
90+ /* If the line starts with "" this is the y_previous register. */
91 if (*str == '"')
92 {
93 set_prev = TRUE;
94 str++;
95 }
96+
97 if (!ASCII_ISALNUM(*str) && *str != '-')
98 {
99 if (viminfo_error("E577: ", _("Illegal register name"), virp->vir_line))
100***************
101*** 5351,5356 ****
102--- 5355,5368 ----
103 get_yank_register(*str++, FALSE);
104 if (!force && y_current->y_array != NULL)
105 do_it = FALSE;
106+
107+ if (*str == '@')
108+ {
109+ /* "x@: register x used for @@ */
110+ if (force || execreg_lastc == NUL)
111+ execreg_lastc = str[-1];
112+ }
113+
114 size = 0;
115 limit = 100; /* Optimized for registers containing <= 100 lines */
116 if (do_it)
117***************
118*** 5360,5366 ****
119 vim_free(y_current->y_array);
120 array = y_current->y_array =
121 (char_u **)alloc((unsigned)(limit * sizeof(char_u *)));
122! str = skipwhite(str);
123 if (STRNCMP(str, "CHAR", 4) == 0)
124 y_current->y_type = MCHAR;
125 #ifdef FEAT_VISUAL
126--- 5372,5378 ----
127 vim_free(y_current->y_array);
128 array = y_current->y_array =
129 (char_u **)alloc((unsigned)(limit * sizeof(char_u *)));
130! str = skipwhite(skiptowhite(str));
131 if (STRNCMP(str, "CHAR", 4) == 0)
132 y_current->y_type = MCHAR;
133 #ifdef FEAT_VISUAL
134***************
135*** 5443,5448 ****
136--- 5455,5461 ----
137 max_kbyte = get_viminfo_parameter('s');
138 if (max_kbyte == 0)
139 return;
140+
141 for (i = 0; i < NUM_REGISTERS; i++)
142 {
143 if (y_regs[i].y_array == NULL)
144***************
145*** 5497,5503 ****
146 if (y_previous == &y_regs[i])
147 fprintf(fp, "\"");
148 c = get_register_name(i);
149! fprintf(fp, "\"%c\t%s\t%d\n", c, type,
150 #ifdef FEAT_VISUAL
151 (int)y_regs[i].y_width
152 #else
153--- 5510,5519 ----
154 if (y_previous == &y_regs[i])
155 fprintf(fp, "\"");
156 c = get_register_name(i);
157! fprintf(fp, "\"%c", c);
158! if (c == execreg_lastc)
159! fprintf(fp, "@");
160! fprintf(fp, "\t%s\t%d\n", type,
161 #ifdef FEAT_VISUAL
162 (int)y_regs[i].y_width
163 #else
164*** ../vim-7.2.189/src/version.c 2009-05-26 11:01:43.000000000 +0200
165--- src/version.c 2009-05-26 18:10:13.000000000 +0200
166***************
167*** 678,679 ****
168--- 678,681 ----
169 { /* Add new patch number below this line */
170+ /**/
171+ 190,
172 /**/
173
174--
175If you had to identify, in one word, the reason why the
176human race has not achieved, and never will achieve, its
177full potential, that word would be "meetings."
178
179 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
180/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
181\\\ download, build and distribute -- http://www.A-A-P.org ///
182 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
This page took 0.055696 seconds and 4 git commands to generate.