Commit a2ea3a5742c06e513ff1b62758a4ec3813baa4da

Authored by perry.werneck@gmail.com
1 parent d546495b

Implementando comunicação com o host através de sockets java

android/Makefile
... ... @@ -32,12 +32,16 @@ CONVERT=rsvg-convert
32 32  
33 33 RESOLUTION=xhdpi mdpi ldpi hdpi
34 34  
35   -Debug: jni/lib3270jni.h $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_launcher.png)
  35 +Debug: jni/lib3270jni.h icons
36 36 @$(NDKBUILD)
37 37  
  38 +icons: $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_launcher.png)
  39 +
38 40 clean:
39 41 @rm -fr obj
40 42 @rm -f jni/lib3270jni.h
  43 + @rm -f sigs.txt
  44 + @rm -f bin/classes/$(CLASSPATH)/lib3270.class
41 45 @rm -f $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_launcher.png)
42 46  
43 47 res/drawable-xhdpi/ic_launcher.png: ../src/pw3270/pixmaps/pw3270.svg
... ... @@ -60,6 +64,9 @@ res/drawable-hdpi/ic_launcher.png: ../src/pw3270/pixmaps/pw3270.svg
60 64 @$(MKDIR) `dirname $@`
61 65 @$(CONVERT) --format=png --width=72 --height=72 --output=$@ $<
62 66  
  67 +sigs.txt: ./bin/classes/br/com/bb/pw3270/lib3270.class
  68 + @javap -classpath ./bin/classes -s -p br.com.bb.pw3270.lib3270 > $@
  69 +
63 70 jni/lib3270jni.h: bin/classes/$(CLASSPATH)/lib3270.class
64 71 @echo " GEN `basename $@`"
65 72 @$(JAVAH) -o $@ -classpath bin/classes $(subst /,.,$(CLASSPATH)).lib3270
... ...
android/jni/main.cpp
... ... @@ -28,6 +28,7 @@
28 28  
29 29 #include "globals.h"
30 30 #include <lib3270/popup.h>
  31 + #include <lib3270/internals.h>
