aboutsummaryrefslogtreecommitdiffhomepage
path: root/libslang/src/untic.c
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2011-10-14 04:55:05 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2011-10-14 04:55:05 +0200
commit6aa0e0017d7d0cddc006da885946934b06949a91 (patch)
tree66b688ec32e2f91266db760b1762f2a50cc52036 /libslang/src/untic.c
parenta966db5b71328f6adf9dd767e64b322a3bd7ed9c (diff)
downloaderlang-slang-fork-6aa0e0017d7d0cddc006da885946934b06949a91.tar.gz
include libslang-1.4.9 and automatically build it and link erlang-slang against it
few (erlang) people will still have libslang-1.4.9 installed or spend time to get it to link against the driver
Diffstat (limited to 'libslang/src/untic.c')
-rw-r--r--libslang/src/untic.c90
1 files changed, 90 insertions, 0 deletions
diff --git a/libslang/src/untic.c b/libslang/src/untic.c
new file mode 100644
index 0000000..418ce3b
--- /dev/null
+++ b/libslang/src/untic.c
@@ -0,0 +1,90 @@
+#define SLANG_UNTIC
+char *SLang_Untic_Terminfo_File;
+#include "sltermin.c"
+
+static void usage (void)
+{
+ fprintf (stderr, "Usage: untic [[--terminfo filename] | [term]]\n");
+ exit (1);
+}
+
+int main (int argc, char **argv)
+{
+ SLterminfo_Type *t;
+ Tgetstr_Map_Type *map = Tgetstr_Map;
+ unsigned char *str;
+ char *term;
+
+ term = getenv ("TERM");
+ if (argc > 1)
+ {
+ if (!strcmp ("--help", argv[1])) usage ();
+ if (argc == 2)
+ term = argv[1];
+ else if ((argc == 3) && !strcmp(argv[1], "--terminfo"))
+ {
+ SLang_Untic_Terminfo_File = argv[2];
+ }
+ else usage ();
+ }
+ else if (term == NULL) return -1;
+
+ SLtt_Try_Termcap = 0;
+ t = _SLtt_tigetent (term);
+ if (t == NULL) return -1;
+
+ puts (t->terminal_names);
+ while (*map->name != 0)
+ {
+ str = (unsigned char *) SLtt_tigetstr (map->name, (char **) &t);
+ if (str == NULL)
+ {
+ map++;
+ continue;
+ /* str = (unsigned char *) "NULL"; */
+ }
+
+ fprintf (stdout, "\t%s=", map->name);
+ while (*str)
+ {
+ if ((int) (*str & 0x7F) < ' ')
+ {
+ putc ('^', stdout);
+ *str += '@';
+ }
+ putc (*str, stdout);
+ str++;
+ }
+ if (map->comment != NULL)
+ fprintf (stdout, "\t\t%s", map->comment);
+ putc ('\n', stdout);
+ map++;
+ }
+
+ map = Tgetflag_Map;
+ while (*map->name != 0)
+ {
+ if (_SLtt_tigetflag (t, map->name) > 0)
+ {
+ fprintf (stdout, "\t%s\t\t%s\n",
+ map->name,
+ ((map->comment == NULL) ? "" : map->comment));
+ }
+ map++;
+ }
+ map = Tgetnum_Map;
+ while (*map->name != 0)
+ {
+ int val;
+ if ((val = SLtt_tigetnum (map->name, (char **) &t)) >= 0)
+ {
+ fprintf (stdout, "\t%s#%d\t\t%s\n",
+ map->name, val,
+ ((map->comment == NULL) ? "" : map->comment));
+ }
+ map++;
+ }
+
+ return 0;
+}
+