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
     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 connections,
	  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).   Indi-
	  cates  that  khttp_body(3)  did not return with success or was not in-
	  voked.  For FastCGI connections, the current connection should be  re-
	  leased 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.

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

FreeBSD ports 15.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+15.1.quarterly>

home | help