diff --git a/src/plugins/dbus3270/gobject.c b/src/plugins/dbus3270/gobject.c index 22c5a71..ecec062 100644 --- a/src/plugins/dbus3270/gobject.c +++ b/src/plugins/dbus3270/gobject.c @@ -314,7 +314,7 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus } } - void pw3270_dbus_get_text(PW3270Dbus *object, int offset, int len, DBusGMethodInvocation *context) + void pw3270_dbus_get_text(PW3270Dbus *object, int offset, int len, char lf, DBusGMethodInvocation *context) { gchar * text; H3270 * hSession = pw3270_dbus_get_session_handle(object); @@ -323,7 +323,11 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus if(pw3270_dbus_check_valid_state(object,context)) return; - text = lib3270_get_text(hSession,offset,len,'\n'); + if(len < 0) { + len = lib3270_get_length(hSession); + } + + text = lib3270_get_text(hSession,offset,len,lf); if(!text) { GError *error = pw3270_dbus_get_error_from_errno(errno); @@ -336,6 +340,8 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus lib3270_free(text); + debug("\n%s\n",utftext); + dbus_g_method_return(context,utftext); g_free(utftext); diff --git a/src/plugins/dbus3270/pw3270dbus.xml b/src/plugins/dbus3270/pw3270dbus.xml index dc310b7..f289efc 100644 --- a/src/plugins/dbus3270/pw3270dbus.xml +++ b/src/plugins/dbus3270/pw3270dbus.xml @@ -79,6 +79,7 @@ + diff --git a/src/plugins/dbus3270/service.h b/src/plugins/dbus3270/service.h index 57d8f86..a98d382 100644 --- a/src/plugins/dbus3270/service.h +++ b/src/plugins/dbus3270/service.h @@ -113,7 +113,7 @@ void pw3270_dbus_pa_key(PW3270Dbus *object, int key, DBusGMethodInvocation *context); void pw3270_dbus_set_text_at(PW3270Dbus *object, int row, int col, const gchar *text, DBusGMethodInvocation *context); void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBusGMethodInvocation *context); - void pw3270_dbus_get_text(PW3270Dbus *object, int offset, int len, DBusGMethodInvocation *context); + void pw3270_dbus_get_text(PW3270Dbus *object, int offset, int len, char lf, DBusGMethodInvocation *context); void pw3270_dbus_cmp_text_at(PW3270Dbus *object, int row, int col, const gchar *text, DBusGMethodInvocation *context); void pw3270_dbus_input(PW3270Dbus *object, const gchar *utftext, DBusGMethodInvocation *context); diff --git a/src/plugins/dbus3270/test.sh b/src/plugins/dbus3270/test.sh index 39e7a5c..54bd912 100755 --- a/src/plugins/dbus3270/test.sh +++ b/src/plugins/dbus3270/test.sh @@ -41,6 +41,10 @@ run_command() dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.getScreenContents ;; + gettext) + dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.getText int32:1 int32:-1 byte:0 + ;; + protect) dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.getIsProtectedAt int32:$2 int32:$3 ;; -- libgit2 0.21.2