[PATCH 1/2] localspl: Add ARM print environments.

Esme Povirk esme at codeweavers.com
Mon Oct 18 11:31:12 CDT 2021


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51815

Signed-off-by: Esme Povirk <esme at codeweavers.com>
---
This supersedes 217514.

I took some liberties with the ARM environments. I haven't found
an actual Windows machine with a 32-bit ARM print environment, but
MS_RPRN implies that "Windows ARM" is a valid environment name.

My Windows 10 machine does have a "Windows ARM64" environment but
it only has driver version 4 in the registry, not 3.

 dlls/localspl/provider.c | 8 +++++++-
 dlls/winspool.drv/info.c | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/dlls/localspl/provider.c b/dlls/localspl/provider.c
index c17983e3037..d7c1464ef2c 100644
--- a/dlls/localspl/provider.c
+++ b/dlls/localspl/provider.c
@@ -245,10 +245,16 @@ static const printenv_t env_x86 =   {x86_envnameW, L"w32x86", 3,
 static const printenv_t env_x64 =   {L"Windows x64", L"x64", 3,
                                      L"\\Version-3", L"\\3"};
 
+static const printenv_t env_arm =   {L"Windows ARM", L"arm", 3,
+                                     L"\\Version-3", L"\\3"};
+
+static const printenv_t env_arm64 = {L"Windows ARM64", L"arm64", 3,
+                                     L"\\Version-3", L"\\3"};
+
 static const printenv_t env_win40 = {L"Windows 4.0", L"win40", 0,
                                      L"\\Version-0", L"\\0"};
 
-static const printenv_t * const all_printenv[] = {&env_x86, &env_x64, &env_ia64, &env_win40};
+static const printenv_t * const all_printenv[] = {&env_x86, &env_x64, &env_ia64, &env_arm, &env_arm64, &env_win40};
 
 
 static const DWORD di_sizeof[] = {0, sizeof(DRIVER_INFO_1W), sizeof(DRIVER_INFO_2W),
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index edfdab218c4..74617537a6b 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -232,9 +232,13 @@ static const WCHAR WinNT_CV_PrinterPortsW[] = { 'S','o','f','t','w','a','r','e',
 static       WCHAR envname_win40W[] = {'W','i','n','d','o','w','s',' ','4','.','0',0};
 static const WCHAR envname_x64W[] =   {'W','i','n','d','o','w','s',' ','x','6','4',0};
 static       WCHAR envname_x86W[] =   {'W','i','n','d','o','w','s',' ','N','T',' ','x','8','6',0};
+static const WCHAR envname_armW[] =   {'W','i','n','d','o','w','s',' ','A','R','M',0};
+static const WCHAR envname_arm64W[] = {'W','i','n','d','o','w','s',' ','A','R','M','6','4',0};
 static const WCHAR subdir_win40W[] = {'w','i','n','4','0',0};
 static const WCHAR subdir_x64W[] =   {'x','6','4',0};
 static const WCHAR subdir_x86W[] =   {'w','3','2','x','8','6',0};
+static const WCHAR subdir_armW[] =   {'a','r','m',0};
+static const WCHAR subdir_arm64W[] =   {'a','r','m','6','4',0};
 static const WCHAR Version0_RegPathW[] = {'\\','V','e','r','s','i','o','n','-','0',0};
 static const WCHAR Version0_SubdirW[] = {'\\','0',0};
 static const WCHAR Version3_RegPathW[] = {'\\','V','e','r','s','i','o','n','-','3',0};
@@ -310,9 +314,11 @@ static const DWORD pi_sizeof[] = {0, sizeof(PRINTER_INFO_1W), sizeof(PRINTER_INF
 
 static const printenv_t env_x64 = {envname_x64W, subdir_x64W, 3, Version3_RegPathW, Version3_SubdirW};
 static const printenv_t env_x86 = {envname_x86W, subdir_x86W, 3, Version3_RegPathW, Version3_SubdirW};
+static const printenv_t env_arm = {envname_armW, subdir_armW, 3, Version3_RegPathW, Version3_SubdirW};
+static const printenv_t env_arm64 = {envname_arm64W, subdir_arm64W, 3, Version3_RegPathW, Version3_SubdirW};
 static const printenv_t env_win40 = {envname_win40W, subdir_win40W, 0, Version0_RegPathW, Version0_SubdirW};
 
-static const printenv_t * const all_printenv[] = {&env_x86, &env_x64, &env_win40};
+static const printenv_t * const all_printenv[] = {&env_x86, &env_x64, &env_arm, &env_arm64, &env_win40};
 
 /******************************************************************
  *  validate the user-supplied printing-environment [internal]
-- 
2.30.2




More information about the wine-devel mailing list