Mercurial > vim
comparison src/eval.c @ 1541:0d0bf7598dcb v7.1.256
updated for version 7.1-256
author | vimboss |
---|---|
date | Wed, 20 Feb 2008 11:24:52 +0000 |
parents | 8abc0abf8cbd |
children | 8d74df00f7da |
comparison
equal
deleted
inserted
replaced
1540:ca5b52e99385 | 1541:0d0bf7598dcb |
---|---|
9201 typval_T *rettv; | 9201 typval_T *rettv; |
9202 { | 9202 { |
9203 rettv->vval.v_number = filewritable(get_tv_string(&argvars[0])); | 9203 rettv->vval.v_number = filewritable(get_tv_string(&argvars[0])); |
9204 } | 9204 } |
9205 | 9205 |
9206 static void findfilendir __ARGS((typval_T *argvars, typval_T *rettv, int dir)); | 9206 static void findfilendir __ARGS((typval_T *argvars, typval_T *rettv, int find_what)); |
9207 | 9207 |
9208 static void | 9208 static void |
9209 findfilendir(argvars, rettv, dir) | 9209 findfilendir(argvars, rettv, find_what) |
9210 typval_T *argvars; | 9210 typval_T *argvars; |
9211 typval_T *rettv; | 9211 typval_T *rettv; |
9212 int dir; | 9212 int find_what; |
9213 { | 9213 { |
9214 #ifdef FEAT_SEARCHPATH | 9214 #ifdef FEAT_SEARCHPATH |
9215 char_u *fname; | 9215 char_u *fname; |
9216 char_u *fresult = NULL; | 9216 char_u *fresult = NULL; |
9217 char_u *path = *curbuf->b_p_path == NUL ? p_path : curbuf->b_p_path; | 9217 char_u *path = *curbuf->b_p_path == NUL ? p_path : curbuf->b_p_path; |
9252 { | 9252 { |
9253 if (rettv->v_type == VAR_STRING) | 9253 if (rettv->v_type == VAR_STRING) |
9254 vim_free(fresult); | 9254 vim_free(fresult); |
9255 fresult = find_file_in_path_option(first ? fname : NULL, | 9255 fresult = find_file_in_path_option(first ? fname : NULL, |
9256 first ? (int)STRLEN(fname) : 0, | 9256 first ? (int)STRLEN(fname) : 0, |
9257 0, first, path, dir, curbuf->b_ffname, | 9257 0, first, path, |
9258 dir ? (char_u *)"" : curbuf->b_p_sua); | 9258 find_what, |
9259 curbuf->b_ffname, | |
9260 find_what == FINDFILE_DIR | |
9261 ? (char_u *)"" : curbuf->b_p_sua); | |
9259 first = FALSE; | 9262 first = FALSE; |
9260 | 9263 |
9261 if (fresult != NULL && rettv->v_type == VAR_LIST) | 9264 if (fresult != NULL && rettv->v_type == VAR_LIST) |
9262 list_append_string(rettv->vval.v_list, fresult, -1); | 9265 list_append_string(rettv->vval.v_list, fresult, -1); |
9263 | 9266 |
9443 static void | 9446 static void |
9444 f_finddir(argvars, rettv) | 9447 f_finddir(argvars, rettv) |
9445 typval_T *argvars; | 9448 typval_T *argvars; |
9446 typval_T *rettv; | 9449 typval_T *rettv; |
9447 { | 9450 { |
9448 findfilendir(argvars, rettv, TRUE); | 9451 findfilendir(argvars, rettv, FINDFILE_DIR); |
9449 } | 9452 } |
9450 | 9453 |
9451 /* | 9454 /* |
9452 * "findfile({fname}[, {path}[, {count}]])" function | 9455 * "findfile({fname}[, {path}[, {count}]])" function |
9453 */ | 9456 */ |
9454 static void | 9457 static void |
9455 f_findfile(argvars, rettv) | 9458 f_findfile(argvars, rettv) |
9456 typval_T *argvars; | 9459 typval_T *argvars; |
9457 typval_T *rettv; | 9460 typval_T *rettv; |
9458 { | 9461 { |
9459 findfilendir(argvars, rettv, FALSE); | 9462 findfilendir(argvars, rettv, FINDFILE_FILE); |
9460 } | 9463 } |
9461 | 9464 |
9462 /* | 9465 /* |
9463 * "fnamemodify({fname}, {mods})" function | 9466 * "fnamemodify({fname}, {mods})" function |
9464 */ | 9467 */ |