diff --git a/src/native/screen.cc b/src/native/screen.cc index 69ddb4d..7e2bea1 100644 --- a/src/native/screen.cc +++ b/src/native/screen.cc @@ -37,10 +37,12 @@ int tn3270_get_string(h3270::session *ses, int addr, char* str, int strlen) { return 0; } -int tn3270_get_string_at(h3270::session *ses, int row, int col, char* str, int strlen) { - memset(str,0,strlen); - strncpy(str,ses->get_string_at(row,col,strlen).c_str(),strlen); - return 0; +int tn3270_get_string_at(h3270::session *ses, int row, int col, char* str, int sz) { + memset(str,0,sz); + strncpy(str,ses->get_string_at(row,col,sz).c_str(),sz); + str[sz] = 0; + debug("%s(%d,%d) len=%u (Required=%d)\n",__FUNCTION__,row,col,(unsigned int) strlen(str), sz); + return (int) strlen(str); } int tn3270_set_string_at(h3270::session *ses, int row, int col, const char* str) { diff --git a/src/pw3270-sharp/pw3270-sharp.cs b/src/pw3270-sharp/pw3270-sharp.cs index 2181358..5ad322f 100644 --- a/src/pw3270-sharp/pw3270-sharp.cs +++ b/src/pw3270-sharp/pw3270-sharp.cs @@ -306,7 +306,7 @@ namespace pw3270 { public string GetStringAt(int row, int col, int strlen) { StringBuilder str = new StringBuilder(strlen+1); tn3270_get_string_at(hSession, row, col, str, strlen); - return str.ToString(0,strlen); + return str.ToString(); } /// -- libgit2 0.21.2