* Constants...
*/
-#define PPD_SYNC 0x50504436 /* Sync word for ppds.dat (PPD6) */
+#define PPD_SYNC 0x50504437 /* Sync word for ppds.dat (PPD7) */
#define PPD_MAX_LANG 32 /* Maximum languages */
-#define PPD_MAX_PROD 8 /* Maximum products */
-#define PPD_MAX_VERS 8 /* Maximum versions */
+#define PPD_MAX_PROD 32 /* Maximum products */
+#define PPD_MAX_VERS 32 /* Maximum versions */
#define PPD_TYPE_POSTSCRIPT 0 /* PostScript PPD */
#define PPD_TYPE_PDF 1 /* PDF PPD */
--- /dev/null
+#!/usr/bin/php -f
+<?php
+
+$fp = popen("zgrep '^\\*Product:' /Library/Printers/PPDs/Contents/Resources/*.gz", "r");
+$files = array();
+$maxlen = 0;
+
+while ($line = fgets($fp, 1024))
+{
+ $data = explode(":", $line);
+ if (array_key_exists($data[0], $files))
+ $files[$data[0]] ++;
+ else
+ $files[$data[0]] = 1;
+
+ $data = explode("\"", $line);
+ if (strlen($data[1]) > $maxlen)
+ $maxlen = strlen($data[1]);
+}
+
+pclose($fp);
+
+arsort($files);
+
+$current_count = 0;
+$current_files = 0;
+
+foreach ($files as $file => $count)
+{
+ if ($current_count == 0)
+ print(basename($file) . " => $count products\n");
+
+ if ($count != $current_count)
+ {
+ if ($current_count != 0)
+ print("$current_files PPDs with $current_count products.\n");
+
+ $current_count = $count;
+ $current_files = 1;
+ }
+ else
+ $current_files ++;
+}
+
+if ($current_count != 0)
+ print("$current_files PPDs with $current_count products.\n");
+
+print("Maximum length of Product string: $maxlen\n");
+
+?>