JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Simplify techo
[st.git] / st.c
diff --git a/st.c b/st.c
index 392f12d..e510565 100644 (file)
--- a/st.c
+++ b/st.c
@@ -36,10 +36,6 @@ char *argv0;
 
 #define Glyph Glyph_
 #define Font Font_
-#define Draw XftDraw *
-#define Colour XftColor
-#define Colourmap Colormap
-#define Rectangle XRectangle
 
 #if   defined(__linux)
  #include <pty.h>
@@ -180,6 +176,10 @@ typedef unsigned int uint;
 typedef unsigned long ulong;
 typedef unsigned short ushort;
 
+typedef XftDraw *Draw;
+typedef XftColor Colour;
+typedef Colormap Colourmap;
+
 typedef struct {
        char c[UTF_SIZ]; /* character code */
        ushort mode;      /* attribute flags */
@@ -1855,7 +1855,10 @@ tsetmode(bool priv, bool set, int *args, int narg) {
                                MODBIT(term.mode, set, MODE_8BIT);
                                break;
                        case 1049: /* swap screen & set/restore cursor as xterm */
+                               if (!allowaltscreen)
+                                       break;
                                tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD);
+                               /* FALLTHRU */
                        case 47: /* swap screen */
                        case 1047:
                                if (!allowaltscreen)
@@ -2315,10 +2318,7 @@ techo(char *buf, int len) {
        for(; len > 0; buf++, len--) {
                char c = *buf;
 
-               if(c == '\033') { /* escape */
-                       tputc("^", 1);
-                       tputc("[", 1);
-               } else if(c < '\x20') { /* control code */
+               if(c < '\x20') { /* control code */
                        if(c != '\n' && c != '\r' && c != '\t') {
                                c |= '\x40';
                                tputc("^", 1);
@@ -3089,7 +3089,7 @@ xinit(void) {
        xresettitle();
        XMapWindow(xw.dpy, xw.win);
        xhints();
-       XSync(xw.dpy, 0);
+       XSync(xw.dpy, False);
 }
 
 void
@@ -3107,7 +3107,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
        FcCharSet *fccharset;
        Colour *fg, *bg, *temp, revfg, revbg, truefg, truebg;
        XRenderColor colfg, colbg;
-       Rectangle r;
+       XRectangle r;
        int oneatatime;
 
        frcflags = FRC_NORMAL;
@@ -3737,8 +3737,8 @@ run(void) {
        else
                cresize(xw.fw, xw.fh);
 
-       gettimeofday(&lastblink, NULL);
        gettimeofday(&last, NULL);
+       lastblink = last;
 
        for(xev = actionfps;;) {
                long deltatime;
@@ -3773,7 +3773,7 @@ run(void) {
                if(blinktimeout && TIMEDIFF(now, lastblink) > blinktimeout) {
                        tsetdirtattr(ATTR_BLINK);
                        term.mode ^= MODE_BLINK;
-                       gettimeofday(&lastblink, NULL);
+                       lastblink = now;
                        dodraw = 1;
                }
                deltatime = TIMEDIFF(now, last);