winspool.drv: const-correctness fix

Andrew Talbot andrew.talbot at talbotville.com
Mon Sep 12 17:18:01 CDT 2011


Changelog:
    winspool.drv: const-correctness fix.

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index cb74482..abc8478 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -516,6 +516,8 @@ static BOOL CUPS_LoadPrinters(void)
 static BOOL
 PRINTCAP_ParseEntry(const char *pent, BOOL isfirst) {
     PRINTER_INFO_2A	pinfo2a;
+    const char	*r;
+    size_t		name_len;
     char		*e,*s,*name,*prettyname,*devname;
     BOOL		ret = FALSE, set_default = FALSE;
     char *port = NULL, *env_default;
@@ -523,14 +525,17 @@ PRINTCAP_ParseEntry(const char *pent, BOOL isfirst) {
     WCHAR devnameW[MAX_PATH];
 
     while (isspace(*pent)) pent++;
-    s = strchr(pent,':');
-    if(s) *s='\0';
-    name = HeapAlloc(GetProcessHeap(), 0, strlen(pent) + 1);
-    strcpy(name,pent);
-    if(s) {
-        *s=':';
-        pent = s;
-    } else
+    r = strchr(pent,':');
+    if (r)
+        name_len = r - pent;
+    else
+        name_len = strlen(pent);
+    name = HeapAlloc(GetProcessHeap(), 0, name_len + 1);
+    memcpy(name, pent, name_len);
+    name[name_len] = '\0';
+    if (r)
+        pent = r;
+    else
         pent = "";
 
     TRACE("name=%s entry=%s\n",name, pent);



More information about the wine-patches mailing list