Use bytes in process table manipulation
authorJeremy Stanley <fungi@yuggoth.org>
Wed, 15 May 2013 10:35:51 +0000 (10:35 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Wed, 15 May 2013 10:35:51 +0000 (10:35 +0000)
* lib/mudpy/misc.py: When manipulating the process table, do so using
bytes type for Py3K compatibility.

lib/mudpy/misc.py

index 8f6630f..50d0269 100644 (file)
@@ -2442,9 +2442,8 @@ def daemonize(universe):
     if universe.contents["internal:process"].getboolean("daemon"):
 
         # if possible, we want to rename the process to the same as the script
-        # (these will need to be byte type during 2to3 migration)
-        new_argv = "\0".join(sys.argv) + "\0"
-        new_short_argv0 = os.path.basename(sys.argv[0]) + "\0"
+        new_argv = b"\x00".join(x.encode("utf-8") for x in sys.argv) + b"\x00"
+        short_argv0 = os.path.basename(sys.argv[0]).encode("utf-8") + b"\x00"
 
         # attempt the linux way first
         try:
@@ -2463,7 +2462,7 @@ def daemonize(universe):
             ctypes.memmove(argc.contents, new_argv, len(new_argv))
             ctypes.CDLL(ctypes.util.find_library("c")).prctl(
                 15,
-                new_short_argv0,
+                short_argv0,
                 0,
                 0,
                 0