aboutsummaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
Diffstat (limited to 'man')
-rw-r--r--man/magi.316
-rw-r--r--man/magi_urlenc.351
2 files changed, 64 insertions, 3 deletions
diff --git a/man/magi.3 b/man/magi.3
index fcf6679..2db61b4 100644
--- a/man/magi.3
+++ b/man/magi.3
@@ -23,12 +23,22 @@ Main task of the
library is to analyse CGI request and represent it to the user in
.B magi_request
data structure. This is done by calling
-.B magi_parse
+.B magi_parse_head
+and
+.B magi_parse_body
+(such separation allows to determine body processing on head content,
+if there is no need to do so you can use shortcut
+.BR magi_parse )
on initialized via
.B magi_request_init
request variable. After initialization the user is able to configure
-limits on the input and setup callback to process files loaded as
-.IR multipart/form-data .
+limits on the input
+.RB ( magi_request_limits ,
+everything is unlimited as default)
+and setup callback to process files loaded as
+.I multipart/form-data
+.RB ( magi_file_callback ,
+with default addon_max of 1KB).
The
.B magi
library comes with
diff --git a/man/magi_urlenc.3 b/man/magi_urlenc.3
index e69de29..ac0c798 100644
--- a/man/magi_urlenc.3
+++ b/man/magi_urlenc.3
@@ -0,0 +1,51 @@
+.TH MAGI 3 2020-05-02 v0.0.1 "Library Manual"
+.SH NAME
+.B magi_urlenc
+\- implementation of url encoding
+.SH SYNOPSYS
+.B #include <magi.h>
+.P
+int
+.BR magi_urlenc_size "(const char *" plain );
+.P
+void
+.BR magi_urlenc "(const char *" plain ", char *" code );
+.SH DESCRIPTION
+Can be helpful in forming urls in response. Use
+.B magi_urlenc_size
+to find what the size of code will be and then call
+.B magi_urlenc
+for encoding itself.
+.P
+URL encoding is described in
+.IR "RFC 3986" .
+Briefly it is changing every space into plus sign and every not
+alpha-numerical or not one of "~-._" character into percent sign
+followed by hexademical representation of given character byte.
+.P
+.B code
+passed to
+.B magi_urlenc
+should be at least size of
+.BR magi_urlenc_size ( plain ).
+.SH RETURN VALUES
+.BR magi_urlenc_size :
+size of url encoding of
+.BR plain .
+.SH EXAMPLES
+The following forms URL to search in DuckDuckGo for provided
+.RB "char *" query
+in
+.RB "char *" url .
+.P
+.RS
+.nf
+const char *prefix = "http://duckduckgo.com/?q=";
+const int prelen = strlen(prefix);
+const int urlencsize = magi_urlenc_size(query);
+url = malloc(prelen + urlencsize + 1);
+strcpy(url, prefix);
+magi_urlenc(query, url + prelen);
+url[prelen + urlencsize] = 0;
+.fi
+.RE