~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: mbp at sourcefrog
  • Date: 2005-04-14 23:43:01 UTC
  • Revision ID: mbp@sourcefrog.net-20050414234300-57f6e8b8514287e4
- factor out locale.getpreferredencoding()
- fix problems with EMAIL not being defined

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
from errors import bailout, BzrError
23
23
from trace import mutter
 
24
import bzrlib
24
25
 
25
26
def make_readonly(filename):
26
27
    """Make a filename read-only."""
136
137
    Only used when none is set in the environment.
137
138
 
138
139
    """
139
 
    import socket, locale
 
140
    import socket
140
141
 
141
142
    # XXX: Any good way to get real user name on win32?
142
143
 
143
144
    # XXX: can the FQDN be non-ascii?
144
145
 
145
 
    enc = locale.getpreferredencoding()
146
 
    
147
146
    try:
148
147
        import pwd
149
148
        uid = os.getuid()
150
149
        w = pwd.getpwuid(uid)
151
 
        gecos = w.pw_gecos.decode(enc)
152
 
        username = w.pw_name.decode(enc)
 
150
        gecos = w.pw_gecos.decode(bzrlib.user_encoding)
 
151
        username = w.pw_name.decode(bzrlib.user_encoding)
153
152
        comma = gecos.find(',')
154
153
        if comma == -1:
155
154
            realname = gecos
160
159
 
161
160
    except ImportError:
162
161
        import getpass
163
 
        return '', (getpass.getuser().decode(enc) + '@' + socket.getfqdn())
 
162
        getpass.getuser().decode(bzrlib.user_encoding)
 
163
        return '', (username + '@' + socket.getfqdn())
164
164
 
165
165
 
166
166
 
174
174
    :todo: Allow taking it from a dotfile to help people on windows
175
175
           who can't easily set variables.
176
176
    """
177
 
    import locale
178
177
    e = os.environ.get('BZREMAIL') or os.environ.get('EMAIL')
179
178
    if e:
180
 
        return e.decode(locale.getpreferredencoding())
 
179
        return e.decode(bzrlib.user_encoding)
181
180
 
182
181
    name, email = auto_user_id()
183
182
    if name:
190
189
def user_email():
191
190
    """Return just the email component of a username."""
192
191
    e = os.environ.get('BZREMAIL') or os.environ.get('EMAIL')
193
 
    import locale
194
 
    e = e.decode(locale.getpreferredencoding())
195
192
    if e:
 
193
        e = e.decode(bzrlib.user_encoding)
 
194
        
196
195
        m = _EMAIL_RE.search(e)
197
196
        if not m:
198
197
            bailout('%r is not a reasonable email address' % e)