31 32  
32 33 /*--[ Globals ]--------------------------------------------------------------------------------------*/
33 34  
... ... @@ -69,7 +70,7 @@ static int popuphandler(H3270 *session, void *terminal, LIB3270_NOTIFY type, con
69 70 JNIEnv * env = ((INFO *) session->widget)->env;
70 71 jobject obj = ((INFO *) session->widget)->obj;
71 72 jclass cls = env->GetObjectClass(obj);
72   - jmethodID mid = env->GetMethodID(cls, "postPopup", "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
  73 + jmethodID mid = env->GetMethodID(cls, "popupMessage", "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
73 74 char * descr;
74 75  
75 76 descr = lib3270_vsprintf(fmt, args);
... ... @@ -91,6 +92,30 @@ static void ctlr_done(H3270 *session)
91 92 post_message(session,4);
92 93 }
93 94  
  95 +static int write_buffer(H3270 *session, unsigned const char *buf, int len)
  96 +{
  97 + int rc = -1;
  98 +
  99 + if(session->widget)
  100 + {
  101 + JNIEnv * env = ((INFO *) session->widget)->env;
  102 + jobject obj = ((INFO *) session->widget)->obj;
  103 + jclass cls = env->GetObjectClass(obj);
  104 + jmethodID mid = env->GetMethodID(cls, "send_data", "([BI)I");
  105 + jbyteArray buffer = env->NewByteArray(len);
  106 +
  107 + env->SetByteArrayRegion(buffer, 0, len, (jbyte*) buf);
  108 +
  109 + rc = env->CallIntMethod(obj, mid, buffer, (jint) len );
  110 + }
  111 + else
  112 + {
  113 + __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "Can't send %d bytes, no jni env for active session",len);
  114 + }
  115 +
  116 + return rc;
  117 +}
  118 +
94 119 JNIEXPORT jint JNICALL Java_br_com_bb_pw3270_lib3270_init(JNIEnv *env, jclass obj)
95 120 {
96 121 H3270 * session = lib3270_session_new("");
... ... @@ -99,6 +124,7 @@ JNIEXPORT jint JNICALL Java_br_com_bb_pw3270_lib3270_init(JNIEnv *env, jclass ob
99 124  
100 125 lib3270_set_popup_handler(popuphandler);
101 126  
  127 + session->write = write_buffer;
102 128 session->changed = changed;
103 129 session->update_status = update_status;
104 130 session->erase = erase;
... ... @@ -150,3 +176,18 @@ JNIEXPORT jint JNICALL Java_br_com_bb_pw3270_lib3270_do_1connect(JNIEnv *env, jo
150 176 return (jint) rc;
151 177 }
152 178  
  179 +JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_procRecvdata(JNIEnv *env, jobject obj, jbyteArray buffer, jint sz)
  180 +{
  181 + unsigned char *netrbuf = (unsigned char *) env->GetByteArrayElements(buffer,NULL);
  182 +
  183 + session_request(env,obj);
  184 +
  185 + trace("Processando %d bytes",(size_t) sz);
  186 +
  187 + lib3270_data_recv(session, (size_t) sz, netrbuf);
  188 +
  189 + env->ReleaseByteArrayElements(buffer, (signed char *) netrbuf, 0);
  190 +
  191 + session_release();
  192 +
  193 +}
... ...
android/lib3270NDK.cbp
... ... @@ -34,13 +34,18 @@
34 34 </Compiler>
35 35 <Unit filename="../src/include/lib3270.h" />
36 36 <Unit filename="../src/include/lib3270/html.h" />
  37 + <Unit filename="../src/include/lib3270/internals.h" />
37 38 <Unit filename="../src/lib3270/html.c">
38 39 <Option compilerVar="CC" />
39 40 </Unit>
  41 + <Unit filename="../src/lib3270/telnet.c">
  42 + <Option compilerVar="CC" />
  43 + </Unit>
40 44 <Unit filename="Makefile" />
41 45 <Unit filename="jni/Android.mk" />
42 46 <Unit filename="jni/globals.h" />
43 47 <Unit filename="jni/html.cpp" />
  48 + <Unit filename="jni/lib3270jni.h" />
44 49 <Unit filename="jni/main.cpp" />
45 50 <Unit filename="jni/misc.cpp" />
46 51 <Unit filename="src/br/com/bb/pw3270/lib3270.java" />
... ...
android/src/br/com/bb/pw3270/PW3270Activity.java
... ... @@ -16,12 +16,11 @@ public class PW3270Activity extends Activity implements View.OnClickListener
16 16 {
17 17 private class terminal extends lib3270
18 18 {
19   - private static final String TAG = "pw3270";
  19 +// private static final String TAG = "pw3270";
20 20  
21 21 TextView msgbox;
22 22 Activity Main;
23   -
24   -
  23 +
25 24 terminal(TextView msgbox, Activity Main)
26 25 {
27 26 this.msgbox = msgbox;
... ... @@ -36,7 +35,7 @@ public class PW3270Activity extends Activity implements View.OnClickListener
36 35 } catch(Exception e) { this.msgbox.setText("Estado inesperado"); }
37 36 }
38 37  
39   - public void popupMessage(int type, String title, String text, String info)
  38 + protected void popupMessage(int type, String title, String text, String info)
40 39 {
41 40 AlertDialog d = new AlertDialog.Builder(Main).create();
42 41  
... ... @@ -46,13 +45,15 @@ public class PW3270Activity extends Activity implements View.OnClickListener
46 45 d.setCancelable(true);
47 46 d.show();
48 47 }
  48 +
  49 + /*
49 50  
50 51 protected void redraw()
51 52 {
52 53 String text = getHTML();
53 54 Log.i(TAG,text);
54 55 }
55   -
  56 + */
56 57  
57 58  
58 59 };
... ... @@ -88,7 +89,7 @@ public class PW3270Activity extends Activity implements View.OnClickListener
88 89 public void onClick(View v)
89 90 {
90 91 // Perform action on click
91   - host.setHost(uri.getText().toString());
  92 + // host.setHost(uri.getText().toString());
92 93 host.connect();
93 94 }
94 95  
... ...
android/src/br/com/bb/pw3270/lib3270.java
... ... @@ -4,12 +4,26 @@ import java.lang.Thread;
4 4 import android.os.Handler;
5 5 import android.os.Message;
6 6 import android.util.Log;
  7 +import javax.net.SocketFactory;
  8 +import java.net.Socket;
  9 +import javax.net.ssl.SSLSocketFactory;
  10 +import java.io.DataInputStream;
  11 +import java.io.DataOutputStream;
7 12  
8 13 public class lib3270
9 14 {
10 15 private NetworkThread mainloop;
11 16 private static final String TAG = "lib3270";
12   - private boolean changed;
  17 +
  18 + private boolean changed;
  19 + private boolean connected = false;
  20 +
  21 + DataOutputStream outData = null;
  22 + DataInputStream inData = null;
  23 +
  24 + private String hostname = "3270.df.bb";
  25 + private int port = 8023;
  26 + private boolean ssl = false;
13 27  
14 28 static
15 29 {
... ... @@ -37,27 +51,127 @@ public class lib3270
37 51 }
38 52 }
39 53  
  54 + protected int send_data(byte[] data, int len)
  55 + {
  56 + Log.i(TAG,"Bytes a enviar: " + len);
  57 +
  58 + try
  59 + {
  60 + outData.write(data,0,len);
  61 + outData.flush();
  62 + } catch( Exception e )
  63 + {
  64 + String msg = e.getLocalizedMessage();
  65 +
  66 + if(msg == null)
  67 + msg = e.toString();
  68 +
  69 + if(msg == null)
  70 + msg = "Erro indefinido";
  71 +
  72 + Log.i(TAG,"Erro ao enviar dados: " + msg);
  73 +
  74 + postPopup(0,"Erro na comunicação","Não foi possível enviar dados",msg);
  75 +
  76 + }
  77 + return -1;
  78 + }
  79 +
  80 +
40 81 // Main Thread
41 82 private class NetworkThread extends Thread
42 83 {
43   - Handler mHandler;
  84 + Handler mHandler;
  85 + Socket sock = null;
44 86  
45 87 NetworkThread(Handler h)
46 88 {
47 89 mHandler = h;
48 90 }
49 91  
  92 + private boolean connect()
  93 + {
  94 + // Connecta no host
  95 + SocketFactory socketFactory;
  96 + if(ssl)
  97 + {
  98 + // Host é SSL
  99 + socketFactory = SSLSocketFactory.getDefault();
  100 + }
  101 + else
  102 + {
  103 + socketFactory = SocketFactory.getDefault();
  104 + }
  105 +
  106 + try
  107 + {
  108 + sock = socketFactory.createSocket(hostname,port);
  109 + outData = new DataOutputStream(sock.getOutputStream());
  110 + inData = new DataInputStream(sock.getInputStream());
  111 +
  112 + } catch( Exception e )
  113 + {
  114 + String msg = e.getLocalizedMessage();
  115 +
  116 + if(msg == null)
  117 + msg = e.toString();
  118 +
  119 + if(msg == null)
  120 + msg = "Erro indefinido";
  121 +
  122 + Log.i(TAG,"Erro ao conectar: " + msg);
  123 +
  124 + postPopup(0,"Erro na conexão","Não foi possível conectar",msg);
  125 +
  126 + postMessage(0,0,0);
  127 +
  128 + return false;
  129 + }
  130 +
  131 + Log.i(TAG,"Conectado ao host");
  132 + return true;
  133 +
  134 + }
  135 +
50 136 public void run()
51 137 {
52   - int rc;
  138 +
53 139 info(TAG,"Network thread started");
54 140 postMessage(0,1,0);
55   - rc = do_connect();
56   - info(TAG,"do_connect exits with rc="+rc);
57   - while(isConnected())
58   - processEvents();
59   - postMessage(0,0,0);
60   - info(TAG,"Network thread stopped");
  141 + connected = connect();
  142 +
  143 + while(connected)
  144 + {
  145 + byte[] in = new byte[4096];
  146 + int sz = -1;
  147 +
  148 + try
  149 + {
  150 + sz = inData.read(in,0,4096);
  151 + } catch( Exception e ) { sz = -1; }
  152 +
  153 + if(sz < 0)
  154 + {
  155 + connected = false;
  156 + }
  157 + else if(sz > 0)
  158 + {
  159 + Log.d(TAG,sz + " bytes recebidos");
  160 + procRecvdata(in,sz);
  161 + }
  162 + }
  163 +
  164 + try
  165 + {
  166 + sock.close();
  167 + } catch( Exception e ) { }
  168 +
  169 + sock = null;
  170 + outData = null;
  171 + inData = null;
  172 + postMessage(0,0,0);
  173 +
  174 + info(TAG,"Network thread stopped");
61 175 }
62 176  
63 177 public void postMessage(int what, int arg1, int arg2)
... ... @@ -141,7 +255,7 @@ public class lib3270
141 255 {
142 256 }
143 257  
144   - public void popupMessage(int type, String title, String text, String info)
  258 + protected void popupMessage(int type, String title, String text, String info)
145 259 {
146 260 }
147 261  
... ... @@ -170,12 +284,12 @@ public class lib3270
170 284 {
171 285 if(mainloop == null)
172 286 {
173   - info("jni","Starting comm thread");
  287 + info(TAG,"Starting comm thread");
174 288 mainloop = new NetworkThread(handler);
175 289 mainloop.start();
176 290 return 0;
177 291 }
178   - error("jni","Comm thread already active during connect");
  292 + error(TAG,"Comm thread already active during connect");
179 293 return -1;
180 294 }
181 295  
... ... @@ -190,6 +304,9 @@ public class lib3270
190 304 public native String getVersion();
191 305 public native String getRevision();
192 306  
  307 + // Network I/O
  308 + public native void procRecvdata( byte[] data, int len);
  309 +
193 310 // Connect/Disconnect status
194 311 public native void setHost(String host);
195 312 public native String getHost();
... ...
pw3270.cbp
... ... @@ -9,8 +9,8 @@
9 9 <Option compiler="gcc" />
10 10 <Build>
11 11 <Target title="Debug">
12   - <Option output=".bin\Debug\pw3270" prefix_auto="1" extension_auto="1" />
13   - <Option object_output=".obj\Debug\" />
  12 + <Option output=".bin/Debug/pw3270" prefix_auto="1" extension_auto="1" />
  13 + <Option object_output=".obj/Debug/" />
14 14 <Option type="1" />
15 15 <Option compiler="gcc" />
16 16 <Option use_console_runner="0" />
... ... @@ -20,8 +20,8 @@
20 20 </Compiler>
21 21 </Target>
22 22 <Target title="Release">
23   - <Option output=".bin\Release\pw3270" prefix_auto="1" extension_auto="1" />
24   - <Option object_output=".obj\Release\" />
  23 + <Option output=".bin/Release/pw3270" prefix_auto="1" extension_auto="1" />
  24 + <Option object_output=".obj/Release/" />
25 25 <Option type="0" />
26 26 <Option compiler="gcc" />
27 27 <Compiler>
... ... @@ -35,292 +35,291 @@
35 35 <Compiler>
36 36 <Add option="-Wall" />
37 37 <Add option="`pkg-config gtk+-3.0 lib3270 --cflags`" />
38   - <Add directory="src\include" />
  38 + <Add directory="src/include" />
39 39 </Compiler>
40 40 <Linker>
41 41 <Add option="`pkg-config gtk+-3.0 lib3270 --libs`" />
42 42 </Linker>
43 43 <Unit filename="Makefile.in" />
44   - <Unit filename="android\Makefile" />
45   - <Unit filename="android\jni\Android.mk" />
46   - <Unit filename="android\jni\globals.h" />
47   - <Unit filename="android\jni\main.cpp" />
48   - <Unit filename="android\jni\misc.cpp" />
49   - <Unit filename="android\src\br\com\bb\pw3270\PW3270Activity.java" />
50   - <Unit filename="android\src\br\com\bb\pw3270\lib3270.java" />
  44 + <Unit filename="android/Makefile" />
  45 + <Unit filename="android/jni/Android.mk" />
  46 + <Unit filename="android/jni/globals.h" />
  47 + <Unit filename="android/jni/main.cpp" />
  48 + <Unit filename="android/jni/misc.cpp" />
  49 + <Unit filename="android/src/br/com/bb/pw3270/PW3270Activity.java" />
  50 + <Unit filename="android/src/br/com/bb/pw3270/lib3270.java" />
51 51 <Unit filename="autogen.sh" />
52 52 <Unit filename="colors.conf" />
53 53 <Unit filename="configure.ac" />
54 54 <Unit filename="pw3270.spec.in" />
55   - <Unit filename="src\include\lib3270.h" />
56   - <Unit filename="src\include\lib3270\action_table.h" />
57   - <Unit filename="src\include\lib3270\actions.h" />
58   - <Unit filename="src\include\lib3270\config.h.in" />
59   - <Unit filename="src\include\lib3270\filetransfer.h" />
60   - <Unit filename="src\include\lib3270\html.h" />
61   - <Unit filename="src\include\lib3270\log.h" />
62   - <Unit filename="src\include\lib3270\macros.h" />
63   - <Unit filename="src\include\lib3270\popup.h" />
64   - <Unit filename="src\include\lib3270\selection.h" />
65   - <Unit filename="src\include\lib3270\session.h" />
66   - <Unit filename="src\include\lib3270\trace.h" />
67   - <Unit filename="src\include\lib3270\v3270.h" />
68   - <Unit filename="src\include\pw3270.h" />
69   - <Unit filename="src\include\rules.mak.in" />
70   - <Unit filename="src\lib3270\3270ds.h" />
71   - <Unit filename="src\lib3270\Makefile.in" />
72   - <Unit filename="src\lib3270\X11keysym.h" />
73   - <Unit filename="src\lib3270\actionsc.h" />
74   - <Unit filename="src\lib3270\ansi.c">
  55 + <Unit filename="src/include/lib3270.h" />
  56 + <Unit filename="src/include/lib3270/action_table.h" />
  57 + <Unit filename="src/include/lib3270/actions.h" />
  58 + <Unit filename="src/include/lib3270/config.h.in" />
  59 + <Unit filename="src/include/lib3270/filetransfer.h" />
  60 + <Unit filename="src/include/lib3270/html.h" />
  61 + <Unit filename="src/include/lib3270/log.h" />
  62 + <Unit filename="src/include/lib3270/macros.h" />
  63 + <Unit filename="src/include/lib3270/popup.h" />
  64 + <Unit filename="src/include/lib3270/selection.h" />
  65 + <Unit filename="src/include/lib3270/session.h" />
  66 + <Unit filename="src/include/lib3270/trace.h" />
  67 + <Unit filename="src/include/lib3270/v3270.h" />
  68 + <Unit filename="src/include/pw3270.h" />
  69 + <Unit filename="src/include/rules.mak.in" />
  70 + <Unit filename="src/lib3270/Makefile.in" />
  71 + <Unit filename="src/lib3270/X11keysym.h" />
  72 + <Unit filename="src/lib3270/actionsc.h" />
  73 + <Unit filename="src/lib3270/ansi.c">
75 74 <Option compilerVar="CC" />
76 75 </Unit>
77   - <Unit filename="src\lib3270\ansic.h" />
78   - <Unit filename="src\lib3270\api.h" />
79   - <Unit filename="src\lib3270\arpa_telnet.h" />
80   - <Unit filename="src\lib3270\bounds.c">
  76 + <Unit filename="src/lib3270/ansic.h" />
  77 + <Unit filename="src/lib3270/api.h" />
  78 + <Unit filename="src/lib3270/arpa_telnet.h" />
  79 + <Unit filename="src/lib3270/bounds.c">
81 80 <Option compilerVar="CC" />
82 81 </Unit>
83   - <Unit filename="src\lib3270\cg.h" />
84   - <Unit filename="src\lib3270\charset.c">
  82 + <Unit filename="src/lib3270/cg.h" />
  83 + <Unit filename="src/lib3270/charset.c">
85 84 <Option compilerVar="CC" />
86 85 </Unit>
87   - <Unit filename="src\lib3270\charsetc.h" />
88   - <Unit filename="src\lib3270\childc.h" />
89   - <Unit filename="src\lib3270\ctlr.c">
  86 + <Unit filename="src/lib3270/charsetc.h" />
  87 + <Unit filename="src/lib3270/childc.h" />
  88 + <Unit filename="src/lib3270/ctlr.c">
90 89 <Option compilerVar="CC" />
91 90 </Unit>
92   - <Unit filename="src\lib3270\ctlrc.h" />
93   - <Unit filename="src\lib3270\ft.c">
  91 + <Unit filename="src/lib3270/ctlrc.h" />
  92 + <Unit filename="src/lib3270/ft.c">
94 93 <Option compilerVar="CC" />
95 94 </Unit>
96   - <Unit filename="src\lib3270\ft_cut.c">
  95 + <Unit filename="src/lib3270/ft_cut.c">
97 96 <Option compilerVar="CC" />
98 97 </Unit>
99   - <Unit filename="src\lib3270\ft_cut_ds.h" />
100   - <Unit filename="src\lib3270\ft_cutc.h" />
101   - <Unit filename="src\lib3270\ft_dft.c">
  98 + <Unit filename="src/lib3270/ft_cut_ds.h" />
  99 + <Unit filename="src/lib3270/ft_cutc.h" />
  100 + <Unit filename="src/lib3270/ft_dft.c">
102 101 <Option compilerVar="CC" />
103 102 </Unit>
104   - <Unit filename="src\lib3270\ft_dft_ds.h" />
105   - <Unit filename="src\lib3270\ft_dftc.h" />
106   - <Unit filename="src\lib3270\ftc.h" />
107   - <Unit filename="src\lib3270\globals.h" />
108   - <Unit filename="src\lib3270\glue.c">
  103 + <Unit filename="src/lib3270/ft_dft_ds.h" />
  104 + <Unit filename="src/lib3270/ft_dftc.h" />
  105 + <Unit filename="src/lib3270/ftc.h" />
  106 + <Unit filename="src/lib3270/globals.h" />
  107 + <Unit filename="src/lib3270/glue.c">
109 108 <Option compilerVar="CC" />
110 109 </Unit>
111   - <Unit filename="src\lib3270\gluec.h" />
112   - <Unit filename="src\lib3270\host.c">
  110 + <Unit filename="src/lib3270/gluec.h" />
  111 + <Unit filename="src/lib3270/host.c">
113 112 <Option compilerVar="CC" />
114 113 </Unit>
115   - <Unit filename="src\lib3270\hostc.h" />
116   - <Unit filename="src\lib3270\html.c">
  114 + <Unit filename="src/lib3270/hostc.h" />
  115 + <Unit filename="src/lib3270/html.c">
117 116 <Option compilerVar="CC" />
118 117 </Unit>
119   - <Unit filename="src\lib3270\icmdc.h" />
120   - <Unit filename="src\lib3270\iocalls.c">
  118 + <Unit filename="src/lib3270/icmdc.h" />
  119 + <Unit filename="src/lib3270/iocalls.c">
121 120 <Option compilerVar="CC" />
122 121 </Unit>
123   - <Unit filename="src\lib3270\keypadc.h" />
124   - <Unit filename="src\lib3270\kybd.c">
  122 + <Unit filename="src/lib3270/keypadc.h" />
  123 + <Unit filename="src/lib3270/kybd.c">
125 124 <Option compilerVar="CC" />
126 125 </Unit>
127   - <Unit filename="src\lib3270\kybdc.h" />
128   - <Unit filename="src\lib3270\localdefs.h" />
129   - <Unit filename="src\lib3270\log.c">
  126 + <Unit filename="src/lib3270/kybdc.h" />
  127 + <Unit filename="src/lib3270/localdefs.h" />
  128 + <Unit filename="src/lib3270/log.c">
130 129 <Option compilerVar="CC" />
131 130 </Unit>
132   - <Unit filename="src\lib3270\macros.c">
  131 + <Unit filename="src/lib3270/macros.c">
133 132 <Option compilerVar="CC" />
134 133 </Unit>
135   - <Unit filename="src\lib3270\mkfb.c">
  134 + <Unit filename="src/lib3270/mkfb.c">
136 135 <Option compilerVar="CC" />
137 136 </Unit>
138   - <Unit filename="src\lib3270\objects.h" />
139   - <Unit filename="src\lib3270\paste.c">
  137 + <Unit filename="src/lib3270/objects.h" />
  138 + <Unit filename="src/lib3270/paste.c">
140 139 <Option compilerVar="CC" />
141 140 </Unit>
142   - <Unit filename="src\lib3270\popupsc.h" />
143   - <Unit filename="src\lib3270\printc.h" />
144   - <Unit filename="src\lib3270\printerc.h" />
145   - <Unit filename="src\lib3270\proxy.c">
  141 + <Unit filename="src/lib3270/popupsc.h" />
  142 + <Unit filename="src/lib3270/printc.h" />
  143 + <Unit filename="src/lib3270/printerc.h" />
  144 + <Unit filename="src/lib3270/proxy.c">
146 145 <Option compilerVar="CC" />
147 146 </Unit>
148   - <Unit filename="src\lib3270\proxyc.h" />
149   - <Unit filename="src\lib3270\resolver.c">
  147 + <Unit filename="src/lib3270/proxyc.h" />
  148 + <Unit filename="src/lib3270/resolver.c">
150 149 <Option compilerVar="CC" />
151 150 </Unit>
152   - <Unit filename="src\lib3270\resolverc.h" />
153   - <Unit filename="src\lib3270\resources.c">
  151 + <Unit filename="src/lib3270/resolverc.h" />
  152 + <Unit filename="src/lib3270/resources.c">
154 153 <Option compilerVar="CC" />
155 154 </Unit>
156   - <Unit filename="src\lib3270\resources.h" />
157   - <Unit filename="src\lib3270\rpq.c">
  155 + <Unit filename="src/lib3270/resources.h" />
  156 + <Unit filename="src/lib3270/rpq.c">
158 157 <Option compilerVar="CC" />
159 158 </Unit>
160   - <Unit filename="src\lib3270\savec.h" />
161   - <Unit filename="src\lib3270\screen.c">
  159 + <Unit filename="src/lib3270/savec.h" />
  160 + <Unit filename="src/lib3270/screen.c">
162 161 <Option compilerVar="CC" />
163 162 </Unit>
164   - <Unit filename="src\lib3270\screen.h" />
165   - <Unit filename="src\lib3270\screenc.h" />
166   - <Unit filename="src\lib3270\scrollc.h" />
167   - <Unit filename="src\lib3270\see.c">
  163 + <Unit filename="src/lib3270/screen.h" />
  164 + <Unit filename="src/lib3270/screenc.h" />
  165 + <Unit filename="src/lib3270/scrollc.h" />
  166 + <Unit filename="src/lib3270/see.c">
168 167 <Option compilerVar="CC" />
169 168 </Unit>
170   - <Unit filename="src\lib3270\seec.h" />
171   - <Unit filename="src\lib3270\selection.c">
  169 + <Unit filename="src/lib3270/seec.h" />
  170 + <Unit filename="src/lib3270/selection.c">
172 171 <Option compilerVar="CC" />
173 172 </Unit>
174   - <Unit filename="src\lib3270\session.c">
  173 + <Unit filename="src/lib3270/session.c">
175 174 <Option compilerVar="CC" />
176 175 </Unit>
177   - <Unit filename="src\lib3270\sf.c">
  176 + <Unit filename="src/lib3270/sf.c">
178 177 <Option compilerVar="CC" />
179 178 </Unit>
180   - <Unit filename="src\lib3270\sf.h" />
181   - <Unit filename="src\lib3270\shlobj_missing.h" />
182   - <Unit filename="src\lib3270\sources.mak" />
183   - <Unit filename="src\lib3270\state.c">
  179 + <Unit filename="src/lib3270/sf.h" />
  180 + <Unit filename="src/lib3270/shlobj_missing.h" />
  181 + <Unit filename="src/lib3270/sources.mak" />
  182 + <Unit filename="src/lib3270/state.c">
184 183 <Option compilerVar="CC" />
185 184 </Unit>
186   - <Unit filename="src\lib3270\statusc.h" />
187   - <Unit filename="src\lib3270\tables.c">
  185 + <Unit filename="src/lib3270/statusc.h" />
  186 + <Unit filename="src/lib3270/tables.c">
188 187 <Option compilerVar="CC" />
189 188 </Unit>
190   - <Unit filename="src\lib3270\tablesc.h" />
191   - <Unit filename="src\lib3270\telnet.c">
  189 + <Unit filename="src/lib3270/tablesc.h" />
  190 + <Unit filename="src/lib3270/telnet.c">
192 191 <Option compilerVar="CC" />
193 192 </Unit>
194   - <Unit filename="src\lib3270\telnetc.h" />
195   - <Unit filename="src\lib3270\testprogram.c">
  193 + <Unit filename="src/lib3270/telnetc.h" />
  194 + <Unit filename="src/lib3270/testprogram.c">
196 195 <Option compilerVar="CC" />
197 196 </Unit>
198   - <Unit filename="src\lib3270\tn3270e.h" />
199   - <Unit filename="src\lib3270\toggle.h" />
200   - <Unit filename="src\lib3270\toggles.c">
  197 + <Unit filename="src/lib3270/tn3270e.h" />
  198 + <Unit filename="src/lib3270/toggle.h" />
  199 + <Unit filename="src/lib3270/toggles.c">
201 200 <Option compilerVar="CC" />
202 201 </Unit>
203   - <Unit filename="src\lib3270\togglesc.h" />
204   - <Unit filename="src\lib3270\trace_ds.c">
  202 + <Unit filename="src/lib3270/togglesc.h" />
  203 + <Unit filename="src/lib3270/trace_ds.c">
205 204 <Option compilerVar="CC" />
206 205 </Unit>
207   - <Unit filename="src\lib3270\trace_dsc.h" />
208   - <Unit filename="src\lib3270\utf8.c">
  206 + <Unit filename="src/lib3270/trace_dsc.h" />
  207 + <Unit filename="src/lib3270/utf8.c">
209 208 <Option compilerVar="CC" />
210 209 </Unit>
211   - <Unit filename="src\lib3270\utf8c.h" />
212   - <Unit filename="src\lib3270\util.c">
  210 + <Unit filename="src/lib3270/utf8c.h" />
  211 + <Unit filename="src/lib3270/util.c">
213 212 <Option compilerVar="CC" />
214 213 </Unit>
215   - <Unit filename="src\lib3270\utilc.h" />
216   - <Unit filename="src\lib3270\w3miscc.h" />
217   - <Unit filename="src\lib3270\widec.h" />
218   - <Unit filename="src\lib3270\winversc.h" />
219   - <Unit filename="src\lib3270\xioc.h" />
220   - <Unit filename="src\lib3270\xl.h" />
221   - <Unit filename="src\pw3270\Makefile.in" />
222   - <Unit filename="src\pw3270\actions.c">
  214 + <Unit filename="src/lib3270/utilc.h" />
  215 + <Unit filename="src/lib3270/w3miscc.h" />
  216 + <Unit filename="src/lib3270/widec.h" />
  217 + <Unit filename="src/lib3270/winversc.h" />
  218 + <Unit filename="src/lib3270/xioc.h" />
  219 + <Unit filename="src/lib3270/xl.h" />
  220 + <Unit filename="src/pw3270/Makefile.in" />
  221 + <Unit filename="src/pw3270/actions.c">
223 222 <Option compilerVar="CC" />
224 223 </Unit>
225   - <Unit filename="src\pw3270\colors.c">
  224 + <Unit filename="src/pw3270/colors.c">
226 225 <Option compilerVar="CC" />
227 226 </Unit>
228   - <Unit filename="src\pw3270\common\common.h.in" />
229   - <Unit filename="src\pw3270\common\config.c">
  227 + <Unit filename="src/pw3270/common/common.h.in" />
  228 + <Unit filename="src/pw3270/common/config.c">
230 229 <Option compilerVar="CC" />
231 230 </Unit>
232   - <Unit filename="src\pw3270\common\sources.mak" />
233   - <Unit filename="src\pw3270\dialog.c">
  231 + <Unit filename="src/pw3270/common/sources.mak" />
  232 + <Unit filename="src/pw3270/dialog.c">
234 233 <Option compilerVar="CC" />
235 234 </Unit>
236   - <Unit filename="src\pw3270\filetransfer.c">
  235 + <Unit filename="src/pw3270/filetransfer.c">
237 236 <Option compilerVar="CC" />
238 237 </Unit>
239   - <Unit filename="src\pw3270\filetransfer.h" />
240   - <Unit filename="src\pw3270\fonts.c">
  238 + <Unit filename="src/pw3270/filetransfer.h" />
  239 + <Unit filename="src/pw3270/fonts.c">
241 240 <Option compilerVar="CC" />
242 241 </Unit>
243   - <Unit filename="src\pw3270\globals.h" />
244   - <Unit filename="src\pw3270\main.c">
  242 + <Unit filename="src/pw3270/globals.h" />
  243 + <Unit filename="src/pw3270/main.c">
245 244 <Option compilerVar="CC" />
246 245 </Unit>
247   - <Unit filename="src\pw3270\print.c">
  246 + <Unit filename="src/pw3270/print.c">
248 247 <Option compilerVar="CC" />
249 248 </Unit>
250   - <Unit filename="src\pw3270\uiparser\Makefile.in" />
251   - <Unit filename="src\pw3270\uiparser\accelerator.c">
  249 + <Unit filename="src/pw3270/uiparser/Makefile.in" />
  250 + <Unit filename="src/pw3270/uiparser/accelerator.c">
252 251 <Option compilerVar="CC" />
253 252 </Unit>
254   - <Unit filename="src\pw3270\uiparser\action.c">
  253 + <Unit filename="src/pw3270/uiparser/action.c">
255 254 <Option compilerVar="CC" />
256 255 </Unit>
257   - <Unit filename="src\pw3270\uiparser\menu.c">
  256 + <Unit filename="src/pw3270/uiparser/menu.c">
258 257 <Option compilerVar="CC" />
259 258 </Unit>
260   - <Unit filename="src\pw3270\uiparser\menubar.c">
  259 + <Unit filename="src/pw3270/uiparser/menubar.c">
261 260 <Option compilerVar="CC" />
262 261 </Unit>
263   - <Unit filename="src\pw3270\uiparser\menuitem.c">
  262 + <Unit filename="src/pw3270/uiparser/menuitem.c">
264 263 <Option compilerVar="CC" />
265 264 </Unit>
266   - <Unit filename="src\pw3270\uiparser\parsefile.c">
  265 + <Unit filename="src/pw3270/uiparser/parsefile.c">
267 266 <Option compilerVar="CC" />
268 267 </Unit>
269   - <Unit filename="src\pw3270\uiparser\parser.c">
  268 + <Unit filename="src/pw3270/uiparser/parser.c">
270 269 <Option compilerVar="CC" />
271 270 </Unit>
272   - <Unit filename="src\pw3270\uiparser\parser.h" />
273   - <Unit filename="src\pw3270\uiparser\popup.c">
  271 + <Unit filename="src/pw3270/uiparser/parser.h" />
  272 + <Unit filename="src/pw3270/uiparser/popup.c">
274 273 <Option compilerVar="CC" />
275 274 </Unit>
276   - <Unit filename="src\pw3270\uiparser\private.h" />
277   - <Unit filename="src\pw3270\uiparser\script.c">
  275 + <Unit filename="src/pw3270/uiparser/private.h" />
  276 + <Unit filename="src/pw3270/uiparser/script.c">
278 277 <Option compilerVar="CC" />
279 278 </Unit>
280   - <Unit filename="src\pw3270\uiparser\separator.c">
  279 + <Unit filename="src/pw3270/uiparser/separator.c">
281 280 <Option compilerVar="CC" />
282 281 </Unit>
283   - <Unit filename="src\pw3270\uiparser\sources.mak" />
284   - <Unit filename="src\pw3270\uiparser\toolbar.c">
  282 + <Unit filename="src/pw3270/uiparser/sources.mak" />
  283 + <Unit filename="src/pw3270/uiparser/toolbar.c">
285 284 <Option compilerVar="CC" />
286 285 </Unit>
287   - <Unit filename="src\pw3270\uiparser\toolitem.c">
  286 + <Unit filename="src/pw3270/uiparser/toolitem.c">
288 287 <Option compilerVar="CC" />
289 288 </Unit>
290   - <Unit filename="src\pw3270\v3270\accessible.c">
  289 + <Unit filename="src/pw3270/v3270/accessible.c">
291 290 <Option compilerVar="CC" />
292 291 </Unit>
293   - <Unit filename="src\pw3270\v3270\accessible.h" />
294   - <Unit filename="src\pw3270\v3270\draw.c">
  292 + <Unit filename="src/pw3270/v3270/accessible.h" />
  293 + <Unit filename="src/pw3270/v3270/draw.c">
295 294 <Option compilerVar="CC" />
296 295 </Unit>
297   - <Unit filename="src\pw3270\v3270\genmarshal" />
298   - <Unit filename="src\pw3270\v3270\iocallback.c">
  296 + <Unit filename="src/pw3270/v3270/genmarshal" />
  297 + <Unit filename="src/pw3270/v3270/iocallback.c">
299 298 <Option compilerVar="CC" />
300 299 </Unit>
301   - <Unit filename="src\pw3270\v3270\keyboard.c">
  300 + <Unit filename="src/pw3270/v3270/keyboard.c">
302 301 <Option compilerVar="CC" />
303 302 </Unit>
304   - <Unit filename="src\pw3270\v3270\mouse.c">
  303 + <Unit filename="src/pw3270/v3270/mouse.c">
305 304 <Option compilerVar="CC" />
306 305 </Unit>
307   - <Unit filename="src\pw3270\v3270\oia.c">
  306 + <Unit filename="src/pw3270/v3270/oia.c">
308 307 <Option compilerVar="CC" />
309 308 </Unit>
310   - <Unit filename="src\pw3270\v3270\private.h" />
311   - <Unit filename="src\pw3270\v3270\selection.c">
  309 + <Unit filename="src/pw3270/v3270/private.h" />
  310 + <Unit filename="src/pw3270/v3270/selection.c">
312 311 <Option compilerVar="CC" />
313 312 </Unit>
314   - <Unit filename="src\pw3270\v3270\sources.mak" />
315   - <Unit filename="src\pw3270\v3270\widget.c">
  313 + <Unit filename="src/pw3270/v3270/sources.mak" />
  314 + <Unit filename="src/pw3270/v3270/widget.c">
316 315 <Option compilerVar="CC" />
317 316 </Unit>
318   - <Unit filename="src\pw3270\window.c">
  317 + <Unit filename="src/pw3270/window.c">
319 318 <Option compilerVar="CC" />
320 319 </Unit>
321   - <Unit filename="src\tools\Makefile.in" />
322   - <Unit filename="ui\00default.xml" />
323   - <Unit filename="ui\99debug.xml" />
  320 + <Unit filename="src/tools/Makefile.in" />
  321 + <Unit filename="ui/00default.xml" />
  322 + <Unit filename="ui/99debug.xml" />
324 323 <Unit filename="updateChangeLog.sh" />
325 324 <Extensions>
326 325 <code_completion />
... ...