Mercurial > vim
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". |