X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=st.h;h=8637d358123ea1d5cdcc850bcc571bb698eb6b15;hb=323d38da20c8a1d295ab1dbc0fc7ce947ef824e1;hp=ad943517b2660891505b36c7d79334c60e86676b;hpb=626b0ae40c71b6c1e02ece79bf033432647381a6;p=st.git diff --git a/st.h b/st.h index ad94351..8637d35 100644 --- a/st.h +++ b/st.h @@ -9,6 +9,7 @@ #define LEN(a) (sizeof(a) / sizeof(a)[0]) #define BETWEEN(x, a, b) ((a) <= (x) && (x) <= (b)) #define DIVCEIL(n, d) (((n) + ((d) - 1)) / (d)) +#define DEFAULT(a, b) (a) = (a) ? (a) : (b) #define LIMIT(x, a, b) (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x) #define ATTRCMP(a, b) ((a).mode != (b).mode || (a).fg != (b).fg || \ (a).bg != (b).bg) @@ -80,11 +81,6 @@ enum selection_snap { SNAP_LINE = 2 }; -enum window_state { - WIN_VISIBLE = 1, - WIN_FOCUSED = 2 -}; - typedef unsigned char uchar; typedef unsigned int uint; typedef unsigned long ulong; @@ -92,6 +88,7 @@ typedef unsigned short ushort; typedef uint_least32_t Rune; +#define Glyph Glyph_ typedef struct { Rune u; /* character code */ ushort mode; /* attribute flags */ @@ -100,7 +97,6 @@ typedef struct { } Glyph; typedef Glyph *Line; -typedef XftGlyphFontSpec GlyphFontSpec; typedef struct { Glyph attr; /* current char attributes */ @@ -116,7 +112,6 @@ typedef struct { Line *line; /* screen */ Line *alt; /* alternate screen */ int *dirty; /* dirtyness of lines */ - GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ TCursor c; /* cursor */ int top; /* top scroll limit */ int bot; /* bottom scroll limit */ @@ -139,12 +134,6 @@ typedef struct { int cursor; /* cursor style */ } TermWindow; -typedef struct { - uint b; - uint mask; - char *s; -} MouseShortcut; - typedef struct { int mode; int type; @@ -175,98 +164,57 @@ typedef union { const void *v; } Arg; -typedef struct { - uint mod; - KeySym keysym; - void (*func)(const Arg *); - const Arg arg; -} Shortcut; - void die(const char *, ...); void redraw(void); +void iso14755(const Arg *); +void numlock(const Arg *); +void printscreen(const Arg *); +void printsel(const Arg *); +void sendbreak(const Arg *); +void toggleprinter(const Arg *); + int tattrset(int); void tnew(int, int); +void tresize(int, int); void tsetdirt(int, int); void tsetdirtattr(int); -int match(uint, uint); -void ttynew(void); +void ttynew(char *, char *, char **); size_t ttyread(void); -void ttyresize(void); +void ttyresize(int, int); void ttysend(char *, size_t); void ttywrite(const char *, size_t); void resettitle(void); -char *kmap(KeySym, uint); -void cresize(int, int); void selclear(void); - void selinit(void); void selnormalize(void); int selected(int, int); char *getsel(void); -int x2col(int); -int y2row(int); -size_t utf8decode(char *, Rune *, size_t); +size_t utf8decode(const char *, Rune *, size_t); size_t utf8encode(Rune, char *); void *xmalloc(size_t); +void *xrealloc(void *, size_t); char *xstrdup(char *); /* Globals */ -extern TermWindow win; extern Term term; extern Selection sel; extern int cmdfd; extern pid_t pid; -extern char **opt_cmd; -extern char *opt_class; -extern char *opt_embed; -extern char *opt_font; -extern char *opt_io; -extern char *opt_line; -extern char *opt_name; -extern char *opt_title; extern int oldbutton; -extern char *usedfont; -extern double usedfontsize; -extern double defaultfontsize; - /* config.h globals */ -extern char font[]; -extern int borderpx; -extern float cwscale; -extern float chscale; -extern unsigned int doubleclicktimeout; -extern unsigned int tripleclicktimeout; +extern char *shell; +extern char *utmp; +extern char *stty_args; +extern char *vtiden; +extern char *worddelimiters; extern int allowaltscreen; -extern unsigned int xfps; -extern unsigned int actionfps; -extern unsigned int cursorthickness; -extern int bellvolume; -extern unsigned int blinktimeout; -extern char termname[]; -extern const char *colorname[]; -extern size_t colornamelen; +extern char *termname; +extern unsigned int tabspaces; extern unsigned int defaultfg; extern unsigned int defaultbg; -extern unsigned int defaultcs; -extern unsigned int defaultrcs; -extern unsigned int cursorshape; -extern unsigned int cols; -extern unsigned int rows; -extern unsigned int mouseshape; -extern unsigned int mousefg; -extern unsigned int mousebg; -extern unsigned int defaultattr; -extern MouseShortcut mshortcuts[]; -extern size_t mshortcutslen; -extern Shortcut shortcuts[]; -extern size_t shortcutslen; -extern uint forceselmod; -extern uint selmasks[]; -extern size_t selmaskslen; -extern char ascii_printable[];