From fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 8 Jul 2015 20:46:52 -0400 Subject: Initial commit --- pkg/plot/impstatus.x | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 pkg/plot/impstatus.x (limited to 'pkg/plot/impstatus.x') diff --git a/pkg/plot/impstatus.x b/pkg/plot/impstatus.x new file mode 100644 index 00000000..77d56eb4 --- /dev/null +++ b/pkg/plot/impstatus.x @@ -0,0 +1,48 @@ +# IMPSTATUS.X -- Support routines for multiple line, scrolling status line. + + +# SL_INIT -- Initialize the status lines for nlines + +procedure sl_init (sl, nlines) + +pointer sl # Pointer to status lines +int nlines # Number of lines + +int i + +begin + i = nlines * (SZ_LINE + 1) + if (sl == NULL) + call calloc (sl, i, TY_CHAR) + else { + call realloc (sl, i, TY_CHAR) + call aclrc (Memc[sl], i) + } + Memc[sl] = nlines +end + + +# SL_FREE -- Free memory used in the status lines + +procedure sl_free (sl) + +pointer sl # Pointer to status lines + +begin + call mfree (sl, TY_CHAR) +end + + +# SL_GETSTR -- Get a status line string as a char pointer + +pointer procedure sl_getstr (sl, line) + +pointer sl # Pointer to status lines +int line # Line to enter + +int i + +begin + i = mod (line-1, int(Memc[sl])) + return (sl + i * (SZ_LINE+1) + 1) +end -- cgit