[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32454] trunk/blender/release/scripts: Fix UnicodeEncodingError, which prevents netrender, reprojection and playback from working on Windows in certain situations.

Nathan Letwory nathan at letworyinteractive.com
Wed Oct 13 23:53:37 CEST 2010


Revision: 32454
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32454
Author:   jesterking
Date:     2010-10-13 23:53:37 +0200 (Wed, 13 Oct 2010)

Log Message:
-----------
Fix UnicodeEncodingError, which prevents netrender, reprojection and playback from working on Windows in certain situations.

Users can set their machine name to something containing non-ascii characters. In Python this currently causes problem due to
socket.gethostname() throwing UnicodeEncodingError. Work around this by not using platform.system() (which uses internally socket.gethostname()).

See http://www.pasteall.org/16215 for backtrace

Modified Paths:
--------------
    trunk/blender/release/scripts/io/netrender/slave.py
    trunk/blender/release/scripts/op/image.py
    trunk/blender/release/scripts/op/screen_play_rendered_anim.py

Modified: trunk/blender/release/scripts/io/netrender/slave.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/slave.py	2010-10-13 19:56:53 UTC (rev 32453)
+++ trunk/blender/release/scripts/io/netrender/slave.py	2010-10-13 21:53:37 UTC (rev 32454)
@@ -32,8 +32,13 @@
 CANCEL_POLL_SPEED = 2
 MAX_TIMEOUT = 10
 INCREMENT_TIMEOUT = 1
+try:
+    system = platform.system()
+except UnicodeEncodingError:
+    import sys
+    system = sys.platform
 
-if platform.system() == 'Windows' and platform.version() >= '5': # Error mode is only available on Win2k or higher, that's version 5
+if system in ('Windows', 'win32') and platform.version() >= '5': # Error mode is only available on Win2k or higher, that's version 5
     import ctypes
     def SetErrorMode():
         val = ctypes.windll.kernel32.SetErrorMode(0x0002)

Modified: trunk/blender/release/scripts/op/image.py
===================================================================
--- trunk/blender/release/scripts/op/image.py	2010-10-13 19:56:53 UTC (rev 32453)
+++ trunk/blender/release/scripts/op/image.py	2010-10-13 21:53:37 UTC (rev 32454)
@@ -32,13 +32,17 @@
 
     def _editor_guess(self, context):
         import platform
-        system = platform.system()
+        try:
+            system = platform.system()
+        except UnicodeEncodingError:
+            import sys
+            system = sys.platform
 
         image_editor = context.user_preferences.filepaths.image_editor
 
         # use image editor in the preferences when available.
         if not image_editor:
-            if system == 'Windows':
+            if system in ('Windows', 'win32'):
                 image_editor = ["start"]  # not tested!
             elif system == 'Darwin':
                 image_editor = ["open"]

Modified: trunk/blender/release/scripts/op/screen_play_rendered_anim.py
===================================================================
--- trunk/blender/release/scripts/op/screen_play_rendered_anim.py	2010-10-13 19:56:53 UTC (rev 32453)
+++ trunk/blender/release/scripts/op/screen_play_rendered_anim.py	2010-10-13 21:53:37 UTC (rev 32454)
@@ -30,14 +30,18 @@
 
 def guess_player_path(preset):
     import platform
-    system = platform.system()
+    try:
+        system = platform.system()
+    except UnicodeEncodingError:
+        import sys
+        system = sys.platform
 
     if preset == 'BLENDER24':
         player_path = "blender"
 
         if system == 'Darwin':
             test_path = "/Applications/blender 2.49.app/Contents/MacOS/blender"
-        elif system == 'Windows':
+        elif system in ('Windows', 'win32'):
             test_path = "/Program Files/Blender Foundation/Blender/blender.exe"
 
             if os.path.exists(test_path):





More information about the Bf-blender-cvs mailing list