From 0109f86871d07f65255df6e813a49bc272f5ece8 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 22 Mar 2015 02:26:54 +0000 Subject: win32.c: path_drive * win32/win32.c (path_drive): extract from winnt_stat, return the drive number in the path, or the current drive. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- win32/win32.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'win32') diff --git a/win32/win32.c b/win32/win32.c index d72c3d5316..30b7e27fa0 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -5071,6 +5071,14 @@ stat_by_find(const WCHAR *path, struct stati64 *st) return 0; } +/* License: Ruby's */ +static int +path_drive(const WCHAR *path) +{ + return (iswalpha(path[0]) && path[1] == L':') ? + towupper(path[0]) - L'A' : _getdrive() - 1; +} + /* License: Ruby's */ static int winnt_stat(const WCHAR *path, struct stati64 *st) @@ -5103,8 +5111,7 @@ winnt_stat(const WCHAR *path, struct stati64 *st) if (stat_by_find(path, st)) return -1; } - st->st_dev = st->st_rdev = (iswalpha(path[0]) && path[1] == L':') ? - towupper(path[0]) - L'A' : _getdrive() - 1; + st->st_dev = st->st_rdev = path_drive(path); return 0; } -- cgit v1.2.3