]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Drop API help for CGI, MIME, and PPD compiler libraries.
authorMichael Sweet <michael.r.sweet@gmail.com>
Tue, 12 Apr 2016 11:00:21 +0000 (07:00 -0400)
committerMichael Sweet <michael.r.sweet@gmail.com>
Tue, 12 Apr 2016 11:00:21 +0000 (07:00 -0400)
Don't uninstall public headers, these are all now private headers.

14 files changed:
Makefile
cgi-bin/Makefile
cgi-bin/api-cgi.header [deleted file]
cgi-bin/api-cgi.shtml [deleted file]
doc/Makefile
doc/help/api-cgi.html [deleted file]
doc/help/api-mime.html [deleted file]
doc/help/api-ppdc.html [deleted file]
ppdc/Makefile
ppdc/api-ppdc.header [deleted file]
ppdc/api-ppdc.shtml [deleted file]
scheduler/Makefile
scheduler/api-mime.header [deleted file]
scheduler/api-mime.shtml [deleted file]

index bac8ac092b33d9597e152447cd4a91f1e0f585ea..1bc05d4f634d4aa4900c701588bb43d2328f0aa5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 #
 # Top-level Makefile for CUPS.
 #
-# Copyright 2007-2014 by Apple Inc.
+# Copyright 2007-2016 by Apple Inc.
 # Copyright 1997-2007 by Easy Software Products, all rights reserved.
 #
 # These coded instructions, statements, and computer programs are the
@@ -266,13 +266,13 @@ debugcheck:       all unittests
 #
 
 apihelp:
-       for dir in cgi-bin cups filter ppdc scheduler; do\
+       for dir in cups filter; do\
                echo Generating API help in $$dir... ;\
                (cd $$dir; $(MAKE) $(MFLAGS) apihelp) || exit 1;\
        done
 
 framedhelp:
-       for dir in cgi-bin cups filter ppdc scheduler; do\
+       for dir in cups filter; do\
                echo Generating framed API help in $$dir... ;\
                (cd $$dir; $(MAKE) $(MFLAGS) framedhelp) || exit 1;\
        done
index 1ebef2ed75801d8664c038fbe59fe0ad64cfbc72..6bc1dbaebf38eb0b8f5f704045a71c879b70a073 100644 (file)
@@ -179,31 +179,11 @@ uninstall:
        $(RM) $(LIBDIR)/libcupscgi.so
        $(RM) $(LIBDIR)/libcupscgi.so.1
        -$(RMDIR) $(LIBDIR)
-       $(RM) $(INCLUDEDIR)/cups/cgi.h
-       $(RM) $(INCLUDEDIR)/cups/help-index.h
-       -$(RMDIR) $(INCLUDEDIR)/cups
-
-
-#
-# Automatic API help files...
-#
-
-apihelp:
-       mxmldoc --section "Programming" \
-               --title "CGI API" \
-               --css ../doc/cups-printable.css \
-               --header api-cgi.header --intro api-cgi.shtml \
-               cgi.h help-index.h $(LIBOBJS:.o=.c) >../doc/help/api-cgi.html
-       mxmldoc --tokens help/api-cgi.html api-cgi.xml >../doc/help/api-cgi.tokens
-       $(RM) api-cgi.xml
-
-framedhelp:
-       mxmldoc --framed api-cgi \
-               --section "Programming" \
-               --title "CGI API" \
-               --css ../doc/cups-printable.css \
-               --header api-cgi.header --intro api-cgi.shtml \
-               cgi.h help-index.h $(LIBOBJS:.o=.c)
+       -if test "x$(privateinclude)" != x; then \
+               $(RM) $(PRIVATEINCLUDE)/cgi.h; \
+               $(RM) $(PRIVATEINCLUDE)/help-index.h; \
+               $(RMDIR) $(PRIVATEINCLUDE); \
+       fi
 
 
 #
diff --git a/cgi-bin/api-cgi.header b/cgi-bin/api-cgi.header
deleted file mode 100644 (file)
index e3355a6..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
-  "$Id: api-array.header 8087 2008-10-27 21:37:05Z mike $"
-
-  CGI API header for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h1 class='title'>CGI API</h1>
-
-<div class='summary'><table summary='General Information'>
-<thead>
-<tr>
-       <th>Header</th>
-       <th>cups/cgi.h</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-       <th>Library</th>
-       <td>-lcupscgi</td>
-</tr>
-<tr>
-       <th>See Also</th>
-       <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a></td>
-</tr>
-</tbody>
-</table></div>
diff --git a/cgi-bin/api-cgi.shtml b/cgi-bin/api-cgi.shtml
deleted file mode 100644 (file)
index cf0413a..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!--
-  "$Id: api-array.shtml 7616 2008-05-28 00:34:13Z mike $"
-
-  CGI API introduction for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
-
-<p>The CGI API provides Common Gateway Interface functions for CUPS.</p>
index df3f2f7a096a4e17fc2297fd2d2d21705fe2a560..cccb68a3f4d7151bfea51919857b14ceee928af9 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Documentation makefile for CUPS.
 #
-# Copyright 2007-2014 by Apple Inc.
+# Copyright 2007-2016 by Apple Inc.
 # Copyright 1997-2007 by Easy Software Products.
 #
 # These coded instructions, statements, and computer programs are the
@@ -45,15 +45,12 @@ HELPIMAGES  =       \
 HELPFILES      =       \
                        help/accounting.html \
                        help/api-array.html \
-                       help/api-cgi.html \
                        help/api-cups.html \
                        help/api-filedir.html \
                        help/api-filter.html \
                        help/api-httpipp.html \
-                       help/api-mime.html \
                        help/api-overview.html \
                        help/api-ppd.html \
-                       help/api-ppdc.html \
                        help/api-raster.html \
                        help/cgi.html \
                        help/glossary.html \
