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)) {