Overview
| Comment: | Updated to process string through expr(wide()) to format them correctly |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
fc293f04c406c78189012acfbb5a8cad |
| User & Date: | rkeene on 2014-06-22 18:05:15.055 |
| Other Links: | manifest | tags |
Context
|
2014-06-22
| ||
| 22:55 | Added the ability to search other paths for libraries and headers check-in: 07d1d92554 user: rkeene tags: trunk | |
| 18:05 | Updated to process string through expr(wide()) to format them correctly check-in: fc293f04c4 user: rkeene tags: trunk | |
| 17:31 | Updated to get pointers from Tcl using Tcl_GetWideIntFromObj() check-in: 6deb0e2500 user: rkeene tags: trunk | |
Changes
Modified tcc4tcl.c
from [fc9696732b]
to [93d31f9b0f].
| ︙ | ︙ | |||
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
}
ckfree((void *) ts);
}
static int Tcc4tclHandleCmd ( ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST objv[]){
Tcl_WideInt val;
void *val_p;
int index;
int res;
struct TclTCCState *ts;
TCCState *s;
Tcl_Obj *sym_addr;
static CONST char *options[] = {
"add_include_path", "add_file", "add_library",
"add_library_path", "add_symbol", "command", "compile",
"define", "get_symbol", "output_file", "undefine",
(char *) NULL
};
enum options {
TCC4TCL_ADD_INCLUDE, TCC4TCL_ADD_FILE, TCC4TCL_ADD_LIBRARY,
TCC4TCL_ADD_LIBRARY_PATH, TCC4TCL_ADD_SYMBOL, TCC4TCL_COMMAND, TCC4TCL_COMPILE,
TCC4TCL_DEFINE, TCC4TCL_GET_SYMBOL, TCC4TCL_OUTPUT_FILE, TCC4TCL_UNDEFINE
};
char *str;
ts = (struct TclTCCState *) cdata;
s = ts->s;
if (objc < 2) {
Tcl_WrongNumArgs(interp, 1, objv, "subcommand arg ?arg ...?");
return TCL_ERROR;
| > > | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
}
ckfree((void *) ts);
}
static int Tcc4tclHandleCmd ( ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST objv[]){
Tcl_WideInt val;
Tcl_Obj *val_o;
void *val_p;
int index;
int res;
struct TclTCCState *ts;
TCCState *s;
Tcl_Obj *sym_addr;
static CONST char *options[] = {
"add_include_path", "add_file", "add_library",
"add_library_path", "add_symbol", "command", "compile",
"define", "get_symbol", "output_file", "undefine",
(char *) NULL
};
enum options {
TCC4TCL_ADD_INCLUDE, TCC4TCL_ADD_FILE, TCC4TCL_ADD_LIBRARY,
TCC4TCL_ADD_LIBRARY_PATH, TCC4TCL_ADD_SYMBOL, TCC4TCL_COMMAND, TCC4TCL_COMPILE,
TCC4TCL_DEFINE, TCC4TCL_GET_SYMBOL, TCC4TCL_OUTPUT_FILE, TCC4TCL_UNDEFINE
};
char *str;
int rv;
ts = (struct TclTCCState *) cdata;
s = ts->s;
if (objc < 2) {
Tcl_WrongNumArgs(interp, 1, objv, "subcommand arg ?arg ...?");
return TCL_ERROR;
|
| ︙ | ︙ | |||
119 120 121 122 123 124 125 |
}
case TCC4TCL_ADD_SYMBOL:
if (objc != 4) {
Tcl_WrongNumArgs(interp, 2, objv, "symbol value");
return TCL_ERROR;
}
| > > > > > | > | 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
}
case TCC4TCL_ADD_SYMBOL:
if (objc != 4) {
Tcl_WrongNumArgs(interp, 2, objv, "symbol value");
return TCL_ERROR;
}
rv = Tcl_ExprObj(interp, Tcl_ObjPrintf("wide(%s)", Tcl_GetString(objv[3])), &val_o);
if (rv != TCL_OK) {
return TCL_ERROR;
}
rv = Tcl_GetWideIntFromObj(interp, val_o, &val);
if (rv != TCL_OK) {
return TCL_ERROR;
}
val_p = (void *) val;
tcc_add_symbol(s,Tcl_GetString(objv[2]), val_p);
return TCL_OK;
|
| ︙ | ︙ |