~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: Aaron Bentley
  • Date: 2007-02-07 03:09:58 UTC
  • mfrom: (2268 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2269.
  • Revision ID: aaron.bentley@utoronto.ca-20070207030958-fx6ykp7rg7zma6xu
Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
from shutil import (
41
41
    rmtree,
42
42
    )
43
 
import string
44
43
import tempfile
45
44
from tempfile import (
46
45
    mkdtemp,
49
48
 
50
49
from bzrlib import (
51
50
    errors,
 
51
    win32utils,
52
52
    )
53
53
""")
54
54
 
777
777
 
778
778
def contains_whitespace(s):
779
779
    """True if there are any whitespace characters in s."""
780
 
    for ch in string.whitespace:
 
780
    # string.whitespace can include '\xa0' in certain locales, because it is
 
781
    # considered "non-breaking-space" as part of ISO-8859-1. But it
 
782
    # 1) Isn't a breaking whitespace
 
783
    # 2) Isn't one of ' \t\r\n' which are characters we sometimes use as
 
784
    #    separators
 
785
    # 3) '\xa0' isn't unicode safe since it is >128.
 
786
    # So we are following textwrap's example and hard-coding our own.
 
787
    # We probably could ignore \v and \f, too.
 
788
    for ch in u' \t\n\r\v\f':
781
789
        if ch in s:
782
790
            return True
783
791
    else:
890
898
def terminal_width():
891
899
    """Return estimated terminal width."""
892
900
    if sys.platform == 'win32':
893
 
        import bzrlib.win32console
894
 
        return bzrlib.win32console.get_console_size()[0]
 
901
        return win32utils.get_console_size()[0]
895
902
    width = 0
896
903
    try:
897
904
        import struct, fcntl, termios
915
922
    return sys.platform != "win32"
916
923
 
917
924
 
 
925
def supports_posix_readonly():
 
926
    """Return True if 'readonly' has POSIX semantics, False otherwise.
 
927
 
 
928
    Notably, a win32 readonly file cannot be deleted, unlike POSIX where the
 
929
    directory controls creation/deletion, etc.
 
930
 
 
931
    And under win32, readonly means that the directory itself cannot be
 
932
    deleted.  The contents of a readonly directory can be changed, unlike POSIX
 
933
    where files in readonly directories cannot be added, deleted or renamed.
 
934
    """
 
935
    return sys.platform != "win32"
 
936
 
 
937
 
918
938
def set_or_unset_env(env_variable, value):
919
939
    """Modify the environment, setting or removing the env_variable.
920
940