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(&regmatch, sub, (char_u *)ga.ga_data 11385 (void)vim_regsub(&regmatch, 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)