summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-19 07:10:09 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-19 07:10:09 +0000
commit7a978073c9160e6ed1c706aaf034b2c4c4d104e1 (patch)
treef1ad61761e4b28b18e939dd1667981810cc49d4b /file.c
parent03c4e447fab16864abed71b174a0636d9524b5b9 (diff)
* parse.y (parser_yylex): should clear parser->tokp as well.
[ruby-dev:32250] * parse.y: remove NEED_ASSOC that break test_parser_events. * parse.y (parser_yylex): should not decrement line numbers at the end of file. * file.c (rb_find_file_ext): search .rb files first through in the loadpath. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r--file.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/file.c b/file.c
index 903e744811..3127ecde6b 100644
--- a/file.c
+++ b/file.c
@@ -4197,16 +4197,16 @@ rb_find_file_ext(VALUE *filep, const char *const *ext)
if (!rb_load_path) return 0;
Check_Type(rb_load_path, T_ARRAY);
- for (i=0;i<RARRAY_LEN(rb_load_path);i++) {
- VALUE str = RARRAY_PTR(rb_load_path)[i];
+ for (j=0; ext[j]; j++) {
+ fname = rb_str_dup(*filep);
+ rb_str_cat2(fname, ext[j]);
+ OBJ_FREEZE(fname);
+ for (i=0;i<RARRAY_LEN(rb_load_path);i++) {
+ VALUE str = RARRAY_PTR(rb_load_path)[i];
- FilePathValue(str);
- if (RSTRING_LEN(str) == 0) continue;
- path = RSTRING_PTR(str);
- for (j=0; ext[j]; j++) {
- fname = rb_str_dup(*filep);
- rb_str_cat2(fname, ext[j]);
- OBJ_FREEZE(fname);
+ FilePathValue(str);
+ if (RSTRING_LEN(str) == 0) continue;
+ path = RSTRING_PTR(str);
found = dln_find_file(StringValueCStr(fname), path);
if (found && file_load_ok(found)) {
*filep = rb_str_new2(found);