Mercurial > vim
diff src/ex_docmd.c @ 122:56eb9755174b
updated for version 7.0043
author | vimboss |
---|---|
date | Fri, 21 Jan 2005 11:46:23 +0000 |
parents | a3d7e800ddec |
children | 8def260d486d |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -7509,27 +7509,28 @@ ex_redir(eap) { char *mode; char_u *fname; + char_u *arg = eap->arg; if (STRICMP(eap->arg, "END") == 0) close_redir(); else { - if (*eap->arg == '>') - { - ++eap->arg; - if (*eap->arg == '>') - { - ++eap->arg; + if (*arg == '>') + { + ++arg; + if (*arg == '>') + { + ++arg; mode = "a"; } else mode = "w"; - eap->arg = skipwhite(eap->arg); + arg = skipwhite(arg); close_redir(); /* Expand environment variables and "~/". */ - fname = expand_env_save(eap->arg); + fname = expand_env_save(arg); if (fname == NULL) return; #ifdef FEAT_BROWSE @@ -7552,30 +7553,34 @@ ex_redir(eap) vim_free(fname); } #ifdef FEAT_EVAL - else if (*eap->arg == '@') + else if (*arg == '@') { /* redirect to a register a-z (resp. A-Z for appending) */ close_redir(); - ++eap->arg; - if (ASCII_ISALPHA(*eap->arg) + ++arg; + if (ASCII_ISALPHA(*arg) # ifdef FEAT_CLIPBOARD - || *eap->arg == '*' + || *arg == '*' # endif - || *eap->arg == '"') - { - redir_reg = *eap->arg; - if (islower(redir_reg) + || *arg == '"') + { + redir_reg = *arg++; + if (*arg == '>') + ++arg; + else if (*arg == NUL && (islower(redir_reg) # ifdef FEAT_CLIPBOARD - || redir_reg == '*' + || redir_reg == '*' # endif - || redir_reg == '"') + || redir_reg == '"')) { /* make register empty */ write_reg_contents(redir_reg, (char_u *)"", -1, FALSE); } + if (*arg != NUL) + EMSG2(_(e_invarg2), eap->arg); } else - EMSG(_(e_invarg)); + EMSG2(_(e_invarg2), eap->arg); } #endif @@ -7584,7 +7589,7 @@ ex_redir(eap) /* TODO: redirect to an internal variable */ else - EMSG(_(e_invarg)); + EMSG2(_(e_invarg2), eap->arg); } } @@ -7743,7 +7748,8 @@ ex_mkrc(eap) #if defined(FEAT_SESSION) && defined(vim_mkdir) /* When using 'viewdir' may have to create the directory. */ if (using_vdir && !mch_isdir(p_vdir)) - vim_mkdir(p_vdir, 0755); /* ignore errors, open_exfile() will fail */ + if (vim_mkdir(p_vdir, 0755) != 0) + EMSG2(_("E738: Cannot create directory: %s"), p_vdir); #endif fd = open_exfile(fname, eap->forceit, WRITEBIN);