iIntroduce a hint to only slide file if needed. - catpoint - Catpoint simple presenting software. Err bitreich.org 70 hgit clone git://bitreich.org/catpoint/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/catpoint/ URL:git://bitreich.org/catpoint/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/catpoint/ bitreich.org 70 1Log /scm/catpoint/log.gph bitreich.org 70 1Files /scm/catpoint/files.gph bitreich.org 70 1Refs /scm/catpoint/refs.gph bitreich.org 70 1Tags /scm/catpoint/tag bitreich.org 70 1README /scm/catpoint/file/README.md.gph bitreich.org 70 1LICENSE /scm/catpoint/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 68ef54b661d4e28bb74d67b1bdf81d997abb08db /scm/catpoint/commit/68ef54b661d4e28bb74d67b1bdf81d997abb08db.gph bitreich.org 70 1parent cd4fd87b2fc9d10ac71b55d9b1ea503fdad037b0 /scm/catpoint/commit/cd4fd87b2fc9d10ac71b55d9b1ea503fdad037b0.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Mon, 28 Dec 2020 15:08:19 +0100 Err bitreich.org 70 i Err bitreich.org 70 iIntroduce a hint to only slide file if needed. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M catpoint.c | 20 ++++++++++++++++++-- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 18 insertions(+), 2 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/catpoint.c b/catpoint.c /scm/catpoint/file/catpoint.c.gph bitreich.org 70 i@@ -17,6 +17,8 @@ Err bitreich.org 70 i char *currentslidep, **slidefiles; /* the slides */ Err bitreich.org 70 i int nslides, currentslide, currentslidelen, exitstatus = 1; Err bitreich.org 70 i Err bitreich.org 70 i+volatile sig_atomic_t slidechanged = 1; Err bitreich.org 70 i+ Err bitreich.org 70 i void Err bitreich.org 70 i unloadcurrentslide(void) Err bitreich.org 70 i { Err bitreich.org 70 i@@ -64,6 +66,11 @@ reloadcurrentslide(int sig) Err bitreich.org 70 i if (raise(SIGWINCH) < 0) Err bitreich.org 70 i err(1, "raise"); Err bitreich.org 70 i } Err bitreich.org 70 i+ Err bitreich.org 70 i+ /* Err bitreich.org 70 i+ * Keep this out of SIGHUP, in case this is used somewhere else. Err bitreich.org 70 i+ */ Err bitreich.org 70 i+ slidechanged = 1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i@@ -112,8 +119,11 @@ main(int argc, char *argv[]) Err bitreich.org 70 i curs_set(FALSE); /* hide cursor */ Err bitreich.org 70 i Err bitreich.org 70 i show: Err bitreich.org 70 i- /* display slide */ Err bitreich.org 70 i- loadcurrentslide(slidefiles, currentslide); Err bitreich.org 70 i+ /* display slide if changed */ Err bitreich.org 70 i+ if (slidechanged) { Err bitreich.org 70 i+ slidechanged = 0; Err bitreich.org 70 i+ loadcurrentslide(slidefiles, currentslide); Err bitreich.org 70 i+ } Err bitreich.org 70 i clear(); Err bitreich.org 70 i refresh(); Err bitreich.org 70 i printw("%.*s", currentslidelen, currentslidep); Err bitreich.org 70 i@@ -135,6 +145,7 @@ again: Err bitreich.org 70 i case KEY_DOWN: Err bitreich.org 70 i case KEY_NPAGE: Err bitreich.org 70 i if (currentslide < nslides - 1) { Err bitreich.org 70 i+ slidechanged = 1; Err bitreich.org 70 i currentslide++; Err bitreich.org 70 i goto show; Err bitreich.org 70 i } Err bitreich.org 70 i@@ -147,6 +158,7 @@ again: Err bitreich.org 70 i case KEY_UP: Err bitreich.org 70 i case KEY_PPAGE: Err bitreich.org 70 i if (currentslide > 0) { Err bitreich.org 70 i+ slidechanged = 1; Err bitreich.org 70 i currentslide--; Err bitreich.org 70 i goto show; Err bitreich.org 70 i } Err bitreich.org 70 i@@ -157,11 +169,15 @@ again: Err bitreich.org 70 i case 'u': Err bitreich.org 70 i case KEY_BEG: Err bitreich.org 70 i case KEY_HOME: Err bitreich.org 70 i+ if (currentslide != 0) Err bitreich.org 70 i+ slidechanged = 1; Err bitreich.org 70 i currentslide = 0; Err bitreich.org 70 i goto show; Err bitreich.org 70 i /* last */ Err bitreich.org 70 i case 'i': Err bitreich.org 70 i case KEY_END: Err bitreich.org 70 i+ if (currentslide != (nslides - 1)) Err bitreich.org 70 i+ slidechanged = 1; Err bitreich.org 70 i currentslide = nslides - 1; Err bitreich.org 70 i goto show; Err bitreich.org 70 i /* reload */ Err bitreich.org 70 .