diff --git a/doc/help/api-cgi.html b/doc/help/api-cgi.html
deleted file mode 100644 (file)
index 63eb9ca..0000000
+++ /dev/null
@@ -1,1138 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<!-- SECTION: Programming -->
-<head>
-       <title>CGI API  </title>
-       <meta name="keywords" content="Programming">
-       <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-       <meta name="creator" content="Mini-XML v2.7">
-<style type="text/css"><!--
-BODY {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-H1, H2, H3, H4, H5, H6, P, TD, TH {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-KBD {
-  font-family: monaco, courier, monospace;
-  font-weight: bold;
-}
-
-PRE {
-  font-family: monaco, courier, monospace;
-}
-
-PRE.command {
-  border: dotted thin #7f7f7f;
-  margin-left: 36pt;
-  padding: 10px;
-}
-
-P.compact {
-  margin: 0;
-}
-
-P.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-DL.man DD {
-  margin-left: 5em;
-}
-
-DL.man DT {
-  margin-left: 0;
-}
-
-PRE.man {
-  margin: 0;
-}
-
-PRE.example {
-  background: #eeeeee;
-  border: dotted thin #999999;
-  margin-left: 36pt;
-  padding: 10pt;
-}
-
-PRE.command EM, PRE.example EM {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-P.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-P.formula {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-BLOCKQUOTE {
-  background: #eeeeee;
-  border: solid thin #999999;
-  padding: 10pt;
-}
-
-A IMG {
-  border: none;
-}
-
-A:link:hover IMG {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
-}
-
-A:link, A:visited {
-  font-weight: inherit;
-  text-decoration: none;
-}
-
-A:link:hover, A:visited:hover, A:active {
-  text-decoration: underline;
-}
-
-SUB, SUP {
-  font-size: 50%;
-}
-
-TR.data, TD.data, TR.data TD {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-TR.data TH {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-DIV.table TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table CAPTION {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table TABLE TD {
-  border: solid thin #cccccc;
-  padding-top: 5pt;
-}
-
-DIV.table TABLE TH {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-DIV.figure TABLE {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.figure CAPTION {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-TH.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-TH.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-HR {
-  border: solid thin;
-}
-
-SPAN.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
-  float: right;
-  font-size: 100%;
-}
-
-H1.title {
-}
-
-H2.title, H3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-DIV.indent, TABLE.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.indent {
-  border-collapse: collapse;
-}
-
-TABLE.indent TD, TABLE.indent TH {
-  padding: 0;
-}
-
-TABLE.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.list TH {
-  background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
-}
-
-TABLE.list TH A {
-  color: #4444cc;
-}
-
-TABLE.list TD {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
-}
-
-TABLE.list TR:nth-child(even) {
-  background: #f8f8f8;
-}
-
-TABLE.list TR:nth-child(odd) {
-  background: #f4f4f4;
-}
-
-DT {
-  margin-left: 36pt;
-  margin-top: 12pt;
-}
-
-DD {
-  margin-left: 54pt;
-}
-
-DL.category DT {
-  font-weight: bold;
-}
-
-P.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-DIV.summary TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-DIV.summary TABLE TD, DIV.summary TABLE TH {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-DIV.summary TABLE THEAD TH {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
-  margin: 0;
-}
-div.body h2 {
-  margin-top: 1.5em;
-}
-div.body h3, div.body h4, div.body h5 {
-  margin-bottom: 0.5em;
-  margin-top: 1.5em;
-}
-.class, .enumeration, .function, .struct, .typedef, .union {
-  border-bottom: solid thin #999999;
-  margin-bottom: 0;
-  margin-top: 2em;
-}
-.description {
-  margin-top: 0.5em;
-}
-code, p.code, pre, ul.code li {
-  font-family: monaco, courier, monospace;
-  font-size: 90%;
-}
-ul.code, ul.contents, ul.subcontents {
-  list-style-type: none;
-  margin: 0;
-  padding-left: 0;
-}
-ul.code li {
-  margin: 0;
-}
-ul.contents > li {
-  margin-top: 1em;
-}
-ul.contents li ul.code, ul.contents li ul.subcontents {
-  padding-left: 2em;
-}
-div.body dl {
-  margin-left: 0;
-  margin-top: 0;
-}
-div.body dt {
-  font-style: italic;
-  margin-left: 0;
-  margin-top: 0;
-}
-div.body dd {
-  margin-bottom: 0.5em;
-}
-
-/* This is just for the HTML files generated with the framedhelp target */
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
-  font-size: 110%;
-}
-div.contents h2 {
-  font-size: 100%;
-}
-div.contents ul.contents {
-  font-size: 80%;
-}
-div.contents ul.subcontents li {
-  margin-left: 1em;
-  text-indent: -1em;
-}
---></style>
-</head>
-<body>
-<div class='body'>
-<!--
-  "$Id: api-array.header 8087 2008-10-27 21:37:05Z mike $"
-
-  CGI API header for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h1 class='title'>CGI API</h1>
-
-<div class='summary'><table summary='General Information'>
-<thead>
-<tr>
-       <th>Header</th>
-       <th>cups/cgi.h</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-       <th>Library</th>
-       <td>-lcupscgi</td>
-</tr>
-<tr>
-       <th>See Also</th>
-       <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a></td>
-</tr>
-</tbody>
-</table></div>
-<h2 class="title">Contents</h2>
-<ul class="contents">
-<li><a href="#OVERVIEW">Overview</a></li>
-<li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#cgiCheckVariables" title="Check for the presence of &quot;required&quot; variables.">cgiCheckVariables</a></li>
-       <li><a href="#cgiClearVariables" title="Clear all form variables.">cgiClearVariables</a></li>
-       <li><a href="#cgiCompileSearch" title="Compile a search string.">cgiCompileSearch</a></li>
-       <li><a href="#cgiCopyTemplateFile" title="Copy a template file and replace all the
-'{variable}' strings with the variable value.">cgiCopyTemplateFile</a></li>
-       <li><a href="#cgiCopyTemplateLang" title="Copy a template file using a language...">cgiCopyTemplateLang</a></li>
-       <li><a href="#cgiDoSearch" title="Do a search of some text.">cgiDoSearch</a></li>
-       <li><a href="#cgiEndHTML" title="End a HTML page.">cgiEndHTML</a></li>
-       <li><a href="#cgiEndMultipart" title="End the delivery of a multipart web page.">cgiEndMultipart</a></li>
-       <li><a href="#cgiFormEncode" title="Encode a string as a form variable.">cgiFormEncode</a></li>
-       <li><a href="#cgiFreeSearch" title="Free a compiled search context.">cgiFreeSearch</a></li>
-       <li><a href="#cgiGetArray" title="Get an element from a form array.">cgiGetArray</a></li>
-       <li><a href="#cgiGetAttributes" title="Get the list of attributes that are needed
-by the template file.">cgiGetAttributes</a></li>
-       <li><a href="#cgiGetCookie" title="Get a cookie value.">cgiGetCookie</a></li>
-       <li><a href="#cgiGetFile" title="Get the file (if any) that was submitted in the form.">cgiGetFile</a></li>
-       <li><a href="#cgiGetIPPObjects" title="Get the objects in an IPP response.">cgiGetIPPObjects</a></li>
-       <li><a href="#cgiGetSize" title="Get the size of a form array value.">cgiGetSize</a></li>
-       <li><a href="#cgiGetTemplateDir" title="Get the templates directory...">cgiGetTemplateDir</a></li>
-       <li><a href="#cgiGetVariable" title="Get a CGI variable from the database.">cgiGetVariable</a></li>
-       <li><a href="#cgiInitialize" title="Initialize the CGI variable &quot;database&quot;.">cgiInitialize</a></li>
-       <li><a href="#cgiIsPOST" title="Determine whether this page was POSTed.">cgiIsPOST</a></li>
-       <li><a href="#cgiMoveJobs" title="Move one or more jobs.">cgiMoveJobs</a></li>
-       <li><a href="#cgiPrintCommand" title="Print a CUPS command job.">cgiPrintCommand</a></li>
-       <li><a href="#cgiPrintTestPage" title="Print a test page.">cgiPrintTestPage</a></li>
-       <li><a href="#cgiRewriteURL" title="Rewrite a printer URI into a web browser URL...">cgiRewriteURL</a></li>
-       <li><a href="#cgiSetArray" title="Set array element N to the specified string.">cgiSetArray</a></li>
-       <li><a href="#cgiSetCookie" title="Set a cookie value.">cgiSetCookie</a></li>
-       <li><a href="#cgiSetIPPObjectVars" title="Set CGI variables from an IPP object.">cgiSetIPPObjectVars</a></li>
-       <li><a href="#cgiSetIPPVars" title="Set CGI variables from an IPP response.">cgiSetIPPVars</a></li>
-       <li><a href="#cgiSetServerVersion" title="Set the server name and CUPS version...">cgiSetServerVersion</a></li>
-       <li><a href="#cgiSetSize" title="Set the array size.">cgiSetSize</a></li>
-       <li><a href="#cgiSetVariable" title="Set a CGI variable in the database.">cgiSetVariable</a></li>
-       <li><a href="#cgiShowIPPError" title="Show the last IPP error message.">cgiShowIPPError</a></li>
-       <li><a href="#cgiShowJobs" title="Show print jobs.">cgiShowJobs</a></li>
-       <li><a href="#cgiStartHTML" title="Start a HTML page.">cgiStartHTML</a></li>
-       <li><a href="#cgiStartMultipart" title="Start a multipart delivery of a web page.">cgiStartMultipart</a></li>
-       <li><a href="#cgiSupportsMultipart" title="Does the browser support multi-part documents?">cgiSupportsMultipart</a></li>
-       <li><a href="#cgiText" title="Return localized text.">cgiText</a></li>
-       <li><a href="#helpDeleteIndex" title="Delete an index, freeing all memory used.">helpDeleteIndex</a></li>
-       <li><a href="#helpFindNode" title="Find a node in an index.">helpFindNode</a></li>
-       <li><a href="#helpLoadIndex" title="Load a help index from disk.">helpLoadIndex</a></li>
-       <li><a href="#helpSaveIndex" title="Save a help index to disk.">helpSaveIndex</a></li>
-       <li><a href="#helpSearchIndex" title="Search an index.">helpSearchIndex</a></li>
-</ul></li>
-<li><a href="#TYPES">Data Types</a><ul class="code">
-       <li><a href="#cgi_file_t" title="Uploaded file data">cgi_file_t</a></li>
-       <li><a href="#help_index_t" title="Help index structure">help_index_t</a></li>
-       <li><a href="#help_node_t" title="Help node structure...">help_node_t</a></li>
-       <li><a href="#help_word_t" title="Help word structure...">help_word_t</a></li>
-</ul></li>
-<li><a href="#STRUCTURES">Structures</a><ul class="code">
-       <li><a href="#cgi_file_s" title="Uploaded file data">cgi_file_s</a></li>
-       <li><a href="#help_index_s" title="Help index structure">help_index_s</a></li>
-       <li><a href="#help_node_s" title="Help node structure...">help_node_s</a></li>
-       <li><a href="#help_word_s" title="Help word structure...">help_word_s</a></li>
-</ul></li>
-</ul>
-<!--
-  "$Id: api-array.shtml 7616 2008-05-28 00:34:13Z mike $"
-
-  CGI API introduction for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
-
-<p>The CGI API provides Common Gateway Interface functions for CUPS.</p>
-<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
-<h3 class="function"><a name="cgiCheckVariables">cgiCheckVariables</a></h3>
-<p class="description">Check for the presence of &quot;required&quot; variables.</p>
-<p class="code">
-int cgiCheckVariables (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *names<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>names</dt>
-<dd class="description">Variables to look for</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">1 if all variables present, 0 otherwise</p>
-<h4 class="discussion">Discussion</h4>
-<p class="discussion">Names may be separated by spaces and/or commas.</p>
-<h3 class="function"><a name="cgiClearVariables">cgiClearVariables</a></h3>
-<p class="description">Clear all form variables.</p>
-<p class="code">
-void cgiClearVariables (void);</p>
-<h3 class="function"><a name="cgiCompileSearch">cgiCompileSearch</a></h3>
-<p class="description">Compile a search string.</p>
-<p class="code">
-void *cgiCompileSearch (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *query<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>query</dt>
-<dd class="description">Query string</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Search context</p>
-<h3 class="function"><a name="cgiCopyTemplateFile">cgiCopyTemplateFile</a></h3>
-<p class="description">Copy a template file and replace all the
-'{variable}' strings with the variable value.</p>
-<p class="code">
-void cgiCopyTemplateFile (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;FILE *out,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *tmpl<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>out</dt>
-<dd class="description">Output file</dd>
-<dt>tmpl</dt>
-<dd class="description">Template file to read</dd>
-</dl>
-<h3 class="function"><a name="cgiCopyTemplateLang">cgiCopyTemplateLang</a></h3>
-<p class="description">Copy a template file using a language...</p>
-<p class="code">
-void cgiCopyTemplateLang (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *tmpl<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>tmpl</dt>
-<dd class="description">Base filename</dd>
-</dl>
-<h3 class="function"><a name="cgiDoSearch">cgiDoSearch</a></h3>
-<p class="description">Do a search of some text.</p>
-<p class="code">
-int cgiDoSearch (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void *search,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *text<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>search</dt>
-<dd class="description">Search context</dd>
-<dt>text</dt>
-<dd class="description">Text to search</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Number of matches</p>
-<h3 class="function"><a name="cgiEndHTML">cgiEndHTML</a></h3>
-<p class="description">End a HTML page.</p>
-<p class="code">
-void cgiEndHTML (void);</p>
-<h3 class="function"><a name="cgiEndMultipart">cgiEndMultipart</a></h3>
-<p class="description">End the delivery of a multipart web page.</p>
-<p class="code">
-void cgiEndMultipart (void);</p>
-<h3 class="function"><a name="cgiFormEncode">cgiFormEncode</a></h3>
-<p class="description">Encode a string as a form variable.</p>
-<p class="code">
-char *cgiFormEncode (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *dst,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *src,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;size_t dstsize<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>dst</dt>
-<dd class="description">Destination string</dd>
-<dt>src</dt>
-<dd class="description">Source string</dd>
-<dt>dstsize</dt>
-<dd class="description">Size of destination string</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Destination string</p>
-<h3 class="function"><a name="cgiFreeSearch">cgiFreeSearch</a></h3>
-<p class="description">Free a compiled search context.</p>
-<p class="code">
-void cgiFreeSearch (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void *search<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>search</dt>
-<dd class="description">Search context</dd>
-</dl>
-<h3 class="function"><a name="cgiGetArray">cgiGetArray</a></h3>
-<p class="description">Get an element from a form array.</p>
-<p class="code">
-const char *cgiGetArray (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *name,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int element<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>name</dt>
-<dd class="description">Name of array variable</dd>
-<dt>element</dt>
-<dd class="description">Element number (0 to N)</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Element value or NULL</p>
-<h3 class="function"><a name="cgiGetAttributes">cgiGetAttributes</a></h3>
-<p class="description">Get the list of attributes that are needed
-by the template file.</p>
-<p class="code">
-void cgiGetAttributes (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;ipp_t *request,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *tmpl<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>request</dt>
-<dd class="description">IPP request</dd>
-<dt>tmpl</dt>
-<dd class="description">Base filename</dd>
-</dl>
-<h3 class="function"><a name="cgiGetCookie">cgiGetCookie</a></h3>
-<p class="description">Get a cookie value.</p>
-<p class="code">
-const char *cgiGetCookie (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *name<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>name</dt>
-<dd class="description">Name of cookie</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Value or NULL</p>
-<h3 class="function"><a name="cgiGetFile">cgiGetFile</a></h3>
-<p class="description">Get the file (if any) that was submitted in the form.</p>
-<p class="code">
-const <a href="#cgi_file_t">cgi_file_t</a> *cgiGetFile (void);</p>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Attached file or NULL</p>
-<h3 class="function"><a name="cgiGetIPPObjects">cgiGetIPPObjects</a></h3>
-<p class="description">Get the objects in an IPP response.</p>
-<p class="code">
-cups_array_t *cgiGetIPPObjects (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;ipp_t *response,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void *search<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>response</dt>
-<dd class="description">IPP response</dd>
-<dt>search</dt>
-<dd class="description">Search filter</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Array of objects</p>
-<h3 class="function"><a name="cgiGetSize">cgiGetSize</a></h3>
-<p class="description">Get the size of a form array value.</p>
-<p class="code">
-int cgiGetSize (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *name<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>name</dt>
-<dd class="description">Name of variable</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Number of elements</p>
-<h3 class="function"><a name="cgiGetTemplateDir">cgiGetTemplateDir</a></h3>
-<p class="description">Get the templates directory...</p>
-<p class="code">
-char *cgiGetTemplateDir (void);</p>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Template directory</p>
-<h3 class="function"><a name="cgiGetVariable">cgiGetVariable</a></h3>
-<p class="description">Get a CGI variable from the database.</p>
-<p class="code">
-const char *cgiGetVariable (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *name<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>name</dt>
-<dd class="description">Name of variable</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Value of variable</p>
-<h4 class="discussion">Discussion</h4>
-<p class="discussion">Returns NULL if the variable doesn't exist.  If the variable is an
-array of values, returns the last element.</p>
-<h3 class="function"><a name="cgiInitialize">cgiInitialize</a></h3>
-<p class="description">Initialize the CGI variable &quot;database&quot;.</p>
-<p class="code">
-int cgiInitialize (void);</p>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Non-zero if there was form data</p>
-<h3 class="function"><a name="cgiIsPOST">cgiIsPOST</a></h3>
-<p class="description">Determine whether this page was POSTed.</p>
-<p class="code">
-int cgiIsPOST (void);</p>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">1 if POST, 0 if GET</p>
-<h3 class="function"><a name="cgiMoveJobs">cgiMoveJobs</a></h3>
-<p class="description">Move one or more jobs.</p>
-<p class="code">
-void cgiMoveJobs (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;http_t *http,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *dest,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int job_id<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>http</dt>
-<dd class="description">Connection to server</dd>
-<dt>dest</dt>
-<dd class="description">Destination or NULL</dd>
-<dt>job_id</dt>
-<dd class="description">Job ID or 0 for all</dd>
-</dl>
-<h4 class="discussion">Discussion</h4>
-<p class="discussion">At least one of dest or job_id must be non-zero/NULL.</p>
-<h3 class="function"><a name="cgiPrintCommand">cgiPrintCommand</a></h3>
-<p class="description">Print a CUPS command job.</p>
-<p class="code">
-void cgiPrintCommand (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;http_t *http,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *dest,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *command,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *title<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>http</dt>
-<dd class="description">Connection to server</dd>
-<dt>dest</dt>
-<dd class="description">Destination printer</dd>
-<dt>command</dt>
-<dd class="description">Command to send</dd>
-<dt>title</dt>
-<dd class="description">Page/job title</dd>
-</dl>
-<h3 class="function"><a name="cgiPrintTestPage">cgiPrintTestPage</a></h3>
-<p class="description">Print a test page.</p>
-<p class="code">
-void cgiPrintTestPage (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;http_t *http,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *dest<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>http</dt>
-<dd class="description">Connection to server</dd>
-<dt>dest</dt>
-<dd class="description">Destination printer/class</dd>
-</dl>
-<h3 class="function"><a name="cgiRewriteURL">cgiRewriteURL</a></h3>
-<p class="description">Rewrite a printer URI into a web browser URL...</p>
-<p class="code">
-char *cgiRewriteURL (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *uri,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *url,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int urlsize,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *newresource<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>uri</dt>
-<dd class="description">Current URI</dd>
-<dt>url</dt>
-<dd class="description">New URL</dd>
-<dt>urlsize</dt>
-<dd class="description">Size of URL buffer</dd>
-<dt>newresource</dt>
-<dd class="description">Replacement resource</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">New URL</p>
-<h3 class="function"><a name="cgiSetArray">cgiSetArray</a></h3>
-<p class="description">Set array element N to the specified string.</p>
-<p class="code">
-void cgiSetArray (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *name,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int element,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *value<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>name</dt>
-<dd class="description">Name of variable</dd>
-<dt>element</dt>
-<dd class="description">Element number (0 to N)</dd>
-<dt>value</dt>
-<dd class="description">Value of variable</dd>
-</dl>
-<h4 class="discussion">Discussion</h4>
-<p class="discussion">If the variable array is smaller than (element + 1), the intervening
-elements are set to NULL.</p>
-<h3 class="function"><a name="cgiSetCookie">cgiSetCookie</a></h3>
-<p class="description">Set a cookie value.</p>
-<p class="code">
-void cgiSetCookie (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *name,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *value,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *path,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *domain,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;time_t expires,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int secure<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>name</dt>
-<dd class="description">Name</dd>
-<dt>value</dt>
-<dd class="description">Value</dd>
-<dt>path</dt>
-<dd class="description">Path (typically &quot;/&quot;)</dd>
-<dt>domain</dt>
-<dd class="description">Domain name</dd>
-<dt>expires</dt>
-<dd class="description">Expiration date (0 for session)</dd>
-<dt>secure</dt>
-<dd class="description">Require SSL</dd>
-</dl>
-<h3 class="function"><a name="cgiSetIPPObjectVars">cgiSetIPPObjectVars</a></h3>
-<p class="description">Set CGI variables from an IPP object.</p>
-<p class="code">
-ipp_attribute_t *cgiSetIPPObjectVars (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;ipp_attribute_t *obj,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *prefix,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int element<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>obj</dt>
-<dd class="description">Response data to be copied...</dd>
-<dt>prefix</dt>
-<dd class="description">Prefix for name or NULL</dd>
-<dt>element</dt>
-<dd class="description">Parent element number</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Next object</p>
-<h3 class="function"><a name="cgiSetIPPVars">cgiSetIPPVars</a></h3>
-<p class="description">Set CGI variables from an IPP response.</p>
-<p class="code">
-int cgiSetIPPVars (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;ipp_t *response,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *filter_name,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *filter_value,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *prefix,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int parent_el<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>response</dt>
-<dd class="description">Response data to be copied...</dd>
-<dt>filter_name</dt>
-<dd class="description">Filter name</dd>
-<dt>filter_value</dt>
-<dd class="description">Filter value</dd>
-<dt>prefix</dt>
-<dd class="description">Prefix for name or NULL</dd>
-<dt>parent_el</dt>
-<dd class="description">Parent element number</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Maximum number of elements</p>
-<h3 class="function"><a name="cgiSetServerVersion">cgiSetServerVersion</a></h3>
-<p class="description">Set the server name and CUPS version...</p>
-<p class="code">
-void cgiSetServerVersion (void);</p>
-<h3 class="function"><a name="cgiSetSize">cgiSetSize</a></h3>
-<p class="description">Set the array size.</p>
-<p class="code">
-void cgiSetSize (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *name,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int size<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>name</dt>
-<dd class="description">Name of variable</dd>
-<dt>size</dt>
-<dd class="description">Number of elements (0 to N)</dd>
-</dl>
-<h3 class="function"><a name="cgiSetVariable">cgiSetVariable</a></h3>
-<p class="description">Set a CGI variable in the database.</p>
-<p class="code">
-void cgiSetVariable (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *name,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *value<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>name</dt>
-<dd class="description">Name of variable</dd>
-<dt>value</dt>
-<dd class="description">Value of variable</dd>
-</dl>
-<h4 class="discussion">Discussion</h4>
-<p class="discussion">If the variable is an array, this truncates the array to a single element.</p>
-<h3 class="function"><a name="cgiShowIPPError">cgiShowIPPError</a></h3>
-<p class="description">Show the last IPP error message.</p>
-<p class="code">
-void cgiShowIPPError (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *message<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>message</dt>
-<dd class="description">Contextual message</dd>
-</dl>
-<h4 class="discussion">Discussion</h4>
-<p class="discussion">The caller must still call cgiStartHTML() and cgiEndHTML().</p>
-<h3 class="function"><a name="cgiShowJobs">cgiShowJobs</a></h3>
-<p class="description">Show print jobs.</p>
-<p class="code">
-void cgiShowJobs (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;http_t *http,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *dest<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>http</dt>
-<dd class="description">Connection to server</dd>
-<dt>dest</dt>
-<dd class="description">Destination name or NULL</dd>
-</dl>
-<h3 class="function"><a name="cgiStartHTML">cgiStartHTML</a></h3>
-<p class="description">Start a HTML page.</p>
-<p class="code">
-void cgiStartHTML (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *title<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>title</dt>
-<dd class="description">Title of page</dd>
-</dl>
-<h3 class="function"><a name="cgiStartMultipart">cgiStartMultipart</a></h3>
-<p class="description">Start a multipart delivery of a web page.</p>
-<p class="code">
-void cgiStartMultipart (void);</p>
-<h3 class="function"><a name="cgiSupportsMultipart">cgiSupportsMultipart</a></h3>
-<p class="description">Does the browser support multi-part documents?</p>
-<p class="code">
-int cgiSupportsMultipart (void);</p>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">1 if multi-part supported, 0 otherwise</p>
-<h3 class="function"><a name="cgiText">cgiText</a></h3>
-<p class="description">Return localized text.</p>
-<p class="code">
-const char *cgiText (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *message<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>message</dt>
-<dd class="description">Message</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Localized message</p>
-<h3 class="function"><a name="helpDeleteIndex">helpDeleteIndex</a></h3>
-<p class="description">Delete an index, freeing all memory used.</p>
-<p class="code">
-void helpDeleteIndex (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#help_index_t">help_index_t</a> *hi<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>hi</dt>
-<dd class="description">Help index</dd>
-</dl>
-<h3 class="function"><a name="helpFindNode">helpFindNode</a></h3>
-<p class="description">Find a node in an index.</p>
-<p class="code">
-<a href="#help_node_t">help_node_t</a> *helpFindNode (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#help_index_t">help_index_t</a> *hi,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *filename,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *anchor<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>hi</dt>
-<dd class="description">Index</dd>
-<dt>filename</dt>
-<dd class="description">Filename</dd>
-<dt>anchor</dt>
-<dd class="description">Anchor</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Node pointer or NULL</p>
-<h3 class="function"><a name="helpLoadIndex">helpLoadIndex</a></h3>
-<p class="description">Load a help index from disk.</p>
-<p class="code">
-<a href="#help_index_t">help_index_t</a> *helpLoadIndex (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *hifile,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *directory<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>hifile</dt>
-<dd class="description">Index filename</dd>
-<dt>directory</dt>
-<dd class="description">Directory that is indexed</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Index pointer or NULL</p>
-<h3 class="function"><a name="helpSaveIndex">helpSaveIndex</a></h3>
-<p class="description">Save a help index to disk.</p>
-<p class="code">
-int helpSaveIndex (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#help_index_t">help_index_t</a> *hi,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *hifile<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>hi</dt>
-<dd class="description">Index</dd>
-<dt>hifile</dt>
-<dd class="description">Index filename</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">0 on success, -1 on error</p>
-<h3 class="function"><a name="helpSearchIndex">helpSearchIndex</a></h3>
-<p class="description">Search an index.</p>
-<p class="code">
-<a href="#help_index_t">help_index_t</a> *helpSearchIndex (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#help_index_t">help_index_t</a> *hi,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *query,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *section,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *filename<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>hi</dt>
-<dd class="description">Index</dd>
-<dt>query</dt>
-<dd class="description">Query string</dd>
-<dt>section</dt>
-<dd class="description">Limit search to this section</dd>
-<dt>filename</dt>
-<dd class="description">Limit search to this file</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Search index</p>
-<h2 class="title"><a name="TYPES">Data Types</a></h2>
-<h3 class="typedef"><a name="cgi_file_t">cgi_file_t</a></h3>
-<p class="description">Uploaded file data</p>
-<p class="code">
-typedef struct <a href="#cgi_file_s">cgi_file_s</a> cgi_file_t;
-</p>
-<h3 class="typedef"><a name="help_index_t">help_index_t</a></h3>
-<p class="description">Help index structure</p>
-<p class="code">
-typedef struct <a href="#help_index_s">help_index_s</a> help_index_t;
-</p>
-<h3 class="typedef"><a name="help_node_t">help_node_t</a></h3>
-<p class="description">Help node structure...</p>
-<p class="code">
-typedef struct <a href="#help_node_s">help_node_s</a> help_node_t;
-</p>
-<h3 class="typedef"><a name="help_word_t">help_word_t</a></h3>
-<p class="description">Help word structure...</p>
-<p class="code">
-typedef struct <a href="#help_word_s">help_word_s</a> help_word_t;
-</p>
-<h2 class="title"><a name="STRUCTURES">Structures</a></h2>
-<h3 class="struct"><a name="cgi_file_s">cgi_file_s</a></h3>
-<p class="description">Uploaded file data</p>
-<p class="code">struct cgi_file_s {<br>
-&nbsp;&nbsp;&nbsp;&nbsp;size_t filesize;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char tempfile[1024], *name, *filename, *mimetype;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>filesize </dt>
-<dd class="description">Size of uploaded file</dd>
-<dt>mimetype </dt>
-<dd class="description">MIME media type</dd>
-</dl>
-<h3 class="struct"><a name="help_index_s">help_index_s</a></h3>
-<p class="description">Help index structure</p>
-<p class="code">struct help_index_s {<br>
-&nbsp;&nbsp;&nbsp;&nbsp;cups_array_t *nodes;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int search;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;cups_array_t *sorted;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>nodes </dt>
-<dd class="description">Nodes sorted by filename</dd>
-<dt>search </dt>
-<dd class="description">1 = search index, 0 = normal</dd>
-<dt>sorted </dt>
-<dd class="description">Nodes sorted by score + text</dd>
-</dl>
-<h3 class="struct"><a name="help_node_s">help_node_s</a></h3>
-<p class="description">Help node structure...</p>
-<p class="code">struct help_node_s {<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *anchor;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *filename;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;size_t length;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;time_t mtime;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;off_t offset;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int score;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *section;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *text;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;cups_array_t *words;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>anchor </dt>
-<dd class="description">Anchor name (NULL if none)</dd>
-<dt>filename </dt>
-<dd class="description">Filename, relative to help dir</dd>
-<dt>length </dt>
-<dd class="description">Length in bytes</dd>
-<dt>mtime </dt>
-<dd class="description">Last modification time</dd>
-<dt>offset </dt>
-<dd class="description">Offset in file</dd>
-<dt>score </dt>
-<dd class="description">Search score</dd>
-<dt>section </dt>
-<dd class="description">Section name (NULL if none)</dd>
-<dt>text </dt>
-<dd class="description">Text in anchor</dd>
-<dt>words </dt>
-<dd class="description">Words after this node</dd>
-</dl>
-<h3 class="struct"><a name="help_word_s">help_word_s</a></h3>
-<p class="description">Help word structure...</p>
-<p class="code">struct help_word_s {<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int count;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *text;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>count </dt>
-<dd class="description">Number of occurrences</dd>
-<dt>text </dt>
-<dd class="description">Word text</dd>
-</dl>
-</div>
-</body>
-</html>
diff --git a/doc/help/api-mime.html b/doc/help/api-mime.html
deleted file mode 100644 (file)
index ecfbcfd..0000000
+++ /dev/null
@@ -1,841 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<!-- SECTION: Programming -->
-<head>
-       <title>MIME API </title>
-       <meta name="keywords" content="Programming">
-       <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-       <meta name="creator" content="Mini-XML v2.7">
-<style type="text/css"><!--
-BODY {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-H1, H2, H3, H4, H5, H6, P, TD, TH {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-KBD {
-  font-family: monaco, courier, monospace;
-  font-weight: bold;
-}
-
-PRE {
-  font-family: monaco, courier, monospace;
-}
-
-PRE.command {
-  border: dotted thin #7f7f7f;
-  margin-left: 36pt;
-  padding: 10px;
-}
-
-P.compact {
-  margin: 0;
-}
-
-P.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-DL.man DD {
-  margin-left: 5em;
-}
-
-DL.man DT {
-  margin-left: 0;
-}
-
-PRE.man {
-  margin: 0;
-}
-
-PRE.example {
-  background: #eeeeee;
-  border: dotted thin #999999;
-  margin-left: 36pt;
-  padding: 10pt;
-}
-
-PRE.command EM, PRE.example EM {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-P.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-P.formula {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-BLOCKQUOTE {
-  background: #eeeeee;
-  border: solid thin #999999;
-  padding: 10pt;
-}
-
-A IMG {
-  border: none;
-}
-
-A:link:hover IMG {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
-}
-
-A:link, A:visited {
-  font-weight: inherit;
-  text-decoration: none;
-}
-
-A:link:hover, A:visited:hover, A:active {
-  text-decoration: underline;
-}
-
-SUB, SUP {
-  font-size: 50%;
-}
-
-TR.data, TD.data, TR.data TD {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-TR.data TH {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-DIV.table TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table CAPTION {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table TABLE TD {
-  border: solid thin #cccccc;
-  padding-top: 5pt;
-}
-
-DIV.table TABLE TH {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-DIV.figure TABLE {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.figure CAPTION {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-TH.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-TH.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-HR {
-  border: solid thin;
-}
-
-SPAN.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
-  float: right;
-  font-size: 100%;
-}
-
-H1.title {
-}
-
-H2.title, H3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-DIV.indent, TABLE.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.indent {
-  border-collapse: collapse;
-}
-
-TABLE.indent TD, TABLE.indent TH {
-  padding: 0;
-}
-
-TABLE.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.list TH {
-  background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
-}
-
-TABLE.list TH A {
-  color: #4444cc;
-}
-
-TABLE.list TD {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
-}
-
-TABLE.list TR:nth-child(even) {
-  background: #f8f8f8;
-}
-
-TABLE.list TR:nth-child(odd) {
-  background: #f4f4f4;
-}
-
-DT {
-  margin-left: 36pt;
-  margin-top: 12pt;
-}
-
-DD {
-  margin-left: 54pt;
-}
-
-DL.category DT {
-  font-weight: bold;
-}
-
-P.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-DIV.summary TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-DIV.summary TABLE TD, DIV.summary TABLE TH {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-DIV.summary TABLE THEAD TH {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
-  margin: 0;
-}
-div.body h2 {
-  margin-top: 1.5em;
-}
-div.body h3, div.body h4, div.body h5 {
-  margin-bottom: 0.5em;
-  margin-top: 1.5em;
-}
-.class, .enumeration, .function, .struct, .typedef, .union {
-  border-bottom: solid thin #999999;
-  margin-bottom: 0;
-  margin-top: 2em;
-}
-.description {
-  margin-top: 0.5em;
-}
-code, p.code, pre, ul.code li {
-  font-family: monaco, courier, monospace;
-  font-size: 90%;
-}
-ul.code, ul.contents, ul.subcontents {
-  list-style-type: none;
-  margin: 0;
-  padding-left: 0;
-}
-ul.code li {
-  margin: 0;
-}
-ul.contents > li {
-  margin-top: 1em;
-}
-ul.contents li ul.code, ul.contents li ul.subcontents {
-  padding-left: 2em;
-}
-div.body dl {
-  margin-left: 0;
-  margin-top: 0;
-}
-div.body dt {
-  font-style: italic;
-  margin-left: 0;
-  margin-top: 0;
-}
-div.body dd {
-  margin-bottom: 0.5em;
-}
-
-/* This is just for the HTML files generated with the framedhelp target */
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
-  font-size: 110%;
-}
-div.contents h2 {
-  font-size: 100%;
-}
-div.contents ul.contents {
-  font-size: 80%;
-}
-div.contents ul.subcontents li {
-  margin-left: 1em;
-  text-indent: -1em;
-}
---></style>
-</head>
-<body>
-<div class='body'>
-<!--
-  MIME API header for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h1 class='title'>MIME API</h1>
-
-<div class='summary'><table summary='General Information'>
-<thead>
-<tr>
-       <th>Header</th>
-       <th>cups/mime.h</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-       <th>Library</th>
-       <td>-lcupsmime</td>
-</tr>
-<tr>
-       <th>See Also</th>
-       <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a></td>
-</tr>
-</tbody>
-</table></div>
-<h2 class="title">Contents</h2>
-<ul class="contents">
-<li><a href="#OVERVIEW">Overview</a></li>
-<li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#mimeAddFilter" title="Add a filter to the current MIME database.">mimeAddFilter</a></li>
-       <li><a href="#mimeAddType" title="Add a MIME type to a database.">mimeAddType</a></li>
-       <li><a href="#mimeAddTypeRule" title="Add a detection rule for a file type.">mimeAddTypeRule</a></li>
-       <li><a href="#mimeDelete" title="Delete (free) a MIME database.">mimeDelete</a></li>
-       <li><a href="#mimeDeleteFilter" title="Delete a filter from the MIME database.">mimeDeleteFilter</a></li>
-       <li><a href="#mimeDeleteType" title="Delete a type from the MIME database.">mimeDeleteType</a></li>
-       <li><a href="#mimeFileType" title="Determine the type of a file.">mimeFileType</a></li>
-       <li><a href="#mimeFilter" title="Find the fastest way to convert from one type to another.">mimeFilter</a></li>
-       <li><a href="#mimeFilter2" title="Find the fastest way to convert from one type to another,
-including file size.">mimeFilter2</a></li>
-       <li><a href="#mimeFilterLookup" title="Lookup a filter.">mimeFilterLookup</a></li>
-       <li><a href="#mimeFirstFilter" title="Get the first filter in the MIME database.">mimeFirstFilter</a></li>
-       <li><a href="#mimeFirstType" title="Get the first type in the MIME database.">mimeFirstType</a></li>
-       <li><a href="#mimeLoad" title="Create a new MIME database from disk.">mimeLoad</a></li>
-       <li><a href="#mimeLoadFilters" title="Load filter definitions from disk.">mimeLoadFilters</a></li>
-       <li><a href="#mimeLoadTypes" title="Load type definitions from disk.">mimeLoadTypes</a></li>
-       <li><a href="#mimeNew" title="Create a new, empty MIME database.">mimeNew</a></li>
-       <li><a href="#mimeNextFilter" title="Get the next filter in the MIME database.">mimeNextFilter</a></li>
-       <li><a href="#mimeNextType" title="Get the next type in the MIME database.">mimeNextType</a></li>
-       <li><a href="#mimeNumFilters" title="Next type">mimeNumFilters</a></li>
-       <li><a href="#mimeNumTypes" title="MIME database">mimeNumTypes</a></li>
-       <li><a href="#mimeSetErrorCallback" title="Set the callback for error messages.">mimeSetErrorCallback</a></li>
-       <li><a href="#mimeType" title="Lookup a file type.">mimeType</a></li>
-</ul></li>
-<li><a href="#TYPES">Data Types</a><ul class="code">
-       <li><a href="#const" title="MIME Database">const</a></li>
-       <li><a href="#mime_filter_t" title="MIME Conversion Filter Data">mime_filter_t</a></li>
-       <li><a href="#mime_magic_t" title="MIME Magic Data">mime_magic_t</a></li>
-       <li><a href="#mime_op_t" title="Types/structures...">mime_op_t</a></li>
-       <li><a href="#mime_t" title="MIME Database">mime_t</a></li>
-       <li><a href="#mime_type_t" title="MIME Type Data">mime_type_t</a></li>
-</ul></li>
-</ul>
-<!--
-  MIME API introduction for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
-
-<p>The MIME API provides file typing and conversion services for CUPS.</p>
-<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
-<h3 class="function"><a name="mimeAddFilter">mimeAddFilter</a></h3>
-<p class="description">Add a filter to the current MIME database.</p>
-<p class="code">
-<a href="#mime_filter_t">mime_filter_t</a> *mimeAddFilter (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *src,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *dst,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int cost,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *filter<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>src</dt>
-<dd class="description">Source type</dd>
-<dt>dst</dt>
-<dd class="description">Destination type</dd>
-<dt>cost</dt>
-<dd class="description">Relative time/resource cost</dd>
-<dt>filter</dt>
-<dd class="description">Filter program to run</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">New filter</p>
-<h3 class="function"><a name="mimeAddType">mimeAddType</a></h3>
-<p class="description">Add a MIME type to a database.</p>
-<p class="code">
-<a href="#mime_type_t">mime_type_t</a> *mimeAddType (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *super,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *type<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>super</dt>
-<dd class="description">Super-type name</dd>
-<dt>type</dt>
-<dd class="description">Type name</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">New (or existing) MIME type</p>
-<h3 class="function"><a name="mimeAddTypeRule">mimeAddTypeRule</a></h3>
-<p class="description">Add a detection rule for a file type.</p>
-<p class="code">
-int mimeAddTypeRule (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *mt,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *rule<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mt</dt>
-<dd class="description">Type to add to</dd>
-<dt>rule</dt>
-<dd class="description">Rule to add</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">0 on success, -1 on failure</p>
-<h3 class="function"><a name="mimeDelete">mimeDelete</a></h3>
-<p class="description">Delete (free) a MIME database.</p>
-<p class="code">
-void mimeDelete (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-</dl>
-<h3 class="function"><a name="mimeDeleteFilter">mimeDeleteFilter</a></h3>
-<p class="description">Delete a filter from the MIME database.</p>
-<p class="code">
-void mimeDeleteFilter (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_filter_t">mime_filter_t</a> *filter<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>filter</dt>
-<dd class="description">Filter</dd>
-</dl>
-<h3 class="function"><a name="mimeDeleteType">mimeDeleteType</a></h3>
-<p class="description">Delete a type from the MIME database.</p>
-<p class="code">
-void mimeDeleteType (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *mt<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>mt</dt>
-<dd class="description">Type</dd>
-</dl>
-<h3 class="function"><a name="mimeFileType">mimeFileType</a></h3>
-<p class="description">Determine the type of a file.</p>
-<p class="code">
-<a href="#mime_type_t">mime_type_t</a> *mimeFileType (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *pathname,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *filename,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int *compression<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>pathname</dt>
-<dd class="description">Name of file to check on disk</dd>
-<dt>filename</dt>
-<dd class="description">Original filename or NULL</dd>
-<dt>compression</dt>
-<dd class="description">Is the file compressed?</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Type of file</p>
-<h3 class="function"><a name="mimeFilter">mimeFilter</a></h3>
-<p class="description">Find the fastest way to convert from one type to another.</p>
-<p class="code">
-cups_array_t *mimeFilter (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *src,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *dst,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int *cost<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>src</dt>
-<dd class="description">Source file type</dd>
-<dt>dst</dt>
-<dd class="description">Destination file type</dd>
-<dt>cost</dt>
-<dd class="description">Cost of filters</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Array of filters to run</p>
-<h3 class="function"><a name="mimeFilter2">mimeFilter2</a></h3>
-<p class="description">Find the fastest way to convert from one type to another,
-including file size.</p>
-<p class="code">
-cups_array_t *mimeFilter2 (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *src,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;size_t srcsize,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *dst,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int *cost<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>src</dt>
-<dd class="description">Source file type</dd>
-<dt>srcsize</dt>
-<dd class="description">Size of source file</dd>
-<dt>dst</dt>
-<dd class="description">Destination file type</dd>
-<dt>cost</dt>
-<dd class="description">Cost of filters</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Array of filters to run</p>
-<h3 class="function"><a name="mimeFilterLookup">mimeFilterLookup</a></h3>
-<p class="description">Lookup a filter.</p>
-<p class="code">
-<a href="#mime_filter_t">mime_filter_t</a> *mimeFilterLookup (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *src,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_type_t">mime_type_t</a> *dst<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>src</dt>
-<dd class="description">Source type</dd>
-<dt>dst</dt>
-<dd class="description">Destination type</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Filter for src-&gt;dst</p>
-<h3 class="function"><a name="mimeFirstFilter">mimeFirstFilter</a></h3>
-<p class="description">Get the first filter in the MIME database.</p>
-<p class="code">
-<a href="#mime_filter_t">mime_filter_t</a> *mimeFirstFilter (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Filter or NULL</p>
-<h3 class="function"><a name="mimeFirstType">mimeFirstType</a></h3>
-<p class="description">Get the first type in the MIME database.</p>
-<p class="code">
-<a href="#mime_type_t">mime_type_t</a> *mimeFirstType (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Type or NULL</p>
-<h3 class="function"><a name="mimeLoad">mimeLoad</a></h3>
-<p class="description">Create a new MIME database from disk.</p>
-<p class="code">
-<a href="#mime_t">mime_t</a> *mimeLoad (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *pathname,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *filterpath<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>pathname</dt>
-<dd class="description">Directory to load</dd>
-<dt>filterpath</dt>
-<dd class="description">Directory to load</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">New MIME database</p>
-<h4 class="discussion">Discussion</h4>
-<p class="discussion">This function uses <a href="#mimeLoadFilters"><code>mimeLoadFilters</code></a> and <a href="#mimeLoadTypes"><code>mimeLoadTypes</code></a> to
-create a MIME database from a single directory.</p>
-<h3 class="function"><a name="mimeLoadFilters">mimeLoadFilters</a></h3>
-<p class="description">Load filter definitions from disk.</p>
-<p class="code">
-<a href="#mime_t">mime_t</a> *mimeLoadFilters (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *pathname,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *filterpath<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>pathname</dt>
-<dd class="description">Directory to load from</dd>
-<dt>filterpath</dt>
-<dd class="description">Default filter program directory</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">MIME database</p>
-<h4 class="discussion">Discussion</h4>
-<p class="discussion">This function loads all of the .convs files from the specified directory.
-Use <a href="#mimeLoadTypes"><code>mimeLoadTypes</code></a> to load all types before you load the filters.</p>
-<h3 class="function"><a name="mimeLoadTypes">mimeLoadTypes</a></h3>
-<p class="description">Load type definitions from disk.</p>
-<p class="code">
-<a href="#mime_t">mime_t</a> *mimeLoadTypes (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *pathname<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database or <code>NULL</code> to create a new one</dd>
-<dt>pathname</dt>
-<dd class="description">Directory to load from</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">MIME database</p>
-<h4 class="discussion">Discussion</h4>
-<p class="discussion">This function loads all of the .types files from the specified directory.
-Use <a href="#mimeLoadFilters"><code>mimeLoadFilters</code></a> to load all filters after you load the types.</p>
-<h3 class="function"><a name="mimeNew">mimeNew</a></h3>
-<p class="description">Create a new, empty MIME database.</p>
-<p class="code">
-<a href="#mime_t">mime_t</a> *mimeNew (void);</p>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">MIME database</p>
-<h3 class="function"><a name="mimeNextFilter">mimeNextFilter</a></h3>
-<p class="description">Get the next filter in the MIME database.</p>
-<p class="code">
-<a href="#mime_filter_t">mime_filter_t</a> *mimeNextFilter (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Filter or NULL</p>
-<h3 class="function"><a name="mimeNextType">mimeNextType</a></h3>
-<p class="description">Get the next type in the MIME database.</p>
-<p class="code">
-<a href="#mime_type_t">mime_type_t</a> *mimeNextType (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Type or NULL</p>
-<h3 class="function"><a name="mimeNumFilters">mimeNumFilters</a></h3>
-<p class="description">Next type</p>
-<p class="code">
-int mimeNumFilters (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Get the number of filters in a MIME database.</p>
-<h3 class="function"><a name="mimeNumTypes">mimeNumTypes</a></h3>
-<p class="description">MIME database</p>
-<p class="code">
-int mimeNumTypes (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Get the number of types in a MIME database.</p>
-<h3 class="function"><a name="mimeSetErrorCallback">mimeSetErrorCallback</a></h3>
-<p class="description">Set the callback for error messages.</p>
-<p class="code">
-void mimeSetErrorCallback (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;mime_error_cb_t cb,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void *ctx<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>cb</dt>
-<dd class="description">Callback function</dd>
-<dt>ctx</dt>
-<dd class="description">Context pointer for callback</dd>
-</dl>
-<h3 class="function"><a name="mimeType">mimeType</a></h3>
-<p class="description">Lookup a file type.</p>
-<p class="code">
-<a href="#mime_type_t">mime_type_t</a> *mimeType (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mime_t">mime_t</a> *mime,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *super,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#const">const</a> char *type<br>
-);</p>
-<h4 class="parameters">Parameters</h4>
-<dl>
-<dt>mime</dt>
-<dd class="description">MIME database</dd>
-<dt>super</dt>
-<dd class="description">Super-type name</dd>
-<dt>type</dt>
-<dd class="description">Type name</dd>
-</dl>
-<h4 class="returnvalue">Return Value</h4>
-<p class="description">Matching file type definition</p>
-<h2 class="title"><a name="TYPES">Data Types</a></h2>
-<h3 class="typedef"><a name="const">const</a></h3>
-<p class="description">MIME Database</p>
-<p class="code">
-typedef void (*constmime_error_cb_t)(void *;
-</p>
-<h3 class="typedef"><a name="mime_filter_t">mime_filter_t</a></h3>
-<p class="description">MIME Conversion Filter Data</p>
-<p class="code">
-typedef struct _mime_filter_s mime_filter_t;
-</p>
-<h3 class="typedef"><a name="mime_magic_t">mime_magic_t</a></h3>
-<p class="description">MIME Magic Data</p>
-<p class="code">
-typedef struct _mime_magic_s mime_magic_t;
-</p>
-<h3 class="typedef"><a name="mime_op_t">mime_op_t</a></h3>
-<p class="description">Types/structures...</p>
-<p class="code">
-typedef enum mime_op_t;
-</p>
-<h3 class="typedef"><a name="mime_t">mime_t</a></h3>
-<p class="description">MIME Database</p>
-<p class="code">
-typedef struct _mime_s mime_t;
-</p>
-<h3 class="typedef"><a name="mime_type_t">mime_type_t</a></h3>
-<p class="description">MIME Type Data</p>
-<p class="code">
-typedef struct _mime_type_s mime_type_t;
-</p>
-</div>
-</body>
-</html>
diff --git a/doc/help/api-ppdc.html b/doc/help/api-ppdc.html
deleted file mode 100644 (file)
index bfdf099..0000000
+++ /dev/null
@@ -1,2208 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<!-- SECTION: Programming -->
-<head>
-       <title>PPD Compiler API </title>
-       <meta name="keywords" content="Programming">
-       <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-       <meta name="creator" content="Mini-XML v2.7">
-<style type="text/css"><!--
-BODY {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-H1, H2, H3, H4, H5, H6, P, TD, TH {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-KBD {
-  font-family: monaco, courier, monospace;
-  font-weight: bold;
-}
-
-PRE {
-  font-family: monaco, courier, monospace;
-}
-
-PRE.command {
-  border: dotted thin #7f7f7f;
-  margin-left: 36pt;
-  padding: 10px;
-}
-
-P.compact {
-  margin: 0;
-}
-
-P.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-DL.man DD {
-  margin-left: 5em;
-}
-
-DL.man DT {
-  margin-left: 0;
-}
-
-PRE.man {
-  margin: 0;
-}
-
-PRE.example {
-  background: #eeeeee;
-  border: dotted thin #999999;
-  margin-left: 36pt;
-  padding: 10pt;
-}
-
-PRE.command EM, PRE.example EM {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-P.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-P.formula {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-BLOCKQUOTE {
-  background: #eeeeee;
-  border: solid thin #999999;
-  padding: 10pt;
-}
-
-A IMG {
-  border: none;
-}
-
-A:link:hover IMG {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
-}
-
-A:link, A:visited {
-  font-weight: inherit;
-  text-decoration: none;
-}
-
-A:link:hover, A:visited:hover, A:active {
-  text-decoration: underline;
-}
-
-SUB, SUP {
-  font-size: 50%;
-}
-
-TR.data, TD.data, TR.data TD {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-TR.data TH {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-DIV.table TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table CAPTION {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table TABLE TD {
-  border: solid thin #cccccc;
-  padding-top: 5pt;
-}
-
-DIV.table TABLE TH {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-DIV.figure TABLE {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.figure CAPTION {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-TH.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-TH.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-HR {
-  border: solid thin;
-}
-
-SPAN.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
-  float: right;
-  font-size: 100%;
-}
-
-H1.title {
-}
-
-H2.title, H3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-DIV.indent, TABLE.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.indent {
-  border-collapse: collapse;
-}
-
-TABLE.indent TD, TABLE.indent TH {
-  padding: 0;
-}
-
-TABLE.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.list TH {
-  background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
-}
-
-TABLE.list TH A {
-  color: #4444cc;
-}
-
-TABLE.list TD {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
-}
-
-TABLE.list TR:nth-child(even) {
-  background: #f8f8f8;
-}
-
-TABLE.list TR:nth-child(odd) {
-  background: #f4f4f4;
-}
-
-DT {
-  margin-left: 36pt;
-  margin-top: 12pt;
-}
-
-DD {
-  margin-left: 54pt;
-}
-
-DL.category DT {
-  font-weight: bold;
-}
-
-P.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-DIV.summary TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-DIV.summary TABLE TD, DIV.summary TABLE TH {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-DIV.summary TABLE THEAD TH {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
-  margin: 0;
-}
-div.body h2 {
-  margin-top: 1.5em;
-}
-div.body h3, div.body h4, div.body h5 {
-  margin-bottom: 0.5em;
-  margin-top: 1.5em;
-}
-.class, .enumeration, .function, .struct, .typedef, .union {
-  border-bottom: solid thin #999999;
-  margin-bottom: 0;
-  margin-top: 2em;
-}
-.description {
-  margin-top: 0.5em;
-}
-code, p.code, pre, ul.code li {
-  font-family: monaco, courier, monospace;
-  font-size: 90%;
-}
-ul.code, ul.contents, ul.subcontents {
-  list-style-type: none;
-  margin: 0;
-  padding-left: 0;
-}
-ul.code li {
-  margin: 0;
-}
-ul.contents > li {
-  margin-top: 1em;
-}
-ul.contents li ul.code, ul.contents li ul.subcontents {
-  padding-left: 2em;
-}
-div.body dl {
-  margin-left: 0;
-  margin-top: 0;
-}
-div.body dt {
-  font-style: italic;
-  margin-left: 0;
-  margin-top: 0;
-}
-div.body dd {
-  margin-bottom: 0.5em;
-}
-
-/* This is just for the HTML files generated with the framedhelp target */
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
-  font-size: 110%;
-}
-div.contents h2 {
-  font-size: 100%;
-}
-div.contents ul.contents {
-  font-size: 80%;
-}
-div.contents ul.subcontents li {
-  margin-left: 1em;
-  text-indent: -1em;
-}
---></style>
-</head>
-<body>
-<div class='body'>
-<!--
-  PPD Compiler API header for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h1 class='title'>PPD Compiler API</h1>
-
-<div class='summary'><table summary='General Information'>
-<thead>
-<tr>
-       <th>Header</th>
-       <th>cups/ppdc.h</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-       <th>Library</th>
-       <td>-lcupsppdc</td>
-</tr>
-<tr>
-       <th>See Also</th>
-       <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a></td>
-</tr>
-</tbody>
-</table></div>
-<h2 class="title">Contents</h2>
-<ul class="contents">
-<li><a href="#OVERVIEW">Overview</a></li>
-<li><a href="#CLASSES">Classes</a><ul class="code">
-       <li><a href="#ppdcArray" title="// Shared Array">ppdcArray</a></li>
-       <li><a href="#ppdcAttr" title="// Attribute">ppdcAttr</a></li>
-       <li><a href="#ppdcCatalog" title="// Translation catalog">ppdcCatalog</a></li>
-       <li><a href="#ppdcChoice" title="// Option Choice">ppdcChoice</a></li>
-       <li><a href="#ppdcConstraint" title="// Constraint">ppdcConstraint</a></li>
-       <li><a href="#ppdcDriver" title="// Printer Driver Data">ppdcDriver</a></li>
-       <li><a href="#ppdcFile" title="// File">ppdcFile</a></li>
-       <li><a href="#ppdcFilter" title="// Filter Program">ppdcFilter</a></li>
-       <li><a href="#ppdcFont" title="// Shared Font">ppdcFont</a></li>
-       <li><a href="#ppdcGroup" title="// Group of Options">ppdcGroup</a></li>
-       <li><a href="#ppdcInteger" title="// Shared integer">ppdcInteger</a></li>
-       <li><a href="#ppdcMediaSize" title="// Media Size">ppdcMediaSize</a></li>
-       <li><a href="#ppdcMessage" title="// Translation message">ppdcMessage</a></li>
-       <li><a href="#ppdcOption" title="// Option">ppdcOption</a></li>
-       <li><a href="#ppdcProfile" title="// Color Profile">ppdcProfile</a></li>
-       <li><a href="#ppdcShared" title="// Shared Data Value">ppdcShared</a></li>
-       <li><a href="#ppdcSource" title="// Source File">ppdcSource</a></li>
-       <li><a href="#ppdcString" title="// Shared String">ppdcString</a></li>
-       <li><a href="#ppdcVariable" title="// Variable Definition">ppdcVariable</a></li>
-</ul></li>
-<li><a href="#TYPES">Data Types</a><ul class="code">
-       <li><a href="#ppdc_cs_t" title="">ppdc_cs_t</a></li>
-</ul></li>
-<li><a href="#VARIABLES">Variables</a><ul class="code">
-       <li><a href="#ppdcSource" title="// Printer Driver Data">ppdcSource</a></li>
-</ul></li>
-<li><a href="#ENUMERATIONS">Constants</a><ul class="code">
-       <li><a href="#ppdcCondFlags" title="// Condition flags">ppdcCondFlags</a></li>
-       <li><a href="#ppdcDrvType" title="// Driver type">ppdcDrvType</a></li>
-       <li><a href="#ppdcFontStatus" title="// Load status of font">ppdcFontStatus</a></li>
-       <li><a href="#ppdcLineEnding" title="// Line endings">ppdcLineEnding</a></li>
-       <li><a href="#ppdcOptSection" title="// Option section">ppdcOptSection</a></li>
-       <li><a href="#ppdcOptType" title="// Option type">ppdcOptType</a></li>
-</ul></li>
-</ul>
-<!--
-  PPD Compiler API introduction for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
-
-<p>The PPD Compiler API provides access to CUPS driver information files and
-methods for generating and importing PPD files.</p>
-<h2 class="title"><a name="CLASSES">Classes</a></h2>
-<h3 class="class"><a name="ppdcArray">ppdcArray</a></h3>
-<p class="description">// Shared Array</p>
-<p class="code">class ppdcArray : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int count, alloc, current;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcShared">ppdcShared</a> **data;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>current </dt>
-<dd class="description">Current element</dd>
-<dt>data </dt>
-<dd class="description">Elements</dd>
-</dl>
-<h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
-<p class="description"></p>
-<p class="code">
-void PPDC_NAME (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void add(<a href="#ppdcShared">ppdcShared</a> *d<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>d</dt>
-</dl>
-<h4 class="method"><a name="add">add</a></h4>
-<p class="description"></p>
-<p class="code">
-void add (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcShared">ppdcShared</a> *d<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>d</dt>
-</dl>
-<h4 class="method"><a name="first">first</a></h4>
-<p class="description">Return the first element in the array.</p>
-<p class="code">
-<a href="#ppdcShared">ppdcShared</a> *first (void);</p>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description"></p>
-<h4 class="method"><a name="next">next</a></h4>
-<p class="description">Return the next element in the array.</p>
-<p class="code">
-<a href="#ppdcShared">ppdcShared</a> *next (void);</p>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description"></p>
-<h4 class="method"><a name="ppdcArray">ppdcArray</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcArray (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *a<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>a</dt>
-</dl>
-<h4 class="method"><a name="remove">remove</a></h4>
-<p class="description"></p>
-<p class="code">
-void remove (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcShared">ppdcShared</a> *d<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>d</dt>
-<dd class="description">Data element</dd>
-</dl>
-<h4 class="method"><a name="~ppdcArray">~ppdcArray</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcArray (void);</p>
-<h3 class="class"><a name="ppdcAttr">ppdcAttr</a></h3>
-<p class="description">// Attribute</p>
-<p class="code">class ppdcAttr : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;bool localizable;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *selector, *text, *value;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>localizable </dt>
-<dd class="description">Should this attribute be localized?</dd>
-<dt>value </dt>
-<dd class="description">Value string</dd>
-</dl>
-<h4 class="method"><a name="ppdcAttr">ppdcAttr</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcAttr (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *s,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *t,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *v,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;bool loc<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Name</dd>
-<dt>s</dt>
-<dd class="description">Spec string</dd>
-<dt>t</dt>
-<dd class="description">Human-readable text</dd>
-<dt>v</dt>
-<dd class="description">Value</dd>
-<dt>loc</dt>
-<dd class="description">Localize this attribute?</dd>
-</dl>
-<h4 class="method"><a name="~ppdcAttr">~ppdcAttr</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcAttr (void);</p>
-<h3 class="class"><a name="ppdcCatalog">ppdcCatalog</a></h3>
-<p class="description">// Translation catalog</p>
-<p class="code">class ppdcCatalog : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *filename;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *locale;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *messages;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>filename </dt>
-<dd class="description">Name of translation file</dd>
-<dt>locale </dt>
-<dd class="description">Name of locale</dd>
-<dt>messages </dt>
-<dd class="description">Array of translation messages</dd>
-</dl>
-<h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
-<p class="description"></p>
-<p class="code">
-void PPDC_NAME (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void add_message(const char *id,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *string = NULL<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>id</dt>
-<dt>string</dt>
-</dl>
-<h4 class="method"><a name="add_message">add_message</a></h4>
-<p class="description"></p>
-<p class="code">
-void add_message (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *id,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *string<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>id</dt>
-<dd class="description">Message ID to add</dd>
-<dt>string</dt>
-<dd class="description">Translation string</dd>
-</dl>
-<h4 class="method"><a name="find_message">find_message</a></h4>
-<p class="description"></p>
-<p class="code">
-const char *find_message (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *id<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>id</dt>
-<dd class="description">Message ID</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Message text</p>
-<h4 class="method"><a name="load_messages">load_messages</a></h4>
-<p class="description"></p>
-<p class="code">
-int load_messages (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">Message catalog file</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">0 on success, -1 on failure</p>
-<h4 class="method"><a name="ppdcCatalog">ppdcCatalog</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcCatalog (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *l,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>l</dt>
-<dd class="description">Locale</dd>
-<dt>f</dt>
-<dd class="description">Message catalog file</dd>
-</dl>
-<h4 class="method"><a name="save_messages">save_messages</a></h4>
-<p class="description"></p>
-<p class="code">
-int save_messages (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">File to save to</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">0 on success, -1 on error</p>
-<h4 class="method"><a name="~ppdcCatalog">~ppdcCatalog</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcCatalog (void);</p>
-<h3 class="class"><a name="ppdcChoice">ppdcChoice</a></h3>
-<p class="description">// Option Choice</p>
-<p class="code">class ppdcChoice : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *text, *code;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>code </dt>
-<dd class="description">PS code of choice</dd>
-</dl>
-<h4 class="method"><a name="ppdcChoice">ppdcChoice</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcChoice (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *t,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *c<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Name of choice</dd>
-<dt>t</dt>
-<dd class="description">Text of choice</dd>
-<dt>c</dt>
-<dd class="description">Code of choice</dd>
-</dl>
-<h4 class="method"><a name="~ppdcChoice">~ppdcChoice</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcChoice (void);</p>
-<h3 class="class"><a name="ppdcConstraint">ppdcConstraint</a></h3>
-<p class="description">// Constraint</p>
-<p class="code">class ppdcConstraint : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *option1, *choice1, *option2, *choice2;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>choice2 </dt>
-<dd class="description">Second choice</dd>
-</dl>
-<h4 class="method"><a name="ppdcConstraint">ppdcConstraint</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcConstraint (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *o1,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *c1,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *o2,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *c2<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>o1</dt>
-<dd class="description">First option</dd>
-<dt>c1</dt>
-<dd class="description">First choice</dd>
-<dt>o2</dt>
-<dd class="description">Second option</dd>
-<dt>c2</dt>
-<dd class="description">Second choice</dd>
-</dl>
-<h4 class="method"><a name="~ppdcConstraint">~ppdcConstraint</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcConstraint (void);</p>
-<h3 class="class"><a name="ppdcDriver">ppdcDriver</a></h3>
-<p class="description">// Printer Driver Data</p>
-<p class="code">class ppdcDriver : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *copyright;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *custom_size_code;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *default_font, *default_size;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float left_margin, bottom_margin, right_margin, top_margin, max_width, max_length, min_width, min_length;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *attrs, *constraints, *filters, *fonts, *groups, *profiles, *sizes;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int model_number, manual_copies, color_device, throughput;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDrvType">ppdcDrvType</a> type;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int variable_paper_size;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *manufacturer, *model_name, *file_name, *pc_file_name, *version;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>copyright </dt>
-<dd class="description">Copyright strings</dd>
-<dt>custom_size_code </dt>
-<dd class="description">Custom page size code, if any</dd>
-<dt>default_size </dt>
-<dd class="description">Default size option</dd>
-<dt>min_length </dt>
-<dd class="description">Minimum length (points)</dd>
-<dt>sizes </dt>
-<dd class="description">Fixed sizes</dd>
-<dt>throughput </dt>
-<dd class="description">Throughput in pages per minute</dd>
-<dt>type </dt>
-<dd class="description">Driver type</dd>
-<dt>variable_paper_size </dt>
-<dd class="description">Support variable sizes?</dd>
-<dt>version </dt>
-<dd class="description">Version number</dd>
-</dl>
-<h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
-<p class="description"></p>
-<p class="code">
-void PPDC_NAME (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void add_attr(<a href="#ppdcAttr">ppdcAttr</a> *a<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>a</dt>
-</dl>
-<h4 class="method"><a name="add_constraint">add_constraint</a></h4>
-<p class="description"></p>
-<p class="code">
-void add_constraint (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcConstraint">ppdcConstraint</a> *c<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>c</dt>
-</dl>
-<h4 class="method"><a name="add_copyright">add_copyright</a></h4>
-<p class="description"></p>
-<p class="code">
-void add_copyright (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *c<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>c</dt>
-</dl>
-<h4 class="method"><a name="add_filter">add_filter</a></h4>
-<p class="description"></p>
-<p class="code">
-void add_filter (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFilter">ppdcFilter</a> *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-</dl>
-<h4 class="method"><a name="add_font">add_font</a></h4>
-<p class="description"></p>
-<p class="code">
-void add_font (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFont">ppdcFont</a> *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-</dl>
-<h4 class="method"><a name="add_group">add_group</a></h4>
-<p class="description"></p>
-<p class="code">
-void add_group (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcGroup">ppdcGroup</a> *g<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>g</dt>
-</dl>
-<h4 class="method"><a name="add_profile">add_profile</a></h4>
-<p class="description"></p>
-<p class="code">
-void add_profile (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcProfile">ppdcProfile</a> *p<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>p</dt>
-</dl>
-<h4 class="method"><a name="add_size">add_size</a></h4>
-<p class="description"></p>
-<p class="code">
-void add_size (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcMediaSize">ppdcMediaSize</a> *m<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>m</dt>
-</dl>
-<h4 class="method"><a name="find_attr">find_attr</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcAttr">ppdcAttr</a> *find_attr (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *k,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *s<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>k</dt>
-<dd class="description">Keyword string</dd>
-<dt>s</dt>
-<dd class="description">Spec string</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Attribute or NULL</p>
-<h4 class="method"><a name="find_group">find_group</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcGroup">ppdcGroup</a> *find_group (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Group name</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Matching group or NULL</p>
-<h4 class="method"><a name="find_option">find_option</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcOption">ppdcOption</a> *find_option (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Option name</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Matching option or NULL</p>
-<h4 class="method"><a name="find_option_group">find_option_group</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcOption">ppdcOption</a> *find_option_group (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcGroup">ppdcGroup</a> **mg<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Option name</dd>
-<dt>mg</dt>
-<dd class="description">Matching group or NULL</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Matching option or NULL</p>
-<h4 class="method"><a name="ppdcDriver">ppdcDriver</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcDriver (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *d<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>d</dt>
-<dd class="description">Printer driver template</dd>
-</dl>
-<h4 class="method"><a name="set_custom_size_code">set_custom_size_code</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_custom_size_code (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *c<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>c</dt>
-<dd class="description">CustomPageSize code</dd>
-</dl>
-<h4 class="method"><a name="set_default_font">set_default_font</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_default_font (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFont">ppdcFont</a> *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">Font</dd>
-</dl>
-<h4 class="method"><a name="set_default_size">set_default_size</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_default_size (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcMediaSize">ppdcMediaSize</a> *m<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>m</dt>
-<dd class="description">Media size</dd>
-</dl>
-<h4 class="method"><a name="set_file_name">set_file_name</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_file_name (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">Filename</dd>
-</dl>
-<h4 class="method"><a name="set_manufacturer">set_manufacturer</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_manufacturer (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *m<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>m</dt>
-<dd class="description">Model name</dd>
-</dl>
-<h4 class="method"><a name="set_model_name">set_model_name</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_model_name (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *m<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>m</dt>
-<dd class="description">Model name</dd>
-</dl>
-<h4 class="method"><a name="set_pc_file_name">set_pc_file_name</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_pc_file_name (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">Filename</dd>
-</dl>
-<h4 class="method"><a name="set_version">set_version</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_version (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *v<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>v</dt>
-<dd class="description">Version</dd>
-</dl>
-<h4 class="method"><a name="write_ppd_file">write_ppd_file</a></h4>
-<p class="description"></p>
-<p class="code">
-int write_ppd_file (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *fp,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcCatalog">ppdcCatalog</a> *catalog,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *locales,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcSource">ppdcSource</a> *src,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcLineEnding">ppdcLineEnding</a> le<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">PPD file</dd>
-<dt>catalog</dt>
-<dd class="description">Message catalog</dd>
-<dt>locales</dt>
-<dd class="description">Additional languages to add</dd>
-<dt>src</dt>
-<dd class="description">Driver source</dd>
-<dt>le</dt>
-<dd class="description">Line endings to use</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">0 on success, -1 on failure</p>
-<h4 class="method"><a name="~ppdcDriver">~ppdcDriver</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcDriver (void);</p>
-<h3 class="class"><a name="ppdcFile">ppdcFile</a></h3>
-<p class="description">// File</p>
-<p class="code">class ppdcFile {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;bool close_on_delete;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *filename;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *fp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int line;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>close_on_delete </dt>
-<dd class="description">Close file on delete?</dd>
-<dt>filename </dt>
-<dd class="description">Filename</dd>
-<dt>fp </dt>
-<dd class="description">File pointer</dd>
-<dt>line </dt>
-<dd class="description">Line in file</dd>
-</dl>
-<h4 class="method"><a name="get">get</a></h4>
-<p class="description">Get a character from a file.</p>
-<p class="code">
-int get (void);</p>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description"></p>
-<h4 class="method"><a name="peek">peek</a></h4>
-<p class="description"></p>
-<p class="code">
-int peek (void);</p>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Next character in file</p>
-<h4 class="method"><a name="ppdcFile">ppdcFile</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcFile (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *ffp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">File to open</dd>
-<dt>ffp</dt>
-<dd class="description">File pointer to use</dd>
-</dl>
-<h4 class="method"><a name="~ppdcFile">~ppdcFile</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcFile (void);</p>
-<h3 class="class"><a name="ppdcFilter">ppdcFilter</a></h3>
-<p class="description">// Filter Program</p>
-<p class="code">class ppdcFilter : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int cost;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *mime_type, *program;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>cost </dt>
-<dd class="description">Relative cost of filter</dd>
-<dt>program </dt>
-<dd class="description">Filter program</dd>
-</dl>
-<h4 class="method"><a name="ppdcFilter">ppdcFilter</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcFilter (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *t,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *p,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int c<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>t</dt>
-<dd class="description">MIME type</dd>
-<dt>p</dt>
-<dd class="description">Filter program</dd>
-<dt>c</dt>
-<dd class="description">Relative cost</dd>
-</dl>
-<h4 class="method"><a name="~ppdcFilter">~ppdcFilter</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcFilter (void);</p>
-<h3 class="class"><a name="ppdcFont">ppdcFont</a></h3>
-<p class="description">// Shared Font</p>
-<p class="code">class ppdcFont : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *encoding, *version, *charset;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFontStatus">ppdcFontStatus</a> status;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>charset </dt>
-<dd class="description">Font charset</dd>
-<dt>status </dt>
-<dd class="description">Font status (ROM or Disk)</dd>
-</dl>
-<h4 class="method"><a name="ppdcFont">ppdcFont</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcFont (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *e,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *v,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *c,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFontStatus">ppdcFontStatus</a> s<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Name of font</dd>
-<dt>e</dt>
-<dd class="description">Font encoding</dd>
-<dt>v</dt>
-<dd class="description">Font version</dd>
-<dt>c</dt>
-<dd class="description">Font charset</dd>
-<dt>s</dt>
-<dd class="description">Font status</dd>
-</dl>
-<h4 class="method"><a name="~ppdcFont">~ppdcFont</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcFont (void);</p>
-<h3 class="class"><a name="ppdcGroup">ppdcGroup</a></h3>
-<p class="description">// Group of Options</p>
-<p class="code">class ppdcGroup : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *options;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *text;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>options </dt>
-<dd class="description">Options</dd>
-<dt>text </dt>
-<dd class="description">Human-readable text of option</dd>
-</dl>
-<h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
-<p class="description"></p>
-<p class="code">
-void PPDC_NAME (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void add_option(<a href="#ppdcOption">ppdcOption</a> *o<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>o</dt>
-</dl>
-<h4 class="method"><a name="find_option">find_option</a></h4>
-<p class="description">Find an option in a group.</p>
-<p class="code">
-<a href="#ppdcOption">ppdcOption</a> *find_option (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Name of option</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description"></p>
-<h4 class="method"><a name="ppdcGroup">ppdcGroup</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcGroup (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcGroup">ppdcGroup</a> *g<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>g</dt>
-<dd class="description">Group template</dd>
-</dl>
-<h4 class="method"><a name="~ppdcGroup">~ppdcGroup</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcGroup (void);</p>
-<h3 class="class"><a name="ppdcInteger">ppdcInteger</a></h3>
-<p class="description">// Shared integer</p>
-<p class="code">class ppdcInteger : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int *value;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>value </dt>
-<dd class="description">Integer value</dd>
-</dl>
-<h4 class="method"><a name="ppdcInteger">ppdcInteger</a></h4>
-<p class="description">Integer value</p>
-<p class="code">
-void ppdcInteger (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int *v<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>v</dt>
-</dl>
-<h3 class="class"><a name="ppdcMediaSize">ppdcMediaSize</a></h3>
-<p class="description">// Media Size</p>
-<p class="code">class ppdcMediaSize : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *size_code, *region_code;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *text;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float width, length, left, bottom, right, top;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>region_code </dt>
-<dd class="description">PageRegion code, if any</dd>
-<dt>text </dt>
-<dd class="description">Human-readable text</dd>
-<dt>top </dt>
-<dd class="description">Top limit in points</dd>
-</dl>
-<h4 class="method"><a name="ppdcMediaSize">ppdcMediaSize</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcMediaSize (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *t,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float w,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float l,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float lm,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float bm,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float rm,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float tm,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *sc,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *rc<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Name of media size</dd>
-<dt>t</dt>
-<dd class="description">Text of media size</dd>
-<dt>w</dt>
-<dd class="description">Width in points</dd>
-<dt>l</dt>
-<dd class="description">Length in points</dd>
-<dt>lm</dt>
-<dd class="description">Left margin in points</dd>
-<dt>bm</dt>
-<dd class="description">Bottom margin in points</dd>
-<dt>rm</dt>
-<dd class="description">Right margin in points</dd>
-<dt>tm</dt>
-<dd class="description">Top margin in points</dd>
-<dt>sc</dt>
-<dd class="description">PageSize code, if any</dd>
-<dt>rc</dt>
-<dd class="description">PageRegion code, if any</dd>
-</dl>
-<h4 class="method"><a name="~ppdcMediaSize">~ppdcMediaSize</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcMediaSize (void);</p>
-<h3 class="class"><a name="ppdcMessage">ppdcMessage</a></h3>
-<p class="description">// Translation message</p>
-<p class="code">class ppdcMessage : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *id, *string;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>string </dt>
-<dd class="description">Translation string</dd>
-</dl>
-<h4 class="method"><a name="ppdcMessage">ppdcMessage</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcMessage (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *i,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *s<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>i</dt>
-<dd class="description">ID</dd>
-<dt>s</dt>
-<dd class="description">Text</dd>
-</dl>
-<h4 class="method"><a name="~ppdcMessage">~ppdcMessage</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcMessage (void);</p>
-<h3 class="class"><a name="ppdcOption">ppdcOption</a></h3>
-<p class="description">// Option</p>
-<p class="code">class ppdcOption : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *choices;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *defchoice;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float order;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcOptSection">ppdcOptSection</a> section;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *text;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcOptType">ppdcOptType</a> type;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>choices </dt>
-<dd class="description">Choices</dd>
-<dt>defchoice </dt>
-<dd class="description">Default choice</dd>
-<dt>order </dt>
-<dd class="description">Order number</dd>
-<dt>section </dt>
-<dd class="description">Section for option code</dd>
-<dt>text </dt>
-<dd class="description">Human-readable text of option</dd>
-<dt>type </dt>
-<dd class="description">Type of option</dd>
-</dl>
-<h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
-<p class="description"></p>
-<p class="code">
-void PPDC_NAME (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void add_choice(<a href="#ppdcChoice">ppdcChoice</a> *c<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>c</dt>
-</dl>
-<h4 class="method"><a name="find_choice">find_choice</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcChoice">ppdcChoice</a> *find_choice (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Name of choice</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Choice or NULL</p>
-<h4 class="method"><a name="ppdcOption">ppdcOption</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcOption (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcOption">ppdcOption</a> *o<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>o</dt>
-<dd class="description">Template option</dd>
-</dl>
-<h4 class="method"><a name="set_defchoice">set_defchoice</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_defchoice (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcChoice">ppdcChoice</a> *c<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>c</dt>
-<dd class="description">Choice</dd>
-</dl>
-<h4 class="method"><a name="~ppdcOption">~ppdcOption</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcOption (void);</p>
-<h3 class="class"><a name="ppdcProfile">ppdcProfile</a></h3>
-<p class="description">// Color Profile</p>
-<p class="code">class ppdcProfile : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *resolution, *media_type;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float density, gamma, profile[9];<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>media_type </dt>
-<dd class="description">Media type name</dd>
-<dt>profile[9] </dt>
-<dd class="description">Color profile matrix</dd>
-</dl>
-<h4 class="method"><a name="ppdcProfile">ppdcProfile</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcProfile (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *r,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *m,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float d,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;float g,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const float *p<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>r</dt>
-<dd class="description">Resolution name</dd>
-<dt>m</dt>
-<dd class="description">Media type name</dd>
-<dt>d</dt>
-<dd class="description">Density</dd>
-<dt>g</dt>
-<dd class="description">Gamma</dd>
-<dt>p</dt>
-<dd class="description">3x3 transform matrix</dd>
-</dl>
-<h4 class="method"><a name="~ppdcProfile">~ppdcProfile</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcProfile (void);</p>
-<h3 class="class"><a name="ppdcShared">ppdcShared</a></h3>
-<p class="description">// Shared Data Value</p>
-<p class="code">class ppdcShared {<br>
-&nbsp;&nbsp;private:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int use;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>use </dt>
-<dd class="description">Use count (delete when 0)</dd>
-</dl>
-<h4 class="method"><a name="class_name">class_name</a></h4>
-<p class="description"></p>
-<p class="code">
-virtual const char *class_name (void);</p>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description"></p>
-<h4 class="method"><a name="ppdcShared">ppdcShared</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcShared (void);</p>
-<h4 class="method"><a name="release">release</a></h4>
-<p class="description"></p>
-<p class="code">
-void release (void);</p>
-<h4 class="method"><a name="retain">retain</a></h4>
-<p class="description"></p>
-<p class="code">
-void retain (void);</p>
-<h4 class="method"><a name="~ppdcShared">~ppdcShared</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcShared (void);</p>
-<h3 class="class"><a name="ppdcSource">ppdcSource</a></h3>
-<p class="description">// Source File</p>
-<p class="code">class ppdcSource : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int cond_state, *cond_current, cond_stack[101];<br>
-&nbsp;&nbsp;&nbsp;&nbsp;static const char *driver_types[];<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *filename;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;static <a href="#ppdcArray">ppdcArray</a> *includes;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *base_fonts, *drivers, *po_files, *sizes, *vars;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>cond_stack[101] </dt>
-<dd class="description">#if state stack</dd>
-<dt>driver_types[] </dt>
-<dd class="description">Driver types</dd>
-<dt>filename </dt>
-<dd class="description">Filename</dd>
-<dt>includes </dt>
-<dd class="description">Include directories</dd>
-<dt>vars </dt>
-<dd class="description">Defined variables</dd>
-</dl>
-<h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
-<p class="description"></p>
-<p class="code">
-void PPDC_NAME (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;static void add_include(const char *d<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>d</dt>
-</dl>
-<h4 class="method"><a name="add_include">add_include</a></h4>
-<p class="description"></p>
-<p class="code">
-void add_include (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *d<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>d</dt>
-<dd class="description">Include directory</dd>
-</dl>
-<h4 class="method"><a name="find_driver">find_driver</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcDriver">ppdcDriver</a> *find_driver (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">Driver file name</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Driver</p>
-<h4 class="method"><a name="find_include">find_include</a></h4>
-<p class="description"></p>
-<p class="code">
-char *find_include (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *base,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *n,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int nlen<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">Include filename</dd>
-<dt>base</dt>
-<dd class="description">Current directory</dd>
-<dt>n</dt>
-<dd class="description">Path buffer</dd>
-<dt>nlen</dt>
-<dd class="description">Path buffer length</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Found path or NULL</p>
-<h4 class="method"><a name="find_po">find_po</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcCatalog">ppdcCatalog</a> *find_po (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *l<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>l</dt>
-<dd class="description">Locale name</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Message catalog or NULL</p>
-<h4 class="method"><a name="find_size">find_size</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcMediaSize">ppdcMediaSize</a> *find_size (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *s<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>s</dt>
-<dd class="description">Size name</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Size</p>
-<h4 class="method"><a name="find_variable">find_variable</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcVariable">ppdcVariable</a> *find_variable (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Variable name</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Variable</p>
-<h4 class="method"><a name="get_attr">get_attr</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcAttr">ppdcAttr</a> *get_attr (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;bool loc<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-<dt>loc</dt>
-<dd class="description">Localize this attribute?</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Attribute</p>
-<h4 class="method"><a name="get_boolean">get_boolean</a></h4>
-<p class="description"></p>
-<p class="code">
-int get_boolean (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Boolean value</p>
-<h4 class="method"><a name="get_choice">get_choice</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcChoice">ppdcChoice</a> *get_choice (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Choice data</p>
-<h4 class="method"><a name="get_color_model">get_color_model</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcChoice">ppdcChoice</a> *get_color_model (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Choice data</p>
-<h4 class="method"><a name="get_color_order">get_color_order</a></h4>
-<p class="description"></p>
-<p class="code">
-int get_color_order (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *co<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>co</dt>
-<dd class="description">Color order string</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Color order value</p>
-<h4 class="method"><a name="get_color_profile">get_color_profile</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcProfile">ppdcProfile</a> *get_color_profile (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Color profile</p>
-<h4 class="method"><a name="get_color_space">get_color_space</a></h4>
-<p class="description"></p>
-<p class="code">
-int get_color_space (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *cs<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>cs</dt>
-<dd class="description">Colorspace string</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Colorspace value</p>
-<h4 class="method"><a name="get_constraint">get_constraint</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcConstraint">ppdcConstraint</a> *get_constraint (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Constraint</p>
-<h4 class="method"><a name="get_custom_size">get_custom_size</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcMediaSize">ppdcMediaSize</a> *get_custom_size (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Media size</p>
-<h4 class="method"><a name="get_duplex">get_duplex</a></h4>
-<p class="description"></p>
-<p class="code">
-void get_duplex (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *d<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read from</dd>
-<dt>d</dt>
-<dd class="description">Current driver</dd>
-</dl>
-<h4 class="method"><a name="get_filter">get_filter</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcFilter">ppdcFilter</a> *get_filter (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Filter</p>
-<h4 class="method"><a name="get_float">get_float</a></h4>
-<p class="description"></p>
-<p class="code">
-float get_float (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Number</p>
-<h4 class="method"><a name="get_font">get_font</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcFont">ppdcFont</a> *get_font (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Font data</p>
-<h4 class="method"><a name="get_generic">get_generic</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcChoice">ppdcChoice</a> *get_generic (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *keyword,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *tattr,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *nattr<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-<dt>keyword</dt>
-<dd class="description">Keyword name</dd>
-<dt>tattr</dt>
-<dd class="description">Text attribute</dd>
-<dt>nattr</dt>
-<dd class="description">Numeric attribute</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Choice data</p>
-<h4 class="method"><a name="get_group">get_group</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcGroup">ppdcGroup</a> *get_group (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *d<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-<dt>d</dt>
-<dd class="description">Printer driver</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Group</p>
-<h4 class="method"><a name="get_installable">get_installable</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcOption">ppdcOption</a> *get_installable (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Option</p>
-<h4 class="method"><a name="get_integer">get_integer</a></h4>
-<p class="description"></p>
-<p class="code">
-int get_integer (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Integer value</p>
-<h4 class="method"><a name="get_measurement">get_measurement</a></h4>
-<p class="description"></p>
-<p class="code">
-float get_measurement (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Measurement value in points</p>
-<h4 class="method"><a name="get_option">get_option</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcOption">ppdcOption</a> *get_option (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *d,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcGroup">ppdcGroup</a> *g<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-<dt>d</dt>
-<dd class="description">Printer driver</dd>
-<dt>g</dt>
-<dd class="description">Current group</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Option</p>
-<h4 class="method"><a name="get_po">get_po</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcCatalog">ppdcCatalog</a> *get_po (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Message catalog</p>
-<h4 class="method"><a name="get_resolution">get_resolution</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcChoice">ppdcChoice</a> *get_resolution (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Choice data</p>
-<h4 class="method"><a name="get_simple_profile">get_simple_profile</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcProfile">ppdcProfile</a> *get_simple_profile (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Color profile</p>
-<h4 class="method"><a name="get_size">get_size</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcMediaSize">ppdcMediaSize</a> *get_size (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Media size</p>
-<h4 class="method"><a name="get_token">get_token</a></h4>
-<p class="description"></p>
-<p class="code">
-char *get_token (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *buffer,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;int buflen<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-<dt>buffer</dt>
-<dd class="description">Buffer</dd>
-<dt>buflen</dt>
-<dd class="description">Length of buffer</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Token string or NULL</p>
-<h4 class="method"><a name="get_variable">get_variable</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcVariable">ppdcVariable</a> *get_variable (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Variable</p>
-<h4 class="method"><a name="import_ppd">import_ppd</a></h4>
-<p class="description"></p>
-<p class="code">
-int import_ppd (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">Filename</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">1 on success, 0 on failure</p>
-<h4 class="method"><a name="ppdcSource">ppdcSource</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcSource (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *ffp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">File to read</dd>
-<dt>ffp</dt>
-<dd class="description">File pointer to use</dd>
-</dl>
-<h4 class="method"><a name="quotef">quotef</a></h4>
-<p class="description"></p>
-<p class="code">
-int quotef (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *fp,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *format,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;...<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to write to</dd>
-<dt>format</dt>
-<dd class="description">Printf-style format string</dd>
-<dt>...</dt>
-<dd class="description">Additional args as needed</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Number bytes on success, -1 on failure</p>
-<h4 class="method"><a name="read_file">read_file</a></h4>
-<p class="description"></p>
-<p class="code">
-void read_file (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *ffp<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">File to read</dd>
-<dt>ffp</dt>
-<dd class="description">File pointer to use</dd>
-</dl>
-<h4 class="method"><a name="scan_file">scan_file</a></h4>
-<p class="description"></p>
-<p class="code">
-void scan_file (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *td,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;bool inc<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>fp</dt>
-<dd class="description">File to read</dd>
-<dt>td</dt>
-<dd class="description">Driver template</dd>
-<dt>inc</dt>
-<dd class="description">Including?</dd>
-</dl>
-<h4 class="method"><a name="set_variable">set_variable</a></h4>
-<p class="description"></p>
-<p class="code">
-<a href="#ppdcVariable">ppdcVariable</a> *set_variable (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *name,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *value<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>name</dt>
-<dd class="description">Name</dd>
-<dt>value</dt>
-<dd class="description">Value</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">Variable</p>
-<h4 class="method"><a name="write_file">write_file</a></h4>
-<p class="description"></p>
-<p class="code">
-int write_file (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>f</dt>
-<dd class="description">File to write</dd>
-</dl>
-<h5 class="returnvalue">Return Value</h5>
-<p class="description">0 on success, -1 on error</p>
-<h4 class="method"><a name="~ppdcSource">~ppdcSource</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcSource (void);</p>
-<h3 class="class"><a name="ppdcString">ppdcString</a></h3>
-<p class="description">// Shared String</p>
-<p class="code">class ppdcString : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;char *value;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>value </dt>
-<dd class="description">String value</dd>
-</dl>
-<h4 class="method"><a name="ppdcString">ppdcString</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcString (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *v<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>v</dt>
-<dd class="description">String</dd>
-</dl>
-<h4 class="method"><a name="~ppdcString">~ppdcString</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcString (void);</p>
-<h3 class="class"><a name="ppdcVariable">ppdcVariable</a></h3>
-<p class="description">// Variable Definition</p>
-<p class="code">class ppdcVariable : public ppdcShared {<br>
-&nbsp;&nbsp;public:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *value;<br>
-};</p>
-<h4 class="members">Members</h4>
-<dl>
-<dt>value </dt>
-<dd class="description">Value of variable</dd>
-</dl>
-<h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
-<p class="description"></p>
-<p class="code">
-void PPDC_NAME (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;void set_value(const char *v<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>v</dt>
-</dl>
-<h4 class="method"><a name="ppdcVariable">ppdcVariable</a></h4>
-<p class="description"></p>
-<p class="code">
-void ppdcVariable (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *v<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>n</dt>
-<dd class="description">Name of variable</dd>
-<dt>v</dt>
-<dd class="description">Value of variable</dd>
-</dl>
-<h4 class="method"><a name="set_value">set_value</a></h4>
-<p class="description"></p>
-<p class="code">
-void set_value (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;const char *v<br>
-);</p>
-<h5 class="parameters">Parameters</h5>
-<dl>
-<dt>v</dt>
-</dl>
-<h4 class="method"><a name="~ppdcVariable">~ppdcVariable</a></h4>
-<p class="description"></p>
-<p class="code">
-void ~ppdcVariable (void);</p>
-<h2 class="title"><a name="TYPES">Data Types</a></h2>
-<h3 class="typedef"><a name="ppdc_cs_t">ppdc_cs_t</a></h3>
-<p class="description"></p>
-<p class="code">
-typedef enum ppdc_cs_t;
-</p>
-<h2 class="title"><a name="VARIABLES">Variables</a></h2>
-<h3 class="variable"><a name="ppdcSource">ppdcSource</a></h3>
-<p class="description">// Printer Driver Data</p>
-<p class="code">class ppdcSource;</p>
-<h2 class="title"><a name="ENUMERATIONS">Constants</a></h2>
-<h3 class="enumeration"><a name="ppdcCondFlags">ppdcCondFlags</a></h3>
-<p class="description">// Condition flags</p>
-<h4 class="constants">Constants</h4>
-<dl>
-<dt>PPDC_COND_NORMAL </dt>
-<dd class="description">Normal state</dd>
-<dt>PPDC_COND_SATISFIED </dt>
-<dd class="description">At least one condition satisfied</dd>
-<dt>PPDC_COND_SKIP </dt>
-<dd class="description">Skip state</dd>
-</dl>
-<h3 class="enumeration"><a name="ppdcDrvType">ppdcDrvType</a></h3>
-<p class="description">// Driver type</p>
-<h4 class="constants">Constants</h4>
-<dl>
-<dt>PPDC_DRIVER_CUSTOM </dt>
-<dd class="description">Custom driver</dd>
-<dt>PPDC_DRIVER_EPSON </dt>
-<dd class="description">rastertoepson driver</dd>
-<dt>PPDC_DRIVER_ESCP </dt>
-<dd class="description">rastertoescpx driver</dd>
-<dt>PPDC_DRIVER_HP </dt>
-<dd class="description">rastertohp driver</dd>
-<dt>PPDC_DRIVER_LABEL </dt>
-<dd class="description">rastertolabel/rastertodymo driver</dd>
-<dt>PPDC_DRIVER_MAX </dt>
-<dd class="description">Number of driver types defined</dd>
-<dt>PPDC_DRIVER_PCL </dt>
-<dd class="description">rastertopclx driver</dd>
-<dt>PPDC_DRIVER_PS </dt>
-<dd class="description">PostScript driver</dd>
-</dl>
-<h3 class="enumeration"><a name="ppdcFontStatus">ppdcFontStatus</a></h3>
-<p class="description">// Load status of font</p>
-<h4 class="constants">Constants</h4>
-<dl>
-<dt>PPDC_FONT_DISK </dt>
-<dd class="description">Font is on disk</dd>
-<dt>PPDC_FONT_ROM </dt>
-<dd class="description">Font is in ROM</dd>
-</dl>
-<h3 class="enumeration"><a name="ppdcLineEnding">ppdcLineEnding</a></h3>
-<p class="description">// Line endings</p>
-<h4 class="constants">Constants</h4>
-<dl>
-<dt>PPDC_CRLF </dt>
-<dd class="description">CR + LF</dd>
-<dt>PPDC_CRONLY </dt>
-<dd class="description">CR only</dd>
-<dt>PPDC_LFONLY </dt>
-<dd class="description">LF only</dd>
-</dl>
-<h3 class="enumeration"><a name="ppdcOptSection">ppdcOptSection</a></h3>
-<p class="description">// Option section</p>
-<h4 class="constants">Constants</h4>
-<dl>
-<dt>PPDC_SECTION_ANY </dt>
-<dd class="description">AnySetup</dd>
-<dt>PPDC_SECTION_DOCUMENT </dt>
-<dd class="description">DocumentSetup</dd>
-<dt>PPDC_SECTION_EXIT </dt>
-<dd class="description">ExitServer</dd>
-<dt>PPDC_SECTION_JCL </dt>
-<dd class="description">JCLSetup</dd>
-<dt>PPDC_SECTION_PAGE </dt>
-<dd class="description">PageSetup</dd>
-<dt>PPDC_SECTION_PROLOG </dt>
-<dd class="description">Prolog</dd>
-</dl>
-<h3 class="enumeration"><a name="ppdcOptType">ppdcOptType</a></h3>
-<p class="description">// Option type</p>
-<h4 class="constants">Constants</h4>
-<dl>
-<dt>PPDC_BOOLEAN </dt>
-<dd class="description">True/false option</dd>
-<dt>PPDC_PICKMANY </dt>
-<dd class="description">Multiple choices from list</dd>
-<dt>PPDC_PICKONE </dt>
-<dd class="description">Single choice from list</dd>
-</dl>
-</div>
-</body>
-</html>
index 098029fff77ff509853923ab47a5896477c26129..49b93e92d2511175d5ccc61f1a31dea2cf8b2d18 100644 (file)
@@ -205,31 +205,10 @@ uninstall:
        $(RM) $(LIBDIR)/libcupsppdc.so
        $(RM) $(LIBDIR)/libcupsppdc.so.1
        -$(RMDIR) $(LIBDIR)
-       $(RM) $(INCLUDEDIR)/cups/ppdc.h
-       -$(RMDIR) $(INCLUDEDIR)/cups
-
-
-#
-# Automatic API help files...
-#
-
-apihelp:
-       mxmldoc --section "Programming" \
-               --title "PPD Compiler API" \
-               --css ../doc/cups-printable.css \
-               --header api-ppdc.header --intro api-ppdc.shtml \
-               api-ppdc.xml \
-               ppdc.h $(LIBOBJS:.o=.cxx) >../doc/help/api-ppdc.html
-       mxmldoc --tokens help/api-ppdc.html api-ppdc.xml >../doc/help/api-ppdc.tokens
-       $(RM) api-ppdc.xml
-
-framedhelp:
-       mxmldoc --framed api-ppdc \
-               --section "Programming" \
-               --title "PPD Compiler API" \
-               --css ../doc/cups-printable.css \
-               --header api-ppdc.header --intro api-ppdc.shtml \
-               ppdc.h $(LIBOBJS:.o=.cxx)
+       -if test "x$(privateinclude)" != x; then \
+               $(RM) $(PRIVATEINCLUDE)/ppdc.h; \
+               $(RMDIR) $(PRIVATEINCLUDE); \
+       fi
 
 
 #
diff --git a/ppdc/api-ppdc.header b/ppdc/api-ppdc.header
deleted file mode 100644 (file)
index e237c44..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-  PPD Compiler API header for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h1 class='title'>PPD Compiler API</h1>
-
-<div class='summary'><table summary='General Information'>
-<thead>
-<tr>
-       <th>Header</th>
-       <th>cups/ppdc.h</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-       <th>Library</th>
-       <td>-lcupsppdc</td>
-</tr>
-<tr>
-       <th>See Also</th>
-       <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a></td>
-</tr>
-</tbody>
-</table></div>
diff --git a/ppdc/api-ppdc.shtml b/ppdc/api-ppdc.shtml
deleted file mode 100644 (file)
index 769731b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<!--
-  PPD Compiler API introduction for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
-
-<p>The PPD Compiler API provides access to CUPS driver information files and
-methods for generating and importing PPD files.</p>
index 8b21f993a272493564e04ba8c271d25200aa4692..715d88fddaa3830ce68f665fdd0b3737150befcb 100644 (file)
@@ -307,8 +307,10 @@ uninstall:
        $(RM) $(LIBDIR)/libcupsmime.so
        $(RM) $(LIBDIR)/libcupsmime.so.1
        -$(RMDIR) $(LIBDIR)
-       $(RM) $(INCLUDEDIR)/cups/mime.h
-       -$(RMDIR) $(INCLUDEDIR)/cups
+       -if test "x$(privateinclude)" != x; then \
+               $(RM) $(PRIVATEINCLUDE)/mime.h; \
+               $(RMDIR) $(PRIVATEINCLUDE); \
+       fi
        if test "x$(INITDIR)" != x; then \
                echo Uninstalling init scripts...; \
                $(RM) $(BUILDROOT)$(INITDIR)/init.d/cups; \
@@ -348,28 +350,6 @@ uninstall:
        fi
 
 
-#
-# Automatic API help files...
-#
-
-apihelp:
-       mxmldoc --section "Programming" \
-               --title "MIME API" \
-               --css ../doc/cups-printable.css \
-               --header api-mime.header --intro api-mime.shtml \
-               mime.h $(LIBOBJS:.o=.c) >../doc/help/api-mime.html
-       mxmldoc --tokens help/api-mime.html api-mime.xml >../doc/help/api-mime.tokens
-       $(RM) api-mime.xml
-
-framedhelp:
-       mxmldoc --framed api-mime \
-               --section "Programming" \
-               --title "MIME API" \
-               --css ../doc/cups-printable.css \
-               --header api-mime.header --intro api-mime.shtml \
-               mime.h $(LIBOBJS:.o=.c)
-
-
 #
 # Make the scheduler executable, "cupsd".
 #
diff --git a/scheduler/api-mime.header b/scheduler/api-mime.header
deleted file mode 100644 (file)
index 2cde646..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-  MIME API header for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h1 class='title'>MIME API</h1>
-
-<div class='summary'><table summary='General Information'>
-<thead>
-<tr>
-       <th>Header</th>
-       <th>cups/mime.h</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-       <th>Library</th>
-       <td>-lcupsmime</td>
-</tr>
-<tr>
-       <th>See Also</th>
-       <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a></td>
-</tr>
-</tbody>
-</table></div>
diff --git a/scheduler/api-mime.shtml b/scheduler/api-mime.shtml
deleted file mode 100644 (file)
index db0d493..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!--
-  MIME API introduction for CUPS.
-
-  Copyright 2009 by Apple Inc.
-
-  These coded instructions, statements, and computer programs are the
-  property of Apple Inc. and are protected by Federal copyright
-  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-  which should have been included with this file.  If this file is
-  file is missing or damaged, see the license at "http://www.cups.org/".
--->
-
-<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
-
-<p>The MIME API provides file typing and conversion services for CUPS.</p>