KHTML_NCR(3)

πŸ“¦ version 1.0.1, in alpine 3.24

πŸ’… KHTML_NCR(3) πŸ’…

okay so bestie, welcome to KHTML_NCR(3) from the Library Functions Manual β€” yes, the whole group chat is here and we are keeping every single detail ✨.


🌸 NAME 🌸

khtml_ncr β€” put character entity content for kcgihtml πŸ’–.

πŸŽ€ LIBRARY πŸŽ€

the whole thing lives in library β€œlibkcgihtml” 🫢.

✨ SYNOPSIS ✨

here is the exact include lineup and the function signature, no cap:

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

enum kcgi_err
khttp_ncr(struct kreq *req, uint32_t v);

copy that exactly as written, bestie β€” no renaming, no fixing, no editing the source vibes πŸ’….

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so what does it actually do? It writes a character entity v to a context req initialised with khtml_open(3) πŸ’–. The value is formatted as "&#xNNNN;" β€” literally that shape β€” and ngl, it is not checked for being a valid entity number πŸ™ˆ. So do not expect a vibe check on your entity number, because it does not get one.

πŸ”₯ RETURN VALUES πŸ”₯

Returns an enum kcgi_err indicating the error state. Here is the whole cast, no skips:

  • KCGI_OK β€” Success (not an error) ✨ β€” we love a non-error.
  • KCGI_ENOMEM β€” Internal memory allocation failure 😭 β€” the memory said no.
  • 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. handle it, bestie.
  • KCGI_FORM β€” 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.
  • 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_BODY);
             khtml_elem(&req, KELEM_P);
             khtml_ncr(&req, 0x1F601); /* smiley */
             khtml_close(&req);

the /* smiley */ comment is right there and honestly iconic 😊.

🧚 SEE ALSO 🧚

kcgihtml(3) β€” that is the one, bestie, go peek πŸ‘€.

πŸ’œ STANDARDS πŸ’œ

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

πŸ‘‘ AUTHORS πŸ‘‘

Written by Kristaps Dzonsons <kristaps@bsd.lv> β€” author icon behavior πŸ‘‘.

πŸ“ that is the page, bestie β€” Debian source/version with the $Mdocdate$ date stamp, filed under KHTML_NCR(3) πŸ’–.

πŸ“¦ where this page comes from
  • alpine 3.24: kcgi-doc 1.0.1-r0 Β· ISC
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms