From 5c0f263403ebd213c325f7d9f41c65f150a8153a Mon Sep 17 00:00:00 2001
From: Nat Goodspeed <nat@lindenlab.com>
Date: Thu, 14 Jan 2010 16:46:20 -0500
Subject: [PATCH] Replace scripts dependency on win32api module with bundled
 ctypes.

---
 scripts/install.py           | 9 +++++++--
 scripts/template_verifier.py | 9 +++++++--
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/scripts/install.py b/scripts/install.py
index 78b8880b95c..7368af0b37f 100755
--- a/scripts/install.py
+++ b/scripts/install.py
@@ -793,8 +793,13 @@ def _getuser():
         import getpass
         return getpass.getuser()
     except ImportError:
-        import win32api
-        return win32api.GetUserName()
+        import ctypes
+        MAX_PATH = 260                  # according to a recent WinDef.h
+        name = ctypes.create_unicode_buffer(MAX_PATH)
+        namelen = ctypes.c_int(len(name)) # len in chars, NOT bytes
+        if not ctypes.windll.advapi32.GetUserNameW(name, ctypes.byref(namelen)):
+            raise ctypes.WinError()
+        return name.value
 
 def _default_installable_cache():
     """In general, the installable files do not change much, so find a 
diff --git a/scripts/template_verifier.py b/scripts/template_verifier.py
index 8bb5e1d76d8..d5fc1192700 100755
--- a/scripts/template_verifier.py
+++ b/scripts/template_verifier.py
@@ -203,8 +203,13 @@ def getuser():
         import getpass
         return getpass.getuser()
     except ImportError:
-        import win32api
-        return win32api.GetUserName()
+        import ctypes
+        MAX_PATH = 260                  # according to a recent WinDef.h
+        name = ctypes.create_unicode_buffer(MAX_PATH)
+        namelen = ctypes.c_int(len(name)) # len in chars, NOT bytes
+        if not ctypes.windll.advapi32.GetUserNameW(name, ctypes.byref(namelen)):
+            raise ctypes.WinError()
+        return name.value
 
 def local_master_cache_filename():
     """Returns the location of the master template cache (which is in the system tempdir)
-- 
GitLab