Show More
@@ -701,6 +701,21 b' def gui():' | |||||
701 | else: |
|
701 | else: | |
702 | return os.name == "nt" or os.environ.get("DISPLAY") |
|
702 | return os.name == "nt" or os.environ.get("DISPLAY") | |
703 |
|
703 | |||
|
704 | def copymode(src, dst, mode=None): | |||
|
705 | '''Copy the file mode from the file at path src to dst. | |||
|
706 | If src doesn't exist, we're using mode instead. If mode is None, we're | |||
|
707 | using umask.''' | |||
|
708 | try: | |||
|
709 | st_mode = os.lstat(src).st_mode & 0777 | |||
|
710 | except OSError, inst: | |||
|
711 | if inst.errno != errno.ENOENT: | |||
|
712 | raise | |||
|
713 | st_mode = mode | |||
|
714 | if st_mode is None: | |||
|
715 | st_mode = ~umask | |||
|
716 | st_mode &= 0666 | |||
|
717 | os.chmod(dst, st_mode) | |||
|
718 | ||||
704 | def mktempcopy(name, emptyok=False, createmode=None): |
|
719 | def mktempcopy(name, emptyok=False, createmode=None): | |
705 | """Create a temporary file with the same contents from name |
|
720 | """Create a temporary file with the same contents from name | |
706 |
|
721 | |||
@@ -717,16 +732,7 b' def mktempcopy(name, emptyok=False, crea' | |||||
717 | # Temporary files are created with mode 0600, which is usually not |
|
732 | # Temporary files are created with mode 0600, which is usually not | |
718 | # what we want. If the original file already exists, just copy |
|
733 | # what we want. If the original file already exists, just copy | |
719 | # its mode. Otherwise, manually obey umask. |
|
734 | # its mode. Otherwise, manually obey umask. | |
720 | try: |
|
735 | copymode(name, temp, createmode) | |
721 | st_mode = os.lstat(name).st_mode & 0777 |
|
|||
722 | except OSError, inst: |
|
|||
723 | if inst.errno != errno.ENOENT: |
|
|||
724 | raise |
|
|||
725 | st_mode = createmode |
|
|||
726 | if st_mode is None: |
|
|||
727 | st_mode = ~umask |
|
|||
728 | st_mode &= 0666 |
|
|||
729 | os.chmod(temp, st_mode) |
|
|||
730 | if emptyok: |
|
736 | if emptyok: | |
731 | return temp |
|
737 | return temp | |
732 | try: |
|
738 | try: |
General Comments 0
You need to be logged in to leave comments.
Login now