Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KHTML_ELEMAT(3)		    Library Functions Manual	       KHTML_ELEMAT(3)

NAME
       khtml_closeelem -- close	element	contexts of kcgihtml

LIBRARY
       library "libkcgihtml"

SYNOPSIS
       #include	<sys/types.h>
       #include	<stdarg.h>
       #include	<stdint.h>
       #include	<kcgi.h>
       #include	<kcgihtml.h>

       enum kcgi_err
       khtml_closeelem(struct khtmlreq *req, size_t nclose);

DESCRIPTION
       Closes  nclose  element	scopes of req, initialised with	khtml_open(3).
       Scopes are opened with khtml_attr(3), khtml_attrx(3), or	khtml_elem(3).
       Scopes  for  "void"  elements  (self-closing,   like   KELEM_LINK)   or
       KELEM_DOCTYPE close immediately and should not be explicitly closed.

       If nclose is zero or greater than the number of open scopes, all	scopes
       are closed.

RETURN VALUES
       Returns an enum kcgi_err	indicating the error state.

       KCGI_OK
	    Success (not an error).

       KCGI_ENOMEM
	    Internal memory allocation failure.

       KCGI_HUP
	    The	 output	 connection  has been terminated.  For FastCGI connec-
	    tions,  the	  current   connection	 should	  be   released	  with
	    khttp_free(3) and parse loop reentered.

       KCGI_FORM
	    The	connection is still expecting headers with khttp_head(3).  In-
	    dicates  that khttp_body(3)	did not	return with success or was not
	    invoked.  For FastCGI connections, the current  connection	should
	    be released	with khttp_free(3) and parse loop reentered.

       KCGI_SYSTEM
	    Internal system error writing to the output	stream.

EXAMPLES
       The  following  outputs	a  simple HTML page.  It assumes r is a	struct
       kreq pointer.  For brevity, it does not do any error checking.

	     khttp_head(r, kresps[KRESP_STATUS],
	       "%s", khttps[KHTTP_200]);
	     khttp_head(r, kresps[KRESP_CONTENT_TYPE],
	       "%s", kmimetypes[KMIME_TEXT_HTML]);
	     khttp_body(r);
	     khtml_open(&req, r, 0);
	     khtml_elem(&req, KELEM_DOCTYPE);
	     khtml_elem(&req, KELEM_HTML);
	     khtml_elem(&req, KELEM_HEAD);
	     khtml_elem(&req, KELEM_TITLE);
	     khtml_puts(&req, "Hello, world.");
	     khtml_closeelem(&req, 2); /* title, head */
	     khtml_elem(&req, KELEM_BODY);
	     khtml_elem(&req, KELEM_P);
	     khtml_puts(&req, "Hello, world");
	     khtml_closeelem(&req, 1); /* p */
	     khtml_elem(&req, KELEM_P);
	     khtml_puts(&req, "Another hello, world");
	     khtml_close(&req);

SEE ALSO
       kcgihtml(3)

STANDARDS
       The referenced HTML5 standard is	HTML5.2: https://www.w3.org/TR/html52.

AUTHORS
       Written by Kristaps Dzonsons <kristaps@bsd.lv>.

FreeBSD	Ports 14.quarterly	  $Mdocdate$		       KHTML_ELEMAT(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=khtml_closeelem&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help