Tim Waugh cb5592
diff -up cups-1.4.2/cgi-bin/admin.c.str3418 cups-1.4.2/cgi-bin/admin.c
Tim Waugh cb5592
--- cups-1.4.2/cgi-bin/admin.c.str3418	2009-11-17 13:23:51.130084685 +0000
Tim Waugh cb5592
+++ cups-1.4.2/cgi-bin/admin.c	2009-11-17 13:23:56.773209143 +0000
Tim Waugh cb5592
@@ -1261,7 +1261,7 @@ do_am_printer(http_t *http,		/* I - HTTP
Tim Waugh cb5592
       * Got the list of PPDs, see if the user has selected a make...
Tim Waugh cb5592
       */
Tim Waugh cb5592
 
Tim Waugh cb5592
-      if (cgiSetIPPVars(response, NULL, NULL, NULL, 0) == 0)
Tim Waugh cb5592
+      if (cgiSetIPPVars(response, NULL, NULL, NULL, 0) == 0 && !modify)
Tim Waugh cb5592
       {
Tim Waugh cb5592
        /*
Tim Waugh cb5592
         * No PPD files with this make, try again with all makes...
Tim Waugh cb5592
@@ -1297,8 +1297,11 @@ do_am_printer(http_t *http,		/* I - HTTP
Tim Waugh cb5592
 	*/
Tim Waugh cb5592
 
Tim Waugh cb5592
         cgiStartHTML(title);
Tim Waugh cb5592
-	cgiSetVariable("CURRENT_MAKE_AND_MODEL",
Tim Waugh cb5592
-	               cgiGetArray("PPD_MAKE_AND_MODEL", 0));
Tim Waugh cb5592
+	if (!cgiGetVariable("PPD_MAKE"))
Tim Waugh cb5592
+	  cgiSetVariable("PPD_MAKE", cgiGetVariable("CURRENT_MAKE"));
Tim Waugh cb5592
+	if (!modify)
Tim Waugh cb5592
+	  cgiSetVariable("CURRENT_MAKE_AND_MODEL",
Tim Waugh cb5592
+	                 cgiGetArray("PPD_MAKE_AND_MODEL", 0));
Tim Waugh cb5592
 	cgiCopyTemplateLang("choose-model.tmpl");
Tim Waugh cb5592
         cgiEndHTML();
Tim Waugh cb5592
       }
Tim Waugh cb5592
@@ -1590,7 +1593,7 @@ do_config_server(http_t *http)		/* I - H
Tim Waugh cb5592
 #ifdef HAVE_GSSAPI
Tim Waugh cb5592
     char		default_auth_type[255];
Tim Waugh cb5592
 					/* DefaultAuthType value */
Tim Waugh cb5592
-    const char		*val;		/* Setting value */ 
Tim Waugh cb5592
+    const char		*val;		/* Setting value */
Tim Waugh cb5592
 #endif /* HAVE_GSSAPI */
Tim Waugh cb5592
 
Tim Waugh cb5592
 
Tim Waugh cb5592
@@ -1662,7 +1665,7 @@ do_config_server(http_t *http)		/* I - H
Tim Waugh cb5592
 	  strcat(local_protocols, "slp");
Tim Waugh cb5592
       }
Tim Waugh cb5592
 #endif /* HAVE_SLP */
Tim Waugh cb5592
-      
Tim Waugh cb5592
+
Tim Waugh cb5592
       if (cgiGetVariable("BROWSE_REMOTE_CUPS"))
Tim Waugh cb5592
 	strcpy(remote_protocols, "cups");
Tim Waugh cb5592
       else
Tim Waugh cb5592
@@ -1915,7 +1918,7 @@ do_config_server(http_t *http)		/* I - H
Tim Waugh cb5592
       cgiSetVariable("ERROR", strerror(errno));
Tim Waugh cb5592
       cgiCopyTemplateLang("error.tmpl");
Tim Waugh cb5592
       cgiEndHTML();
Tim Waugh cb5592
-      
Tim Waugh cb5592
+
Tim Waugh cb5592
       perror(tempfile);
Tim Waugh cb5592
       return;
Tim Waugh cb5592
     }
Tim Waugh cb5592
@@ -1927,7 +1930,7 @@ do_config_server(http_t *http)		/* I - H
Tim Waugh cb5592
       cgiSetVariable("ERROR", strerror(errno));
Tim Waugh cb5592
       cgiCopyTemplateLang("error.tmpl");
Tim Waugh cb5592
       cgiEndHTML();
Tim Waugh cb5592
-      
Tim Waugh cb5592
+
Tim Waugh cb5592
       perror(tempfile);
Tim Waugh cb5592
       close(tempfd);
Tim Waugh cb5592
       unlink(tempfile);
Tim Waugh cb5592
@@ -3342,7 +3345,7 @@ do_set_options(http_t *http,		/* I - HTT
Tim Waugh cb5592
           ((ppdattr = ppdFindAttr(ppd, "cupsCommands", NULL)) != NULL &&
Tim Waugh cb5592
            ppdattr->value && strstr(ppdattr->value, "AutoConfigure")))
Tim Waugh cb5592
         cgiSetVariable("HAVE_AUTOCONFIGURE", "YES");
Tim Waugh cb5592
-      else 
Tim Waugh cb5592
+      else
Tim Waugh cb5592
       {
Tim Waugh cb5592
         for (i = 0; i < ppd->num_filters; i ++)
Tim Waugh cb5592
 	  if (!strncmp(ppd->filters[i], "application/vnd.cups-postscript", 31))
Tim Waugh cb5592
@@ -3446,7 +3449,7 @@ do_set_options(http_t *http,		/* I - HTT
Tim Waugh cb5592
 	  cgiSetVariable("GROUP", group->text);
Tim Waugh cb5592
 
Tim Waugh cb5592
 	cgiCopyTemplateLang("option-header.tmpl");
Tim Waugh cb5592
-	
Tim Waugh cb5592
+
Tim Waugh cb5592
 	for (j = group->num_options, option = group->options;
Tim Waugh cb5592
 	     j > 0;
Tim Waugh cb5592
 	     j --, option ++)
Tim Waugh cb5592
@@ -4090,7 +4093,7 @@ get_option_value(
Tim Waugh cb5592
 
Tim Waugh cb5592
     snprintf(buffer, bufsize, "Custom.%gx%g%s", width, length, uval);
Tim Waugh cb5592
   }
Tim Waugh cb5592
-  else if (cupsArrayCount(coption->params) == 1) 
Tim Waugh cb5592
+  else if (cupsArrayCount(coption->params) == 1)
Tim Waugh cb5592
   {
Tim Waugh cb5592
     cparam = ppdFirstCustomParam(coption);
Tim Waugh cb5592
     snprintf(keyword, sizeof(keyword), "%s.%s", coption->keyword, cparam->name);
Tim Waugh cb5592
diff -up cups-1.4.2/CHANGES-1.4.txt.str3418 cups-1.4.2/CHANGES-1.4.txt