]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Add cupsFilter2 keyword to specify the destination MIME media type of a filter.
authormike <mike@7a7537e8-13f0-0310-91df-b6672ffda945>
Sat, 19 Feb 2011 01:07:13 +0000 (01:07 +0000)
committermike <mike@7a7537e8-13f0-0310-91df-b6672ffda945>
Sat, 19 Feb 2011 01:07:13 +0000 (01:07 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@9556 7a7537e8-13f0-0310-91df-b6672ffda945

22 files changed:
CHANGES.txt
doc/help/api-array.html
doc/help/api-cgi.html
doc/help/api-cups.html
doc/help/api-driver.html
doc/help/api-filedir.html
doc/help/api-filter.html
doc/help/api-httpipp.html
doc/help/api-mime.html
doc/help/api-overview.html
doc/help/api-ppd.html
doc/help/api-ppdc.html
doc/help/api-raster.html
doc/help/postscript-driver.html
doc/help/ppd-compiler.html
doc/help/raster-driver.html
doc/help/spec-ppd.html
filter/spec-ppd.shtml
scheduler/job.c
scheduler/printers.c
scheduler/printers.h
test/testhp.ppd

index 028c45855e98bed22093c0f67e1909f272aa4ade..eb43b8dfce57a4cfa033eeba02ebdced42350bf2 100644 (file)
@@ -1,8 +1,10 @@
-CHANGES.txt - 2011-02-16
+CHANGES.txt - 2011-02-18
 ------------------------
 
 CHANGES IN CUPS V1.5b1
 
+       - Added support for a new cupsFilter2 keyword in PPD files to allow for
+         the propagation of the actual MIME media type produced by a filter.
        - The scheduler did not always get the correct Kerberos username when
          authenticating (STR #3670)
        - Added new cupsRasterOpenIO function and CUPS_RASTER_WRITE_PWG to the
index 6c57c13e417d9f1e3e9ba1446a39c22c881ac0fa..2b47b3e13a1dc766d184abae3e51f91dfd994eff 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>Array 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">
+<title>Array API</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -376,33 +375,34 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#OVERVIEW">Overview</a><ul class="subcontents">
-       <li><a href="#MANAGING_ARRAYS">Managing Arrays</a></li>
-       <li><a href="#FINDING_AND_ENUMERATING">Finding and Enumerating Elements</a></li>
+<li><a href="#MANAGING_ARRAYS">Managing Arrays</a></li>
+<li><a href="#FINDING_AND_ENUMERATING">Finding and Enumerating Elements</a></li>
 </ul></li>
 <li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#cupsArrayAdd" title="Add an element to the array.">cupsArrayAdd</a></li>
-       <li><a href="#cupsArrayClear" title="Clear the array.">cupsArrayClear</a></li>
-       <li><a href="#cupsArrayCount" title="Get the number of elements in the array.">cupsArrayCount</a></li>
-       <li><a href="#cupsArrayCurrent" title="Return the current element in the array.">cupsArrayCurrent</a></li>
-       <li><a href="#cupsArrayDelete" title="Free all memory used by the array.">cupsArrayDelete</a></li>
-       <li><a href="#cupsArrayDup" title="Duplicate the array.">cupsArrayDup</a></li>
-       <li><a href="#cupsArrayFind" title="Find an element in the array.">cupsArrayFind</a></li>
-       <li><a href="#cupsArrayFirst" title="Get the first element in the array.">cupsArrayFirst</a></li>
-       <li><a href="#cupsArrayGetIndex" title="Get the index of the current element.">cupsArrayGetIndex</a></li>
-       <li><a href="#cupsArrayGetInsert" title="Get the index of the last inserted element.">cupsArrayGetInsert</a></li>
-       <li><a href="#cupsArrayIndex" title="Get the N-th element in the array.">cupsArrayIndex</a></li>
-       <li><a href="#cupsArrayInsert" title="Insert an element in the array.">cupsArrayInsert</a></li>
-       <li><a href="#cupsArrayLast" title="Get the last element in the array.">cupsArrayLast</a></li>
-       <li><a href="#cupsArrayNew" title="Create a new array.">cupsArrayNew</a></li>
-       <li><a href="#cupsArrayNew2" title="Create a new array with hash.">cupsArrayNew2</a></li>
-       <li><a href="#cupsArrayNew3" title="Create a new array with hash and/or free function.">cupsArrayNew3</a></li>
-       <li><a href="#cupsArrayNext" title="Get the next element in the array.">cupsArrayNext</a></li>
-       <li><a href="#cupsArrayPrev" title="Get the previous element in the array.">cupsArrayPrev</a></li>
-       <li><a href="#cupsArrayRemove" title="Remove an element from the array.">cupsArrayRemove</a></li>
-       <li><a href="#cupsArrayRestore" title="Reset the current element to the last cupsArraySave.">cupsArrayRestore</a></li>
-       <li><a href="#cupsArraySave" title="Mark the current element for a later cupsArrayRestore.">cupsArraySave</a></li>
-       <li><a href="#cupsArrayUserData" title="Return the user data for an array.">cupsArrayUserData</a></li>
+<li><a href="#cupsArrayAdd" title="Add an element to the array.">cupsArrayAdd</a></li>
+<li><a href="#cupsArrayClear" title="Clear the array.">cupsArrayClear</a></li>
+<li><a href="#cupsArrayCount" title="Get the number of elements in the array.">cupsArrayCount</a></li>
+<li><a href="#cupsArrayCurrent" title="Return the current element in the array.">cupsArrayCurrent</a></li>
+<li><a href="#cupsArrayDelete" title="Free all memory used by the array.">cupsArrayDelete</a></li>
+<li><a href="#cupsArrayDup" title="Duplicate the array.">cupsArrayDup</a></li>
+<li><a href="#cupsArrayFind" title="Find an element in the array.">cupsArrayFind</a></li>
+<li><a href="#cupsArrayFirst" title="Get the first element in the array.">cupsArrayFirst</a></li>
+<li><a href="#cupsArrayGetIndex" title="Get the index of the current element.">cupsArrayGetIndex</a></li>
+<li><a href="#cupsArrayGetInsert" title="Get the index of the last inserted element.">cupsArrayGetInsert</a></li>
+<li><a href="#cupsArrayIndex" title="Get the N-th element in the array.">cupsArrayIndex</a></li>
+<li><a href="#cupsArrayInsert" title="Insert an element in the array.">cupsArrayInsert</a></li>
+<li><a href="#cupsArrayLast" title="Get the last element in the array.">cupsArrayLast</a></li>
+<li><a href="#cupsArrayNew" title="Create a new array.">cupsArrayNew</a></li>
+<li><a href="#cupsArrayNew2" title="Create a new array with hash.">cupsArrayNew2</a></li>
+<li><a href="#cupsArrayNew3" title="Create a new array with hash and/or free function.">cupsArrayNew3</a></li>
+<li><a href="#cupsArrayNext" title="Get the next element in the array.">cupsArrayNext</a></li>
+<li><a href="#cupsArrayPrev" title="Get the previous element in the array.">cupsArrayPrev</a></li>
+<li><a href="#cupsArrayRemove" title="Remove an element from the array.">cupsArrayRemove</a></li>
+<li><a href="#cupsArrayRestore" title="Reset the current element to the last cupsArraySave.">cupsArrayRestore</a></li>
+<li><a href="#cupsArraySave" title="Mark the current element for a later cupsArrayRestore.">cupsArraySave</a></li>
+<li><a href="#cupsArrayUserData" title="Return the user data for an array.">cupsArrayUserData</a></li>
 </ul></li>
 <li><a href="#TYPES">Data Types</a><ul class="code">
        <li><a href="#cups_acopy_func_t" title="Array element copy function">cups_acopy_func_t</a></li>
@@ -411,7 +411,6 @@ div.contents ul.subcontents li {
        <li><a href="#cups_array_func_t" title="Array comparison function">cups_array_func_t</a></li>
        <li><a href="#cups_array_t" title="CUPS array type">cups_array_t</a></li>
 </ul></li>
-</ul>
 <!--
   "$Id$"
 
index 9d83b0023c237ad838f7212cafb7f0ee6c5c92f8..a1b75197fa7ae1188f2b83db8e19083571278d4f 100644 (file)
@@ -2,10 +2,9 @@
 <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">
+<title>CGI API</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -376,52 +375,53 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <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
+<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
+<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>
+<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>
@@ -435,7 +435,6 @@ by the template file.">cgiGetAttributes</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$"
 
index d4cf5a77701f2aa26c4cc4cdac8c2a686e0c96c4..796248bba01fef03eb4f8a230fe59090414c523b 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>CUPS 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">
+<title>CUPS API</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -382,84 +381,85 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#OVERVIEW">Overview</a><ul class="subcontents">
-       <li><a href="#CLIENTS_AND_SERVERS">Clients and Servers</a></li>
-       <li><a href="#PRINTERS_AND_CLASSES">Printers and Classes</a></li>
-       <li><a href="#OPTIONS">Options</a></li>
-       <li><a href="#PRINT_JOBS">Print Jobs</a></li>
-       <li><a href="#ERROR_HANDLING">Error Handling</a></li>
-       <li><a href="#PASSWORDS_AND_AUTHENTICATION">Passwords and Authentication</a></li>
+<li><a href="#CLIENTS_AND_SERVERS">Clients and Servers</a></li>
+<li><a href="#PRINTERS_AND_CLASSES">Printers and Classes</a></li>
+<li><a href="#OPTIONS">Options</a></li>
+<li><a href="#PRINT_JOBS">Print Jobs</a></li>
+<li><a href="#ERROR_HANDLING">Error Handling</a></li>
+<li><a href="#PASSWORDS_AND_AUTHENTICATION">Passwords and Authentication</a></li>
 </ul></li>
 <li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#cupsAddDest" title="Add a destination to the list of destinations.">cupsAddDest</a></li>
-       <li><a href="#cupsAddOption" title="Add an option to an option array.">cupsAddOption</a></li>
-       <li><a href="#cupsAdminCreateWindowsPPD" title="Create the Windows PPD file for a printer.">cupsAdminCreateWindowsPPD</a></li>
-       <li><a href="#cupsAdminExportSamba" title="Export a printer to Samba.">cupsAdminExportSamba</a></li>
-       <li><a href="#cupsAdminGetServerSettings" title="Get settings from the server.">cupsAdminGetServerSettings</a></li>
-       <li><a href="#cupsAdminSetServerSettings" title="Set settings on the server.">cupsAdminSetServerSettings</a></li>
-       <li><a href="#cupsCancelJob" title="Cancel a print job on the default server.">cupsCancelJob</a></li>
-       <li><a href="#cupsCancelJob2" title="Cancel or purge a print job.">cupsCancelJob2</a></li>
-       <li><a href="#cupsCreateJob" title="Create an empty job for streaming.">cupsCreateJob</a></li>
-       <li><a href="#cupsEncryption" title="Get the current encryption settings.">cupsEncryption</a></li>
-       <li><a href="#cupsFinishDocument" title="Finish sending a document.">cupsFinishDocument</a></li>
-       <li><a href="#cupsFreeDests" title="Free the memory used by the list of destinations.">cupsFreeDests</a></li>
-       <li><a href="#cupsFreeJobs" title="Free memory used by job data.">cupsFreeJobs</a></li>
-       <li><a href="#cupsFreeOptions" title="Free all memory used by options.">cupsFreeOptions</a></li>
-       <li><a href="#cupsGetClasses" title="Get a list of printer classes from the default server.">cupsGetClasses</a></li>
-       <li><a href="#cupsGetDefault" title="Get the default printer or class for the default server.">cupsGetDefault</a></li>
-       <li><a href="#cupsGetDefault2" title="Get the default printer or class for the specified server.">cupsGetDefault2</a></li>
-       <li><a href="#cupsGetDest" title="Get the named destination from the list.">cupsGetDest</a></li>
-       <li><a href="#cupsGetDests" title="Get the list of destinations from the default server.">cupsGetDests</a></li>
-       <li><a href="#cupsGetDests2" title="Get the list of destinations from the specified server.">cupsGetDests2</a></li>
-       <li><a href="#cupsGetJobs" title="Get the jobs from the default server.">cupsGetJobs</a></li>
-       <li><a href="#cupsGetJobs2" title="Get the jobs from the specified server.">cupsGetJobs2</a></li>
-       <li><a href="#cupsGetNamedDest" title="Get options for the named destination.">cupsGetNamedDest</a></li>
-       <li><a href="#cupsGetOption" title="Get an option value.">cupsGetOption</a></li>
-       <li><a href="#cupsGetPPD" title="Get the PPD file for a printer on the default server.">cupsGetPPD</a></li>
-       <li><a href="#cupsGetPPD2" title="Get the PPD file for a printer from the specified server.">cupsGetPPD2</a></li>
-       <li><a href="#cupsGetPPD3" title="Get the PPD file for a printer on the specified
+<li><a href="#cupsAddDest" title="Add a destination to the list of destinations.">cupsAddDest</a></li>
+<li><a href="#cupsAddOption" title="Add an option to an option array.">cupsAddOption</a></li>
+<li><a href="#cupsAdminCreateWindowsPPD" title="Create the Windows PPD file for a printer.">cupsAdminCreateWindowsPPD</a></li>
+<li><a href="#cupsAdminExportSamba" title="Export a printer to Samba.">cupsAdminExportSamba</a></li>
+<li><a href="#cupsAdminGetServerSettings" title="Get settings from the server.">cupsAdminGetServerSettings</a></li>
+<li><a href="#cupsAdminSetServerSettings" title="Set settings on the server.">cupsAdminSetServerSettings</a></li>
+<li><a href="#cupsCancelJob" title="Cancel a print job on the default server.">cupsCancelJob</a></li>
+<li><a href="#cupsCancelJob2" title="Cancel or purge a print job.">cupsCancelJob2</a></li>
+<li><a href="#cupsCreateJob" title="Create an empty job for streaming.">cupsCreateJob</a></li>
+<li><a href="#cupsEncryption" title="Get the current encryption settings.">cupsEncryption</a></li>
+<li><a href="#cupsFinishDocument" title="Finish sending a document.">cupsFinishDocument</a></li>
+<li><a href="#cupsFreeDests" title="Free the memory used by the list of destinations.">cupsFreeDests</a></li>
+<li><a href="#cupsFreeJobs" title="Free memory used by job data.">cupsFreeJobs</a></li>
+<li><a href="#cupsFreeOptions" title="Free all memory used by options.">cupsFreeOptions</a></li>
+<li><a href="#cupsGetClasses" title="Get a list of printer classes from the default server.">cupsGetClasses</a></li>
+<li><a href="#cupsGetDefault" title="Get the default printer or class for the default server.">cupsGetDefault</a></li>
+<li><a href="#cupsGetDefault2" title="Get the default printer or class for the specified server.">cupsGetDefault2</a></li>
+<li><a href="#cupsGetDest" title="Get the named destination from the list.">cupsGetDest</a></li>
+<li><a href="#cupsGetDests" title="Get the list of destinations from the default server.">cupsGetDests</a></li>
+<li><a href="#cupsGetDests2" title="Get the list of destinations from the specified server.">cupsGetDests2</a></li>
+<li><a href="#cupsGetJobs" title="Get the jobs from the default server.">cupsGetJobs</a></li>
+<li><a href="#cupsGetJobs2" title="Get the jobs from the specified server.">cupsGetJobs2</a></li>
+<li><a href="#cupsGetNamedDest" title="Get options for the named destination.">cupsGetNamedDest</a></li>
+<li><a href="#cupsGetOption" title="Get an option value.">cupsGetOption</a></li>
+<li><a href="#cupsGetPPD" title="Get the PPD file for a printer on the default server.">cupsGetPPD</a></li>
+<li><a href="#cupsGetPPD2" title="Get the PPD file for a printer from the specified server.">cupsGetPPD2</a></li>
+<li><a href="#cupsGetPPD3" title="Get the PPD file for a printer on the specified
 server if it has changed.">cupsGetPPD3</a></li>
-       <li><a href="#cupsGetPassword" title="Get a password from the user.">cupsGetPassword</a></li>
-       <li><a href="#cupsGetPassword2" title="Get a password from the user using the advanced
+<li><a href="#cupsGetPassword" title="Get a password from the user.">cupsGetPassword</a></li>
+<li><a href="#cupsGetPassword2" title="Get a password from the user using the advanced
 password callback.">cupsGetPassword2</a></li>
-       <li><a href="#cupsGetPrinters" title="Get a list of printers from the default server.">cupsGetPrinters</a></li>
-       <li><a href="#cupsGetServerPPD" title="Get an available PPD file from the server.">cupsGetServerPPD</a></li>
-       <li><a href="#cupsLangDefault" title="Return the default language.">cupsLangDefault</a></li>
-       <li><a href="#cupsLangEncoding" title="Return the character encoding (us-ascii, etc.)
+<li><a href="#cupsGetPrinters" title="Get a list of printers from the default server.">cupsGetPrinters</a></li>
+<li><a href="#cupsGetServerPPD" title="Get an available PPD file from the server.">cupsGetServerPPD</a></li>
+<li><a href="#cupsLangDefault" title="Return the default language.">cupsLangDefault</a></li>
+<li><a href="#cupsLangEncoding" title="Return the character encoding (us-ascii, etc.)
 for the given language.">cupsLangEncoding</a></li>
-       <li><a href="#cupsLangFlush" title="Flush all language data out of the cache.">cupsLangFlush</a></li>
-       <li><a href="#cupsLangFree" title="Free language data.">cupsLangFree</a></li>
-       <li><a href="#cupsLangGet" title="Get a language.">cupsLangGet</a></li>
-       <li><a href="#cupsNotifySubject" title="Return the subject for the given notification message.">cupsNotifySubject</a></li>
-       <li><a href="#cupsNotifyText" title="Return the text for the given notification message.">cupsNotifyText</a></li>
-       <li><a href="#cupsParseOptions" title="Parse options from a command-line argument.">cupsParseOptions</a></li>
-       <li><a href="#cupsPrintFile" title="Print a file to a printer or class on the default server.">cupsPrintFile</a></li>
-       <li><a href="#cupsPrintFile2" title="Print a file to a printer or class on the specified
+<li><a href="#cupsLangFlush" title="Flush all language data out of the cache.">cupsLangFlush</a></li>
+<li><a href="#cupsLangFree" title="Free language data.">cupsLangFree</a></li>
+<li><a href="#cupsLangGet" title="Get a language.">cupsLangGet</a></li>
+<li><a href="#cupsNotifySubject" title="Return the subject for the given notification message.">cupsNotifySubject</a></li>
+<li><a href="#cupsNotifyText" title="Return the text for the given notification message.">cupsNotifyText</a></li>
+<li><a href="#cupsParseOptions" title="Parse options from a command-line argument.">cupsParseOptions</a></li>
+<li><a href="#cupsPrintFile" title="Print a file to a printer or class on the default server.">cupsPrintFile</a></li>
+<li><a href="#cupsPrintFile2" title="Print a file to a printer or class on the specified
 server.">cupsPrintFile2</a></li>
-       <li><a href="#cupsPrintFiles" title="Print one or more files to a printer or class on the
+<li><a href="#cupsPrintFiles" title="Print one or more files to a printer or class on the
 default server.">cupsPrintFiles</a></li>
-       <li><a href="#cupsPrintFiles2" title="Print one or more files to a printer or class on the
+<li><a href="#cupsPrintFiles2" title="Print one or more files to a printer or class on the
 specified server.">cupsPrintFiles2</a></li>
-       <li><a href="#cupsRemoveDest" title="Remove a destination from the destination list.">cupsRemoveDest</a></li>
-       <li><a href="#cupsRemoveOption" title="Remove an option from an option array.">cupsRemoveOption</a></li>
-       <li><a href="#cupsServer" title="Return the hostname/address of the current server.">cupsServer</a></li>
-       <li><a href="#cupsSetClientCertCB" title="Set the client certificate callback.">cupsSetClientCertCB</a></li>
-       <li><a href="#cupsSetCredentials" title="Set the default credentials to be used for SSL/TLS
+<li><a href="#cupsRemoveDest" title="Remove a destination from the destination list.">cupsRemoveDest</a></li>
+<li><a href="#cupsRemoveOption" title="Remove an option from an option array.">cupsRemoveOption</a></li>
+<li><a href="#cupsServer" title="Return the hostname/address of the current server.">cupsServer</a></li>
+<li><a href="#cupsSetClientCertCB" title="Set the client certificate callback.">cupsSetClientCertCB</a></li>
+<li><a href="#cupsSetCredentials" title="Set the default credentials to be used for SSL/TLS
 connections.">cupsSetCredentials</a></li>
-       <li><a href="#cupsSetDefaultDest" title="Set the default destination.">cupsSetDefaultDest</a></li>
-       <li><a href="#cupsSetDests" title="Save the list of destinations for the default server.">cupsSetDests</a></li>
-       <li><a href="#cupsSetDests2" title="Save the list of destinations for the specified server.">cupsSetDests2</a></li>
-       <li><a href="#cupsSetEncryption" title="Set the encryption preference.">cupsSetEncryption</a></li>
-       <li><a href="#cupsSetPasswordCB" title="Set the password callback for CUPS.">cupsSetPasswordCB</a></li>
-       <li><a href="#cupsSetPasswordCB2" title="Set the advanced password callback for CUPS.">cupsSetPasswordCB2</a></li>
-       <li><a href="#cupsSetServer" title="Set the default server name and port.">cupsSetServer</a></li>
-       <li><a href="#cupsSetServerCertCB" title="Set the server certificate callback.">cupsSetServerCertCB</a></li>
-       <li><a href="#cupsSetUser" title="Set the default user name.">cupsSetUser</a></li>
-       <li><a href="#cupsStartDocument" title="Add a document to a job created with cupsCreateJob().">cupsStartDocument</a></li>
-       <li><a href="#cupsTempFd" title="Creates a temporary file.">cupsTempFd</a></li>
-       <li><a href="#cupsTempFile" title="Generates a temporary filename.">cupsTempFile</a></li>
-       <li><a href="#cupsTempFile2" title="Creates a temporary CUPS file.">cupsTempFile2</a></li>
-       <li><a href="#cupsUser" title="Return the current user's name.">cupsUser</a></li>
+<li><a href="#cupsSetDefaultDest" title="Set the default destination.">cupsSetDefaultDest</a></li>
+<li><a href="#cupsSetDests" title="Save the list of destinations for the default server.">cupsSetDests</a></li>
+<li><a href="#cupsSetDests2" title="Save the list of destinations for the specified server.">cupsSetDests2</a></li>
+<li><a href="#cupsSetEncryption" title="Set the encryption preference.">cupsSetEncryption</a></li>
+<li><a href="#cupsSetPasswordCB" title="Set the password callback for CUPS.">cupsSetPasswordCB</a></li>
+<li><a href="#cupsSetPasswordCB2" title="Set the advanced password callback for CUPS.">cupsSetPasswordCB2</a></li>
+<li><a href="#cupsSetServer" title="Set the default server name and port.">cupsSetServer</a></li>
+<li><a href="#cupsSetServerCertCB" title="Set the server certificate callback.">cupsSetServerCertCB</a></li>
+<li><a href="#cupsSetUser" title="Set the default user name.">cupsSetUser</a></li>
+<li><a href="#cupsStartDocument" title="Add a document to a job created with cupsCreateJob().">cupsStartDocument</a></li>
+<li><a href="#cupsTempFd" title="Creates a temporary file.">cupsTempFd</a></li>
+<li><a href="#cupsTempFile" title="Generates a temporary filename.">cupsTempFile</a></li>
+<li><a href="#cupsTempFile2" title="Creates a temporary CUPS file.">cupsTempFile2</a></li>
+<li><a href="#cupsUser" title="Return the current user's name.">cupsUser</a></li>
 </ul></li>
 <li><a href="#TYPES">Data Types</a><ul class="code">
        <li><a href="#cups_client_cert_cb_t" title="Client credentials callback ">cups_client_cert_cb_t</a></li>
@@ -480,7 +480,6 @@ connections.">cupsSetCredentials</a></li>
 <li><a href="#ENUMERATIONS">Constants</a><ul class="code">
        <li><a href="#cups_ptype_e" title="Printer type/capability bit constants">cups_ptype_e</a></li>
 </ul></li>
-</ul>
 <!--
   "$Id$"
 
index d0e4a55ed395fce64646cb7cbb9a2ae0e2a812d1..2f456ea0c2c7a9585191820d185c2e5e92a3025a 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>Printer Driver 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">
+<title>Printer Driver API</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -376,39 +375,40 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#OVERVIEW">Overview</a></li>
 <li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#cupsCMYKDelete" title="Delete a color separation.">cupsCMYKDelete</a></li>
-       <li><a href="#cupsCMYKDoBlack" title="Do a black separation...">cupsCMYKDoBlack</a></li>
-       <li><a href="#cupsCMYKDoCMYK" title="Do a CMYK separation...">cupsCMYKDoCMYK</a></li>
-       <li><a href="#cupsCMYKDoGray" title="Do a grayscale separation...">cupsCMYKDoGray</a></li>
-       <li><a href="#cupsCMYKDoRGB" title="Do an sRGB separation...">cupsCMYKDoRGB</a></li>
-       <li><a href="#cupsCMYKLoad" title="Load a CMYK color profile from PPD attributes.">cupsCMYKLoad</a></li>
-       <li><a href="#cupsCMYKNew" title="Create a new CMYK color separation.">cupsCMYKNew</a></li>
-       <li><a href="#cupsCMYKSetBlack" title="Set the transition range for CMY to black.">cupsCMYKSetBlack</a></li>
-       <li><a href="#cupsCMYKSetCurve" title="Set a color transform curve using points.">cupsCMYKSetCurve</a></li>
-       <li><a href="#cupsCMYKSetGamma" title="Set a color transform curve using gamma and density.">cupsCMYKSetGamma</a></li>
-       <li><a href="#cupsCMYKSetInkLimit" title="Set the limit on the amount of ink.">cupsCMYKSetInkLimit</a></li>
-       <li><a href="#cupsCMYKSetLtDk" title="Set light/dark ink transforms.">cupsCMYKSetLtDk</a></li>
-       <li><a href="#cupsCheckBytes" title="Check to see if all bytes are zero.">cupsCheckBytes</a></li>
-       <li><a href="#cupsCheckValue" title="Check to see if all bytes match the given value.">cupsCheckValue</a></li>
-       <li><a href="#cupsDitherDelete" title="Free a dithering buffer.">cupsDitherDelete</a></li>
-       <li><a href="#cupsDitherLine" title="Dither a line of pixels...">cupsDitherLine</a></li>
-       <li><a href="#cupsDitherNew" title="Create an error-diffusion dithering buffer.">cupsDitherNew</a></li>
-       <li><a href="#cupsFindAttr" title="Find a PPD attribute based on the colormodel,
+<li><a href="#cupsCMYKDelete" title="Delete a color separation.">cupsCMYKDelete</a></li>
+<li><a href="#cupsCMYKDoBlack" title="Do a black separation...">cupsCMYKDoBlack</a></li>
+<li><a href="#cupsCMYKDoCMYK" title="Do a CMYK separation...">cupsCMYKDoCMYK</a></li>
+<li><a href="#cupsCMYKDoGray" title="Do a grayscale separation...">cupsCMYKDoGray</a></li>
+<li><a href="#cupsCMYKDoRGB" title="Do an sRGB separation...">cupsCMYKDoRGB</a></li>
+<li><a href="#cupsCMYKLoad" title="Load a CMYK color profile from PPD attributes.">cupsCMYKLoad</a></li>
+<li><a href="#cupsCMYKNew" title="Create a new CMYK color separation.">cupsCMYKNew</a></li>
+<li><a href="#cupsCMYKSetBlack" title="Set the transition range for CMY to black.">cupsCMYKSetBlack</a></li>
+<li><a href="#cupsCMYKSetCurve" title="Set a color transform curve using points.">cupsCMYKSetCurve</a></li>
+<li><a href="#cupsCMYKSetGamma" title="Set a color transform curve using gamma and density.">cupsCMYKSetGamma</a></li>
+<li><a href="#cupsCMYKSetInkLimit" title="Set the limit on the amount of ink.">cupsCMYKSetInkLimit</a></li>
+<li><a href="#cupsCMYKSetLtDk" title="Set light/dark ink transforms.">cupsCMYKSetLtDk</a></li>
+<li><a href="#cupsCheckBytes" title="Check to see if all bytes are zero.">cupsCheckBytes</a></li>
+<li><a href="#cupsCheckValue" title="Check to see if all bytes match the given value.">cupsCheckValue</a></li>
+<li><a href="#cupsDitherDelete" title="Free a dithering buffer.">cupsDitherDelete</a></li>
+<li><a href="#cupsDitherLine" title="Dither a line of pixels...">cupsDitherLine</a></li>
+<li><a href="#cupsDitherNew" title="Create an error-diffusion dithering buffer.">cupsDitherNew</a></li>
+<li><a href="#cupsFindAttr" title="Find a PPD attribute based on the colormodel,
 media, and resolution.">cupsFindAttr</a></li>
-       <li><a href="#cupsLutDelete" title="Free the memory used by a lookup table.">cupsLutDelete</a></li>
-       <li><a href="#cupsLutLoad" title="Load a LUT from a PPD file.">cupsLutLoad</a></li>
-       <li><a href="#cupsLutNew" title="Make a lookup table from a list of pixel values.">cupsLutNew</a></li>
-       <li><a href="#cupsPackHorizontal" title="Pack pixels horizontally...">cupsPackHorizontal</a></li>
-       <li><a href="#cupsPackHorizontal2" title="Pack 2-bit pixels horizontally...">cupsPackHorizontal2</a></li>
-       <li><a href="#cupsPackHorizontalBit" title="Pack pixels horizontally by bit...">cupsPackHorizontalBit</a></li>
-       <li><a href="#cupsPackVertical" title="Pack pixels vertically...">cupsPackVertical</a></li>
-       <li><a href="#cupsRGBDelete" title="Delete a color separation.">cupsRGBDelete</a></li>
-       <li><a href="#cupsRGBDoGray" title="Do a grayscale separation...">cupsRGBDoGray</a></li>
-       <li><a href="#cupsRGBDoRGB" title="Do a RGB separation...">cupsRGBDoRGB</a></li>
-       <li><a href="#cupsRGBLoad" title="Load a RGB color profile from a PPD file.">cupsRGBLoad</a></li>
-       <li><a href="#cupsRGBNew" title="Create a new RGB color separation.">cupsRGBNew</a></li>
+<li><a href="#cupsLutDelete" title="Free the memory used by a lookup table.">cupsLutDelete</a></li>
+<li><a href="#cupsLutLoad" title="Load a LUT from a PPD file.">cupsLutLoad</a></li>
+<li><a href="#cupsLutNew" title="Make a lookup table from a list of pixel values.">cupsLutNew</a></li>
+<li><a href="#cupsPackHorizontal" title="Pack pixels horizontally...">cupsPackHorizontal</a></li>
+<li><a href="#cupsPackHorizontal2" title="Pack 2-bit pixels horizontally...">cupsPackHorizontal2</a></li>
+<li><a href="#cupsPackHorizontalBit" title="Pack pixels horizontally by bit...">cupsPackHorizontalBit</a></li>
+<li><a href="#cupsPackVertical" title="Pack pixels vertically...">cupsPackVertical</a></li>
+<li><a href="#cupsRGBDelete" title="Delete a color separation.">cupsRGBDelete</a></li>
+<li><a href="#cupsRGBDoGray" title="Do a grayscale separation...">cupsRGBDoGray</a></li>
+<li><a href="#cupsRGBDoRGB" title="Do a RGB separation...">cupsRGBDoRGB</a></li>
+<li><a href="#cupsRGBLoad" title="Load a RGB color profile from a PPD file.">cupsRGBLoad</a></li>
+<li><a href="#cupsRGBNew" title="Create a new RGB color separation.">cupsRGBNew</a></li>
 </ul></li>
 <li><a href="#TYPES">Data Types</a><ul class="code">
        <li><a href="#cups_cmyk_t" title="Simple CMYK lookup table">cups_cmyk_t</a></li>
@@ -428,7 +428,6 @@ media, and resolution.">cupsFindAttr</a></li>
        <li><a href="#cups_scmy_lut[256]" title="sRGB gamma lookup table (inverted)">cups_scmy_lut[256]</a></li>
        <li><a href="#cups_srgb_lut[256]" title="sRGB gamma lookup table">cups_srgb_lut[256]</a></li>
 </ul></li>
-</ul>
 <!--
   "$Id$"
 
index a4cde044e9b3d152f4e96bfd5156d8d154183cfd..d798578345eccb07184ba7a26dcc6bf87a5a1282 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>File and Directory APIs  </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">
+<title>File and Directory APIs</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -378,41 +377,42 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#OVERVIEW">Overview</a></li>
 <li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#cupsDirClose" title="Close a directory.">cupsDirClose</a></li>
-       <li><a href="#cupsDirOpen" title="Open a directory.">cupsDirOpen</a></li>
-       <li><a href="#cupsDirRead" title="Read the next directory entry.">cupsDirRead</a></li>
-       <li><a href="#cupsDirRewind" title="Rewind to the start of the directory.">cupsDirRewind</a></li>
-       <li><a href="#cupsFileClose" title="Close a CUPS file.">cupsFileClose</a></li>
-       <li><a href="#cupsFileCompression" title="Return whether a file is compressed.">cupsFileCompression</a></li>
-       <li><a href="#cupsFileEOF" title="Return the end-of-file status.">cupsFileEOF</a></li>
-       <li><a href="#cupsFileFind" title="Find a file using the specified path.">cupsFileFind</a></li>
-       <li><a href="#cupsFileFlush" title="Flush pending output.">cupsFileFlush</a></li>
-       <li><a href="#cupsFileGetChar" title="Get a single character from a file.">cupsFileGetChar</a></li>
-       <li><a href="#cupsFileGetConf" title="Get a line from a configuration file...">cupsFileGetConf</a></li>
-       <li><a href="#cupsFileGetLine" title="Get a CR and/or LF-terminated line that may
+<li><a href="#cupsDirClose" title="Close a directory.">cupsDirClose</a></li>
+<li><a href="#cupsDirOpen" title="Open a directory.">cupsDirOpen</a></li>
+<li><a href="#cupsDirRead" title="Read the next directory entry.">cupsDirRead</a></li>
+<li><a href="#cupsDirRewind" title="Rewind to the start of the directory.">cupsDirRewind</a></li>
+<li><a href="#cupsFileClose" title="Close a CUPS file.">cupsFileClose</a></li>
+<li><a href="#cupsFileCompression" title="Return whether a file is compressed.">cupsFileCompression</a></li>
+<li><a href="#cupsFileEOF" title="Return the end-of-file status.">cupsFileEOF</a></li>
+<li><a href="#cupsFileFind" title="Find a file using the specified path.">cupsFileFind</a></li>
+<li><a href="#cupsFileFlush" title="Flush pending output.">cupsFileFlush</a></li>
+<li><a href="#cupsFileGetChar" title="Get a single character from a file.">cupsFileGetChar</a></li>
+<li><a href="#cupsFileGetConf" title="Get a line from a configuration file...">cupsFileGetConf</a></li>
+<li><a href="#cupsFileGetLine" title="Get a CR and/or LF-terminated line that may
 contain binary data.">cupsFileGetLine</a></li>
-       <li><a href="#cupsFileGets" title="Get a CR and/or LF-terminated line.">cupsFileGets</a></li>
-       <li><a href="#cupsFileLock" title="Temporarily lock access to a file.">cupsFileLock</a></li>
-       <li><a href="#cupsFileNumber" title="Return the file descriptor associated with a CUPS file.">cupsFileNumber</a></li>
-       <li><a href="#cupsFileOpen" title="Open a CUPS file.">cupsFileOpen</a></li>
-       <li><a href="#cupsFileOpenFd" title="Open a CUPS file using a file descriptor.">cupsFileOpenFd</a></li>
-       <li><a href="#cupsFilePeekChar" title="Peek at the next character from a file.">cupsFilePeekChar</a></li>
-       <li><a href="#cupsFilePrintf" title="Write a formatted string.">cupsFilePrintf</a></li>
-       <li><a href="#cupsFilePutChar" title="Write a character.">cupsFilePutChar</a></li>
-       <li><a href="#cupsFilePutConf" title="Write a configuration line.">cupsFilePutConf</a></li>
-       <li><a href="#cupsFilePuts" title="Write a string.">cupsFilePuts</a></li>
-       <li><a href="#cupsFileRead" title="Read from a file.">cupsFileRead</a></li>
-       <li><a href="#cupsFileRewind" title="Set the current file position to the beginning of the
+<li><a href="#cupsFileGets" title="Get a CR and/or LF-terminated line.">cupsFileGets</a></li>
+<li><a href="#cupsFileLock" title="Temporarily lock access to a file.">cupsFileLock</a></li>
+<li><a href="#cupsFileNumber" title="Return the file descriptor associated with a CUPS file.">cupsFileNumber</a></li>
+<li><a href="#cupsFileOpen" title="Open a CUPS file.">cupsFileOpen</a></li>
+<li><a href="#cupsFileOpenFd" title="Open a CUPS file using a file descriptor.">cupsFileOpenFd</a></li>
+<li><a href="#cupsFilePeekChar" title="Peek at the next character from a file.">cupsFilePeekChar</a></li>
+<li><a href="#cupsFilePrintf" title="Write a formatted string.">cupsFilePrintf</a></li>
+<li><a href="#cupsFilePutChar" title="Write a character.">cupsFilePutChar</a></li>
+<li><a href="#cupsFilePutConf" title="Write a configuration line.">cupsFilePutConf</a></li>
+<li><a href="#cupsFilePuts" title="Write a string.">cupsFilePuts</a></li>
+<li><a href="#cupsFileRead" title="Read from a file.">cupsFileRead</a></li>
+<li><a href="#cupsFileRewind" title="Set the current file position to the beginning of the
 file.">cupsFileRewind</a></li>
-       <li><a href="#cupsFileSeek" title="Seek in a file.">cupsFileSeek</a></li>
-       <li><a href="#cupsFileStderr" title="Return a CUPS file associated with stderr.">cupsFileStderr</a></li>
-       <li><a href="#cupsFileStdin" title="Return a CUPS file associated with stdin.">cupsFileStdin</a></li>
-       <li><a href="#cupsFileStdout" title="Return a CUPS file associated with stdout.">cupsFileStdout</a></li>
-       <li><a href="#cupsFileTell" title="Return the current file position.">cupsFileTell</a></li>
-       <li><a href="#cupsFileUnlock" title="Unlock access to a file.">cupsFileUnlock</a></li>
-       <li><a href="#cupsFileWrite" title="Write to a file.">cupsFileWrite</a></li>
+<li><a href="#cupsFileSeek" title="Seek in a file.">cupsFileSeek</a></li>
+<li><a href="#cupsFileStderr" title="Return a CUPS file associated with stderr.">cupsFileStderr</a></li>
+<li><a href="#cupsFileStdin" title="Return a CUPS file associated with stdin.">cupsFileStdin</a></li>
+<li><a href="#cupsFileStdout" title="Return a CUPS file associated with stdout.">cupsFileStdout</a></li>
+<li><a href="#cupsFileTell" title="Return the current file position.">cupsFileTell</a></li>
+<li><a href="#cupsFileUnlock" title="Unlock access to a file.">cupsFileUnlock</a></li>
+<li><a href="#cupsFileWrite" title="Write to a file.">cupsFileWrite</a></li>
 </ul></li>
 <li><a href="#TYPES">Data Types</a><ul class="code">
        <li><a href="#cups_dentry_t" title="Directory entry type">cups_dentry_t</a></li>
@@ -422,7 +422,6 @@ file.">cupsFileRewind</a></li>
 <li><a href="#STRUCTURES">Structures</a><ul class="code">
        <li><a href="#cups_dentry_s" title="Directory entry type">cups_dentry_s</a></li>
 </ul></li>
-</ul>
 <!--
   "$Id$"
 
index b01c41738cf0c89a8059940610185e201aa01e2c..48ed8dcb48056ee4c04f49dade80fa87fbfa7d01 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>Filter and Backend Programming   </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">
+<title>Filter and Backend Programming</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -384,28 +383,29 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#OVERVIEW">Overview</a><ul class="subcontents">
-       <li><a href="#SECURITY">Security Considerations</a></li>
-       <li><a href="#PERMISSIONS">File Permissions</a></li>
-       <li><a href="#TEMPFILES">Temporary Files</a></li>
-       <li><a href="#COPIES">Copy Generation</a></li>
-       <li><a href="#EXITCODES">Exit Codes</a></li>
-       <li><a href="#ENVIRONMENT">Environment Variables</a></li>
-       <li><a href="#MESSAGES">Communicating with the Scheduler</a></li>
-       <li><a href="#COMMUNICATING_BACKEND">Communicating with the Backend</a></li>
-       <li><a href="#COMMUNICATING_FILTER">Communicating with Filters</a></li>
-       <li><a href="#SNMP">Doing SNMP Queries with Network Printers</a></li>
+<li><a href="#SECURITY">Security Considerations</a></li>
+<li><a href="#PERMISSIONS">File Permissions</a></li>
+<li><a href="#TEMPFILES">Temporary Files</a></li>
+<li><a href="#COPIES">Copy Generation</a></li>
+<li><a href="#EXITCODES">Exit Codes</a></li>
+<li><a href="#ENVIRONMENT">Environment Variables</a></li>
+<li><a href="#MESSAGES">Communicating with the Scheduler</a></li>
+<li><a href="#COMMUNICATING_BACKEND">Communicating with the Backend</a></li>
+<li><a href="#COMMUNICATING_FILTER">Communicating with Filters</a></li>
+<li><a href="#SNMP">Doing SNMP Queries with Network Printers</a></li>
 </ul></li>
 <li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#cupsBackChannelRead" title="Read data from the backchannel.">cupsBackChannelRead</a></li>
-       <li><a href="#cupsBackChannelWrite" title="Write data to the backchannel.">cupsBackChannelWrite</a></li>
-       <li><a href="#cupsBackendDeviceURI" title="Get the device URI for a backend.">cupsBackendDeviceURI</a></li>
-       <li><a href="#cupsBackendReport" title="Write a device line from a backend.">cupsBackendReport</a></li>
-       <li><a href="#cupsSideChannelDoRequest" title="Send a side-channel command to a backend and wait for a response.">cupsSideChannelDoRequest</a></li>
-       <li><a href="#cupsSideChannelRead" title="Read a side-channel message.">cupsSideChannelRead</a></li>
-       <li><a href="#cupsSideChannelSNMPGet" title="Query a SNMP OID's value.">cupsSideChannelSNMPGet</a></li>
-       <li><a href="#cupsSideChannelSNMPWalk" title="Query multiple SNMP OID values.">cupsSideChannelSNMPWalk</a></li>
-       <li><a href="#cupsSideChannelWrite" title="Write a side-channel message.">cupsSideChannelWrite</a></li>
+<li><a href="#cupsBackChannelRead" title="Read data from the backchannel.">cupsBackChannelRead</a></li>
+<li><a href="#cupsBackChannelWrite" title="Write data to the backchannel.">cupsBackChannelWrite</a></li>
+<li><a href="#cupsBackendDeviceURI" title="Get the device URI for a backend.">cupsBackendDeviceURI</a></li>
+<li><a href="#cupsBackendReport" title="Write a device line from a backend.">cupsBackendReport</a></li>
+<li><a href="#cupsSideChannelDoRequest" title="Send a side-channel command to a backend and wait for a response.">cupsSideChannelDoRequest</a></li>
+<li><a href="#cupsSideChannelRead" title="Read a side-channel message.">cupsSideChannelRead</a></li>
+<li><a href="#cupsSideChannelSNMPGet" title="Query a SNMP OID's value.">cupsSideChannelSNMPGet</a></li>
+<li><a href="#cupsSideChannelSNMPWalk" title="Query multiple SNMP OID values.">cupsSideChannelSNMPWalk</a></li>
+<li><a href="#cupsSideChannelWrite" title="Write a side-channel message.">cupsSideChannelWrite</a></li>
 </ul></li>
 <li><a href="#TYPES">Data Types</a><ul class="code">
        <li><a href="#cups_backend_t" title="Backend exit codes">cups_backend_t</a></li>
@@ -422,7 +422,6 @@ div.contents ul.subcontents li {
        <li><a href="#cups_sc_state_e" title="Printer state bits">cups_sc_state_e</a></li>
        <li><a href="#cups_sc_status_e" title="Response status codes">cups_sc_status_e</a></li>
 </ul></li>
-</ul>
 <!--
   "$Id$"
 
index 40737993e4df878d9cf6aea4e654a504381ca136..98878ddaba3b310a0d6c22dd53fa69d5279914f4 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>HTTP and IPP APIs        </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">
+<title>HTTP and IPP APIs</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -379,151 +378,152 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#OVERVIEW">Overview</a><ul class="subcontents">
-       <li><a href="#CREATING_URI_STRINGS">Creating URI Strings</a></li>
-       <li><a href="#SENDING_REQUESTS_WITH_FILES">Sending Requests with Files</a></li>
-       <li><a href="#ASYNCHRONOUS_REQUEST_PROCESSING">Asynchronous Request Processing</a></li>
+<li><a href="#CREATING_URI_STRINGS">Creating URI Strings</a></li>
+<li><a href="#SENDING_REQUESTS_WITH_FILES">Sending Requests with Files</a></li>
+<li><a href="#ASYNCHRONOUS_REQUEST_PROCESSING">Asynchronous Request Processing</a></li>
 </ul></li>
 <li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#cupsDoAuthentication" title="Authenticate a request.">cupsDoAuthentication</a></li>
-       <li><a href="#cupsDoFileRequest" title="Do an IPP request with a file.">cupsDoFileRequest</a></li>
-       <li><a href="#cupsDoIORequest" title="Do an IPP request with file descriptors.">cupsDoIORequest</a></li>
-       <li><a href="#cupsDoRequest" title="Do an IPP request.">cupsDoRequest</a></li>
-       <li><a href="#cupsEncodeOptions" title="Encode printer options into IPP attributes.">cupsEncodeOptions</a></li>
-       <li><a href="#cupsEncodeOptions2" title="Encode printer options into IPP attributes for a group.">cupsEncodeOptions2</a></li>
-       <li><a href="#cupsGetDevices" title="Get available printer devices.">cupsGetDevices</a></li>
-       <li><a href="#cupsGetFd" title="Get a file from the server.">cupsGetFd</a></li>
-       <li><a href="#cupsGetFile" title="Get a file from the server.">cupsGetFile</a></li>
-       <li><a href="#cupsGetResponse" title="Get a response to an IPP request.">cupsGetResponse</a></li>
-       <li><a href="#cupsLastError" title="Return the last IPP status code.">cupsLastError</a></li>
-       <li><a href="#cupsLastErrorString" title="Return the last IPP status-message.">cupsLastErrorString</a></li>
-       <li><a href="#cupsPutFd" title="Put a file on the server.">cupsPutFd</a></li>
-       <li><a href="#cupsPutFile" title="Put a file on the server.">cupsPutFile</a></li>
-       <li><a href="#cupsReadResponseData" title="Read additional data after the IPP response.">cupsReadResponseData</a></li>
-       <li><a href="#cupsSendRequest" title="Send an IPP request.">cupsSendRequest</a></li>
-       <li><a href="#cupsWriteRequestData" title="Write additional data after an IPP request.">cupsWriteRequestData</a></li>
-       <li><a href="#httpAddCredential" title="Allocates and adds a single credential to an array.">httpAddCredential</a></li>
-       <li><a href="#httpAddrAny" title="Check for the &quot;any&quot; address.">httpAddrAny</a></li>
-       <li><a href="#httpAddrEqual" title="Compare two addresses.">httpAddrEqual</a></li>
-       <li><a href="#httpAddrLength" title="Return the length of the address in bytes.">httpAddrLength</a></li>
-       <li><a href="#httpAddrLocalhost" title="Check for the local loopback address.">httpAddrLocalhost</a></li>
-       <li><a href="#httpAddrLookup" title="Lookup the hostname associated with the address.">httpAddrLookup</a></li>
-       <li><a href="#httpAddrString" title="Convert an address to a numeric string.">httpAddrString</a></li>
-       <li><a href="#httpAssembleURI" title="Assemble a uniform resource identifier from its
+<li><a href="#cupsDoAuthentication" title="Authenticate a request.">cupsDoAuthentication</a></li>
+<li><a href="#cupsDoFileRequest" title="Do an IPP request with a file.">cupsDoFileRequest</a></li>
+<li><a href="#cupsDoIORequest" title="Do an IPP request with file descriptors.">cupsDoIORequest</a></li>
+<li><a href="#cupsDoRequest" title="Do an IPP request.">cupsDoRequest</a></li>
+<li><a href="#cupsEncodeOptions" title="Encode printer options into IPP attributes.">cupsEncodeOptions</a></li>
+<li><a href="#cupsEncodeOptions2" title="Encode printer options into IPP attributes for a group.">cupsEncodeOptions2</a></li>
+<li><a href="#cupsGetDevices" title="Get available printer devices.">cupsGetDevices</a></li>
+<li><a href="#cupsGetFd" title="Get a file from the server.">cupsGetFd</a></li>
+<li><a href="#cupsGetFile" title="Get a file from the server.">cupsGetFile</a></li>
+<li><a href="#cupsGetResponse" title="Get a response to an IPP request.">cupsGetResponse</a></li>
+<li><a href="#cupsLastError" title="Return the last IPP status code.">cupsLastError</a></li>
+<li><a href="#cupsLastErrorString" title="Return the last IPP status-message.">cupsLastErrorString</a></li>
+<li><a href="#cupsPutFd" title="Put a file on the server.">cupsPutFd</a></li>
+<li><a href="#cupsPutFile" title="Put a file on the server.">cupsPutFile</a></li>
+<li><a href="#cupsReadResponseData" title="Read additional data after the IPP response.">cupsReadResponseData</a></li>
+<li><a href="#cupsSendRequest" title="Send an IPP request.">cupsSendRequest</a></li>
+<li><a href="#cupsWriteRequestData" title="Write additional data after an IPP request.">cupsWriteRequestData</a></li>
+<li><a href="#httpAddCredential" title="Allocates and adds a single credential to an array.">httpAddCredential</a></li>
+<li><a href="#httpAddrAny" title="Check for the &quot;any&quot; address.">httpAddrAny</a></li>
+<li><a href="#httpAddrEqual" title="Compare two addresses.">httpAddrEqual</a></li>
+<li><a href="#httpAddrLength" title="Return the length of the address in bytes.">httpAddrLength</a></li>
+<li><a href="#httpAddrLocalhost" title="Check for the local loopback address.">httpAddrLocalhost</a></li>
+<li><a href="#httpAddrLookup" title="Lookup the hostname associated with the address.">httpAddrLookup</a></li>
+<li><a href="#httpAddrString" title="Convert an address to a numeric string.">httpAddrString</a></li>
+<li><a href="#httpAssembleURI" title="Assemble a uniform resource identifier from its
 components.">httpAssembleURI</a></li>
-       <li><a href="#httpAssembleURIf" title="Assemble a uniform resource identifier from its
+<li><a href="#httpAssembleURIf" title="Assemble a uniform resource identifier from its
 components with a formatted resource.">httpAssembleURIf</a></li>
-       <li><a href="#httpBlocking" title="Set blocking/non-blocking behavior on a connection.">httpBlocking</a></li>
-       <li><a href="#httpCheck" title="Check to see if there is a pending response from the server.">httpCheck</a></li>
-       <li><a href="#httpClearCookie" title="Clear the cookie value(s).">httpClearCookie</a></li>
-       <li><a href="#httpClearFields" title="Clear HTTP request fields.">httpClearFields</a></li>
-       <li><a href="#httpClose" title="Close an HTTP connection.">httpClose</a></li>
-       <li><a href="#httpConnect" title="Connect to a HTTP server.">httpConnect</a></li>
-       <li><a href="#httpConnectEncrypt" title="Connect to a HTTP server using encryption.">httpConnectEncrypt</a></li>
-       <li><a href="#httpCopyCredentials" title="Copy the credentials associated with an encrypted
+<li><a href="#httpBlocking" title="Set blocking/non-blocking behavior on a connection.">httpBlocking</a></li>
+<li><a href="#httpCheck" title="Check to see if there is a pending response from the server.">httpCheck</a></li>
+<li><a href="#httpClearCookie" title="Clear the cookie value(s).">httpClearCookie</a></li>
+<li><a href="#httpClearFields" title="Clear HTTP request fields.">httpClearFields</a></li>
+<li><a href="#httpClose" title="Close an HTTP connection.">httpClose</a></li>
+<li><a href="#httpConnect" title="Connect to a HTTP server.">httpConnect</a></li>
+<li><a href="#httpConnectEncrypt" title="Connect to a HTTP server using encryption.">httpConnectEncrypt</a></li>
+<li><a href="#httpCopyCredentials" title="Copy the credentials associated with an encrypted
 connection.">httpCopyCredentials</a></li>
-       <li><a href="#httpDecode64" title="Base64-decode a string.">httpDecode64</a></li>
-       <li><a href="#httpDecode64_2" title="Base64-decode a string.">httpDecode64_2</a></li>
-       <li><a href="#httpDelete" title="Send a DELETE request to the server.">httpDelete</a></li>
-       <li><a href="#httpEncode64" title="Base64-encode a string.">httpEncode64</a></li>
-       <li><a href="#httpEncode64_2" title="Base64-encode a string.">httpEncode64_2</a></li>
-       <li><a href="#httpEncryption" title="Set the required encryption on the link.">httpEncryption</a></li>
-       <li><a href="#httpError" title="Get the last error on a connection.">httpError</a></li>
-       <li><a href="#httpFlush" title="Flush data from a HTTP connection.">httpFlush</a></li>
-       <li><a href="#httpFlushWrite" title="Flush data in write buffer.">httpFlushWrite</a></li>
-       <li><a href="#httpFreeCredentials" title="Free an array of credentials.">httpFreeCredentials</a></li>
-       <li><a href="#httpGet" title="Send a GET request to the server.">httpGet</a></li>
-       <li><a href="#httpGetAuthString" title="Get the current authorization string.">httpGetAuthString</a></li>
-       <li><a href="#httpGetBlocking" title="Get the blocking/non-block state of a connection.">httpGetBlocking</a></li>
-       <li><a href="#httpGetCookie" title="Get any cookie data from the response.">httpGetCookie</a></li>
-       <li><a href="#httpGetDateString" title="Get a formatted date/time string from a time value.">httpGetDateString</a></li>
-       <li><a href="#httpGetDateString2" title="Get a formatted date/time string from a time value.">httpGetDateString2</a></li>
-       <li><a href="#httpGetDateTime" title="Get a time value from a formatted date/time string.">httpGetDateTime</a></li>
-       <li><a href="#httpGetFd" title="Get the file descriptor associated with a connection.">httpGetFd</a></li>
-       <li><a href="#httpGetField" title="Get a field value from a request/response.">httpGetField</a></li>
-       <li><a href="#httpGetHostByName" title="Lookup a hostname or IPv4 address, and return
+<li><a href="#httpDecode64" title="Base64-decode a string.">httpDecode64</a></li>
+<li><a href="#httpDecode64_2" title="Base64-decode a string.">httpDecode64_2</a></li>
+<li><a href="#httpDelete" title="Send a DELETE request to the server.">httpDelete</a></li>
+<li><a href="#httpEncode64" title="Base64-encode a string.">httpEncode64</a></li>
+<li><a href="#httpEncode64_2" title="Base64-encode a string.">httpEncode64_2</a></li>
+<li><a href="#httpEncryption" title="Set the required encryption on the link.">httpEncryption</a></li>
+<li><a href="#httpError" title="Get the last error on a connection.">httpError</a></li>
+<li><a href="#httpFlush" title="Flush data from a HTTP connection.">httpFlush</a></li>
+<li><a href="#httpFlushWrite" title="Flush data in write buffer.">httpFlushWrite</a></li>
+<li><a href="#httpFreeCredentials" title="Free an array of credentials.">httpFreeCredentials</a></li>
+<li><a href="#httpGet" title="Send a GET request to the server.">httpGet</a></li>
+<li><a href="#httpGetAuthString" title="Get the current authorization string.">httpGetAuthString</a></li>
+<li><a href="#httpGetBlocking" title="Get the blocking/non-block state of a connection.">httpGetBlocking</a></li>
+<li><a href="#httpGetCookie" title="Get any cookie data from the response.">httpGetCookie</a></li>
+<li><a href="#httpGetDateString" title="Get a formatted date/time string from a time value.">httpGetDateString</a></li>
+<li><a href="#httpGetDateString2" title="Get a formatted date/time string from a time value.">httpGetDateString2</a></li>
+<li><a href="#httpGetDateTime" title="Get a time value from a formatted date/time string.">httpGetDateTime</a></li>
+<li><a href="#httpGetFd" title="Get the file descriptor associated with a connection.">httpGetFd</a></li>
+<li><a href="#httpGetField" title="Get a field value from a request/response.">httpGetField</a></li>
+<li><a href="#httpGetHostByName" title="Lookup a hostname or IPv4 address, and return
 address records for the specified name.">httpGetHostByName</a></li>
-       <li><a href="#httpGetHostname" title="Get the FQDN for the connection or local system.">httpGetHostname</a></li>
-       <li><a href="#httpGetLength" title="Get the amount of data remaining from the
+<li><a href="#httpGetHostname" title="Get the FQDN for the connection or local system.">httpGetHostname</a></li>
+<li><a href="#httpGetLength" title="Get the amount of data remaining from the
 content-length or transfer-encoding fields.">httpGetLength</a></li>
-       <li><a href="#httpGetLength2" title="Get the amount of data remaining from the
+<li><a href="#httpGetLength2" title="Get the amount of data remaining from the
 content-length or transfer-encoding fields.">httpGetLength2</a></li>
-       <li><a href="#httpGetStatus" title="Get the status of the last HTTP request.">httpGetStatus</a></li>
-       <li><a href="#httpGetSubField" title="Get a sub-field value.">httpGetSubField</a></li>
-       <li><a href="#httpGetSubField2" title="Get a sub-field value.">httpGetSubField2</a></li>
-       <li><a href="#httpGets" title="Get a line of text from a HTTP connection.">httpGets</a></li>
-       <li><a href="#httpHead" title="Send a HEAD request to the server.">httpHead</a></li>
-       <li><a href="#httpInitialize" title="Initialize the HTTP interface library and set the
+<li><a href="#httpGetStatus" title="Get the status of the last HTTP request.">httpGetStatus</a></li>
+<li><a href="#httpGetSubField" title="Get a sub-field value.">httpGetSubField</a></li>
+<li><a href="#httpGetSubField2" title="Get a sub-field value.">httpGetSubField2</a></li>
+<li><a href="#httpGets" title="Get a line of text from a HTTP connection.">httpGets</a></li>
+<li><a href="#httpHead" title="Send a HEAD request to the server.">httpHead</a></li>
+<li><a href="#httpInitialize" title="Initialize the HTTP interface library and set the
 default HTTP proxy (if any).">httpInitialize</a></li>
-       <li><a href="#httpMD5" title="Compute the MD5 sum of the username:group:password.">httpMD5</a></li>
-       <li><a href="#httpMD5Final" title="Combine the MD5 sum of the username, group, and password
+<li><a href="#httpMD5" title="Compute the MD5 sum of the username:group:password.">httpMD5</a></li>
+<li><a href="#httpMD5Final" title="Combine the MD5 sum of the username, group, and password
 with the server-supplied nonce value, method, and
 request-uri.">httpMD5Final</a></li>
-       <li><a href="#httpMD5String" title="Convert an MD5 sum to a character string.">httpMD5String</a></li>
-       <li><a href="#httpOptions" title="Send an OPTIONS request to the server.">httpOptions</a></li>
-       <li><a href="#httpPost" title="Send a POST request to the server.">httpPost</a></li>
-       <li><a href="#httpPut" title="Send a PUT request to the server.">httpPut</a></li>
-       <li><a href="#httpRead" title="Read data from a HTTP connection.">httpRead</a></li>
-       <li><a href="#httpRead2" title="Read data from a HTTP connection.">httpRead2</a></li>
-       <li><a href="#httpReconnect" title="Reconnect to a HTTP server.">httpReconnect</a></li>
-       <li><a href="#httpSeparate" title="Separate a Universal Resource Identifier into its
+<li><a href="#httpMD5String" title="Convert an MD5 sum to a character string.">httpMD5String</a></li>
+<li><a href="#httpOptions" title="Send an OPTIONS request to the server.">httpOptions</a></li>
+<li><a href="#httpPost" title="Send a POST request to the server.">httpPost</a></li>
+<li><a href="#httpPut" title="Send a PUT request to the server.">httpPut</a></li>
+<li><a href="#httpRead" title="Read data from a HTTP connection.">httpRead</a></li>
+<li><a href="#httpRead2" title="Read data from a HTTP connection.">httpRead2</a></li>
+<li><a href="#httpReconnect" title="Reconnect to a HTTP server.">httpReconnect</a></li>
+<li><a href="#httpSeparate" title="Separate a Universal Resource Identifier into its
 components.">httpSeparate</a></li>
-       <li><a href="#httpSeparate2" title="Separate a Universal Resource Identifier into its
+<li><a href="#httpSeparate2" title="Separate a Universal Resource Identifier into its
 components.">httpSeparate2</a></li>
-       <li><a href="#httpSeparateURI" title="Separate a Universal Resource Identifier into its
+<li><a href="#httpSeparateURI" title="Separate a Universal Resource Identifier into its
 components.">httpSeparateURI</a></li>
-       <li><a href="#httpSetAuthString" title="Set the current authorization string.">httpSetAuthString</a></li>
-       <li><a href="#httpSetCookie" title="Set the cookie value(s).">httpSetCookie</a></li>
-       <li><a href="#httpSetCredentials" title="Set the credentials associated with an encrypted
+<li><a href="#httpSetAuthString" title="Set the current authorization string.">httpSetAuthString</a></li>
+<li><a href="#httpSetCookie" title="Set the cookie value(s).">httpSetCookie</a></li>
+<li><a href="#httpSetCredentials" title="Set the credentials associated with an encrypted
 connection.">httpSetCredentials</a></li>
-       <li><a href="#httpSetExpect" title="Set the Expect: header in a request.">httpSetExpect</a></li>
-       <li><a href="#httpSetField" title="Set the value of an HTTP header.">httpSetField</a></li>
-       <li><a href="#httpSetLength" title="Set the content-length and content-encoding.">httpSetLength</a></li>
-       <li><a href="#httpStatus" title="Return a short string describing a HTTP status code.">httpStatus</a></li>
-       <li><a href="#httpTrace" title="Send an TRACE request to the server.">httpTrace</a></li>
-       <li><a href="#httpUpdate" title="Update the current HTTP state for incoming data.">httpUpdate</a></li>
-       <li><a href="#httpWait" title="Wait for data available on a connection.">httpWait</a></li>
-       <li><a href="#httpWrite" title="Write data to a HTTP connection.">httpWrite</a></li>
-       <li><a href="#httpWrite2" title="Write data to a HTTP connection.">httpWrite2</a></li>
-       <li><a href="#ippAddBoolean" title="Add a boolean attribute to an IPP message.">ippAddBoolean</a></li>
-       <li><a href="#ippAddBooleans" title="Add an array of boolean values.">ippAddBooleans</a></li>
-       <li><a href="#ippAddCollection" title="Add a collection value.">ippAddCollection</a></li>
-       <li><a href="#ippAddCollections" title="Add an array of collection values.">ippAddCollections</a></li>
-       <li><a href="#ippAddDate" title="Add a date attribute to an IPP message.">ippAddDate</a></li>
-       <li><a href="#ippAddInteger" title="Add a integer attribute to an IPP message.">ippAddInteger</a></li>
-       <li><a href="#ippAddIntegers" title="Add an array of integer values.">ippAddIntegers</a></li>
-       <li><a href="#ippAddOctetString" title="Add an octetString value to an IPP message.">ippAddOctetString</a></li>
-       <li><a href="#ippAddRange" title="Add a range of values to an IPP message.">ippAddRange</a></li>
-       <li><a href="#ippAddRanges" title="Add ranges of values to an IPP message.">ippAddRanges</a></li>
-       <li><a href="#ippAddResolution" title="Add a resolution value to an IPP message.">ippAddResolution</a></li>
-       <li><a href="#ippAddResolutions" title="Add resolution values to an IPP message.">ippAddResolutions</a></li>
-       <li><a href="#ippAddSeparator" title="Add a group separator to an IPP message.">ippAddSeparator</a></li>
-       <li><a href="#ippAddString" title="Add a language-encoded string to an IPP message.">ippAddString</a></li>
-       <li><a href="#ippAddStrings" title="Add language-encoded strings to an IPP message.">ippAddStrings</a></li>
-       <li><a href="#ippDateToTime" title="Convert from RFC 1903 Date/Time format to UNIX time
+<li><a href="#httpSetExpect" title="Set the Expect: header in a request.">httpSetExpect</a></li>
+<li><a href="#httpSetField" title="Set the value of an HTTP header.">httpSetField</a></li>
+<li><a href="#httpSetLength" title="Set the content-length and content-encoding.">httpSetLength</a></li>
+<li><a href="#httpStatus" title="Return a short string describing a HTTP status code.">httpStatus</a></li>
+<li><a href="#httpTrace" title="Send an TRACE request to the server.">httpTrace</a></li>
+<li><a href="#httpUpdate" title="Update the current HTTP state for incoming data.">httpUpdate</a></li>
+<li><a href="#httpWait" title="Wait for data available on a connection.">httpWait</a></li>
+<li><a href="#httpWrite" title="Write data to a HTTP connection.">httpWrite</a></li>
+<li><a href="#httpWrite2" title="Write data to a HTTP connection.">httpWrite2</a></li>
+<li><a href="#ippAddBoolean" title="Add a boolean attribute to an IPP message.">ippAddBoolean</a></li>
+<li><a href="#ippAddBooleans" title="Add an array of boolean values.">ippAddBooleans</a></li>
+<li><a href="#ippAddCollection" title="Add a collection value.">ippAddCollection</a></li>
+<li><a href="#ippAddCollections" title="Add an array of collection values.">ippAddCollections</a></li>
+<li><a href="#ippAddDate" title="Add a date attribute to an IPP message.">ippAddDate</a></li>
+<li><a href="#ippAddInteger" title="Add a integer attribute to an IPP message.">ippAddInteger</a></li>
+<li><a href="#ippAddIntegers" title="Add an array of integer values.">ippAddIntegers</a></li>
+<li><a href="#ippAddOctetString" title="Add an octetString value to an IPP message.">ippAddOctetString</a></li>
+<li><a href="#ippAddRange" title="Add a range of values to an IPP message.">ippAddRange</a></li>
+<li><a href="#ippAddRanges" title="Add ranges of values to an IPP message.">ippAddRanges</a></li>
+<li><a href="#ippAddResolution" title="Add a resolution value to an IPP message.">ippAddResolution</a></li>
+<li><a href="#ippAddResolutions" title="Add resolution values to an IPP message.">ippAddResolutions</a></li>
+<li><a href="#ippAddSeparator" title="Add a group separator to an IPP message.">ippAddSeparator</a></li>
+<li><a href="#ippAddString" title="Add a language-encoded string to an IPP message.">ippAddString</a></li>
+<li><a href="#ippAddStrings" title="Add language-encoded strings to an IPP message.">ippAddStrings</a></li>
+<li><a href="#ippDateToTime" title="Convert from RFC 1903 Date/Time format to UNIX time
 in seconds.">ippDateToTime</a></li>
-       <li><a href="#ippDelete" title="Delete an IPP message.">ippDelete</a></li>
-       <li><a href="#ippDeleteAttribute" title="Delete a single attribute in an IPP message.">ippDeleteAttribute</a></li>
-       <li><a href="#ippErrorString" title="Return a name for the given status code.">ippErrorString</a></li>
-       <li><a href="#ippErrorValue" title="Return a status code for the given name.">ippErrorValue</a></li>
-       <li><a href="#ippFindAttribute" title="Find a named attribute in a request...">ippFindAttribute</a></li>
-       <li><a href="#ippFindNextAttribute" title="Find the next named attribute in a request...">ippFindNextAttribute</a></li>
-       <li><a href="#ippLength" title="Compute the length of an IPP message.">ippLength</a></li>
-       <li><a href="#ippNew" title="Allocate a new IPP message.">ippNew</a></li>
-       <li><a href="#ippNewRequest" title="Allocate a new IPP request message.">ippNewRequest</a></li>
-       <li><a href="#ippOpString" title="Return a name for the given operation id.">ippOpString</a></li>
-       <li><a href="#ippOpValue" title="Return an operation id for the given name.">ippOpValue</a></li>
-       <li><a href="#ippPort" title="Return the default IPP port number.">ippPort</a></li>
-       <li><a href="#ippRead" title="Read data for an IPP message from a HTTP connection.">ippRead</a></li>
-       <li><a href="#ippReadFile" title="Read data for an IPP message from a file.">ippReadFile</a></li>
-       <li><a href="#ippReadIO" title="Read data for an IPP message.">ippReadIO</a></li>
-       <li><a href="#ippSetPort" title="Set the default port number.">ippSetPort</a></li>
-       <li><a href="#ippTagString" title="Return the tag name corresponding to a tag value.">ippTagString</a></li>
-       <li><a href="#ippTagValue" title="Return the tag value corresponding to a tag name.">ippTagValue</a></li>
-       <li><a href="#ippTimeToDate" title="Convert from UNIX time to RFC 1903 format.">ippTimeToDate</a></li>
-       <li><a href="#ippWrite" title="Write data for an IPP message to a HTTP connection.">ippWrite</a></li>
-       <li><a href="#ippWriteFile" title="Write data for an IPP message to a file.">ippWriteFile</a></li>
-       <li><a href="#ippWriteIO" title="Write data for an IPP message.">ippWriteIO</a></li>
+<li><a href="#ippDelete" title="Delete an IPP message.">ippDelete</a></li>
+<li><a href="#ippDeleteAttribute" title="Delete a single attribute in an IPP message.">ippDeleteAttribute</a></li>
+<li><a href="#ippErrorString" title="Return a name for the given status code.">ippErrorString</a></li>
+<li><a href="#ippErrorValue" title="Return a status code for the given name.">ippErrorValue</a></li>
+<li><a href="#ippFindAttribute" title="Find a named attribute in a request...">ippFindAttribute</a></li>
+<li><a href="#ippFindNextAttribute" title="Find the next named attribute in a request...">ippFindNextAttribute</a></li>
+<li><a href="#ippLength" title="Compute the length of an IPP message.">ippLength</a></li>
+<li><a href="#ippNew" title="Allocate a new IPP message.">ippNew</a></li>
+<li><a href="#ippNewRequest" title="Allocate a new IPP request message.">ippNewRequest</a></li>
+<li><a href="#ippOpString" title="Return a name for the given operation id.">ippOpString</a></li>
+<li><a href="#ippOpValue" title="Return an operation id for the given name.">ippOpValue</a></li>
+<li><a href="#ippPort" title="Return the default IPP port number.">ippPort</a></li>
+<li><a href="#ippRead" title="Read data for an IPP message from a HTTP connection.">ippRead</a></li>
+<li><a href="#ippReadFile" title="Read data for an IPP message from a file.">ippReadFile</a></li>
+<li><a href="#ippReadIO" title="Read data for an IPP message.">ippReadIO</a></li>
+<li><a href="#ippSetPort" title="Set the default port number.">ippSetPort</a></li>
+<li><a href="#ippTagString" title="Return the tag name corresponding to a tag value.">ippTagString</a></li>
+<li><a href="#ippTagValue" title="Return the tag value corresponding to a tag name.">ippTagValue</a></li>
+<li><a href="#ippTimeToDate" title="Convert from UNIX time to RFC 1903 format.">ippTimeToDate</a></li>
+<li><a href="#ippWrite" title="Write data for an IPP message to a HTTP connection.">ippWrite</a></li>
+<li><a href="#ippWriteFile" title="Write data for an IPP message to a file.">ippWriteFile</a></li>
+<li><a href="#ippWriteIO" title="Write data for an IPP message.">ippWriteIO</a></li>
 </ul></li>
 <li><a href="#TYPES">Data Types</a><ul class="code">
        <li><a href="#http_addr_t" title="Socket address union, which
@@ -599,7 +599,6 @@ are server-oriented...">http_state_e</a></li>
        <li><a href="#ipp_status_e" title="IPP status codes">ipp_status_e</a></li>
        <li><a href="#ipp_tag_e" title="Format tags for attributes">ipp_tag_e</a></li>
 </ul></li>
-</ul>
 <!--
   "$Id$"
 
index 58cbf1a265fc9d8bacea93d8de7b667bd705c051..e904ddbd5ae163d24d9f7346226e0831d3c0ebaf 100644 (file)
@@ -2,10 +2,9 @@
 <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">
+<title>MIME API</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -376,27 +375,28 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <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="#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="#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="MIME database">mimeNumFilters</a></li>
-       <li><a href="#mimeNumTypes" title="MIME database">mimeNumTypes</a></li>
-       <li><a href="#mimeType" title="Lookup a file type.">mimeType</a></li>
+<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="#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="#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="MIME database">mimeNumFilters</a></li>
+<li><a href="#mimeNumTypes" title="MIME database">mimeNumTypes</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="#mime_filter_t" title="MIME Conversion Filter Data">mime_filter_t</a></li>
@@ -405,7 +405,6 @@ div.contents ul.subcontents 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>
 <!--
   "$Id$"
 
index c3c9a03e16243a999a649901cd8bbc588d2b5a51..bdd3f612bc64a214a2c98a18a60dfdab94a50719 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>Introduction to CUPS Programming </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">
+<title>Introduction to CUPS Programming</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -396,13 +395,13 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#OVERVIEW">Overview</a></li>
 <li><a href="#COMPILING">Compiling Programs</a><ul class="subcontents">
-       <li><a href="#XCODE">Compiling with Xcode</a></li>
-       <li><a href="#COMMANDLINE">Compiling with GCC</a></li>
+<li><a href="#XCODE">Compiling with Xcode</a></li>
+<li><a href="#COMMANDLINE">Compiling with GCC</a></li>
 </ul></li>
 <li><a href="#WHERETOGO">Where to Go Next</a></li>
-</ul>
 <!--
   "$Id$"
 
index 69c2a71a2f28c646f05491af81b6f687f8094c00..4c9eb6e1f960bbcaf90d9b5424ced7ce5b6ef258 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>PPD 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">
+<title>PPD API</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -378,64 +377,65 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#OVERVIEW">Overview</a><ul class="subcontents">
-       <li><a href="#LOADING">Loading a PPD File</a></li>
-       <li><a href="#OPTIONS_AND_GROUPS">Options and Groups</a></li>
-       <li><a href="#CONSTRAINTS">Constraints</a></li>
-       <li><a href="#PAGE_SIZES">Page Sizes</a></li>
-       <li><a href="#ATTRIBUTES">Attributes</a></li>
+<li><a href="#LOADING">Loading a PPD File</a></li>
+<li><a href="#OPTIONS_AND_GROUPS">Options and Groups</a></li>
+<li><a href="#CONSTRAINTS">Constraints</a></li>
+<li><a href="#PAGE_SIZES">Page Sizes</a></li>
+<li><a href="#ATTRIBUTES">Attributes</a></li>
 </ul></li>
 <li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#cupsGetConflicts" title="Get a list of conflicting options in a marked PPD.">cupsGetConflicts</a></li>
-       <li><a href="#cupsMarkOptions" title="Mark command-line options in a PPD file.">cupsMarkOptions</a></li>
-       <li><a href="#cupsResolveConflicts" title="Resolve conflicts in a marked PPD.">cupsResolveConflicts</a></li>
-       <li><a href="#ppdClose" title="Free all memory used by the PPD file.">ppdClose</a></li>
-       <li><a href="#ppdCollect" title="Collect all marked options that reside in the specified
+<li><a href="#cupsGetConflicts" title="Get a list of conflicting options in a marked PPD.">cupsGetConflicts</a></li>
+<li><a href="#cupsMarkOptions" title="Mark command-line options in a PPD file.">cupsMarkOptions</a></li>
+<li><a href="#cupsResolveConflicts" title="Resolve conflicts in a marked PPD.">cupsResolveConflicts</a></li>
+<li><a href="#ppdClose" title="Free all memory used by the PPD file.">ppdClose</a></li>
+<li><a href="#ppdCollect" title="Collect all marked options that reside in the specified
 section.">ppdCollect</a></li>
-       <li><a href="#ppdCollect2" title="Collect all marked options that reside in the
+<li><a href="#ppdCollect2" title="Collect all marked options that reside in the
 specified section and minimum order.">ppdCollect2</a></li>
-       <li><a href="#ppdConflicts" title="Check to see if there are any conflicts among the
+<li><a href="#ppdConflicts" title="Check to see if there are any conflicts among the
 marked option choices.">ppdConflicts</a></li>
-       <li><a href="#ppdEmit" title="Emit code for marked options to a file.">ppdEmit</a></li>
-       <li><a href="#ppdEmitAfterOrder" title="Emit a subset of the code for marked options to a file.">ppdEmitAfterOrder</a></li>
-       <li><a href="#ppdEmitFd" title="Emit code for marked options to a file.">ppdEmitFd</a></li>
-       <li><a href="#ppdEmitJCL" title="Emit code for JCL options to a file.">ppdEmitJCL</a></li>
-       <li><a href="#ppdEmitJCLEnd" title="Emit JCLEnd code to a file.">ppdEmitJCLEnd</a></li>
-       <li><a href="#ppdEmitString" title="Get a string containing the code for marked options.">ppdEmitString</a></li>
-       <li><a href="#ppdErrorString" title="Returns the text assocated with a status.">ppdErrorString</a></li>
-       <li><a href="#ppdFindAttr" title="Find the first matching attribute.">ppdFindAttr</a></li>
-       <li><a href="#ppdFindChoice" title="Return a pointer to an option choice.">ppdFindChoice</a></li>
-       <li><a href="#ppdFindCustomOption" title="Find a custom option.">ppdFindCustomOption</a></li>
-       <li><a href="#ppdFindCustomParam" title="Find a parameter for a custom option.">ppdFindCustomParam</a></li>
-       <li><a href="#ppdFindMarkedChoice" title="Return the marked choice for the specified option.">ppdFindMarkedChoice</a></li>
-       <li><a href="#ppdFindNextAttr" title="Find the next matching attribute.">ppdFindNextAttr</a></li>
-       <li><a href="#ppdFindOption" title="Return a pointer to the specified option.">ppdFindOption</a></li>
-       <li><a href="#ppdFirstCustomParam" title="Return the first parameter for a custom option.">ppdFirstCustomParam</a></li>
-       <li><a href="#ppdFirstOption" title="Return the first option in the PPD file.">ppdFirstOption</a></li>
-       <li><a href="#ppdInstallableConflict" title="Test whether an option choice conflicts with
+<li><a href="#ppdEmit" title="Emit code for marked options to a file.">ppdEmit</a></li>
+<li><a href="#ppdEmitAfterOrder" title="Emit a subset of the code for marked options to a file.">ppdEmitAfterOrder</a></li>
+<li><a href="#ppdEmitFd" title="Emit code for marked options to a file.">ppdEmitFd</a></li>
+<li><a href="#ppdEmitJCL" title="Emit code for JCL options to a file.">ppdEmitJCL</a></li>
+<li><a href="#ppdEmitJCLEnd" title="Emit JCLEnd code to a file.">ppdEmitJCLEnd</a></li>
+<li><a href="#ppdEmitString" title="Get a string containing the code for marked options.">ppdEmitString</a></li>
+<li><a href="#ppdErrorString" title="Returns the text assocated with a status.">ppdErrorString</a></li>
+<li><a href="#ppdFindAttr" title="Find the first matching attribute.">ppdFindAttr</a></li>
+<li><a href="#ppdFindChoice" title="Return a pointer to an option choice.">ppdFindChoice</a></li>
+<li><a href="#ppdFindCustomOption" title="Find a custom option.">ppdFindCustomOption</a></li>
+<li><a href="#ppdFindCustomParam" title="Find a parameter for a custom option.">ppdFindCustomParam</a></li>
+<li><a href="#ppdFindMarkedChoice" title="Return the marked choice for the specified option.">ppdFindMarkedChoice</a></li>
+<li><a href="#ppdFindNextAttr" title="Find the next matching attribute.">ppdFindNextAttr</a></li>
+<li><a href="#ppdFindOption" title="Return a pointer to the specified option.">ppdFindOption</a></li>
+<li><a href="#ppdFirstCustomParam" title="Return the first parameter for a custom option.">ppdFirstCustomParam</a></li>
+<li><a href="#ppdFirstOption" title="Return the first option in the PPD file.">ppdFirstOption</a></li>
+<li><a href="#ppdInstallableConflict" title="Test whether an option choice conflicts with
 an installable option.">ppdInstallableConflict</a></li>
-       <li><a href="#ppdIsMarked" title="Check to see if an option is marked.">ppdIsMarked</a></li>
-       <li><a href="#ppdLastError" title="Return the status from the last ppdOpen*().">ppdLastError</a></li>
-       <li><a href="#ppdLocalize" title="Localize the PPD file to the current locale.">ppdLocalize</a></li>
-       <li><a href="#ppdLocalizeAttr" title="Localize an attribute.">ppdLocalizeAttr</a></li>
-       <li><a href="#ppdLocalizeIPPReason" title="Get the localized version of a cupsIPPReason
+<li><a href="#ppdIsMarked" title="Check to see if an option is marked.">ppdIsMarked</a></li>
+<li><a href="#ppdLastError" title="Return the status from the last ppdOpen*().">ppdLastError</a></li>
+<li><a href="#ppdLocalize" title="Localize the PPD file to the current locale.">ppdLocalize</a></li>
+<li><a href="#ppdLocalizeAttr" title="Localize an attribute.">ppdLocalizeAttr</a></li>
+<li><a href="#ppdLocalizeIPPReason" title="Get the localized version of a cupsIPPReason
 attribute.">ppdLocalizeIPPReason</a></li>
-       <li><a href="#ppdLocalizeMarkerName" title="Get the localized version of a marker-names
+<li><a href="#ppdLocalizeMarkerName" title="Get the localized version of a marker-names
 attribute value.">ppdLocalizeMarkerName</a></li>
-       <li><a href="#ppdMarkDefaults" title="Mark all default options in the PPD file.">ppdMarkDefaults</a></li>
-       <li><a href="#ppdMarkOption" title="Mark an option in a PPD file and return the number of
+<li><a href="#ppdMarkDefaults" title="Mark all default options in the PPD file.">ppdMarkDefaults</a></li>
+<li><a href="#ppdMarkOption" title="Mark an option in a PPD file and return the number of
 conflicts.">ppdMarkOption</a></li>
-       <li><a href="#ppdNextCustomParam" title="Return the next parameter for a custom option.">ppdNextCustomParam</a></li>
-       <li><a href="#ppdNextOption" title="Return the next option in the PPD file.">ppdNextOption</a></li>
-       <li><a href="#ppdOpen" title="Read a PPD file into memory.">ppdOpen</a></li>
-       <li><a href="#ppdOpen2" title="Read a PPD file into memory.">ppdOpen2</a></li>
-       <li><a href="#ppdOpenFd" title="Read a PPD file into memory.">ppdOpenFd</a></li>
-       <li><a href="#ppdOpenFile" title="Read a PPD file into memory.">ppdOpenFile</a></li>
-       <li><a href="#ppdPageLength" title="Get the page length for the given size.">ppdPageLength</a></li>
-       <li><a href="#ppdPageSize" title="Get the page size record for the given size.">ppdPageSize</a></li>
-       <li><a href="#ppdPageSizeLimits" title="Return the custom page size limits.">ppdPageSizeLimits</a></li>
-       <li><a href="#ppdPageWidth" title="Get the page width for the given size.">ppdPageWidth</a></li>
-       <li><a href="#ppdSetConformance" title="Set the conformance level for PPD files.">ppdSetConformance</a></li>
+<li><a href="#ppdNextCustomParam" title="Return the next parameter for a custom option.">ppdNextCustomParam</a></li>
+<li><a href="#ppdNextOption" title="Return the next option in the PPD file.">ppdNextOption</a></li>
+<li><a href="#ppdOpen" title="Read a PPD file into memory.">ppdOpen</a></li>
+<li><a href="#ppdOpen2" title="Read a PPD file into memory.">ppdOpen2</a></li>
+<li><a href="#ppdOpenFd" title="Read a PPD file into memory.">ppdOpenFd</a></li>
+<li><a href="#ppdOpenFile" title="Read a PPD file into memory.">ppdOpenFile</a></li>
+<li><a href="#ppdPageLength" title="Get the page length for the given size.">ppdPageLength</a></li>
+<li><a href="#ppdPageSize" title="Get the page size record for the given size.">ppdPageSize</a></li>
+<li><a href="#ppdPageSizeLimits" title="Return the custom page size limits.">ppdPageSizeLimits</a></li>
+<li><a href="#ppdPageWidth" title="Get the page width for the given size.">ppdPageWidth</a></li>
+<li><a href="#ppdSetConformance" title="Set the conformance level for PPD files.">ppdSetConformance</a></li>
 </ul></li>
 <li><a href="#TYPES">Data Types</a><ul class="code">
        <li><a href="#ppd_attr_t" title="PPD Attribute Structure ">ppd_attr_t</a></li>
@@ -483,7 +483,6 @@ conflicts.">ppdMarkOption</a></li>
        <li><a href="#ppd_status_e" title="Status Codes ">ppd_status_e</a></li>
        <li><a href="#ppd_ui_e" title="UI Types">ppd_ui_e</a></li>
 </ul></li>
-</ul>
 <!--
   "$Id$"
 
index 45877813986b11ab36a7153854f90e93cb617cba..e02f71d051c07860ff00b237e6a04c723d9b05bd 100644 (file)
@@ -2,10 +2,9 @@
 <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">
+<title>PPD Compiler API</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -376,27 +375,28 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <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>
+<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>
@@ -412,7 +412,6 @@ div.contents ul.subcontents li {
        <li><a href="#ppdcOptSection" title="// Option section">ppdcOptSection</a></li>
        <li><a href="#ppdcOptType" title="// Option type">ppdcOptType</a></li>
 </ul></li>
-</ul>
 <!--
   "$Id$"
 
index 11ea0f2b7ebf804dd0abf18312b0243f22ae59bb..89be73174850877772e1cf48894e37041450d8ce 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>Raster 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">
+<title>Raster API</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -379,27 +378,28 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#OVERVIEW">Overview</a></li>
 <li><a href="#TASKS">Functions by Task</a><ul class="subcontents">
-       <li><a href="#OPENCLOSE">Opening and Closing Raster Streams</a></li>
-       <li><a href="#READING">Reading Raster Streams</a></li>
-       <li><a href="#WRITING">Writing Raster Streams</a></li>
+<li><a href="#OPENCLOSE">Opening and Closing Raster Streams</a></li>
+<li><a href="#READING">Reading Raster Streams</a></li>
+<li><a href="#WRITING">Writing Raster Streams</a></li>
 </ul></li>
 <li><a href="#FUNCTIONS">Functions</a><ul class="code">
-       <li><a href="#cupsRasterClose" title="Close a raster stream.">cupsRasterClose</a></li>
-       <li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
-       <li><a href="#cupsRasterOpen" title="Open a raster stream using a file descriptor.">cupsRasterOpen</a></li>
-       <li><a href="#cupsRasterOpenIO" title="Open a raster stream using a callback function.">cupsRasterOpenIO</a></li>
-       <li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a
+<li><a href="#cupsRasterClose" title="Close a raster stream.">cupsRasterClose</a></li>
+<li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
+<li><a href="#cupsRasterOpen" title="Open a raster stream using a file descriptor.">cupsRasterOpen</a></li>
+<li><a href="#cupsRasterOpenIO" title="Open a raster stream using a callback function.">cupsRasterOpenIO</a></li>
+<li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a
 version 1 page header structure.">cupsRasterReadHeader</a></li>
-       <li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a
+<li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a
 version 2 page header structure.">cupsRasterReadHeader2</a></li>
-       <li><a href="#cupsRasterReadPixels" title="Read raster pixels.">cupsRasterReadPixels</a></li>
-       <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page
+<li><a href="#cupsRasterReadPixels" title="Read raster pixels.">cupsRasterReadPixels</a></li>
+<li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page
 header structure.">cupsRasterWriteHeader</a></li>
-       <li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2
+<li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2
 page header structure.">cupsRasterWriteHeader2</a></li>
-       <li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
+<li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
 </ul></li>
 <li><a href="#TYPES">Data Types</a><ul class="code">
        <li><a href="#cups_adv_t" title="AdvanceMedia attribute values">cups_adv_t</a></li>
@@ -432,7 +432,6 @@ page header structure.">cupsRasterWriteHeader2</a></li>
        <li><a href="#cups_order_e" title="cupsColorOrder attribute values">cups_order_e</a></li>
        <li><a href="#cups_orient_e" title="Orientation attribute values">cups_orient_e</a></li>
 </ul></li>
-</ul>
 <!--
   "$Id$"
 
index bef1a18af6e1a973ef12ebd0501a289ce319ecf0..b74dc0364f6bbe9c92bd931a6017083c45002c3c 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>Developing PostScript Printer Drivers    </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">
+<title>Developing PostScript Printer Drivers</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -374,14 +373,14 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#BASICS">Printer Driver Basics</a></li>
 <li><a href="#CREATING">Creating New PPD Files</a><ul class="subcontents">
-       <li><a href="#IMPORT">Importing Existing PPD Files</a></li>
+<li><a href="#IMPORT">Importing Existing PPD Files</a></li>
 </ul></li>
 <li><a href="#FILTERS">Using Custom Filters</a></li>
 <li><a href="#COLOR">Implementing Color Management</a></li>
 <li><a href="#MACOSX">Adding Mac OS X Features</a></li>
-</ul>
 <h2 class='title'><a name='BASICS'>Printer Driver Basics</a></h2>
 
 <p>A CUPS PostScript printer driver consists of a PostScript Printer Description (PPD) file that describes the features and capabilities of the device, zero or more <em>filter</em> programs that prepare print data for the device, and zero or more support files for color management, online help, and so forth. The PPD file includes references to all of the filters and support files used by the driver.</p>
index 67fdfbc0e47ebb15d67d4f7798681f9e2177a098..9a40ca88e6b84e93919865595089adc3cef21cbb 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>Introduction to the PPD Compiler </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">
+<title>Introduction to the PPD Compiler</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -376,21 +375,21 @@ that describe the features and capabilities of one or more printers.</P>
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#BASICS">The Basics</a></li>
 <li><a href="#DRV">Driver Information Files</a><ul class="subcontents">
-       <li><a href="#SIMPLE">A Simple Example</a></li>
-       <li><a href="#GROUPING">Grouping and Inheritance</a></li>
-       <li><a href="#COLOR">Color Support</a></li>
-       <li><a href="#OPTIONS">Defining Custom Options and Option Groups</a></li>
-       <li><a href="#DEFINE">Defining Constants</a></li>
-       <li><a href="#CONDITIONAL">Conditional Statements</a></li>
-       <li><a href="#CONSTRAINTS">Defining Constraints</a></li>
+<li><a href="#SIMPLE">A Simple Example</a></li>
+<li><a href="#GROUPING">Grouping and Inheritance</a></li>
+<li><a href="#COLOR">Color Support</a></li>
+<li><a href="#OPTIONS">Defining Custom Options and Option Groups</a></li>
+<li><a href="#DEFINE">Defining Constants</a></li>
+<li><a href="#CONDITIONAL">Conditional Statements</a></li>
+<li><a href="#CONSTRAINTS">Defining Constraints</a></li>
 </ul></li>
 <li><a href="#LOCALIZATION">Localization</a><ul class="subcontents">
-       <li><a href="#PPDPO">The ppdpo Utility</a></li>
-       <li><a href="#PPDC_CATALOG">Using Message Catalogs with the PPD Compiler</a></li>
+<li><a href="#PPDPO">The ppdpo Utility</a></li>
+<li><a href="#PPDC_CATALOG">Using Message Catalogs with the PPD Compiler</a></li>
 </ul></li>
-</ul>
 <h2 class='title'><a name='BASICS'>The Basics</a></h2>
 
 <P>The PPD compiler, <a href='man-ppdc.html'><code>ppdc(1)</code></a>, is a
index 5264c1453c0b77db2153d28346ebc1a27155ea51..40346a66acad8b031653370fb62672ffc206cfd3 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Programming -->
 <head>
-       <title>Developing Raster Printer Drivers        </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">
+<title>Developing Raster Printer Drivers</title>
+<meta name="keywords" content="Programming">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -374,12 +373,12 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#BASICS">Printer Driver Basics</a></li>
 <li><a href="#CREATING">Creating New PPD Files</a></li>
 <li><a href="#FILTERS">Using Filters</a></li>
 <li><a href="#COLOR">Implementing Color Management</a></li>
 <li><a href="#MACOSX">Adding Mac OS X Features</a></li>
-</ul>
 <h2 class='title'><a name='BASICS'>Printer Driver Basics</a></h2>
 
 <p>A CUPS raster printer driver consists of a PostScript Printer Description (PPD) file that describes the features and capabilities of the device, one or more <em>filter</em> programs that prepare print data for the device, and zero or more support files for color management, online help, and so forth. The PPD file includes references to all of the filters and support files used by the driver.</p>
index edf4dbe500617de2d1366905a0eff80b29b05fc2..4c5b942f9e4458ac3af3ae2822d0ac2af7f8bead 100644 (file)
@@ -2,10 +2,9 @@
 <html>
 <!-- SECTION: Specifications -->
 <head>
-       <title>CUPS PPD Extensions      </title>
-       <meta name="keywords" content="Specifications">
-       <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-       <meta name="creator" content="Mini-XML v2.7">
+<title>CUPS PPD Extensions</title>
+<meta name="keywords" content="Specifications">
+<meta name="creator" content="Mini-XML v2.6">
 <style type="text/css"><!--
 BODY {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
@@ -374,66 +373,67 @@ div.contents ul.subcontents li {
 </table></div>
 <h2 class="title">Contents</h2>
 <ul class="contents">
+<ul class="subcontents">
 <li><a href="#SYNTAX">PPD File Syntax</a></li>
 <li><a href="#AUTOCONFIG">Auto-Configuration</a><ul class="subcontents">
-       <li><a href="#APAutoSetupTool">APAutoSetupTool</a></li>
-       <li><a href="#QUERYKEYWORD">?MainKeyword</a></li>
-       <li><a href="#OID">OIDMainKeyword</a></li>
+<li><a href="#APAutoSetupTool">APAutoSetupTool</a></li>
+<li><a href="#QUERYKEYWORD">?MainKeyword</a></li>
+<li><a href="#OID">OIDMainKeyword</a></li>
 </ul></li>
 <li><a href="#PROFILES">Color Profiles</a><ul class="subcontents">
-       <li><a href="#cupsColorProfile">cupsColorProfile</a></li>
-       <li><a href="#cupsICCProfile">cupsICCProfile</a></li>
-       <li><a href="#APCustom">Custom Color Matching Support</a></li>
+<li><a href="#cupsColorProfile">cupsColorProfile</a></li>
+<li><a href="#cupsICCProfile">cupsICCProfile</a></li>
+<li><a href="#APCustom">Custom Color Matching Support</a></li>
 </ul></li>
 <li><a href="#CONSTRAINTS">Constraints</a><ul class="subcontents">
-       <li><a href="#cupsUIConstraints">cupsUIConstraints</a></li>
-       <li><a href="#cupsUIResolver">cupsUIResolver</a></li>
+<li><a href="#cupsUIConstraints">cupsUIConstraints</a></li>
+<li><a href="#cupsUIResolver">cupsUIResolver</a></li>
 </ul></li>
 <li><a href="#I18N">Globalized PPD Support</a></li>
 <li><a href="#OPTIONS">CUPS 1.3/Mac OS X 10.6Custom Options</a></li>
 <li><a href="#RASTERPS">Writing PostScript Option Commands for Raster Drivers</a></li>
 <li><a href="#MEDIA">Media Keywords</a><ul class="subcontents">
-       <li><a href="#cupsMediaQualifier2">cupsMediaQualifier2</a></li>
-       <li><a href="#cupsMediaQualifier3">cupsMediaQualifier3</a></li>
-       <li><a href="#cupsMinSize">cupsMinSize</a></li>
-       <li><a href="#cupsMaxSize">cupsMaxSize</a></li>
+<li><a href="#cupsMediaQualifier2">cupsMediaQualifier2</a></li>
+<li><a href="#cupsMediaQualifier3">cupsMediaQualifier3</a></li>
+<li><a href="#cupsMinSize">cupsMinSize</a></li>
+<li><a href="#cupsMaxSize">cupsMaxSize</a></li>
 </ul></li>
 <li><a href="#ATTRIBUTES">General Attributes</a><ul class="subcontents">
-       <li><a href="#cupsBackSide">cupsBackSide</a></li>
-       <li><a href="#cupsCommands">cupsCommands</a></li>
-       <li><a href="#cupsEvenDuplex">cupsEvenDuplex</a></li>
-       <li><a href="#cupsFax">cupsFax</a></li>
-       <li><a href="#cupsFilter">cupsFilter</a></li>
-       <li><a href="#cupsFlipDuplex">cupsFlipDuplex</a></li>
-       <li><a href="#cupsIPPFinishings">cupsIPPFinishings</a></li>
-       <li><a href="#cupsIPPReason">cupsIPPReason</a></li>
-       <li><a href="#cupsLanguages">cupsLanguages</a></li>
-       <li><a href="#cupsManualCopies">cupsManualCopies</a></li>
-       <li><a href="#cupsMarkerName">cupsMarkerName</a></li>
-       <li><a href="#cupsMarkerNotice">cupsMarkerNotice</a></li>
-       <li><a href="#cupsModelNumber">cupsModelNumber</a></li>
-       <li><a href="#cupsPJLCharset">cupsPJLCharset</a></li>
-       <li><a href="#cupsPJLDisplay">cupsPJLDisplay</a></li>
-       <li><a href="#cupsPortMonitor">cupsPortMonitor</a></li>
-       <li><a href="#cupsPreFilter">cupsPreFilter</a></li>
-       <li><a href="#cupsPrintQuality">cupsPrintQuality</a></li>
-       <li><a href="#cupsSNMPSupplies">cupsSNMPSupplies</a></li>
-       <li><a href="#cupsVersion">cupsVersion</a></li>
+<li><a href="#cupsBackSide">cupsBackSide</a></li>
+<li><a href="#cupsCommands">cupsCommands</a></li>
+<li><a href="#cupsEvenDuplex">cupsEvenDuplex</a></li>
+<li><a href="#cupsFax">cupsFax</a></li>
+<li><a href="#cupsFilter">cupsFilter</a></li>
+<li><a href="#cupsFilter2">cupsFilter2</a></li>
+<li><a href="#cupsFlipDuplex">cupsFlipDuplex</a></li>
+<li><a href="#cupsIPPFinishings">cupsIPPFinishings</a></li>
+<li><a href="#cupsIPPReason">cupsIPPReason</a></li>
+<li><a href="#cupsLanguages">cupsLanguages</a></li>
+<li><a href="#cupsManualCopies">cupsManualCopies</a></li>
+<li><a href="#cupsMarkerName">cupsMarkerName</a></li>
+<li><a href="#cupsMarkerNotice">cupsMarkerNotice</a></li>
+<li><a href="#cupsModelNumber">cupsModelNumber</a></li>
+<li><a href="#cupsPJLCharset">cupsPJLCharset</a></li>
+<li><a href="#cupsPJLDisplay">cupsPJLDisplay</a></li>
+<li><a href="#cupsPortMonitor">cupsPortMonitor</a></li>
+<li><a href="#cupsPreFilter">cupsPreFilter</a></li>
+<li><a href="#cupsPrintQuality">cupsPrintQuality</a></li>
+<li><a href="#cupsSNMPSupplies">cupsSNMPSupplies</a></li>
+<li><a href="#cupsVersion">cupsVersion</a></li>
 </ul></li>
 <li><a href="#MACOSX">Mac OS X Attributes</a><ul class="subcontents">
-       <li><a href="#APDialogExtension">APDialogExtension</a></li>
-       <li><a href="#APDuplexRequiresFlippedMargin">APDuplexRequiresFlippedMargin</a></li>
-       <li><a href="#APHelpBook">APHelpBook</a></li>
-       <li><a href="#APICADriver">APICADriver</a></li>
-       <li><a href="#APPrinterIconPath">APPrinterIconPath</a></li>
-       <li><a href="#APPrinterLowInkTool">APPrinterLowInkTool</a></li>
-       <li><a href="#APPrinterPreset">APPrinterPreset</a></li>
-       <li><a href="#APPrinterUtilityPath">APPrinterUtilityPath</a></li>
-       <li><a href="#APScannerOnly">APScannerOnly</a></li>
-       <li><a href="#APScanAppBundleID">APScanAppBundleID</a></li>
+<li><a href="#APDialogExtension">APDialogExtension</a></li>
+<li><a href="#APDuplexRequiresFlippedMargin">APDuplexRequiresFlippedMargin</a></li>
+<li><a href="#APHelpBook">APHelpBook</a></li>
+<li><a href="#APICADriver">APICADriver</a></li>
+<li><a href="#APPrinterIconPath">APPrinterIconPath</a></li>
+<li><a href="#APPrinterLowInkTool">APPrinterLowInkTool</a></li>
+<li><a href="#APPrinterPreset">APPrinterPreset</a></li>
+<li><a href="#APPrinterUtilityPath">APPrinterUtilityPath</a></li>
+<li><a href="#APScannerOnly">APScannerOnly</a></li>
+<li><a href="#APScanAppBundleID">APScanAppBundleID</a></li>
 </ul></li>
 <li><a href="#HISTORY">Change History</a></li>
-</ul>
 <h2 class='title'><a name='SYNTAX'>PPD File Syntax</a></h2>
 
 <p>The PPD format is text-based and uses lines of up to 255 characters terminated by a carriage return, linefeed, or combination of carriage return and line feed. The following ABNF definition [<a href="http://tools.ietf.org/html/rfc5234" target="_blank">RFC5234</a>] defines the general format of lines in a PPD file:</p>
@@ -1554,6 +1554,25 @@ the special filter program "-" may be specified.</p>
 *cupsFilter: "application/vnd.cups-postscript 0 -"
 </pre>
 
+<h3><a name='cupsFilter2'>cupsFilter2</a></h3>
+
+<p class='summary'>*cupsFilter2: "source/type destination/type cost program"</p>
+
+<p>This string keyword provides a conversion rule from the given source type to the printer's native format using the filter "program". If a printer supports the source type directly, the special filter program "-" may be specified. The destination type is automatically created as needed and is passed to the filters and backend as the FINAL_CONTENT_TYPE value.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Standard raster printer driver filter</em> 
+*cupsFilter2: "application/vnd.cups-raster application/vnd.foo 100 rastertofoo"
+
+<em>*% Plain text filter</em> 
+*cupsFilter2: "text/plain application/vnd.foo 10 texttofoo"
+
+<em>*% Pass-through filter for PostScript printers</em> 
+*cupsFilter2: "application/vnd.cups-postscript application/postscript 0 -"
+</pre>
+
 <h3><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3>
 
 <p class='summary'>*cupsFlipDuplex: boolean</p>
index 09f2695cb324b191d91ad451727a2e7c1510ec16..d88b4228b5ef071b228e953a0f505da5a6a2b81a 100644 (file)
@@ -1118,6 +1118,25 @@ the special filter program "-" may be specified.</p>
 *cupsFilter: "application/vnd.cups-postscript 0 -"
 </pre>
 
+<h3><a name='cupsFilter2'>cupsFilter2</a></h3>
+
+<p class='summary'>*cupsFilter2: "source/type destination/type cost program"</p>
+
+<p>This string keyword provides a conversion rule from the given source type to the printer's native format using the filter "program". If a printer supports the source type directly, the special filter program "-" may be specified. The destination type is automatically created as needed and is passed to the filters and backend as the FINAL_CONTENT_TYPE value.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Standard raster printer driver filter</em> 
+*cupsFilter2: "application/vnd.cups-raster application/vnd.foo 100 rastertofoo"
+
+<em>*% Plain text filter</em> 
+*cupsFilter2: "text/plain application/vnd.foo 10 texttofoo"
+
+<em>*% Pass-through filter for PostScript printers</em> 
+*cupsFilter2: "application/vnd.cups-postscript application/postscript 0 -"
+</pre>
+
 <h3><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3>
 
 <p class='summary'>*cupsFlipDuplex: boolean</p>
index f072526951ca56236e37bb013b330b070b340c63..f2671c626018b0dfe8ad696ffafe2edb41264044 100644 (file)
@@ -904,9 +904,13 @@ cupsdContinueJob(cupsd_job_t *job) /* I - Job */
 
     if (filter && filter->dst)
     {
-      snprintf(final_content_type, sizeof(final_content_type),
-              "FINAL_CONTENT_TYPE=%s/%s",
-              filter->dst->super, filter->dst->type);
+      if (strchr(filter->dst->type, '/'))
+       snprintf(final_content_type, sizeof(final_content_type),
+                "FINAL_CONTENT_TYPE=%s", filter->dst->type);
+      else
+       snprintf(final_content_type, sizeof(final_content_type),
+                "FINAL_CONTENT_TYPE=%s/%s", filter->dst->super,
+                filter->dst->type);
       envp[envc ++] = final_content_type;
     }
   }
index 0c489431328ce1c244541a4c058c26a81306ccbf..71c24bf8e4d65a042cad262e350b47df42bdf077 100644 (file)
@@ -3589,26 +3589,44 @@ add_printer_filter(
 {
   char         super[MIME_MAX_SUPER],  /* Super-type for filter */
                type[MIME_MAX_TYPE],    /* Type for filter */
+               dsuper[MIME_MAX_SUPER], /* Destination super-type for filter */
+               dtype[MIME_MAX_TYPE],   /* Destination type for filter */
+               dest[MIME_MAX_SUPER + MIME_MAX_TYPE + 2],
+                                       /* Destination super/type */
                program[1024];          /* Program/filter name */
   int          cost;                   /* Cost of filter */
-  mime_type_t  *temptype;              /* MIME type looping var */
+  mime_type_t  *temptype,              /* MIME type looping var */
+               *desttype;              /* Destination MIME type */
   char         filename[1024],         /* Full filter filename */
                *dirsep;                /* Pointer to directory separator */
   struct stat  fileinfo;               /* File information */
 
 
  /*
-  * Parse the filter string; it should be in the following format:
+  * Parse the filter string; it should be in one of the following formats:
   *
-  *     super/type cost program
+  *     source/type cost program
+  *     source/type dest/type cost program
   */
 
-  if (sscanf(filter, "%15[^/]/%31s%d%*[ \t]%1023[^\n]", super, type, &cost,
-             program) != 4)
+  if (sscanf(filter, "%15[^/]/%255s%*[ \t]%15[^/]/%255s%d%*[ \t]%1023[^\n]",
+             super, type, dsuper, dtype, &cost, program) == 6)
   {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "%s: invalid filter string \"%s\"!",
-                    p->name, filter);
-    return;
+    snprintf(dest, sizeof(dest), "%s/%s", dsuper, dtype);
+  }
+  else
+  {
+    if (sscanf(filter, "%15[^/]/%255s%d%*[ \t]%1023[^\n]", super, type, &cost,
+               program) == 4)
+    {
+      strlcpy(dest, p->name, sizeof(dest));
+    }
+    else
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR, "%s: invalid filter string \"%s\"!",
+                      p->name, filter);
+      return;
+    }
   }
 
  /*
@@ -3688,6 +3706,15 @@ add_printer_filter(
   * Add the filter to the MIME database, supporting wildcards as needed...
   */
 
+  if ((desttype = mimeType(MimeDatabase, "printer", dest)) == NULL)
+  {
+    desttype = mimeAddType(MimeDatabase, "printer", dest);
+    if (!p->dest_types)
+      p->dest_types = cupsArrayNew(NULL, NULL);
+
+    cupsArrayAdd(p->dest_types, desttype);
+  }
+
   for (temptype = mimeFirstType(MimeDatabase);
        temptype;
        temptype = mimeNextType(MimeDatabase))
@@ -3695,12 +3722,33 @@ add_printer_filter(
          !strcasecmp(temptype->super, super)) &&
         (type[0] == '*' || !strcasecmp(temptype->type, type)))
     {
-      cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                      "add_printer_filter: %s: adding filter %s/%s %s/%s %d %s",
-                      p->name, temptype->super, temptype->type,
-                     filtertype->super, filtertype->type,
-                      cost, program);
-      mimeAddFilter(MimeDatabase, temptype, filtertype, cost, program);
+      if (desttype != filtertype)
+      {
+        cupsdLogMessage(CUPSD_LOG_DEBUG2,
+                       "add_printer_filter: %s: adding filter %s/%s %s/%s %d "
+                       "%s", p->name, temptype->super, temptype->type,
+                       desttype->super, desttype->type,
+                       cost, program);
+        mimeAddFilter(MimeDatabase, temptype, desttype, cost, program);
+
+        if (!mimeFilterLookup(MimeDatabase, desttype, filtertype))
+        {
+          cupsdLogMessage(CUPSD_LOG_DEBUG2,
+                         "add_printer_filter: %s: adding filter %s/%s %s/%s "
+                         "0 -", p->name, desttype->super, desttype->type,
+                         filtertype->super, filtertype->type);
+          mimeAddFilter(MimeDatabase, desttype, filtertype, cost, "-");
+        }
+      }
+      else
+      {
+        cupsdLogMessage(CUPSD_LOG_DEBUG2,
+                       "add_printer_filter: %s: adding filter %s/%s %s/%s %d "
+                       "%s", p->name, temptype->super, temptype->type,
+                       filtertype->super, filtertype->type,
+                       cost, program);
+        mimeAddFilter(MimeDatabase, temptype, filtertype, cost, program);
+      }
     }
 }
 
@@ -3750,6 +3798,9 @@ add_printer_formats(cupsd_printer_t *p)   /* I - Printer */
        type;
        type = mimeNextType(MimeDatabase))
   {
+    if (!strcasecmp(type->super, "printer"))
+      continue;
+
     snprintf(mimetype, sizeof(mimetype), "%s/%s", type->super, type->type);
 
     if ((filters = mimeFilter(MimeDatabase, type, p->filetype, NULL)) != NULL)
@@ -3895,6 +3946,7 @@ delete_printer_filters(
     cupsd_printer_t *p)                        /* I - Printer to remove from */
 {
   mime_filter_t        *filter;                /* MIME filter looping var */
+  mime_type_t  *type;                  /* Destination types for filters */
 
 
  /*
@@ -3912,7 +3964,8 @@ delete_printer_filters(
   for (filter = mimeFirstFilter(MimeDatabase);
        filter;
        filter = mimeNextFilter(MimeDatabase))
-    if (filter->dst == p->filetype || filter->dst == p->prefiltertype)
+    if (filter->dst == p->filetype || filter->dst == p->prefiltertype ||
+        cupsArrayFind(p->dest_types, filter->dst))
     {
      /*
       * Delete the current filter...
@@ -3921,6 +3974,14 @@ delete_printer_filters(
       mimeDeleteFilter(MimeDatabase, filter);
     }
 
+  for (type = (mime_type_t *)cupsArrayFirst(p->dest_types);
+       type;
+       type = (mime_type_t *)cupsArrayNext(p->dest_types))
+    mimeDeleteType(MimeDatabase, type);
+
+  cupsArrayDelete(p->dest_types);
+  p->dest_types = NULL;
+
   cupsdSetPrinterReasons(p, "-cups-insecure-filter-warning"
                             ",cups-missing-filter-warning");
 }
@@ -4755,15 +4816,37 @@ load_ppd(cupsd_printer_t *p)            /* I - Printer */
     * Add any filters in the PPD file...
     */
 
-    DEBUG_printf(("ppd->num_filters = %d\n", ppd->num_filters));
-    for (i = 0; i < ppd->num_filters; i ++)
+    if ((ppd_attr = ppdFindAttr(ppd, "cupsFilter2", NULL)) != NULL)
     {
-      DEBUG_printf(("ppd->filters[%d] = \"%s\"\n", i, ppd->filters[i]));
-      add_string_array(&(p->filters), ppd->filters[i]);
+     /*
+      * Use new cupsFilter2 filter syntax...
+      */
 
-      if (!strncasecmp(ppd->filters[i], "application/vnd.cups-command", 28) &&
-          isspace(ppd->filters[i][28] & 255))
-        p->type |= CUPS_PRINTER_COMMANDS;
+      for (; ppd_attr; ppd_attr = ppdFindNextAttr(ppd, "cupsFilter2", NULL))
+      {
+        add_string_array(&(p->filters), ppd_attr->value);
+
+        if (!strncasecmp(ppd_attr->value, "application/vnd.cups-command", 28) &&
+            isspace(ppd_attr->value[28] & 255))
+          p->type |= CUPS_PRINTER_COMMANDS;
+      }
+    }
+    else
+    {
+     /*
+      * Use old cupsFilter syntax...
+      */
+
+      DEBUG_printf(("ppd->num_filters = %d\n", ppd->num_filters));
+      for (i = 0; i < ppd->num_filters; i ++)
+      {
+        DEBUG_printf(("ppd->filters[%d] = \"%s\"\n", i, ppd->filters[i]));
+        add_string_array(&(p->filters), ppd->filters[i]);
+
+        if (!strncasecmp(ppd->filters[i], "application/vnd.cups-command", 28) &&
+            isspace(ppd->filters[i][28] & 255))
+          p->type |= CUPS_PRINTER_COMMANDS;
+      }
     }
 
     if ((ppd_attr = ppdFindAttr(ppd, "cupsCommands", NULL)) != NULL &&
@@ -4809,7 +4892,8 @@ load_ppd(cupsd_printer_t *p)              /* I - Printer */
        */
 
        add_string_array(&(p->filters),
-                        "application/vnd.cups-command 0 commandtops");
+                        "application/vnd.cups-command application/postscript "
+                        "0 commandtops");
        p->type |= CUPS_PRINTER_COMMANDS;
       }
     }
index 1cea93949a332ecd8ecaa4e0e1d5bb9a9321ec17..3afc88dbedc3c42c5603b9af2629019a9c28461b 100644 (file)
@@ -3,7 +3,7 @@
  *
  *   Printer definitions for the CUPS scheduler.
  *
- *   Copyright 2007-2010 by Apple Inc.
+ *   Copyright 2007-2011 by Apple Inc.
  *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  *   These coded instructions, statements, and computer programs are the
@@ -94,7 +94,8 @@ struct cupsd_printer_s
                *alert_description;     /* PSX printer-alert-description value */
   time_t       marker_time;            /* Last time marker attributes were updated */
   cups_array_t *filters,               /* Filters for queue */
-               *pre_filters;           /* Pre-filters for queue */
+               *pre_filters,           /* Pre-filters for queue */
+               *dest_types;            /* Destination types for queue */
   _pwg_t       *pwg;                   /* PWG<->PPD mapping data */
 
 #ifdef HAVE_DNSSD
index f7c8b9cffffa3a80e2f2a312e5c83b754b71d7b7..74ed7bee4060bc3e59b89c8b7728360d28274fc2 100644 (file)
@@ -2,9 +2,9 @@
 *%
 *% "$Id$"
 *%
-*%   Test HP PPD file for the Common UNIX Printing System (CUPS).
+*%   Test HP PPD file for CUPS.
 *%
-*%   Copyright 2007 by Apple Inc.
+*%   Copyright 2007-2011 by Apple Inc.
 *%   Copyright 1997-2005 by Easy Software Products.
 *%
 *%   These coded instructions, statements, and computer programs are the
 *LanguageEncoding: ISOLatin1
 *PCFileName:   "TESTHP.PPD"
 *Manufacturer: "ESP"
-*Product:      "(CUPS v1.1)"
+*Product:      "(CUPS v1.5)"
 *cupsVersion:  1.1
 *cupsManualCopies: True
-*cupsFilter:   "application/vnd.cups-raster 50 rastertohp"
+*% cupsFilter: "application/vnd.cups-raster 50 rastertohp"
+*cupsFilter2:  "application/vnd.cups-raster application/vnd.hp-pcl 50 rastertohp"
 *ModelName:     "Test HP Printer"
 *ShortNickName: "Test HP Printer"
 *NickName:      "Test HP Printer CUPS v1.1"