GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
KHTML_ATTR(3) FreeBSD Library Functions Manual KHTML_ATTR(3)

khtml_attr, khtml_attrx
open an element scope for kcgihtml

library “libkcgihtml”

#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, ...);

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.

Returns an enum kcgi_err indicating the error state.
Success (not an error).
Internal memory allocation failure, including reaching the maximum number of possible HTML scopes.
The output connection has been terminated. For FastCGI connections, the current connection should be released with khttp_free(3) and parse loop reentered.
The connection is still expecting headers with khttp_head(3). Indicates 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.
Internal system error writing to the output stream.

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().

kcgihtml(3)

The referenced HTML5 standard is HTML5.2.

Written by Kristaps Dzonsons <kristaps@bsd.lv>.
June 12, 2022 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.