tRemove one indentation level in getsel(). - st - [fork] customized build of st… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 74962bf56636e608f0ee35f2076bc6b48923119d | |
parent 6681af165b06c32cf65bf970a295600d46cb7025 | |
Author: noname <[email protected]> | |
Date: Sun, 27 Apr 2014 15:40:23 +0400 | |
Remove one indentation level in getsel(). | |
Diffstat: | |
M st.c | 91 +++++++++++++++--------------… | |
1 file changed, 45 insertions(+), 46 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -922,60 +922,59 @@ getsel(void) { | |
int x, y, bufsize, size, i, ex; | |
Glyph *gp, *last; | |
- if(sel.ob.x == -1) { | |
- str = NULL; | |
- } else { | |
- bufsize = (term.col+1) * (sel.ne.y-sel.nb.y+1) * UTF_SIZ; | |
- ptr = str = xmalloc(bufsize); | |
+ if(sel.ob.x == -1) | |
+ return NULL; | |
- /* append every set & selected glyph to the selection */ | |
- for(y = sel.nb.y; y < sel.ne.y + 1; y++) { | |
- gp = &term.line[y][0]; | |
- last = &gp[term.col-1]; | |
+ bufsize = (term.col+1) * (sel.ne.y-sel.nb.y+1) * UTF_SIZ; | |
+ ptr = str = xmalloc(bufsize); | |
- while(last >= gp && !(selected(last - gp, y) && | |
- strcmp(last->c, " ") != 0)) { | |
- --last; | |
- } | |
+ /* append every set & selected glyph to the selection */ | |
+ for(y = sel.nb.y; y < sel.ne.y + 1; y++) { | |
+ gp = &term.line[y][0]; | |
+ last = &gp[term.col-1]; | |
- for(x = 0; gp <= last; x++, ++gp) { | |
- if(!selected(x, y) || (gp->mode & ATTR_WDUMMY)) | |
- continue; | |
+ while(last >= gp && !(selected(last - gp, y) && | |
+ strcmp(last->c, " ") != 0)) { | |
+ --last; | |
+ } | |
- size = utf8len(gp->c); | |
- memcpy(ptr, gp->c, size); | |
- ptr += size; | |
- } | |
+ for(x = 0; gp <= last; x++, ++gp) { | |
+ if(!selected(x, y) || (gp->mode & ATTR_WDUMMY)) | |
+ continue; | |
- /* | |
- * Copy and pasting of line endings is inconsistent | |
- * in the inconsistent terminal and GUI world. | |
- * The best solution seems like to produce '\n' when | |
- * something is copied from st and convert '\n' to | |
- * '\r', when something to be pasted is received by | |
- * st. | |
- * FIXME: Fix the computer world. | |
- */ | |
- if(y < sel.ne.y && x > 0 && !((gp-1)->mode & ATTR_WRAP… | |
- *ptr++ = '\n'; | |
+ size = utf8len(gp->c); | |
+ memcpy(ptr, gp->c, size); | |
+ ptr += size; | |
+ } | |
- /* | |
- * If the last selected line expands in the selection | |
- * 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; | |
- if(i < ex) | |
- *ptr++ = '\n'; | |
- } | |
+ /* | |
+ * Copy and pasting of line endings is inconsistent | |
+ * in the inconsistent terminal and GUI world. | |
+ * The best solution seems like to produce '\n' when | |
+ * something is copied from st and convert '\n' to | |
+ * '\r', when something to be pasted is received by | |
+ * st. | |
+ * FIXME: Fix the computer world. | |
+ */ | |
+ if(y < sel.ne.y && x > 0 && !((gp-1)->mode & ATTR_WRAP)) | |
+ *ptr++ = '\n'; | |
+ | |
+ /* | |
+ * If the last selected line expands in the selection | |
+ * 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; | |
+ if(i < ex) | |
+ *ptr++ = '\n'; | |
} | |
- *ptr = 0; | |
} | |
+ *ptr = 0; | |
return str; | |
} | |