mercurial/util.py
changeset 3999 0b740dcf0cf1
parent 3998 315d47991fd4
child 4000 3297aa945cf2
equal deleted inserted replaced
3998:315d47991fd4 3999:0b740dcf0cf1
   785         return True
   785         return True
   786 
   786 
   787     def set_exec(f, mode):
   787     def set_exec(f, mode):
   788         pass
   788         pass
   789 
   789 
       
   790     def set_link(f, mode):
       
   791         pass
       
   792 
   790     def set_binary(fd):
   793     def set_binary(fd):
   791         msvcrt.setmode(fd.fileno(), os.O_BINARY)
   794         msvcrt.setmode(fd.fileno(), os.O_BINARY)
   792 
   795 
   793     def pconvert(path):
   796     def pconvert(path):
   794         return path.replace("\\", "/")
   797         return path.replace("\\", "/")
   870             # Turn on +x for every +r bit when making a file executable
   873             # Turn on +x for every +r bit when making a file executable
   871             # and obey umask.
   874             # and obey umask.
   872             os.chmod(f, s | (s & 0444) >> 2 & ~_umask)
   875             os.chmod(f, s | (s & 0444) >> 2 & ~_umask)
   873         else:
   876         else:
   874             os.chmod(f, s & 0666)
   877             os.chmod(f, s & 0666)
       
   878 
       
   879     def is_link(f):
       
   880         """check whether a file is a symlink"""
       
   881         return (os.lstat(f).st_mode & 0120000 == 0120000)
       
   882 
       
   883     def set_link(f, mode):
       
   884         """make a file a symbolic link/regular file
       
   885 
       
   886         if a file is changed to a link, its contents become the link data
       
   887         if a link is changed to a file, its link data become its contents
       
   888         """
       
   889 
       
   890         m = is_link(f)
       
   891         if m == bool(mode):
       
   892             return
       
   893 
       
   894         if mode: # switch file to link
       
   895             data = file(f).read()
       
   896             os.unlink(f)
       
   897             os.symlink(data, f)
       
   898         else:
       
   899             data = os.readlink(f)
       
   900             os.unlink(f)
       
   901             file(f, "w").write(data)
   875 
   902 
   876     def set_binary(fd):
   903     def set_binary(fd):
   877         pass
   904         pass
   878 
   905 
   879     def pconvert(path):
   906     def pconvert(path):