diff --git a/src/php/get.cc b/src/php/get.cc index 2c9b47f..7b4544c 100644 --- a/src/php/get.cc +++ b/src/php/get.cc @@ -47,3 +47,37 @@ PHP_METHOD(tn3270, isready) RETURN_BOOL(obj->hSession->is_ready()); } +PHP_METHOD(tn3270, getstringat) +{ + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); + long row; + long col; + long sz; + + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll", &row, &col, &sz) == FAILURE) + RETURN_NULL(); + + RETURN_STRING(obj->hSession->get_string_at(row,col,sz).c_str(),1); +} + +PHP_METHOD(tn3270, cmpstringat) +{ + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); + long row; + long col; + const char * text; + int szText; + + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls", &row, &col, &text, &szText) == FAILURE) + RETURN_NULL(); + + if(!szText) + RETURN_NULL(); + + char buffer[szText+1]; + memcpy(buffer,text,szText); + buffer[szText] = 0; + + RETURN_LONG(obj->hSession->cmp_string_at(row,col,buffer)); +} + diff --git a/src/php/main.cc b/src/php/main.cc index 4f01d05..4fb5b9f 100644 --- a/src/php/main.cc +++ b/src/php/main.cc @@ -58,6 +58,10 @@ zend_function_entry tn3270_methods[] = PHP_ME( tn3270, pakey, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) PHP_ME( tn3270, enter, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) + PHP_ME( tn3270, getstringat, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) + PHP_ME( tn3270, setstringat, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) + PHP_ME( tn3270, cmpstringat, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) + {NULL, NULL, NULL} }; diff --git a/src/php/php3270.h b/src/php/php3270.h index 645e1b0..6dc6a5b 100644 --- a/src/php/php3270.h +++ b/src/php/php3270.h @@ -60,6 +60,10 @@ PHP_METHOD(tn3270,pakey); PHP_METHOD(tn3270,enter); + PHP_METHOD(tn3270,getstringat); + PHP_METHOD(tn3270,setstringat); + PHP_METHOD(tn3270,cmpstringat); + #undef PACKAGE_NAME #undef PACKAGE_VERSION diff --git a/src/php/set.cc b/src/php/set.cc index 3982921..9cbdbeb 100644 --- a/src/php/set.cc +++ b/src/php/set.cc @@ -64,3 +64,25 @@ PHP_METHOD(tn3270, enter) tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); RETURN_LONG(obj->hSession->enter()); } + +PHP_METHOD(tn3270, setstringat) +{ + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); + long row; + long col; + const char * text; + int szText; + + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls", &row, &col, &text, &szText) == FAILURE) + RETURN_NULL(); + + if(!szText) + RETURN_NULL(); + + char buffer[szText+1]; + memcpy(buffer,text,szText); + buffer[szText] = 0; + + RETURN_LONG(obj->hSession->set_string_at(row,col,buffer)); +} + -- libgit2 0.21.2