dtree

Програм из командне линије за исцртавање стабала
git clone https://git.sr.ht/~strahinja/dtree
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

utf8.h (1269B)


      1 /* This program is licensed under the terms of GNU GPL v3 or (at your option)
      2  * any later version. Copyright (C) 2023-2026  Страхиња Радић.
      3  * See the file LICENSE for exact copyright and license details. */
      4 
      5 #include <stdint.h>
      6 #include <sys/types.h>
      7 
      8 #define XMASK1 0x7F /* b01111111 */
      9 #define XMASK2 0x1F /* b00011111 */
     10 #define XMASK3 0x0F /* b00001111 */
     11 #define XMASK4 0x07 /* b00000111 */
     12 #define XMASK5 0x03 /* b00000011 */
     13 #define XMASK6 0x01 /* b00000001 */
     14 
     15 #define XMASKR 0x3F /* b00111111 */
     16 
     17 /*
     18 #define BOUND1	0x0*/
     19 #define BOUND2 0x80
     20 #define BOUND3 0x800
     21 #define BOUND4 0x10000
     22 #define BOUND5 0x200000
     23 #define BOUND6 0x800000
     24 
     25 #define START1 0x00 /* b0xxxxxxx */
     26 #define START2 0xC0 /* b110xxxxx */
     27 #define START3 0xE0 /* b1110xxxx */
     28 #define START4 0xF0 /* b11110xxx */
     29 #define START5 0xF8 /* b111110xx */
     30 #define START6 0xFC /* b1111110x */
     31 
     32 #define STARTR 0x80 /* b10xxxxxx */
     33 
     34 typedef uint8_t u8;
     35 typedef uint32_t u32;
     36 
     37 int u8_rune_to_u32(u32* to, const u8* from, size_t* from_delta);
     38 int u32_rune_to_u8(u8* to, const u32 from); /* max == 1 */
     39 int u8_to_u32(u32* to, const u8* from, const ssize_t max, size_t* from_delta);
     40 int u32_to_u8(u8* to, const u32* from, const ssize_t max);
     41 size_t u32_strlen(const u32* s, const ssize_t max);