Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- a/Makefile 2011-11-13 01:01:34.394429572 -0500
- +++ b/Makefile 2011-11-13 01:04:32.024012806 -0500
- @@ -5,7 +5,7 @@
- all: fbpad
- %.o: %.c
- $(CC) -c $(CFLAGS) $<
- -fbpad: fbpad.o term.o pad.o draw.o font.o
- +fbpad: fbpad.o term.o pad.o draw.o font.o scrsnap.o
- $(CC) -o $@ $^ $(LDFLAGS)
- clean:
- rm -f *.o fbpad
- --- a/fbpad.c 2011-11-13 01:13:43.202630158 -0500
- +++ b/fbpad.c 2011-11-13 01:14:28.032518474 -0500
- @@ -20,6 +20,7 @@
- #include "pad.h"
- #include "term.h"
- #include "util.h"
- +#include "scrsnap.h"
- #include "draw.h"
- #define CTRLKEY(x) ((x) - 96)
- @@ -27,6 +28,7 @@
- #define NTAGS (sizeof(tags) - 1)
- #define NTERMS (NTAGS * 2)
- #define TERMOPEN(i) (terms[i].fd)
- +#define TERMSNAP(i) (strchr(TAGS_SAVED, tags[(i) % NTAGS]))
- static char tags[] = TAGS;
- static struct term terms[NTERMS];
- @@ -52,7 +54,11 @@
- static void term_switch(int oidx, int nidx, int show, int save, int load)
- {
- int flags = show ? (load ? TERM_REDRAW : TERM_VISIBLE) : TERM_HIDDEN;
- + if (save && TERMOPEN(oidx) && TERMSNAP(oidx))
- + scr_snap(&terms[oidx]);
- term_save(&terms[oidx]);
- + if (show && load && TERMOPEN(nidx) && TERMSNAP(nidx))
- + flags = scr_load(&terms[nidx]) ? TERM_REDRAW : TERM_VISIBLE;
- term_load(&terms[nidx], flags);
- }
- @@ -104,7 +110,7 @@
- static void showtags(void)
- {
- - int colors[] = {15, 4, 2};
- + int colors[] = {8, 2, 9};
- int c = 0;
- int r = pad_rows() - 1;
- int i;
- @@ -121,7 +127,10 @@
- if (TERMOPEN(altterm(i)))
- nt++;
- pad_put(i == ctag ? '(' : ' ', r, c++, FGCOLOR, BGCOLOR);
- - pad_put(tags[i], r, c++, colors[nt], BGCOLOR);
- + if (TERMSNAP(i))
- + pad_put(tags[i], r, c++, !nt ? 8 : colors[nt], BGCOLOR);
- + else
- + pad_put(tags[i], r, c++, colors[nt], BGCOLOR);
- pad_put(i == ctag ? ')' : ' ', r, c++, FGCOLOR, BGCOLOR);
- }
- }
- @@ -159,6 +168,9 @@
- case 's':
- term_screenshot();
- return;
- + case 'y':
- + term_switch(cterm(), cterm(), 1, 0, 1);
- + return;
- default:
- if (strchr(tags, c)) {
- showtag(strchr(tags, c) - tags);
- @@ -209,8 +221,10 @@
- temp_switch(term_idx[i]);
- if (ufds[i].revents & POLLIN)
- term_read();
- - if (ufds[i].revents & BADPOLLFLAGS)
- + if (ufds[i].revents & BADPOLLFLAGS) {
- + scr_free(&terms[cterm()]);
- term_end();
- + }
- switch_back(term_idx[i]);
- }
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment