+ Potential fix for the error reporting of #884.
Florent Viard authored on 2018/03/01 02:29:13... | ... |
@@ -3020,12 +3020,19 @@ def report_exception(e, msg=u''): |
3020 | 3020 |
try: |
3021 | 3021 |
s = u' '.join([unicodise(a) for a in sys.argv]) |
3022 | 3022 |
except NameError: |
3023 |
- s = u' '.join([(a) for a in sys.argv]) |
|
3023 |
+ # Error happened before Utils module was yet imported to provide unicodise |
|
3024 |
+ try: |
|
3025 |
+ s = u' '.join([(a) for a in sys.argv]) |
|
3026 |
+ except UnicodeDecodeError: |
|
3027 |
+ s = u'[encoding safe] ' + u' '.join([('%r'%a) for a in sys.argv]) |
|
3024 | 3028 |
sys.stderr.write(u"Invoked as: %s\n" % s) |
3025 | 3029 |
|
3026 | 3030 |
e_class = str(e.__class__) |
3027 | 3031 |
e_class = e_class[e_class.rfind(".")+1 : -2] |
3028 |
- sys.stderr.write(u"Problem: %s: %s\n" % (e_class, e)) |
|
3032 |
+ try: |
|
3033 |
+ sys.stderr.write(u"Problem: %s: %s\n" % (e_class, e)) |
|
3034 |
+ except UnicodeDecodeError: |
|
3035 |
+ sys.stderr.write(u"Problem: [encoding safe] %r: %r\n" % (e_class, e)) |
|
3029 | 3036 |
try: |
3030 | 3037 |
sys.stderr.write(u"S3cmd: %s\n" % PkgInfo.version) |
3031 | 3038 |
except NameError: |