diff -uNr metakit-2.4.9.7-orig/tcl/mk4tcl.cpp metakit-2.4.9.7-rsk/tcl/mk4tcl.cpp
--- metakit-2.4.9.7-orig/tcl/mk4tcl.cpp 2007-06-18 16:05:24.000000000 -0500
+++ metakit-2.4.9.7-rsk/tcl/mk4tcl.cpp 2010-02-22 18:30:05.000000000 -0600
@@ -1043,11 +1043,11 @@
return *(MkPath*)obj_->internalRep.twoPtrValue.ptr2;
}
-int &AsIndex(Tcl_Obj *obj_) {
+long &AsIndex(Tcl_Obj *obj_) {
d4_assert(obj_->typePtr == &mkCursorType);
d4_assert(obj_->internalRep.twoPtrValue.ptr2 != 0);
- return (int &)obj_->internalRep.twoPtrValue.ptr1;
+ return (long &)obj_->internalRep.twoPtrValue.ptr1;
}
static void FreeCursorInternalRep(Tcl_Obj *cursorPtr) {
@@ -1110,7 +1110,7 @@
EnterMutex(path._ws->_interp);
c4_String s = path._path;
- int index = AsIndex(cursorPtr);
+ long index = AsIndex(cursorPtr);
if (index >= 0) {
char buf[20];
sprintf(buf, "%s%d", s.IsEmpty() ? "" : "!", index);
@@ -1455,7 +1455,7 @@
return AsPath(obj_)._view;
}
-int &MkTcl::changeIndex(Tcl_Obj *obj_) {
+long &MkTcl::changeIndex(Tcl_Obj *obj_) {
SetCursorFromAny(interp, obj_);
Tcl_InvalidateStringRep(obj_);
return AsIndex(obj_);
@@ -1463,7 +1463,7 @@
c4_RowRef MkTcl::asRowRef(Tcl_Obj *obj_, int type_) {
c4_View view = asView(obj_);
- int index = AsIndex(obj_);
+ long index = AsIndex(obj_);
int size = view.GetSize();
switch (type_) {
@@ -1621,7 +1621,7 @@
return _error;
c4_View view = row.Container();
- int index = AsIndex(objv[2]);
+ long index = AsIndex(objv[2]);
int count = objc > 3 ? tcl_GetIntFromObj(objv[3]): 1;
if (count > view.GetSize() - index)
@@ -1641,7 +1641,7 @@
return _error;
c4_View view = toRow.Container();
- int n = AsIndex(objv[2]);
+ long n = AsIndex(objv[2]);
int count = objc > 3 ? tcl_GetIntFromObj(objv[3]): 1;
if (count >= 1) {
@@ -2206,7 +2206,7 @@
if (objc <= 3) {
if (id == 1)
{ // position without value returns current value
- Tcl_SetIntObj(tcl_GetObjResult(), AsIndex(var));
+ Tcl_SetLongObj(tcl_GetObjResult(), AsIndex(var));
return _error;
}
@@ -2338,7 +2338,7 @@
int MkTcl::ChannelCmd() {
c4_RowRef row = asRowRef(objv[1]);
MkPath &path = AsPath(objv[1]);
- int index = AsIndex(objv[1]);
+ long index = AsIndex(objv[1]);
if (_error)
return _error;
diff -uNr metakit-2.4.9.7-orig/tcl/mk4tcl.h metakit-2.4.9.7-rsk/tcl/mk4tcl.h
--- metakit-2.4.9.7-orig/tcl/mk4tcl.h 2007-06-15 18:26:40.000000000 -0500
+++ metakit-2.4.9.7-rsk/tcl/mk4tcl.h 2010-02-22 18:30:33.000000000 -0600
@@ -274,7 +274,7 @@
// Cursors in Tcl are implemented as a pointer to an MkPath plus an index.
MkPath &AsPath(Tcl_Obj *obj_);
-int &AsIndex(Tcl_Obj *obj_);
+long &AsIndex(Tcl_Obj *obj_);
int SetCursorFromAny(Tcl_Interp *interp, Tcl_Obj *objPtr);
// 24nov02: added to support releasing mutex lock during loop eval's
@@ -367,7 +367,7 @@
~MkTcl();
c4_View asView(Tcl_Obj *obj_);
- int &changeIndex(Tcl_Obj *obj_);
+ long &changeIndex(Tcl_Obj *obj_);
c4_RowRef asRowRef(Tcl_Obj *obj_, int type_ = kExistingRow);
int GetCmd();
int SetValues(const c4_RowRef &row_, int objc, Tcl_Obj *const * objv);