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

FreeBSD Manual Pages

  
 
  

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

NAME
       khtml_attr, khtml_attrx -- open an element scope	for 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_attr(struct khtmlreq *req,	enum kelem elem, ...);

       enum kcgi_err
       khtml_attrx(struct khtmlreq *req, enum kelem elem, ...);

DESCRIPTION
       Open  a	new scope of element elem on the current element stack of req,
       initialised   with   khtml_open(3).     Scopes	 are	closed	  with
       khtml_closeelem(3),  khtml_closeto(3), or khtml_close(3).  If elem is a
       "void" eleemnt (self-closing, like KELEM_LINK)  or  KELEM_DOCTYPE,  the
       scope is	immediately closed so no new scope is opened.

       For  khtml_attr(), variable arguments are in pairs, with	the first of a
       pair being a enum attr of the attribute type and	 the  second  being  a
       non-NULL	string.

       For  khtml_attrx(),  variable arguments are in triplets:	the first is a
       enum attr of the	attribute type,	the second is a	enum attrx  describing
       the  data  format  of  the  third type, and the third type is either an
       int64_t,	 char  *,  or  double  for   KATTRX_INT,   KATTRX_STRING,   or
       KATTRX_DOUBLE, respectively.

       In both cases, string content is	HTML escaped, for example, the double-
       quote  character	is rendered as "&quot;".  This prevents	arguments from
       "breaking" the attribute	string context.

       The variable arguments terminated with a	singular KATTR__MAX.

RETURN VALUES
       Returns an enum kcgi_err	indicating the error state.

       KCGI_OK
	    Success (not an error).

       KCGI_ENOMEM
	    Internal memory allocation failure,	including reaching the maximum
	    number of possible HTML scopes.

       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_attr(req, KELEM_META,
	       KATTR_CHARSET, "utf-8", KATTR__MAX);
	     khtml_attrx(req, KELEM_LINK,
	       KATTR_REL, KATTRX_STRING, "stylesheet",
	       KATTR_HREF, KATTRX_STRING, "style.css",
	       KATTR__MAX);
	     khtml_close(&req);

       The latter invocation could just	as easily use khtml_attr().

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_ATTR(3)

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

home | help