CLIT(3)                    Library Functions Manual                    CLIT(3)



NAME
       clit - conv c99 esc string '\n\100' >> '(\n)@' etc

SYNOPSIS
        #include "clit.h"
        char* clit(const char* s [,int ssz]);
        char* clitv(const char* s ,int* szptr);




TL_DR
        #include <stdlib.h>
        #include <stdio.h>
        #include "clit.h"

        int main(int argc, char** argv){
            int sz;
            char* s = "abc\\n\\100\\u0070\\U00000071";   // \n @ p q
            char* rp = clit(s); //use strlen(s) if ag2 isnt/-1
            puts(rp); //abc(\n)@pq
            free(rp); //always needs free(rtn);

            //--err
            s = "\\u70 \\x61";
            rp = clit(s, 7);    // \u70 \x
            puts(rp); //>> emsg. errno != 0
            free(rp);

            //--bin
            s = "a\0b\\100";
            sz = 7;   //a(\0)b(\)100
            rp = clitv(s, &sz);
            puts(rp); // a
            free(rp);
            if(sz!=4){ return 1; }
            return 0;
        }
        // ~$ cc src.c clit.c   #..or libclit.a etc
        // ~$ ./a.out; echo $?


PARAMS
       s      str/bin holding esc '\' chars

       ssz    conv size if set. use strlen(s) if noset/-1

       szptr  pass s size and write rtnptr sz (verbose)

RETURN
       return  malloc()ed  bin/str.  return emsg + errno!=0 if err. you always
       need free() rtnptr.

DESCRIPTION
       conv c99 escaped literal to utf-8 binary.
        char: \ + \"'?abfntv
        oct : \ooo (1-3digits)
        u4 : \u+ hhhh (4digits)
        U8 : \U+ hhhhhhhh (8digits)
       hex \xhhhh... isnt support. oct is restricted in 3digits==1byte but hex
       isnt. hex value depends on env, endian etc.
       unicode changes to utf-8 byte sequences.

ERRORS
       set errno != 0 if err.

NOTES
       -

CONFORMING_TO
       POSIX.1-2001+ (-D_XOPEN_SOURCE=600 etc)

COPYRIGHT
       Copyright 2022 momi-g, GPLv3+

VERSION
       2022-07-10 v1.0.2 (2022-06-27 v1.0.0)

SEE_ALSO
       https://kikakurui.com/x3/X3010-2003-01.html
       https://www.dii.uchile.cl/~daespino/files/Iso_C_1999_definition.pdf




                                                                       CLIT(3)
