Xinqi Bao's Git
projects
/
st.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Fix rectangular selection.
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
9a41c5b
..
8b65450
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-670,7
+670,7
@@
static void
selnormalize(void) {
int i;
selnormalize(void) {
int i;
- if(sel.ob.y == sel.oe.y) {
+ if(sel.ob.y == sel.oe.y
|| sel.type == SEL_RECTANGULAR
) {
sel.nb.x = MIN(sel.ob.x, sel.oe.x);
sel.ne.x = MAX(sel.ob.x, sel.oe.x);
} else {
sel.nb.x = MIN(sel.ob.x, sel.oe.x);
sel.ne.x = MAX(sel.ob.x, sel.oe.x);
} else {
@@
-920,7
+920,7
@@
bpress(XEvent *e) {
char *
getsel(void) {
char *str, *ptr;
char *
getsel(void) {
char *str, *ptr;
- int x, y, bufsize, size,
i,
ex;
+ int x, y, bufsize, size, ex;
Glyph *gp, *last;
if(sel.ob.x == -1)
Glyph *gp, *last;
if(sel.ob.x == -1)
@@
-965,13
+965,10
@@
getsel(void) {
* after the visible text '\n' is appended.
*/
if(y == sel.ne.y) {
* after the visible text '\n' is appended.
*/
if(y == sel.ne.y) {
- i = term.col;
- while(--i > 0 && term.line[y][i].c[0] == ' ')
- /* nothing */;
ex = sel.ne.x;
if(sel.nb.y == sel.ne.y && sel.ne.x < sel.nb.x)
ex = sel.nb.x;
ex = sel.ne.x;
if(sel.nb.y == sel.ne.y && sel.ne.x < sel.nb.x)
ex = sel.nb.x;
- if(
i
< ex)
+ if(
tlinelen(y)
< ex)
*ptr++ = '\n';
}
}
*ptr++ = '\n';
}
}