slackline.h - lchat - A line oriented chat front end for ii.
 (HTM) git clone git://git.suckless.org/lchat
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
       slackline.h (849B)
       ---
            1 #ifndef SLACKLINE_H
            2 #define SLACKLINE_H
            3 
            4 enum esc_seq {ESC_NONE, ESC, ESC_BRACKET, ESC_BRACKET_NUM};
            5 enum mode {SL_DEFAULT, SL_EMACS, SL_VI};
            6 
            7 struct slackline {
            8         /* buffer */
            9         char *buf;
           10         char *ptr;        /* ptr of cursor */
           11         char *last;        /* ptr of last byte of string */
           12         size_t bufsize;
           13 
           14         /* byte positions */
           15         size_t bcur;        /* first byte of the rune of the cursor */
           16         size_t blen;        /* amount of bytes of current string */
           17 
           18         /* rune positions */
           19         size_t rcur;        /* cursor */
           20         size_t rlen;        /* amount of runes */
           21 
           22         enum esc_seq esc;
           23         char nummod;
           24 
           25         /* UTF-8 handling */
           26         char ubuf[6];        /* UTF-8 buffer */
           27         size_t ubuf_len;
           28 
           29         enum mode mode;
           30 };
           31 
           32 struct slackline *sl_init(void);
           33 void sl_free(struct slackline *sl);
           34 void sl_reset(struct slackline *sl);
           35 int sl_keystroke(struct slackline *sl, int key);
           36 void sl_mode(struct slackline *sl, enum mode mode);
           37 
           38 #endif