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

FreeBSD Manual Pages

  
 
  

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

NAME
     khtml_elemat -- get element stack depth of	kcgihtml

LIBRARY
     library "libkcgihtml"

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

     size_t
     khtml_elemat(const	struct khtmlreq	*req);

DESCRIPTION
     Gets the current depth of the element stack of req, initialised with
     khtml_open(3).  This is usually used with khtml_closeto(3).

     If	called before opening any element contexts (i.e., a depth of zero), a
     subsequent	khtml_closeto(3) will close all	open scopes.

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);
	   pos = khtml_elemat(&req); /*	save at	html */
	   khtml_elem(&req, KELEM_HEAD);
	   khtml_elem(&req, KELEM_TITLE);
	   khtml_puts(&req, "Hello, world.");
	   khtml_closeto(&req, pos); /*	to html	*/
	   khtml_closeelem(&req, 1); /*	head */
	   khtml_elem(&req, KELEM_BODY);
	   khtml_puts(&req, "Hello, world");
	   khtml_close(&req);

SEE ALSO
     kcgihtml(3)

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

CAVEATS
     If	called in a scope that's subsequently closed, then a new scope re-
     opened and	filled in, a corresponding khtml_closeto(3) will unwind	the
     stack to the new scope.  In other words this does not identify a save-
     point: it's merely	the scope depth.

FreeBSD	13.0			March 26, 2020			  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | AUTHORS | CAVEATS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=khtml_elemat&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help