commit 270090df88dbda257d7636a791b308a1a31b5079
Author: Fun Maker <[email protected]>
Date:   Thu Jan 31 20:02:15 2019 +0100

    st scrollback: fixed altscreen detection

diff --git a/st.suckless.org/patches/scrollback/index.md 
b/st.suckless.org/patches/scrollback/index.md
index 926ccae3..639ade27 100644
--- a/st.suckless.org/patches/scrollback/index.md
+++ b/st.suckless.org/patches/scrollback/index.md
@@ -26,7 +26,7 @@ other than scrolling functions.**
 
 * 
[st-scrollback-mouse-altscreen-20170427-5a10aca.diff](st-scrollback-mouse-altscreen-20170427-5a10aca.diff)
 * 
[st-scrollback-mouse-altscreen-0.8.diff](st-scrollback-mouse-altscreen-0.8.diff)
-* 
[st-scrollback-mouse-altscreen-20190106-e23acb9.diff](st-scrollback-mouse-altscreen-20190106-e23acb9.diff)
+* 
[st-scrollback-mouse-altscreen-20190131-e23acb9.diff](st-scrollback-mouse-altscreen-20190131-e23acb9.diff)
 
 Notes
 -----
@@ -46,3 +46,4 @@ Authors
   when using the auto altscreen scrolling)
 * Lorenzo Bracco - <[email protected]> (update base patch, use static
   variable for config)
+* Kamil Kleban - <[email protected]> (fix altscreen detection)
diff --git 
a/st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-0.8.diff 
b/st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-0.8.diff
index bc4a0ac9..8ee58d92 100644
--- a/st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-0.8.diff
+++ b/st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-0.8.diff
@@ -14,54 +14,38 @@ index feec7e2..f1a9768 100644
  
  /* Internal keyboard shortcuts. */
 diff --git a/st.c b/st.c
-index 1d8c12a..f226625 100644
+index 1d8c12a..458dcfa 100644
 --- a/st.c
 +++ b/st.c
-@@ -47,17 +47,6 @@
- /* constants */
- #define ISO14755CMD           "dmenu -w \"$WINDOWID\" -p codepoint: 
</dev/null"
+@@ -1051,6 +1051,11 @@ tnew(int col, int row)
+       treset();
+ }
  
--enum term_mode {
--      MODE_WRAP        = 1 << 0,
--      MODE_INSERT      = 1 << 1,
--      MODE_ALTSCREEN   = 1 << 2,
--      MODE_CRLF        = 1 << 3,
--      MODE_ECHO        = 1 << 4,
--      MODE_PRINT       = 1 << 5,
--      MODE_UTF8        = 1 << 6,
--      MODE_SIXEL       = 1 << 7,
--};
--
- enum cursor_movement {
-       CURSOR_SAVE,
-       CURSOR_LOAD
++int tisaltscr(void)
++{
++      return IS_SET(MODE_ALTSCREEN);
++}
++
+ void
+ tswapscreen(void)
+ {
 diff --git a/st.h b/st.h
-index cdd25ae..bb6dad4 100644
+index cdd25ae..e6143f0 100644
 --- a/st.h
 +++ b/st.h
-@@ -25,6 +25,17 @@
- #define TLINE(y)       ((y) < term.scr ? term.hist[((y) + term.histi - 
term.scr \
-                + HISTSIZE + 1) % HISTSIZE] : term.line[(y) - term.scr])
+@@ -99,6 +99,7 @@ void sendbreak(const Arg *);
+ void toggleprinter(const Arg *);
  
-+enum term_mode {
-+      MODE_WRAP        = 1 << 0,
-+      MODE_INSERT      = 1 << 1,
-+      MODE_ALTSCREEN   = 1 << 2,
-+      MODE_CRLF        = 1 << 3,
-+      MODE_ECHO        = 1 << 4,
-+      MODE_PRINT       = 1 << 5,
-+      MODE_UTF8        = 1 << 6,
-+      MODE_SIXEL       = 1 << 7,
-+};
-+
- enum glyph_attribute {
-       ATTR_NULL       = 0,
-       ATTR_BOLD       = 1 << 0,
+ int tattrset(int);
++int tisaltscr(void);
+ void tnew(int, int);
+ void tresize(int, int);
+ void tsetdirtattr(int);
 diff --git a/x.c b/x.c
-index 1de5f6c..d3f869e 100644
+index 1de5f6c..991bc3e 100644
 --- a/x.c
 +++ b/x.c
-@@ -417,13 +417,14 @@ bpress(XEvent *e)
+@@ -417,11 +417,13 @@ bpress(XEvent *e)
                return;
        }
  
