mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* win32/win32.c (win32_stat): UNC support.
* dir.c (extract_path): fix "./*" problem. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									1f904eed44
								
							
						
					
					
						commit
						a84d087d3c
					
				
					 5 changed files with 39 additions and 25 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,9 @@
 | 
			
		|||
Tue Mar 20 23:09:33 2001  WATANABE Hirofumi  <eban@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* win32/win32.c (win32_stat): UNC support.
 | 
			
		||||
 | 
			
		||||
	* dir.c (extract_path): fix "./*" problem.
 | 
			
		||||
 | 
			
		||||
Mon Mar 19 10:55:10 2001  Yukihiro Matsumoto  <matz@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* dir.c (glob_helper): replace lstat() by stat() to follow symlink
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								dir.c
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								dir.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -565,7 +565,7 @@ extract_path(p, pend)
 | 
			
		|||
    memcpy(alloc, p, len);
 | 
			
		||||
    if (len > 1 && pend[-1] == '/'
 | 
			
		||||
#if defined DOSISH
 | 
			
		||||
    && len > 2 && pend[-2] != ':'
 | 
			
		||||
    && pend[-2] != ':'
 | 
			
		||||
#endif
 | 
			
		||||
    ) {
 | 
			
		||||
	alloc[len-1] = 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,12 @@
 | 
			
		|||
require 'mkmf'
 | 
			
		||||
 | 
			
		||||
have_header("sys/stropts.h")
 | 
			
		||||
have_func("setresuid")
 | 
			
		||||
$CFLAGS << "-DHAVE_DEV_PTMX" if /cygwin/ === RUBY_PLATFORM
 | 
			
		||||
if have_func("openpty") or
 | 
			
		||||
    have_func("_getpty") or
 | 
			
		||||
    have_func("ioctl")
 | 
			
		||||
  create_makefile('pty')
 | 
			
		||||
if /mswin32|mingw/ !~ RUBY_PLATFORM
 | 
			
		||||
  have_header("sys/stropts.h")
 | 
			
		||||
  have_func("setresuid")
 | 
			
		||||
  $CFLAGS << "-DHAVE_DEV_PTMX" if /cygwin/ === RUBY_PLATFORM
 | 
			
		||||
  if have_func("openpty") or
 | 
			
		||||
      have_func("_getpty") or
 | 
			
		||||
      have_func("ioctl")
 | 
			
		||||
    create_makefile('pty')
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
#define RUBY_VERSION "1.7.0"
 | 
			
		||||
#define RUBY_RELEASE_DATE "2001-03-19"
 | 
			
		||||
#define RUBY_RELEASE_DATE "2001-03-20"
 | 
			
		||||
#define RUBY_VERSION_CODE 170
 | 
			
		||||
#define RUBY_RELEASE_CODE 20010319
 | 
			
		||||
#define RUBY_RELEASE_CODE 20010320
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2668,23 +2668,29 @@ myrename(const char *oldpath, const char *newpath)
 | 
			
		|||
int
 | 
			
		||||
win32_stat(const char *path, struct stat *st)
 | 
			
		||||
{
 | 
			
		||||
    const char *p = path;
 | 
			
		||||
    int ret;
 | 
			
		||||
    const char *p;
 | 
			
		||||
    char *buf1 = ALLOCA_N(char, strlen(path) + 1);
 | 
			
		||||
    char *buf2 = ALLOCA_N(char, MAXPATHLEN);
 | 
			
		||||
    char *s;
 | 
			
		||||
    int len;
 | 
			
		||||
 | 
			
		||||
    if ((isdirsep(*p) && (p++, TRUE)) || /* absolute path or UNC */
 | 
			
		||||
	(ISALPHA(*p) && p[1] == ':' && (p += 2, TRUE))) { /* has drive */
 | 
			
		||||
	if (isdirsep(*p)) p++;
 | 
			
		||||
    for (p = path, s = buf1; *p; p++, s++) {
 | 
			
		||||
	if (*p == '/')
 | 
			
		||||
	    *s = '\\';
 | 
			
		||||
	else
 | 
			
		||||
	    *s = *p;
 | 
			
		||||
    }
 | 
			
		||||
    if (*p && (p = CharPrev(p, p + strlen(p)), isdirsep(*p))) {
 | 
			
		||||
	/* Win95/2000 fail with trailing path separator? */
 | 
			
		||||
	int len = p - path;
 | 
			
		||||
	char *s = ALLOCA_N(char, len + 1);
 | 
			
		||||
	memcpy(s, path, len);
 | 
			
		||||
	s[len] = '\0';
 | 
			
		||||
	path = s;
 | 
			
		||||
    }
 | 
			
		||||
    RUBY_CRITICAL(ret = stat(path, st));
 | 
			
		||||
    return ret;
 | 
			
		||||
    *s = '\0';
 | 
			
		||||
    len = strlen(buf1);
 | 
			
		||||
    p = CharPrev(buf1, buf1 + len);
 | 
			
		||||
    if (*p == '\\' || *p == ':')
 | 
			
		||||
	strcat(buf1, ".");
 | 
			
		||||
    else if (buf1[0] == '\\' && buf1[1] == '\\')
 | 
			
		||||
	strcat(buf1, "\\.");
 | 
			
		||||
    if (_fullpath(buf2, buf1, MAXPATHLEN))
 | 
			
		||||
	return stat(buf2, st);
 | 
			
		||||
    else
 | 
			
		||||
	return -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static long
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue