equal
deleted
inserted
replaced
533 pf = output_line[14:] |
533 pf = output_line[14:] |
534 if pf[0] == '`': |
534 if pf[0] == '`': |
535 pf = pf[1:-1] # Remove the quotes |
535 pf = pf[1:-1] # Remove the quotes |
536 return pf |
536 return pf |
537 |
537 |
538 try: # ActivePython can create hard links using win32file module |
538 try: # Mark Hammond's win32all package allows better functionality on Windows |
539 import win32api, win32con, win32file |
539 import win32api, win32con, win32file, pywintypes |
540 |
540 |
|
541 # create hard links using win32file module |
541 def os_link(src, dst): # NB will only succeed on NTFS |
542 def os_link(src, dst): # NB will only succeed on NTFS |
542 win32file.CreateHardLink(dst, src) |
543 win32file.CreateHardLink(dst, src) |
543 |
544 |
544 def nlinks(pathname): |
545 def nlinks(pathname): |
545 """Return number of hardlinks for the given file.""" |
546 """Return number of hardlinks for the given file.""" |
552 return res[7] |
553 return res[7] |
553 except: |
554 except: |
554 return os.stat(pathname).st_nlink |
555 return os.stat(pathname).st_nlink |
555 |
556 |
556 def testpid(pid): |
557 def testpid(pid): |
557 '''return False if pid is dead, True if running or not known''' |
558 '''return True if pid is still running or unable to determine, False otherwise''' |
558 try: |
559 try: |
559 win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION, |
560 handle = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION, False, pid) |
560 False, pid) |
561 if handle: |
561 except: |
562 status = win32process.GetExitCodeProcess(handle) |
562 return True |
563 if status == win32con.STILL_ACTIVE: |
|
564 return True |
|
565 else: |
|
566 return False |
|
567 except pywintypes.error, details: |
|
568 if details[0] == 87: # ERROR_INVALID_PARAMETER |
|
569 return False |
|
570 return True |
563 |
571 |
564 except ImportError: |
572 except ImportError: |
565 def testpid(pid): |
573 def testpid(pid): |
566 '''return False if pid dead, True if running or not known''' |
574 '''return False if pid dead, True if running or not known''' |
567 return True |
575 return True |