@@ -70,7 +54,7 @@ index 1de5f6c..d3f869e 100644
 -                              && match(ms->mask, e->xbutton.state)) {
 -                      ttywrite(ms->s, strlen(ms->s), 1);
 -                      return;
-+      if (IS_SET(MODE_ALTSCREEN))
++      if (tisaltscr()) {
 +              for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) {
 +                      if (e->xbutton.button == ms->b
 +                                      && match(ms->mask, e->xbutton.state)) {
@@ -78,7 +62,5 @@ index 1de5f6c..d3f869e 100644
 +                              return;
 +                      }
                }
--      }
+       }
  
-       for (mk = mkeys; mk < mkeys + LEN(mkeys); mk++) {
-               if (e->xbutton.button == mk->b
diff --git 
a/st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-20190106-e23acb9.diff
 
b/st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-20190131-e23acb9.diff
similarity index 53%
rename from 
st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-20190106-e23acb9.diff
rename to 
st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-20190131-e23acb9.diff
index e013ddfc..e9d9d218 100644
--- 
a/st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-20190106-e23acb9.diff
+++ 
b/st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-20190131-e23acb9.diff
@@ -1,5 +1,5 @@
 diff --git a/config.def.h b/config.def.h
-index f770d2e..19d35a7 100644
+index a6d2fb9..16830c8 100644
 --- a/config.def.h
 +++ b/config.def.h
 @@ -162,8 +162,8 @@ static MouseShortcut mshortcuts[] = {
@@ -14,51 +14,35 @@ index f770d2e..19d35a7 100644
  
  /* Internal keyboard shortcuts. */
 diff --git a/st.c b/st.c
-index 218ae73..3f385a0 100644
+index 218ae73..f543305 100644
 --- a/st.c
 +++ b/st.c
-@@ -47,17 +47,6 @@
-                               term.scr + HISTSIZE + 1) % HISTSIZE] : \
-                               term.line[(y) - term.scr])
+@@ -1058,6 +1058,11 @@ tnew(int col, int row)
+       treset();
+ }
  
--enum term_mode {
--      MODE_WRAP        = 1 << 0,
--      MODE_INSERT      = 1 << 1,
--      MODE_ALTSCREEN   = 1 << 2,
--      MODE_CRLF        = 1 << 3,
--      MODE_ECHO        = 1 << 4,
--      MODE_PRINT       = 1 << 5,
--      MODE_UTF8        = 1 << 6,
--      MODE_SIXEL       = 1 << 7,
--};
--
- enum cursor_movement {
-       CURSOR_SAVE,
-       CURSOR_LOAD
++int tisaltscr(void)
++{
++      return IS_SET(MODE_ALTSCREEN);
++}
++
+ void
+ tswapscreen(void)
+ {
 diff --git a/st.h b/st.h
-index 3592957..1469450 100644
+index 3592957..23f4ca3 100644
 --- a/st.h
 +++ b/st.h
-@@ -20,6 +20,17 @@
- #define TRUECOLOR(r,g,b)      (1 << 24 | (r) << 16 | (g) << 8 | (b))
- #define IS_TRUECOL(x)         (1 << 24 & (x))
+@@ -95,6 +95,7 @@ void sendbreak(const Arg *);
+ void toggleprinter(const Arg *);
  
-+enum term_mode {
-+      MODE_WRAP        = 1 << 0,
-+      MODE_INSERT      = 1 << 1,
-+      MODE_ALTSCREEN   = 1 << 2,
-+      MODE_CRLF        = 1 << 3,
-+      MODE_ECHO        = 1 << 4,
-+      MODE_PRINT       = 1 << 5,
-+      MODE_UTF8        = 1 << 6,
-+      MODE_SIXEL       = 1 << 7,
-+};
-+
- enum glyph_attribute {
-       ATTR_NULL       = 0,
-       ATTR_BOLD       = 1 << 0,
+ int tattrset(int);
++int tisaltscr(void);
+ void tnew(int, int);
+ void tresize(int, int);
+ void tsetdirtattr(int);
 diff --git a/x.c b/x.c
-index e9fd6e9..c914a0b 100644
+index e9fd6e9..2dc315e 100644
 --- a/x.c
 +++ b/x.c
 @@ -417,11 +417,13 @@ bpress(XEvent *e)
@@ -70,7 +54,7 @@ index e9fd6e9..c914a0b 100644
 -                              && match(ms->mask, e->xbutton.state)) {
 -                      ttywrite(ms->s, strlen(ms->s), 1);
 -                      return;
-+      if (IS_SET(MODE_ALTSCREEN)) {
++      if (tisaltscr()) {
 +              for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) {
 +                      if (e->xbutton.button == ms->b
 +                                      && match(ms->mask, e->xbutton.state)) {


Reply via email to