comparison src/eval.c @ 26:404aac550f35 v7.0017

updated for version 7.0017
author vimboss
date Thu, 07 Oct 2004 21:02:47 +0000
parents 8ff7fd162d3c
children ac33b7c03fac
comparison
equal deleted inserted replaced
25:8cde1a064c7c 26:404aac550f35
8524 char_u *oldval; 8524 char_u *oldval;
8525 char_u *newval; 8525 char_u *newval;
8526 unsigned len; 8526 unsigned len;
8527 8527
8528 oldval = vimvars[VV_CMDARG].val; 8528 oldval = vimvars[VV_CMDARG].val;
8529 if (eap != NULL) 8529 if (eap == NULL)
8530 { 8530 {
8531 if (eap->force_bin == FORCE_BIN) 8531 vim_free(oldval);
8532 len = 6; 8532 vimvars[VV_CMDARG].val = oldarg;
8533 else if (eap->force_bin == FORCE_NOBIN) 8533 return NULL;
8534 len = 8; 8534 }
8535 else 8535
8536 len = 0; 8536 if (eap->force_bin == FORCE_BIN)
8537 if (eap->force_ff != 0) 8537 len = 6;
8538 len += (unsigned)STRLEN(eap->cmd + eap->force_ff) + 6; 8538 else if (eap->force_bin == FORCE_NOBIN)
8539 len = 8;
8540 else
8541 len = 0;
8542 if (eap->force_ff != 0)
8543 len += (unsigned)STRLEN(eap->cmd + eap->force_ff) + 6;
8539 # ifdef FEAT_MBYTE 8544 # ifdef FEAT_MBYTE
8540 if (eap->force_enc != 0) 8545 if (eap->force_enc != 0)
8541 len += (unsigned)STRLEN(eap->cmd + eap->force_enc) + 7; 8546 len += (unsigned)STRLEN(eap->cmd + eap->force_enc) + 7;
8542 # endif 8547 # endif
8543 8548
8544 newval = alloc(len + 1); 8549 newval = alloc(len + 1);
8545 if (newval == NULL) 8550 if (newval == NULL)
8546 return NULL; 8551 return NULL;
8547 8552
8548 if (eap->force_bin == FORCE_BIN) 8553 if (eap->force_bin == FORCE_BIN)
8549 sprintf((char *)newval, " ++bin"); 8554 sprintf((char *)newval, " ++bin");
8550 else if (eap->force_bin == FORCE_NOBIN) 8555 else if (eap->force_bin == FORCE_NOBIN)
8551 sprintf((char *)newval, " ++nobin"); 8556 sprintf((char *)newval, " ++nobin");
8552 else 8557 else
8553 *newval = NUL; 8558 *newval = NUL;
8554 if (eap->force_ff != 0) 8559 if (eap->force_ff != 0)
8555 sprintf((char *)newval + STRLEN(newval), " ++ff=%s", 8560 sprintf((char *)newval + STRLEN(newval), " ++ff=%s",
8556 eap->cmd + eap->force_ff); 8561 eap->cmd + eap->force_ff);
8557 # ifdef FEAT_MBYTE 8562 # ifdef FEAT_MBYTE
8558 if (eap->force_enc != 0) 8563 if (eap->force_enc != 0)
8559 sprintf((char *)newval + STRLEN(newval), " ++enc=%s", 8564 sprintf((char *)newval + STRLEN(newval), " ++enc=%s",
8560 eap->cmd + eap->force_enc); 8565 eap->cmd + eap->force_enc);
8561 # endif 8566 # endif
8562 vimvars[VV_CMDARG].val = newval; 8567 vimvars[VV_CMDARG].val = newval;
8563 return oldval; 8568 return oldval;
8564 }
8565
8566 vim_free(oldval);
8567 vimvars[VV_CMDARG].val = oldarg;
8568 return NULL;
8569 } 8569 }
8570 #endif 8570 #endif
8571 8571
8572 /* 8572 /*
8573 * Get the value of internal variable "name". 8573 * Get the value of internal variable "name".