Commit 16ffc652a011815e0633161955fd197ec609645e

Authored by Perry Werneck
1 parent 2c571f81
Exists in master

Implementando métodos

src/native/get.cc
@@ -72,4 +72,9 @@ @@ -72,4 +72,9 @@
72 72
73 int tn3270_get_length(h3270::session *ses) { 73 int tn3270_get_length(h3270::session *ses) {
74 return (int) ses->get_length(); 74 return (int) ses->get_length();
75 -} 75 + }
  76 +
  77 + int tn3270_get_display_charset(h3270::session *ses, char* str, int len) {
  78 + strncpy(str,ses->get_display_charset().c_str(),len);
  79 + return 0;
  80 + }
src/native/private.h
@@ -115,6 +115,10 @@ @@ -115,6 +115,10 @@
115 DLL_PUBLIC int tn3270_get_width(h3270::session *ses); 115 DLL_PUBLIC int tn3270_get_width(h3270::session *ses);
116 DLL_PUBLIC int tn3270_get_height(h3270::session *ses); 116 DLL_PUBLIC int tn3270_get_height(h3270::session *ses);
117 DLL_PUBLIC int tn3270_get_length(h3270::session *ses); 117 DLL_PUBLIC int tn3270_get_length(h3270::session *ses);
  118 +
  119 + DLL_PUBLIC int tn3270_set_display_charset(h3270::session *ses, const char* str);
  120 + DLL_PUBLIC int tn3270_get_display_charset(h3270::session *ses, char* str, int strlen);
  121 +
118 } 122 }
119 123
120 124
src/native/set.cc
@@ -46,4 +46,10 @@ int tn3270_set_cursor_addr(h3270::session *ses, int addr) { @@ -46,4 +46,10 @@ int tn3270_set_cursor_addr(h3270::session *ses, int addr) {
46 return 0; 46 return 0;
47 } 47 }
48 48
  49 +int tn3270_set_display_charset(h3270::session *ses, const char* str) {
  50 + debug("%s(%s)",__FUNCTION__,str);
  51 + ses->set_display_charset(0,str);
  52 + return 0;
  53 +}
  54 +
49 55
src/pw3270-sharp/pw3270-sharp.cs
@@ -128,6 +128,12 @@ namespace pw3270 { @@ -128,6 +128,12 @@ namespace pw3270 {
128 [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)] 128 [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
129 extern static int tn3270_get_length(IntPtr Session); 129 extern static int tn3270_get_length(IntPtr Session);
130 130
  131 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  132 + extern static int tn3270_set_display_charset(IntPtr Session, string str);
  133 +
  134 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  135 + extern static int tn3270_get_display_charset(IntPtr session, StringBuilder str, int strlen);
  136 +
131 /// <summary> 137 /// <summary>
132 /// Create a new session with lib3270/pw3270 138 /// Create a new session with lib3270/pw3270
133 /// </summary> 139 /// </summary>
@@ -435,6 +441,18 @@ namespace pw3270 { @@ -435,6 +441,18 @@ namespace pw3270 {
435 } 441 }
436 } 442 }
437 443
  444 + public string CharSet {
  445 + get {
  446 + StringBuilder str = new StringBuilder(31);
  447 + tn3270_get_display_charset(hSession,str,30);
  448 + return str.ToString();
  449 + }
  450 + set {
  451 + tn3270_set_display_charset(hSession,value);
  452 + }
  453 + }
  454 +
  455 +
438 } 456 }
439 457
440 } 458 }
testprograms/sample.cs
@@ -37,6 +37,7 @@ class sample { @@ -37,6 +37,7 @@ class sample {
37 37
38 System.Console.WriteLine("Using pw3270 version " + host.Version + " revision " + host.Revision); 38 System.Console.WriteLine("Using pw3270 version " + host.Version + " revision " + host.Revision);
39 System.Console.WriteLine("Screen size is " + host.Width + "x" + host.Height + " (" + host.Length + ")"); 39 System.Console.WriteLine("Screen size is " + host.Width + "x" + host.Height + " (" + host.Length + ")");
  40 + System.Console.WriteLine("The Charset is " + host.CharSet);
40 41
41 host.Connect("tn3270://zos.efglobe.com:telnet",10); 42 host.Connect("tn3270://zos.efglobe.com:telnet",10);
42 43