diff options
-rw-r--r-- | eval.c | 16 | ||||
-rw-r--r-- | file.c | 1 | ||||
-rw-r--r-- | sample/test.rb | 7 |
3 files changed, 15 insertions, 9 deletions
@@ -7406,6 +7406,14 @@ enum thread_status { /* +infty, for this purpose */ #define DELAY_INFTY 1E30 +#if !defined HAVE_PAUSE +# if defined _WIN32 && !defined __CYGWIN__ +# define pause() Sleep(INFINITE) +# else +# define pause() sleep(0x7fffffff) +# endif +#endif + /* typedef struct thread * rb_thread_t; */ struct thread { @@ -8642,14 +8650,6 @@ rb_thread_sleep(sec) rb_thread_wait_for(rb_time_timeval(INT2FIX(sec))); } -#if !defined HAVE_PAUSE -# if defined _WIN32 && !defined __CYGWIN__ -# define pause() Sleep(INFINITE) -# else -# define pause() sleep(0x7fffffff) -# endif -#endif - void rb_thread_sleep_forever() { @@ -1755,7 +1755,6 @@ rb_file_s_basename(argc, argv) if (NIL_P(fext) || !(f = rmext(p, ext))) { f = chompdirsep(p) - p; } - basename = rb_str_new(p, f); } basename = rb_str_new(p, f); OBJ_INFECT(basename, fname); diff --git a/sample/test.rb b/sample/test.rb index 4b62fb32fb..d20f204da0 100644 --- a/sample/test.rb +++ b/sample/test.rb @@ -1655,9 +1655,16 @@ test_check "path" test_ok(File.basename("a") == "a") test_ok(File.basename("a/b") == "b") test_ok(File.basename("a/b/") == "b") +test_ok(File.basename("/") == "/") +test_ok(File.basename("//") == "/") +test_ok(File.basename("///") == "/") test_ok(File.basename("a/b////") == "b") test_ok(File.basename("a.rb", ".rb") == "a") +test_ok(File.basename("a.rb///", ".rb") == "a") +test_ok(File.basename("a.rb///", ".*") == "a") +test_ok(File.basename("a.rb///", ".c") == "a.rb") test_ok(File.dirname("a") == ".") +test_ok(File.dirname("/") == "/") test_ok(File.dirname("/a") == "/") test_ok(File.dirname("a/b") == "a") test_ok(File.dirname("a/b/c") == "a/b") |