]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - scheduler/classes.c
Merge changes from CUPS 1.4svn-r7874.
[thirdparty/cups.git] / scheduler / classes.c
index 81d7c0b61bfc53f27fc3d54bd0792767de389628..da828ce7497638f8d632ee247f855d54f2648beb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: classes.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: classes.c 7608 2008-05-21 01:37:21Z mike $"
  *
  *   Printer class routines for the Common UNIX Printing System (CUPS).
  *
@@ -210,7 +210,8 @@ cupsdDeletePrinterFromClasses(
        c = (cupsd_printer_t *)cupsArrayNext(ImplicitPrinters))
     if (c->num_printers == 0)
     {
-      cupsArrayRemove(ImplicitPrinters, c);
+      cupsdLogMessage(CUPSD_LOG_DEBUG, "Deleting implicit class \"%s\"...",
+                      c->name);
       cupsdDeletePrinter(c, 0);
     }
 }
@@ -600,7 +601,7 @@ cupsdLoadAllClasses(void)
               valueptr ++);
 
          if (*valueptr)
-            *valueptr++ = '\0';
+            *valueptr = '\0';
 
          cupsdSetString(&p->job_sheets[1], value);
        }
@@ -880,8 +881,25 @@ cupsdSaveAllClasses(void)
     cupsFilePrintf(fp, "JobSheets %s %s\n", pclass->job_sheets[0],
                    pclass->job_sheets[1]);
 
-    for (i = 0; i < pclass->num_printers; i ++)
-      cupsFilePrintf(fp, "Printer %s\n", pclass->printers[i]->name);
+    for (i = 0; i < pclass->num_users; i ++)
+    {
+      if ((ptr = strchr(pclass->users[i], '#')) != NULL)
+      {
+       /*
+        * Need to quote the first # in the user string...
+       */
+
+        cupsFilePrintf(fp, "%sUser ", pclass->deny_users ? "Deny" : "Allow");
+       cupsFileWrite(fp, pclass->users[i], ptr - pclass->users[i]);
+       cupsFilePutChar(fp, '\\');
+       cupsFilePuts(fp, ptr);
+       cupsFilePutChar(fp, '\n');
+      }
+      else
+        cupsFilePrintf(fp, "%sUser %s\n",
+                      pclass->deny_users ? "Deny" : "Allow",
+                       pclass->users[i]);
+    }
 
     cupsFilePrintf(fp, "QuotaPeriod %d\n", pclass->quota_period);
     cupsFilePrintf(fp, "PageLimit %d\n", pclass->page_limit);
@@ -939,5 +957,5 @@ cupsdUpdateImplicitClasses(void)
 
 
 /*
- * End of "$Id: classes.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: classes.c 7608 2008-05-21 01:37:21Z mike $".
  */