2 * IR toolkit for tcl/tk
5 * $Id: ir-tcl.c,v 1.1 1995-03-06 17:05:34 adam Exp $
30 static int ir_obj_handle (ClientData clientData, Tcl_Interp *interp,
31 int argc, char **argv)
33 IRObj *ir = clientData;
36 interp->result = "wrong # args";
39 if (!strcmp (argv[1], "comstack"))
43 if (!strcmp (argv[2], "tcpip"))
44 ir->cs_link = cs_create (tcpip_type);
45 else if (!strcmp (argv[2], "mosi"))
46 ir->cs_link = cs_create (mosi_type);
49 interp->result = "wrong comstack type";
53 if (cs_type(ir->cs_link) == tcpip_type)
54 interp->result = "tcpip";
55 else if (cs_type(ir->cs_link) == mosi_type)
56 interp->result = "comstack";
58 else if (!strcmp (argv[1], "connect"))
64 interp->result = "missing hostname after connect";
67 if (cs_type(ir->cs_link) == tcpip_type)
69 addr = tcpip_strtoaddr (argv[2]);
72 interp->result = "tcpip_strtoaddr fail";
76 else if (cs_type (ir->cs_link) == mosi_type)
78 addr = mosi_strtoaddr (argv[2]);
81 interp->result = "mosi_strtoaddr fail";
85 if (cs_connect (ir->cs_link, addr) < 0)
87 interp->result = "cs_connect fail";
88 cs_close (ir->cs_link);
98 static void ir_obj_delete (ClientData clientData)
100 free ( (void*) clientData);
106 static int ir_obj_mk (ClientData clientData, Tcl_Interp *interp,
107 int argc, char **argv)
113 interp->result = "wrong # args";
116 obj = malloc (sizeof(*obj));
119 obj->cs_link = cs_create (tcpip_type);
121 Tcl_CreateCommand (interp, argv[1], ir_obj_handle,
122 (ClientData) obj, ir_obj_delete);
129 int ir_tcl_init (Tcl_Interp *interp)
131 Tcl_CreateCommand (interp, "ir", ir_obj_mk, (ClientData) NULL,
132 (Tcl_CmdDeleteProc *) NULL);