Mercurial > vim
comparison src/eval.c @ 41:f529edb9bab3 v7.0025
updated for version 7.0025
author | vimboss |
---|---|
date | Mon, 27 Dec 2004 21:59:20 +0000 |
parents | 410fa1a31baf |
children | f55897d6921d |
comparison
equal
deleted
inserted
replaced
40:f1d2a58883b9 | 41:f529edb9bab3 |
---|---|
5970 VAR retvar; | 5970 VAR retvar; |
5971 { | 5971 { |
5972 if (ga_userinput.ga_len > 0) | 5972 if (ga_userinput.ga_len > 0) |
5973 { | 5973 { |
5974 --ga_userinput.ga_len; | 5974 --ga_userinput.ga_len; |
5975 ++ga_userinput.ga_room; | |
5976 restore_typeahead((tasave_T *)(ga_userinput.ga_data) | 5975 restore_typeahead((tasave_T *)(ga_userinput.ga_data) |
5977 + ga_userinput.ga_len); | 5976 + ga_userinput.ga_len); |
5978 retvar->var_val.var_number = 0; /* OK */ | 5977 retvar->var_val.var_number = 0; /* OK */ |
5979 } | 5978 } |
5980 else if (p_verbose > 1) | 5979 else if (p_verbose > 1) |
5997 if (ga_grow(&ga_userinput, 1) == OK) | 5996 if (ga_grow(&ga_userinput, 1) == OK) |
5998 { | 5997 { |
5999 save_typeahead((tasave_T *)(ga_userinput.ga_data) | 5998 save_typeahead((tasave_T *)(ga_userinput.ga_data) |
6000 + ga_userinput.ga_len); | 5999 + ga_userinput.ga_len); |
6001 ++ga_userinput.ga_len; | 6000 ++ga_userinput.ga_len; |
6002 --ga_userinput.ga_room; | |
6003 retvar->var_val.var_number = 0; /* OK */ | 6001 retvar->var_val.var_number = 0; /* OK */ |
6004 } | 6002 } |
6005 else | 6003 else |
6006 retvar->var_val.var_number = 1; /* Failed */ | 6004 retvar->var_val.var_number = 1; /* Failed */ |
6007 } | 6005 } |
8090 } | 8088 } |
8091 | 8089 |
8092 ga_grow(&ga, cplen); | 8090 ga_grow(&ga, cplen); |
8093 mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); | 8091 mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); |
8094 ga.ga_len += cplen; | 8092 ga.ga_len += cplen; |
8095 ga.ga_room -= cplen; | |
8096 | 8093 |
8097 instr += inlen; | 8094 instr += inlen; |
8098 } | 8095 } |
8099 else | 8096 else |
8100 #endif | 8097 #endif |
9107 { | 9104 { |
9108 while (ga_scripts.ga_len < id) | 9105 while (ga_scripts.ga_len < id) |
9109 { | 9106 { |
9110 var_init(&SCRIPT_VARS(ga_scripts.ga_len + 1)); | 9107 var_init(&SCRIPT_VARS(ga_scripts.ga_len + 1)); |
9111 ++ga_scripts.ga_len; | 9108 ++ga_scripts.ga_len; |
9112 --ga_scripts.ga_room; | |
9113 } | 9109 } |
9114 } | 9110 } |
9115 } | 9111 } |
9116 | 9112 |
9117 /* | 9113 /* |
9267 } | 9263 } |
9268 v = &VAR_GAP_ENTRY(i, gap); | 9264 v = &VAR_GAP_ENTRY(i, gap); |
9269 if ((v->var_name = vim_strsave(varname)) == NULL) | 9265 if ((v->var_name = vim_strsave(varname)) == NULL) |
9270 return; | 9266 return; |
9271 if (i == gap->ga_len) | 9267 if (i == gap->ga_len) |
9272 { | |
9273 ++gap->ga_len; | 9268 ++gap->ga_len; |
9274 --gap->ga_room; | |
9275 } | |
9276 } | 9269 } |
9277 copy_var(varp, v); | 9270 copy_var(varp, v); |
9278 } | 9271 } |
9279 | 9272 |
9280 static void | 9273 static void |
9439 clear_var(&retvar); | 9432 clear_var(&retvar); |
9440 ret = FAIL; | 9433 ret = FAIL; |
9441 break; | 9434 break; |
9442 } | 9435 } |
9443 if (ga.ga_len) | 9436 if (ga.ga_len) |
9444 { | |
9445 ((char_u *)(ga.ga_data))[ga.ga_len++] = ' '; | 9437 ((char_u *)(ga.ga_data))[ga.ga_len++] = ' '; |
9446 --ga.ga_room; | |
9447 } | |
9448 STRCPY((char_u *)(ga.ga_data) + ga.ga_len, p); | 9438 STRCPY((char_u *)(ga.ga_data) + ga.ga_len, p); |
9449 ga.ga_room -= len; | |
9450 ga.ga_len += len; | 9439 ga.ga_len += len; |
9451 } | 9440 } |
9452 | 9441 |
9453 clear_var(&retvar); | 9442 clear_var(&retvar); |
9454 arg = skipwhite(arg); | 9443 arg = skipwhite(arg); |
9673 if (arg == NULL) | 9662 if (arg == NULL) |
9674 goto erret; | 9663 goto erret; |
9675 ((char_u **)(newargs.ga_data))[newargs.ga_len] = arg; | 9664 ((char_u **)(newargs.ga_data))[newargs.ga_len] = arg; |
9676 *p = c; | 9665 *p = c; |
9677 newargs.ga_len++; | 9666 newargs.ga_len++; |
9678 newargs.ga_room--; | |
9679 if (*p == ',') | 9667 if (*p == ',') |
9680 ++p; | 9668 ++p; |
9681 else | 9669 else |
9682 mustend = TRUE; | 9670 mustend = TRUE; |
9683 } | 9671 } |
9827 /* Add the line to the function. */ | 9815 /* Add the line to the function. */ |
9828 if (ga_grow(&newlines, 1) == FAIL) | 9816 if (ga_grow(&newlines, 1) == FAIL) |
9829 goto erret; | 9817 goto erret; |
9830 ((char_u **)(newlines.ga_data))[newlines.ga_len] = theline; | 9818 ((char_u **)(newlines.ga_data))[newlines.ga_len] = theline; |
9831 newlines.ga_len++; | 9819 newlines.ga_len++; |
9832 newlines.ga_room--; | |
9833 } | 9820 } |
9834 | 9821 |
9835 /* Don't define the function when skipping commands or when an error was | 9822 /* Don't define the function when skipping commands or when an error was |
9836 * detected. */ | 9823 * detected. */ |
9837 if (eap->skip || did_emsg) | 9824 if (eap->skip || did_emsg) |
11396 mch_memmove((char_u *)ga.ga_data + ga.ga_len, tail, (size_t)i); | 11383 mch_memmove((char_u *)ga.ga_data + ga.ga_len, tail, (size_t)i); |
11397 /* add the substituted text */ | 11384 /* add the substituted text */ |
11398 (void)vim_regsub(®match, sub, (char_u *)ga.ga_data | 11385 (void)vim_regsub(®match, sub, (char_u *)ga.ga_data |
11399 + ga.ga_len + i, TRUE, TRUE, FALSE); | 11386 + ga.ga_len + i, TRUE, TRUE, FALSE); |
11400 ga.ga_len += i + sublen - 1; | 11387 ga.ga_len += i + sublen - 1; |
11401 ga.ga_room -= i + sublen - 1; | |
11402 /* avoid getting stuck on a match with an empty string */ | 11388 /* avoid getting stuck on a match with an empty string */ |
11403 if (tail == regmatch.endp[0]) | 11389 if (tail == regmatch.endp[0]) |
11404 { | 11390 { |
11405 if (*tail == NUL) | 11391 if (*tail == NUL) |
11406 break; | 11392 break; |
11407 *((char_u *)ga.ga_data + ga.ga_len) = *tail++; | 11393 *((char_u *)ga.ga_data + ga.ga_len) = *tail++; |
11408 ++ga.ga_len; | 11394 ++ga.ga_len; |
11409 --ga.ga_room; | |
11410 } | 11395 } |
11411 else | 11396 else |
11412 { | 11397 { |
11413 tail = regmatch.endp[0]; | 11398 tail = regmatch.endp[0]; |
11414 if (*tail == NUL) | 11399 if (*tail == NUL) |