summaryrefslogtreecommitdiffstats
path: root/lib/libncurses/lib_acs.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1994-10-07 08:58:58 +0000
committerache <ache@FreeBSD.org>1994-10-07 08:58:58 +0000
commita80c0624fbd8bd1c784b0b5b7a0fd20b09d317b9 (patch)
tree4a94ca97fb2fc2fdc1fcdd522a66e39c6e763138 /lib/libncurses/lib_acs.c
downloadFreeBSD-src-a80c0624fbd8bd1c784b0b5b7a0fd20b09d317b9.zip
FreeBSD-src-a80c0624fbd8bd1c784b0b5b7a0fd20b09d317b9.tar.gz
Moved from ports with several enhancements
Diffstat (limited to 'lib/libncurses/lib_acs.c')
-rw-r--r--lib/libncurses/lib_acs.c99
1 files changed, 99 insertions, 0 deletions
diff --git a/lib/libncurses/lib_acs.c b/lib/libncurses/lib_acs.c
new file mode 100644
index 0000000..70fd6d2
--- /dev/null
+++ b/lib/libncurses/lib_acs.c
@@ -0,0 +1,99 @@
+
+/* This work is copyrighted. See COPYRIGHT.OLD & COPYRIGHT.NEW for *
+* details. If they are missing then this copy is in violation of *
+* the copyright conditions. */
+
+
+#include "curses.priv.h"
+#include <nterm.h>
+#include <string.h>
+
+/* line graphics */
+
+
+chtype acs_map[128];
+
+void init_acs()
+{
+
+/*
+ ACS_ULCORNER (acs_map['l'])
+ ACS_LLCORNER (acs_map['m'])
+ ACS_URCORNER (acs_map['k'])
+ ACS_LRCORNER (acs_map['j'])
+ ACS_RTEE (acs_map['u'])
+ ACS_LTEE (acs_map['t'])
+ ACS_BTEE (acs_map['v'])
+ ACS_TTEE (acs_map['w'])
+ ACS_HLINE (acs_map['q'])
+ ACS_VLINE (acs_map['x'])
+ ACS_PLUS (acs_map['n'])
+ ACS_S1 (acs_map['o']) scan line 1
+ ACS_S9 (acs_map['s']) scan line 9
+ ACS_DIAMOND (acs_map['`']) diamond
+ ACS_CKBOARD (acs_map['a']) checker board (stipple)
+ ACS_DEGREE (acs_map['f']) degree symbol
+ ACS_PLMINUS (acs_map['g']) plus/minus
+ ACS_BULLET (acs_map['~']) bullet
+ ACS_LARROW (acs_map[',']) arrow pointing left
+ ACS_RARROW (acs_map['+']) arrow pointing right
+ ACS_DARROW (acs_map['.']) arrow pointing down
+ ACS_UARROW (acs_map['-']) arrow pointing up
+ ACS_BOARD (acs_map['h']) board of squares
+ ACS_LANTERN (acs_map['I']) lantern symbol
+ ACS_BLOCK (acs_map['0']) solid square block
+*/
+
+ T(("initializing ACS map"));
+
+ acs_map['l'] = acs_map['m'] = acs_map['k'] = acs_map['j'] =
+ acs_map['u'] = acs_map['t'] = acs_map['v'] = acs_map['w'] = (chtype)'+' & A_CHARTEXT;
+ acs_map['q'] = (chtype)'-' & A_CHARTEXT;
+ acs_map['x'] = (chtype)'|' & A_CHARTEXT;
+ acs_map['n'] = (chtype)'+' & A_CHARTEXT;
+ acs_map['o'] = (chtype)'~' & A_CHARTEXT;
+ acs_map['s'] = (chtype)'_' & A_CHARTEXT;
+ acs_map['`'] = (chtype)'+' & A_CHARTEXT;
+ acs_map['a'] = (chtype)':' & A_CHARTEXT;
+ acs_map['f'] = (chtype)'\'' & A_CHARTEXT;
+ acs_map['g'] = (chtype)'#' & A_CHARTEXT;
+ acs_map['~'] = (chtype)'o' & A_CHARTEXT;
+ acs_map[','] = (chtype)'<' & A_CHARTEXT;
+ acs_map['+'] = (chtype)'>' & A_CHARTEXT;
+ acs_map['.'] = (chtype)'v' & A_CHARTEXT;
+ acs_map['-'] = (chtype)'^' & A_CHARTEXT;
+ acs_map['h'] = (chtype)'#' & A_CHARTEXT;
+ acs_map['I'] = (chtype)'#' & A_CHARTEXT;
+ acs_map['0'] = (chtype)'#' & A_CHARTEXT;
+
+ if (ena_acs != NULL)
+ tputs(ena_acs, 1, _outc);
+
+ if (acs_chars != NULL) {
+ int i = 0;
+ int length = strlen(acs_chars);
+
+ while (i < length)
+ switch (acs_chars[i]) {
+ case 'l':case 'm':case 'k':case 'j':
+ case 'u':case 't':case 'v':case 'w':
+ case 'q':case 'x':case 'n':case 'o':
+ case 's':case '`':case 'a':case 'f':
+ case 'g':case '~':case ',':case '+':
+ case '.':case '-':case 'h':case 'I':
+ case '0':
+ acs_map[(unsigned int)(unsigned char)acs_chars[i]] =
+ (acs_chars[++i] & A_CHARTEXT) | A_ALTCHARSET;
+ default:
+ i++;
+ break;
+ }
+ }
+#ifdef TRACE
+ else {
+ if (_tracing)
+ _tracef("acsc not defined, using default mapping");
+ }
+#endif
+}
+
OpenPOWER on IntegriCloud