st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit ba9d0365ac7e138b643d7179457f8465a1dc1191
parent 950ff21e17af487b205ea0b666be015790114fa7
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Thu,  8 Nov 2012 17:17:26 +0100

Clarify some or exclusive expressions

Since relational expresions are always evaluated to 0 or 1, we can use
bitwise xor operator instead of using more complex boolean expressions.
---
 st.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
Diffstat:
Mst.c | 14+++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/st.c b/st.c
@@ -1475,15 +1475,15 @@ tsetmode(bool priv, bool set, int *args, int narg) {
                 break;
             case 1049: /* = 1047 and 1048 */
             case 47:
-            case 1047:
-                if(IS_SET(MODE_ALTSCREEN))
+            case 1047: {
+                bool alt = IS_SET(MODE_ALTSCREEN) != 0;
+                if(alt)
                     tclearregion(0, 0, term.col-1, term.row-1);
-                if((set && !IS_SET(MODE_ALTSCREEN)) ||
-                        (!set && IS_SET(MODE_ALTSCREEN))) {
+                if(set ^ alt)        /* set is always 1 or 0 */
                     tswapscreen();
-                }
                 if(*args != 1049)
                     break;
+            }
                 /* pass through */
             case 1048:
                 tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD);
@@ -2546,9 +2546,9 @@ drawregion(int x1, int y1, int x2, int y2) {
     int ic, ib, x, y, ox, sl;
     Glyph base, new;
     char buf[DRAW_BUF_SIZ];
-    bool ena_sel = sel.bx != -1, alt = IS_SET(MODE_ALTSCREEN);
+    bool ena_sel = sel.bx != -1, alt = IS_SET(MODE_ALTSCREEN) != 0;
 
-    if((sel.alt && !alt) || (!sel.alt && alt))
+    if((sel.alt != 0) ^ alt)
         ena_sel = 0;
     if(!(xw.state & WIN_VISIBLE))
         return;