1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3 <!-- SECTION: Programming -->
6 <meta name=
"keywords" content=
"Programming">
7 <meta name=
"creator" content=
"Mini-XML v2.6">
8 <style type=
"text/css"><!--
10 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
13 H1, H2, H3, H4, H5, H6, P, TD, TH {
14 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
18 font-family: monaco, courier, monospace;
23 font-family: monaco, courier, monospace;
41 border: dotted thin #999999;
46 PRE.command EM, PRE.example EM {
47 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
51 font-family: monaco, courier, monospace;
62 border: solid thin #999999;
73 -moz-border-radius: 10px;
78 text-decoration: none;
81 A:link:hover, A:visited:hover, A:active {
82 text-decoration: underline;
89 TR.data, TD.data, TR.data TD {
92 border-bottom: solid 1pt #999999;
96 border-bottom: solid 1pt #999999;
103 border: solid thin #999999;
104 border-collapse: collapse;
120 border: solid thin #cccccc;
127 border-bottom: solid thin #999999;
136 caption-side: bottom;
160 border: thin solid black;
168 H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
174 border-bottom: solid 2pt #000000;
177 DIV.indent, TABLE.indent {
185 border-collapse: collapse;
188 TABLE.indent TD, TABLE.indent TH {
193 border-collapse: collapse;
201 border-bottom: solid thin #cccccc;
206 vertical-align: bottom;
215 border-bottom: solid thin #eeeeee;
220 TABLE.list TR:nth-child(even) {
224 TABLE.list TR:nth-child(odd) {
243 font-family: monaco, courier, monospace;
247 border: solid thin #999999;
248 border-collapse: collapse;
253 DIV.summary TABLE TD, DIV.summary TABLE TH {
254 border: solid thin #999999;
260 DIV.summary TABLE THEAD TH {
264 /* API documentation styles... */
271 div.body h3, div.body h4, div.body h5 {
272 margin-bottom: 0.5em;
275 .class, .enumeration, .function, .struct, .typedef, .union {
276 border-bottom: solid thin #999999;
283 code, p.code, pre, ul.code li {
284 font-family: monaco, courier, monospace;
287 ul.code, ul.contents, ul.subcontents {
288 list-style-type: none;
298 ul.contents li ul.code, ul.contents li ul.subcontents {
311 margin-bottom: 0.5em;
314 /* This is just for the HTML files generated with the framedhelp target */
317 border: solid thin black;
326 div.contents ul.contents {
329 div.contents ul.subcontents li {
337 <h2 class=
"title">Contents
</h2>
338 <ul class=
"contents">
339 <li><a href=
"#FUNCTIONS">Functions
</a><ul class=
"code">
340 <li><a href=
"#cgiCheckVariables" title=
"Check for the presence of "required" variables.">cgiCheckVariables
</a></li>
341 <li><a href=
"#cgiCompileSearch" title=
"Compile a search string.">cgiCompileSearch
</a></li>
342 <li><a href=
"#cgiCopyTemplateFile" title=
"Copy a template file and replace all the
343 '{variable}' strings with the variable value.">cgiCopyTemplateFile
</a></li>
344 <li><a href=
"#cgiCopyTemplateLang" title=
"Copy a template file using a language...">cgiCopyTemplateLang
</a></li>
345 <li><a href=
"#cgiDoSearch" title=
"Do a search of some text.">cgiDoSearch
</a></li>
346 <li><a href=
"#cgiEndHTML" title=
"End a HTML page.">cgiEndHTML
</a></li>
347 <li><a href=
"#cgiEndMultipart" title=
"End the delivery of a multipart web page.">cgiEndMultipart
</a></li>
348 <li><a href=
"#cgiFormEncode" title=
"Encode a string as a form variable.">cgiFormEncode
</a></li>
349 <li><a href=
"#cgiFreeSearch" title=
"Free a compiled search context.">cgiFreeSearch
</a></li>
350 <li><a href=
"#cgiGetArray" title=
"Get an element from a form array...">cgiGetArray
</a></li>
351 <li><a href=
"#cgiGetAttributes" title=
"Get the list of attributes that are needed
352 by the template file.">cgiGetAttributes
</a></li>
353 <li><a href=
"#cgiGetFile" title=
"Get the file (if any) that was submitted in the form.">cgiGetFile
</a></li>
354 <li><a href=
"#cgiGetIPPObjects" title=
"Get the objects in an IPP response.">cgiGetIPPObjects
</a></li>
355 <li><a href=
"#cgiGetSize" title=
"Get the size of a form array value.">cgiGetSize
</a></li>
356 <li><a href=
"#cgiGetTemplateDir" title=
"Get the templates directory...">cgiGetTemplateDir
</a></li>
357 <li><a href=
"#cgiGetVariable" title=
"Get a CGI variable from the database...">cgiGetVariable
</a></li>
358 <li><a href=
"#cgiInitialize" title=
"Initialize the CGI variable "database"...">cgiInitialize
</a></li>
359 <li><a href=
"#cgiIsPOST" title=
"Determine whether this page was POSTed.">cgiIsPOST
</a></li>
360 <li><a href=
"#cgiMoveJobs" title=
"Move one or more jobs.">cgiMoveJobs
</a></li>
361 <li><a href=
"#cgiPrintCommand" title=
"Print a CUPS command job.">cgiPrintCommand
</a></li>
362 <li><a href=
"#cgiPrintTestPage" title=
"Print a test page.">cgiPrintTestPage
</a></li>
363 <li><a href=
"#cgiRewriteURL" title=
"Rewrite a printer URI into a web browser URL...">cgiRewriteURL
</a></li>
364 <li><a href=
"#cgiSetArray" title=
"Set array element N to the specified string.">cgiSetArray
</a></li>
365 <li><a href=
"#cgiSetIPPObjectVars" title=
"Set CGI variables from an IPP object.">cgiSetIPPObjectVars
</a></li>
366 <li><a href=
"#cgiSetIPPVars" title=
"Set CGI variables from an IPP response.">cgiSetIPPVars
</a></li>
367 <li><a href=
"#cgiSetServerVersion" title=
"Set the server name and CUPS version...">cgiSetServerVersion
</a></li>
368 <li><a href=
"#cgiSetSize" title=
"Set the array size.">cgiSetSize
</a></li>
369 <li><a href=
"#cgiSetVariable" title=
"Set a CGI variable in the database...">cgiSetVariable
</a></li>
370 <li><a href=
"#cgiShowIPPError" title=
"Show the last IPP error message.">cgiShowIPPError
</a></li>
371 <li><a href=
"#cgiShowJobs" title=
"Show print jobs.">cgiShowJobs
</a></li>
372 <li><a href=
"#cgiStartHTML" title=
"Start a HTML page.">cgiStartHTML
</a></li>
373 <li><a href=
"#cgiStartMultipart" title=
"Start a multipart delivery of a web page.">cgiStartMultipart
</a></li>
374 <li><a href=
"#cgiSupportsMultipart" title=
"Does the browser support multi-part documents?">cgiSupportsMultipart
</a></li>
375 <li><a href=
"#cgiText" title=
"Return localized text.">cgiText
</a></li>
376 <li><a href=
"#helpDeleteIndex" title=
"Delete an index, freeing all memory used.">helpDeleteIndex
</a></li>
377 <li><a href=
"#helpFindNode" title=
"Find a node in an index.">helpFindNode
</a></li>
378 <li><a href=
"#helpLoadIndex" title=
"Load a help index from disk.">helpLoadIndex
</a></li>
379 <li><a href=
"#helpSaveIndex" title=
"Save a help index to disk.">helpSaveIndex
</a></li>
380 <li><a href=
"#helpSearchIndex" title=
"Search an index.">helpSearchIndex
</a></li>
382 <li><a href=
"#TYPES">Data Types
</a><ul class=
"code">
383 <li><a href=
"#cgi_file_t" title=
"Uploaded file data">cgi_file_t
</a></li>
384 <li><a href=
"#help_index_t" title=
"Help index structure">help_index_t
</a></li>
385 <li><a href=
"#help_node_t" title=
"Help node structure...">help_node_t
</a></li>
386 <li><a href=
"#help_word_t" title=
"Help word structure...">help_word_t
</a></li>
388 <li><a href=
"#STRUCTURES">Structures
</a><ul class=
"code">
389 <li><a href=
"#cgi_file_s" title=
"Uploaded file data">cgi_file_s
</a></li>
390 <li><a href=
"#help_index_s" title=
"Help index structure">help_index_s
</a></li>
391 <li><a href=
"#help_node_s" title=
"Help node structure...">help_node_s
</a></li>
392 <li><a href=
"#help_word_s" title=
"Help word structure...">help_word_s
</a></li>
394 <h2 class=
"title"><a name=
"FUNCTIONS">Functions
</a></h2>
395 <h3 class=
"function"><a name=
"cgiCheckVariables">cgiCheckVariables
</a></h3>
396 <p class=
"description">Check for the presence of
"required
" variables.
</p>
398 int cgiCheckVariables (
<br>
399 const char *names
<br>
401 <h4 class=
"parameters">Parameters
</h4>
404 <dd class=
"description">Variables to look for
</dd>
406 <h4 class=
"returnvalue">Return Value
</h4>
407 <p class=
"description">1 if all variables present,
0 otherwise
</p>
408 <h4 class=
"discussion">Discussion
</h4>
409 <p class=
"discussion">Names may be separated by spaces and/or commas.
</p>
410 <h3 class=
"function"><a name=
"cgiCompileSearch">cgiCompileSearch
</a></h3>
411 <p class=
"description">Compile a search string.
</p>
413 void *cgiCompileSearch (
<br>
414 const char *query
<br>
416 <h4 class=
"parameters">Parameters
</h4>
419 <dd class=
"description">Query string
</dd>
421 <h4 class=
"returnvalue">Return Value
</h4>
422 <p class=
"description">Search context
</p>
423 <h3 class=
"function"><a name=
"cgiCopyTemplateFile">cgiCopyTemplateFile
</a></h3>
424 <p class=
"description">Copy a template file and replace all the
425 '{variable}' strings with the variable value.
</p>
427 void cgiCopyTemplateFile (
<br>
428 FILE *out,
<br>
429 const char *tmpl
<br>
431 <h4 class=
"parameters">Parameters
</h4>
434 <dd class=
"description">Output file
</dd>
436 <dd class=
"description">Template file to read
</dd>
438 <h3 class=
"function"><a name=
"cgiCopyTemplateLang">cgiCopyTemplateLang
</a></h3>
439 <p class=
"description">Copy a template file using a language...
</p>
441 void cgiCopyTemplateLang (
<br>
442 const char *tmpl
<br>
444 <h4 class=
"parameters">Parameters
</h4>
447 <dd class=
"description">Base filename
</dd>
449 <h3 class=
"function"><a name=
"cgiDoSearch">cgiDoSearch
</a></h3>
450 <p class=
"description">Do a search of some text.
</p>
452 int cgiDoSearch (
<br>
453 void *search,
<br>
454 const char *text
<br>
456 <h4 class=
"parameters">Parameters
</h4>
459 <dd class=
"description">Search context
</dd>
461 <dd class=
"description">Text to search
</dd>
463 <h4 class=
"returnvalue">Return Value
</h4>
464 <p class=
"description">Number of matches
</p>
465 <h3 class=
"function"><a name=
"cgiEndHTML">cgiEndHTML
</a></h3>
466 <p class=
"description">End a HTML page.
</p>
468 void cgiEndHTML (void);
</p>
469 <h3 class=
"function"><a name=
"cgiEndMultipart">cgiEndMultipart
</a></h3>
470 <p class=
"description">End the delivery of a multipart web page.
</p>
472 void cgiEndMultipart (void);
</p>
473 <h3 class=
"function"><a name=
"cgiFormEncode">cgiFormEncode
</a></h3>
474 <p class=
"description">Encode a string as a form variable.
</p>
476 char *cgiFormEncode (
<br>
477 char *dst,
<br>
478 const char *src,
<br>
479 size_t dstsize
<br>
481 <h4 class=
"parameters">Parameters
</h4>
484 <dd class=
"description">Destination string
</dd>
486 <dd class=
"description">Source string
</dd>
488 <dd class=
"description">Size of destination string
</dd>
490 <h4 class=
"returnvalue">Return Value
</h4>
491 <p class=
"description">Destination string
</p>
492 <h3 class=
"function"><a name=
"cgiFreeSearch">cgiFreeSearch
</a></h3>
493 <p class=
"description">Free a compiled search context.
</p>
495 void cgiFreeSearch (
<br>
496 void *search
<br>
498 <h4 class=
"parameters">Parameters
</h4>
501 <dd class=
"description">Search context
</dd>
503 <h3 class=
"function"><a name=
"cgiGetArray">cgiGetArray
</a></h3>
504 <p class=
"description">Get an element from a form array...
</p>
506 const char *cgiGetArray (
<br>
507 const char *name,
<br>
508 int element
<br>
510 <h4 class=
"parameters">Parameters
</h4>
513 <dd class=
"description">Name of array variable
</dd>
515 <dd class=
"description">Element number (
0 to N)
</dd>
517 <h4 class=
"returnvalue">Return Value
</h4>
518 <p class=
"description">Element value or NULL
</p>
519 <h3 class=
"function"><a name=
"cgiGetAttributes">cgiGetAttributes
</a></h3>
520 <p class=
"description">Get the list of attributes that are needed
521 by the template file.
</p>
523 void cgiGetAttributes (
<br>
524 ipp_t *request,
<br>
525 const char *tmpl
<br>
527 <h4 class=
"parameters">Parameters
</h4>
530 <dd class=
"description">IPP request
</dd>
532 <dd class=
"description">Base filename
</dd>
534 <h3 class=
"function"><a name=
"cgiGetFile">cgiGetFile
</a></h3>
535 <p class=
"description">Get the file (if any) that was submitted in the form.
</p>
537 const
<a href=
"#cgi_file_t">cgi_file_t
</a> *cgiGetFile (void);
</p>
538 <h4 class=
"returnvalue">Return Value
</h4>
539 <p class=
"description">Attached file or NULL
</p>
540 <h3 class=
"function"><a name=
"cgiGetIPPObjects">cgiGetIPPObjects
</a></h3>
541 <p class=
"description">Get the objects in an IPP response.
</p>
543 cups_array_t *cgiGetIPPObjects (
<br>
544 ipp_t *response,
<br>
545 void *search
<br>
547 <h4 class=
"parameters">Parameters
</h4>
550 <dd class=
"description">IPP response
</dd>
552 <dd class=
"description">Search filter
</dd>
554 <h4 class=
"returnvalue">Return Value
</h4>
555 <p class=
"description">Array of objects
</p>
556 <h3 class=
"function"><a name=
"cgiGetSize">cgiGetSize
</a></h3>
557 <p class=
"description">Get the size of a form array value.
</p>
560 const char *name
<br>
562 <h4 class=
"parameters">Parameters
</h4>
565 <dd class=
"description">Name of variable
</dd>
567 <h4 class=
"returnvalue">Return Value
</h4>
568 <p class=
"description">Number of elements
</p>
569 <h3 class=
"function"><a name=
"cgiGetTemplateDir">cgiGetTemplateDir
</a></h3>
570 <p class=
"description">Get the templates directory...
</p>
572 char *cgiGetTemplateDir (void);
</p>
573 <h4 class=
"returnvalue">Return Value
</h4>
574 <p class=
"description">Template directory
</p>
575 <h3 class=
"function"><a name=
"cgiGetVariable">cgiGetVariable
</a></h3>
576 <p class=
"description">Get a CGI variable from the database...
</p>
578 const char *cgiGetVariable (
<br>
579 const char *name
<br>
581 <h4 class=
"parameters">Parameters
</h4>
584 <dd class=
"description">Name of variable
</dd>
586 <h4 class=
"returnvalue">Return Value
</h4>
587 <p class=
"description">Value of variable
</p>
588 <h4 class=
"discussion">Discussion
</h4>
589 <p class=
"discussion">Returns NULL if the variable doesn't exist. If the variable is an
590 array of values, returns the last element...
</p>
591 <h3 class=
"function"><a name=
"cgiInitialize">cgiInitialize
</a></h3>
592 <p class=
"description">Initialize the CGI variable
"database
"...
</p>
594 int cgiInitialize (void);
</p>
595 <h4 class=
"returnvalue">Return Value
</h4>
596 <p class=
"description">Non-zero if there was form data
</p>
597 <h3 class=
"function"><a name=
"cgiIsPOST">cgiIsPOST
</a></h3>
598 <p class=
"description">Determine whether this page was POSTed.
</p>
600 int cgiIsPOST (void);
</p>
601 <h4 class=
"returnvalue">Return Value
</h4>
602 <p class=
"description">1 if POST,
0 if GET
</p>
603 <h3 class=
"function"><a name=
"cgiMoveJobs">cgiMoveJobs
</a></h3>
604 <p class=
"description">Move one or more jobs.
</p>
606 void cgiMoveJobs (
<br>
607 http_t *http,
<br>
608 const char *dest,
<br>
609 int job_id
<br>
611 <h4 class=
"parameters">Parameters
</h4>
614 <dd class=
"description">Connection to server
</dd>
616 <dd class=
"description">Destination or NULL
</dd>
618 <dd class=
"description">Job ID or
0 for all
</dd>
620 <h4 class=
"discussion">Discussion
</h4>
621 <p class=
"discussion">At least one of dest or job_id must be non-zero/NULL.
</p>
622 <h3 class=
"function"><a name=
"cgiPrintCommand">cgiPrintCommand
</a></h3>
623 <p class=
"description">Print a CUPS command job.
</p>
625 void cgiPrintCommand (
<br>
626 http_t *http,
<br>
627 const char *dest,
<br>
628 const char *command,
<br>
629 const char *title
<br>
631 <h4 class=
"parameters">Parameters
</h4>
634 <dd class=
"description">Connection to server
</dd>
636 <dd class=
"description">Destination printer
</dd>
638 <dd class=
"description">Command to send
</dd>
640 <dd class=
"description">Page/job title
</dd>
642 <h3 class=
"function"><a name=
"cgiPrintTestPage">cgiPrintTestPage
</a></h3>
643 <p class=
"description">Print a test page.
</p>
645 void cgiPrintTestPage (
<br>
646 http_t *http,
<br>
647 const char *dest
<br>
649 <h4 class=
"parameters">Parameters
</h4>
652 <dd class=
"description">Connection to server
</dd>
654 <dd class=
"description">Destination printer/class
</dd>
656 <h3 class=
"function"><a name=
"cgiRewriteURL">cgiRewriteURL
</a></h3>
657 <p class=
"description">Rewrite a printer URI into a web browser URL...
</p>
659 char *cgiRewriteURL (
<br>
660 const char *uri,
<br>
661 char *url,
<br>
662 int urlsize,
<br>
663 const char *newresource
<br>
665 <h4 class=
"parameters">Parameters
</h4>
668 <dd class=
"description">Current URI
</dd>
670 <dd class=
"description">New URL
</dd>
672 <dd class=
"description">Size of URL buffer
</dd>
674 <dd class=
"description">Replacement resource
</dd>
676 <h4 class=
"returnvalue">Return Value
</h4>
677 <p class=
"description">New URL
</p>
678 <h3 class=
"function"><a name=
"cgiSetArray">cgiSetArray
</a></h3>
679 <p class=
"description">Set array element N to the specified string.
</p>
681 void cgiSetArray (
<br>
682 const char *name,
<br>
683 int element,
<br>
684 const char *value
<br>
686 <h4 class=
"parameters">Parameters
</h4>
689 <dd class=
"description">Name of variable
</dd>
691 <dd class=
"description">Element number (
0 to N)
</dd>
693 <dd class=
"description">Value of variable
</dd>
695 <h4 class=
"discussion">Discussion
</h4>
696 <p class=
"discussion">If the variable array is smaller than (element +
1), the intervening
697 elements are set to NULL.
</p>
698 <h3 class=
"function"><a name=
"cgiSetIPPObjectVars">cgiSetIPPObjectVars
</a></h3>
699 <p class=
"description">Set CGI variables from an IPP object.
</p>
701 ipp_attribute_t *cgiSetIPPObjectVars (
<br>
702 ipp_attribute_t *obj,
<br>
703 const char *prefix,
<br>
704 int element
<br>
706 <h4 class=
"parameters">Parameters
</h4>
709 <dd class=
"description">Response data to be copied...
</dd>
711 <dd class=
"description">Prefix for name or NULL
</dd>
713 <dd class=
"description">Parent element number
</dd>
715 <h4 class=
"returnvalue">Return Value
</h4>
716 <p class=
"description">Next object
</p>
717 <h3 class=
"function"><a name=
"cgiSetIPPVars">cgiSetIPPVars
</a></h3>
718 <p class=
"description">Set CGI variables from an IPP response.
</p>
720 int cgiSetIPPVars (
<br>
721 ipp_t *response,
<br>
722 const char *filter_name,
<br>
723 const char *filter_value,
<br>
724 const char *prefix,
<br>
725 int parent_el
<br>
727 <h4 class=
"parameters">Parameters
</h4>
730 <dd class=
"description">Response data to be copied...
</dd>
732 <dd class=
"description">Filter name
</dd>
733 <dt>filter_value
</dt>
734 <dd class=
"description">Filter value
</dd>
736 <dd class=
"description">Prefix for name or NULL
</dd>
738 <dd class=
"description">Parent element number
</dd>
740 <h4 class=
"returnvalue">Return Value
</h4>
741 <p class=
"description">Maximum number of elements
</p>
742 <h3 class=
"function"><a name=
"cgiSetServerVersion">cgiSetServerVersion
</a></h3>
743 <p class=
"description">Set the server name and CUPS version...
</p>
745 void cgiSetServerVersion (void);
</p>
746 <h3 class=
"function"><a name=
"cgiSetSize">cgiSetSize
</a></h3>
747 <p class=
"description">Set the array size.
</p>
749 void cgiSetSize (
<br>
750 const char *name,
<br>
751 int size
<br>
753 <h4 class=
"parameters">Parameters
</h4>
756 <dd class=
"description">Name of variable
</dd>
758 <dd class=
"description">Number of elements (
0 to N)
</dd>
760 <h3 class=
"function"><a name=
"cgiSetVariable">cgiSetVariable
</a></h3>
761 <p class=
"description">Set a CGI variable in the database...
</p>
763 void cgiSetVariable (
<br>
764 const char *name,
<br>
765 const char *value
<br>
767 <h4 class=
"parameters">Parameters
</h4>
770 <dd class=
"description">Name of variable
</dd>
772 <dd class=
"description">Value of variable
</dd>
774 <h4 class=
"discussion">Discussion
</h4>
775 <p class=
"discussion">If the variable is an array, this truncates the array to a single element.
</p>
776 <h3 class=
"function"><a name=
"cgiShowIPPError">cgiShowIPPError
</a></h3>
777 <p class=
"description">Show the last IPP error message.
</p>
779 void cgiShowIPPError (
<br>
780 const char *message
<br>
782 <h4 class=
"parameters">Parameters
</h4>
785 <dd class=
"description">Contextual message
</dd>
787 <h4 class=
"discussion">Discussion
</h4>
788 <p class=
"discussion">The caller must still call cgiStartHTML() and cgiEndHTML().
</p>
789 <h3 class=
"function"><a name=
"cgiShowJobs">cgiShowJobs
</a></h3>
790 <p class=
"description">Show print jobs.
</p>
792 void cgiShowJobs (
<br>
793 http_t *http,
<br>
794 const char *dest
<br>
796 <h4 class=
"parameters">Parameters
</h4>
799 <dd class=
"description">Connection to server
</dd>
801 <dd class=
"description">Destination name or NULL
</dd>
803 <h3 class=
"function"><a name=
"cgiStartHTML">cgiStartHTML
</a></h3>
804 <p class=
"description">Start a HTML page.
</p>
806 void cgiStartHTML (
<br>
807 const char *title
<br>
809 <h4 class=
"parameters">Parameters
</h4>
812 <dd class=
"description">Title of page
</dd>
814 <h3 class=
"function"><a name=
"cgiStartMultipart">cgiStartMultipart
</a></h3>
815 <p class=
"description">Start a multipart delivery of a web page.
</p>
817 void cgiStartMultipart (void);
</p>
818 <h3 class=
"function"><a name=
"cgiSupportsMultipart">cgiSupportsMultipart
</a></h3>
819 <p class=
"description">Does the browser support multi-part documents?
</p>
821 int cgiSupportsMultipart (void);
</p>
822 <h4 class=
"returnvalue">Return Value
</h4>
823 <p class=
"description">1 if multi-part supported,
0 otherwise
</p>
824 <h3 class=
"function"><a name=
"cgiText">cgiText
</a></h3>
825 <p class=
"description">Return localized text.
</p>
827 const char *cgiText (
<br>
828 const char *message
<br>
830 <h4 class=
"parameters">Parameters
</h4>
833 <dd class=
"description">Message
</dd>
835 <h4 class=
"returnvalue">Return Value
</h4>
836 <p class=
"description">Localized message
</p>
837 <h3 class=
"function"><a name=
"helpDeleteIndex">helpDeleteIndex
</a></h3>
838 <p class=
"description">Delete an index, freeing all memory used.
</p>
840 void helpDeleteIndex (
<br>
841 <a href=
"#help_index_t">help_index_t
</a> *hi
<br>
843 <h4 class=
"parameters">Parameters
</h4>
846 <dd class=
"description">Help index
</dd>
848 <h3 class=
"function"><a name=
"helpFindNode">helpFindNode
</a></h3>
849 <p class=
"description">Find a node in an index.
</p>
851 <a href=
"#help_node_t">help_node_t
</a> *helpFindNode (
<br>
852 <a href=
"#help_index_t">help_index_t
</a> *hi,
<br>
853 const char *filename,
<br>
854 const char *anchor
<br>
856 <h4 class=
"parameters">Parameters
</h4>
859 <dd class=
"description">Index
</dd>
861 <dd class=
"description">Filename
</dd>
863 <dd class=
"description">Anchor
</dd>
865 <h4 class=
"returnvalue">Return Value
</h4>
866 <p class=
"description">Node pointer or NULL
</p>
867 <h3 class=
"function"><a name=
"helpLoadIndex">helpLoadIndex
</a></h3>
868 <p class=
"description">Load a help index from disk.
</p>
870 <a href=
"#help_index_t">help_index_t
</a> *helpLoadIndex (
<br>
871 const char *hifile,
<br>
872 const char *directory
<br>
874 <h4 class=
"parameters">Parameters
</h4>
877 <dd class=
"description">Index filename
</dd>
879 <dd class=
"description">Directory that is indexed
</dd>
881 <h4 class=
"returnvalue">Return Value
</h4>
882 <p class=
"description">Index pointer or NULL
</p>
883 <h3 class=
"function"><a name=
"helpSaveIndex">helpSaveIndex
</a></h3>
884 <p class=
"description">Save a help index to disk.
</p>
886 int helpSaveIndex (
<br>
887 <a href=
"#help_index_t">help_index_t
</a> *hi,
<br>
888 const char *hifile
<br>
890 <h4 class=
"parameters">Parameters
</h4>
893 <dd class=
"description">Index
</dd>
895 <dd class=
"description">Index filename
</dd>
897 <h4 class=
"returnvalue">Return Value
</h4>
898 <p class=
"description">0 on success, -
1 on error
</p>
899 <h3 class=
"function"><a name=
"helpSearchIndex">helpSearchIndex
</a></h3>
900 <p class=
"description">Search an index.
</p>
902 <a href=
"#help_index_t">help_index_t
</a> *helpSearchIndex (
<br>
903 <a href=
"#help_index_t">help_index_t
</a> *hi,
<br>
904 const char *query,
<br>
905 const char *section,
<br>
906 const char *filename
<br>
908 <h4 class=
"parameters">Parameters
</h4>
911 <dd class=
"description">Index
</dd>
913 <dd class=
"description">Query string
</dd>
915 <dd class=
"description">Limit search to this section
</dd>
917 <dd class=
"description">Limit search to this file
</dd>
919 <h4 class=
"returnvalue">Return Value
</h4>
920 <p class=
"description">Search index
</p>
921 <h2 class=
"title"><a name=
"TYPES">Data Types
</a></h2>
922 <h3 class=
"typedef"><a name=
"cgi_file_t">cgi_file_t
</a></h3>
923 <p class=
"description">Uploaded file data
</p>
925 typedef struct
<a href=
"#cgi_file_s">cgi_file_s
</a> cgi_file_t;
927 <h3 class=
"typedef"><a name=
"help_index_t">help_index_t
</a></h3>
928 <p class=
"description">Help index structure
</p>
930 typedef struct
<a href=
"#help_index_s">help_index_s
</a> help_index_t;
932 <h3 class=
"typedef"><a name=
"help_node_t">help_node_t
</a></h3>
933 <p class=
"description">Help node structure...
</p>
935 typedef struct
<a href=
"#help_node_s">help_node_s
</a> help_node_t;
937 <h3 class=
"typedef"><a name=
"help_word_t">help_word_t
</a></h3>
938 <p class=
"description">Help word structure...
</p>
940 typedef struct
<a href=
"#help_word_s">help_word_s
</a> help_word_t;
942 <h2 class=
"title"><a name=
"STRUCTURES">Structures
</a></h2>
943 <h3 class=
"struct"><a name=
"cgi_file_s">cgi_file_s
</a></h3>
944 <p class=
"description">Uploaded file data
</p>
945 <p class=
"code">struct cgi_file_s {
<br>
946 size_t filesize;
<br>
947 char tempfile[
1024], *name, *filename, *mimetype;
<br>
949 <h4 class=
"members">Members
</h4>
952 <dd class=
"description">Size of uploaded file
</dd>
954 <dd class=
"description">MIME media type
</dd>
956 <h3 class=
"struct"><a name=
"help_index_s">help_index_s
</a></h3>
957 <p class=
"description">Help index structure
</p>
958 <p class=
"code">struct help_index_s {
<br>
959 cups_array_t *nodes;
<br>
960 int search;
<br>
961 cups_array_t *sorted;
<br>
963 <h4 class=
"members">Members
</h4>
966 <dd class=
"description">Nodes sorted by filename
</dd>
968 <dd class=
"description">1 = search index,
0 = normal
</dd>
970 <dd class=
"description">Nodes sorted by score + text
</dd>
972 <h3 class=
"struct"><a name=
"help_node_s">help_node_s
</a></h3>
973 <p class=
"description">Help node structure...
</p>
974 <p class=
"code">struct help_node_s {
<br>
975 char *anchor;
<br>
976 char *filename;
<br>
977 size_t length;
<br>
978 time_t mtime;
<br>
979 off_t offset;
<br>
980 int score;
<br>
981 char *section;
<br>
982 char *text;
<br>
983 cups_array_t *words;
<br>
985 <h4 class=
"members">Members
</h4>
988 <dd class=
"description">Anchor name (NULL if none)
</dd>
990 <dd class=
"description">Filename, relative to help dir
</dd>
992 <dd class=
"description">Length in bytes
</dd>
994 <dd class=
"description">Last modification time
</dd>
996 <dd class=
"description">Offset in file
</dd>
998 <dd class=
"description">Search score
</dd>
1000 <dd class=
"description">Section name (NULL if none)
</dd>
1002 <dd class=
"description">Text in anchor
</dd>
1004 <dd class=
"description">Words after this node
</dd>
1006 <h3 class=
"struct"><a name=
"help_word_s">help_word_s
</a></h3>
1007 <p class=
"description">Help word structure...
</p>
1008 <p class=
"code">struct help_word_s {
<br>
1009 int count;
<br>
1010 char *text;
<br>
1012 <h4 class=
"members">Members
</h4>
1015 <dd class=
"description">Number of occurrences
</dd>
1017 <dd class=
"description">Word text
</dd>