Commit 0813b6340ba695aec25bcedcd863c4de2c6d38bf

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

Implementando "paste"

@@ -8,8 +8,8 @@ @@ -8,8 +8,8 @@
8 <Option compiler="gcc" /> 8 <Option compiler="gcc" />
9 <Build> 9 <Build>
10 <Target title="Debug"> 10 <Target title="Debug">
11 - <Option output=".bin/Debug/pw3270" prefix_auto="1" extension_auto="1" />  
12 - <Option object_output=".obj/Debug/" /> 11 + <Option output=".bin\Debug\pw3270" prefix_auto="1" extension_auto="1" />
  12 + <Option object_output=".obj\Debug\" />
13 <Option type="0" /> 13 <Option type="0" />
14 <Option compiler="gcc" /> 14 <Option compiler="gcc" />
15 <Compiler> 15 <Compiler>
@@ -18,8 +18,8 @@ @@ -18,8 +18,8 @@
18 </Compiler> 18 </Compiler>
19 </Target> 19 </Target>
20 <Target title="Release"> 20 <Target title="Release">
21 - <Option output=".bin/Release/pw3270" prefix_auto="1" extension_auto="1" />  
22 - <Option object_output=".obj/Release/" /> 21 + <Option output=".bin\Release\pw3270" prefix_auto="1" extension_auto="1" />
  22 + <Option object_output=".obj\Release\" />
23 <Option type="0" /> 23 <Option type="0" />
24 <Option compiler="gcc" /> 24 <Option compiler="gcc" />
25 <Compiler> 25 <Compiler>
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
33 <Compiler> 33 <Compiler>
34 <Add option="-Wall" /> 34 <Add option="-Wall" />
35 <Add option="`pkg-config gtk+-3.0 lib3270 --cflags`" /> 35 <Add option="`pkg-config gtk+-3.0 lib3270 --cflags`" />
36 - <Add directory="src/include" /> 36 + <Add directory="src\include" />
37 </Compiler> 37 </Compiler>
38 <Linker> 38 <Linker>
39 <Add option="`pkg-config gtk+-3.0 lib3270 --libs`" /> 39 <Add option="`pkg-config gtk+-3.0 lib3270 --libs`" />
@@ -41,275 +41,284 @@ @@ -41,275 +41,284 @@
41 <Unit filename="Makefile.in" /> 41 <Unit filename="Makefile.in" />
42 <Unit filename="configure.ac" /> 42 <Unit filename="configure.ac" />
43 <Unit filename="pw3270.spec.in" /> 43 <Unit filename="pw3270.spec.in" />
44 - <Unit filename="src/gtk/Makefile.in" />  
45 - <Unit filename="src/gtk/actions.c"> 44 + <Unit filename="src\gtk\Makefile.in" />
  45 + <Unit filename="src\gtk\actions.c">
46 <Option compilerVar="CC" /> 46 <Option compilerVar="CC" />
47 </Unit> 47 </Unit>
48 - <Unit filename="src/gtk/common/common.h" />  
49 - <Unit filename="src/gtk/common/config.c"> 48 + <Unit filename="src\gtk\common\common.h" />
  49 + <Unit filename="src\gtk\common\config.c">
50 <Option compilerVar="CC" /> 50 <Option compilerVar="CC" />
51 </Unit> 51 </Unit>
52 - <Unit filename="src/gtk/fonts.c"> 52 + <Unit filename="src\gtk\fonts.c">
53 <Option compilerVar="CC" /> 53 <Option compilerVar="CC" />
54 </Unit> 54 </Unit>
55 - <Unit filename="src/gtk/globals.h" />  
56 - <Unit filename="src/gtk/main.c"> 55 + <Unit filename="src\gtk\globals.h" />
  56 + <Unit filename="src\gtk\main.c">
57 <Option compilerVar="CC" /> 57 <Option compilerVar="CC" />
58 </Unit> 58 </Unit>
59 - <Unit filename="src/gtk/mainwindow.c"> 59 + <Unit filename="src\gtk\mainwindow.c">
60 <Option compilerVar="CC" /> 60 <Option compilerVar="CC" />
61 </Unit> 61 </Unit>
62 - <Unit filename="src/gtk/uiparser/Makefile.in" />  
63 - <Unit filename="src/gtk/uiparser/accelerator.c"> 62 + <Unit filename="src\gtk\uiparser\Makefile.in" />
  63 + <Unit filename="src\gtk\uiparser\accelerator.c">
64 <Option compilerVar="CC" /> 64 <Option compilerVar="CC" />
65 </Unit> 65 </Unit>
66 - <Unit filename="src/gtk/uiparser/action.c"> 66 + <Unit filename="src\gtk\uiparser\action.c">
67 <Option compilerVar="CC" /> 67 <Option compilerVar="CC" />
68 </Unit> 68 </Unit>
69 - <Unit filename="src/gtk/uiparser/menu.c"> 69 + <Unit filename="src\gtk\uiparser\menu.c">
70 <Option compilerVar="CC" /> 70 <Option compilerVar="CC" />
71 </Unit> 71 </Unit>
72 - <Unit filename="src/gtk/uiparser/menubar.c"> 72 + <Unit filename="src\gtk\uiparser\menubar.c">
73 <Option compilerVar="CC" /> 73 <Option compilerVar="CC" />
74 </Unit> 74 </Unit>
75 - <Unit filename="src/gtk/uiparser/menuitem.c"> 75 + <Unit filename="src\gtk\uiparser\menuitem.c">
76 <Option compilerVar="CC" /> 76 <Option compilerVar="CC" />
77 </Unit> 77 </Unit>
78 - <Unit filename="src/gtk/uiparser/parsefile.c"> 78 + <Unit filename="src\gtk\uiparser\parsefile.c">
79 <Option compilerVar="CC" /> 79 <Option compilerVar="CC" />
80 </Unit> 80 </Unit>
81 - <Unit filename="src/gtk/uiparser/parser.c"> 81 + <Unit filename="src\gtk\uiparser\parser.c">
82 <Option compilerVar="CC" /> 82 <Option compilerVar="CC" />
83 </Unit> 83 </Unit>
84 - <Unit filename="src/gtk/uiparser/parser.h" />  
85 - <Unit filename="src/gtk/uiparser/popup.c"> 84 + <Unit filename="src\gtk\uiparser\parser.h" />
  85 + <Unit filename="src\gtk\uiparser\popup.c">
86 <Option compilerVar="CC" /> 86 <Option compilerVar="CC" />
87 </Unit> 87 </Unit>
88 - <Unit filename="src/gtk/uiparser/private.h" />  
89 - <Unit filename="src/gtk/uiparser/script.c"> 88 + <Unit filename="src\gtk\uiparser\private.h" />
  89 + <Unit filename="src\gtk\uiparser\script.c">
90 <Option compilerVar="CC" /> 90 <Option compilerVar="CC" />
91 </Unit> 91 </Unit>
92 - <Unit filename="src/gtk/uiparser/separator.c"> 92 + <Unit filename="src\gtk\uiparser\separator.c">
93 <Option compilerVar="CC" /> 93 <Option compilerVar="CC" />
94 </Unit> 94 </Unit>
95 - <Unit filename="src/gtk/uiparser/sources.mak" />  
96 - <Unit filename="src/gtk/uiparser/toolbar.c"> 95 + <Unit filename="src\gtk\uiparser\sources.mak" />
  96 + <Unit filename="src\gtk\uiparser\toolbar.c">
97 <Option compilerVar="CC" /> 97 <Option compilerVar="CC" />
98 </Unit> 98 </Unit>
99 - <Unit filename="src/gtk/uiparser/toolitem.c"> 99 + <Unit filename="src\gtk\uiparser\toolitem.c">
100 <Option compilerVar="CC" /> 100 <Option compilerVar="CC" />
101 </Unit> 101 </Unit>
102 - <Unit filename="src/gtk/v3270/clipboard.c"> 102 + <Unit filename="src\gtk\v3270\clipboard.c">
103 <Option compilerVar="CC" /> 103 <Option compilerVar="CC" />
104 </Unit> 104 </Unit>
105 - <Unit filename="src/gtk/v3270/draw.c"> 105 + <Unit filename="src\gtk\v3270\draw.c">
106 <Option compilerVar="CC" /> 106 <Option compilerVar="CC" />
107 </Unit> 107 </Unit>
108 - <Unit filename="src/gtk/v3270/genmarshal" />  
109 - <Unit filename="src/gtk/v3270/iocallback.c"> 108 + <Unit filename="src\gtk\v3270\genmarshal" />
  109 + <Unit filename="src\gtk\v3270\iocallback.c">
110 <Option compilerVar="CC" /> 110 <Option compilerVar="CC" />
111 </Unit> 111 </Unit>
112 - <Unit filename="src/gtk/v3270/keyboard.c"> 112 + <Unit filename="src\gtk\v3270\keyboard.c">
113 <Option compilerVar="CC" /> 113 <Option compilerVar="CC" />
114 </Unit> 114 </Unit>
115 - <Unit filename="src/gtk/v3270/mouse.c"> 115 + <Unit filename="src\gtk\v3270\mouse.c">
116 <Option compilerVar="CC" /> 116 <Option compilerVar="CC" />
117 </Unit> 117 </Unit>
118 - <Unit filename="src/gtk/v3270/oia.c"> 118 + <Unit filename="src\gtk\v3270\oia.c">
119 <Option compilerVar="CC" /> 119 <Option compilerVar="CC" />
120 </Unit> 120 </Unit>
121 - <Unit filename="src/gtk/v3270/private.h" />  
122 - <Unit filename="src/gtk/v3270/sources.mak" />  
123 - <Unit filename="src/gtk/v3270/v3270.h" />  
124 - <Unit filename="src/gtk/v3270/widget.c"> 121 + <Unit filename="src\gtk\v3270\private.h" />
  122 + <Unit filename="src\gtk\v3270\sources.mak" />
  123 + <Unit filename="src\gtk\v3270\v3270.h" />
  124 + <Unit filename="src\gtk\v3270\widget.c">
125 <Option compilerVar="CC" /> 125 <Option compilerVar="CC" />
126 </Unit> 126 </Unit>
127 - <Unit filename="src/include/lib3270.h" />  
128 - <Unit filename="src/include/lib3270/action_table.h" />  
129 - <Unit filename="src/include/lib3270/actions.h" />  
130 - <Unit filename="src/include/lib3270/config.h.in" />  
131 - <Unit filename="src/include/lib3270/log.h" />  
132 - <Unit filename="src/include/lib3270/popup.h" />  
133 - <Unit filename="src/include/lib3270/selection.h" />  
134 - <Unit filename="src/include/lib3270/session.h" />  
135 - <Unit filename="src/include/pw3270.h" />  
136 - <Unit filename="src/include/rules.mak.in" />  
137 - <Unit filename="src/lib3270/3270ds.h" />  
138 - <Unit filename="src/lib3270/Makefile.in" />  
139 - <Unit filename="src/lib3270/X11keysym.h" />  
140 - <Unit filename="src/lib3270/XtGlue.c"> 127 + <Unit filename="src\include\lib3270.h" />
  128 + <Unit filename="src\include\lib3270\action_table.h" />
  129 + <Unit filename="src\include\lib3270\actions.h" />
  130 + <Unit filename="src\include\lib3270\config.h.in" />
  131 + <Unit filename="src\include\lib3270\log.h" />
  132 + <Unit filename="src\include\lib3270\popup.h" />
  133 + <Unit filename="src\include\lib3270\selection.h" />
  134 + <Unit filename="src\include\lib3270\session.h" />
  135 + <Unit filename="src\include\pw3270.h" />
  136 + <Unit filename="src\include\rules.mak.in" />
  137 + <Unit filename="src\lib3270\3270ds.h" />
  138 + <Unit filename="src\lib3270\Makefile.in" />
  139 + <Unit filename="src\lib3270\X11keysym.h" />
  140 + <Unit filename="src\lib3270\XtGlue.c">
141 <Option compilerVar="CC" /> 141 <Option compilerVar="CC" />
142 </Unit> 142 </Unit>
143 - <Unit filename="src/lib3270/actions.c"> 143 + <Unit filename="src\lib3270\actions.c">
144 <Option compilerVar="CC" /> 144 <Option compilerVar="CC" />
145 </Unit> 145 </Unit>
146 - <Unit filename="src/lib3270/actionsc.h" />  
147 - <Unit filename="src/lib3270/ansi.c"> 146 + <Unit filename="src\lib3270\actionsc.h" />
  147 + <Unit filename="src\lib3270\ansi.c">
148 <Option compilerVar="CC" /> 148 <Option compilerVar="CC" />
149 </Unit> 149 </Unit>
150 - <Unit filename="src/lib3270/ansic.h" />  
151 - <Unit filename="src/lib3270/api.h" />  
152 - <Unit filename="src/lib3270/apl.c"> 150 + <Unit filename="src\lib3270\ansic.h" />
  151 + <Unit filename="src\lib3270\api.h" />
  152 + <Unit filename="src\lib3270\apl.c">
153 <Option compilerVar="CC" /> 153 <Option compilerVar="CC" />
154 </Unit> 154 </Unit>
155 - <Unit filename="src/lib3270/aplc.h" />  
156 - <Unit filename="src/lib3270/appres.h" />  
157 - <Unit filename="src/lib3270/arpa_telnet.h" />  
158 - <Unit filename="src/lib3270/cg.h" />  
159 - <Unit filename="src/lib3270/charset.c"> 155 + <Unit filename="src\lib3270\aplc.h" />
  156 + <Unit filename="src\lib3270\appres.h" />
  157 + <Unit filename="src\lib3270\arpa_telnet.h" />
  158 + <Unit filename="src\lib3270\cg.h" />
  159 + <Unit filename="src\lib3270\charset.c">
160 <Option compilerVar="CC" /> 160 <Option compilerVar="CC" />
161 </Unit> 161 </Unit>
162 - <Unit filename="src/lib3270/charsetc.h" />  
163 - <Unit filename="src/lib3270/childc.h" />  
164 - <Unit filename="src/lib3270/ctlr.c"> 162 + <Unit filename="src\lib3270\charsetc.h" />
  163 + <Unit filename="src\lib3270\childc.h" />
  164 + <Unit filename="src\lib3270\ctlr.c">
165 <Option compilerVar="CC" /> 165 <Option compilerVar="CC" />
166 </Unit> 166 </Unit>
167 - <Unit filename="src/lib3270/ctlr.h" />  
168 - <Unit filename="src/lib3270/ctlrc.h" />  
169 - <Unit filename="src/lib3270/dialogc.h" />  
170 - <Unit filename="src/lib3270/fallbacks.c"> 167 + <Unit filename="src\lib3270\ctlr.h" />
  168 + <Unit filename="src\lib3270\ctlrc.h" />
  169 + <Unit filename="src\lib3270\dialogc.h" />
  170 + <Unit filename="src\lib3270\fallbacks.c">
171 <Option compilerVar="CC" /> 171 <Option compilerVar="CC" />
172 </Unit> 172 </Unit>
173 - <Unit filename="src/lib3270/ft.c"> 173 + <Unit filename="src\lib3270\ft.c">
174 <Option compilerVar="CC" /> 174 <Option compilerVar="CC" />
175 </Unit> 175 </Unit>
176 - <Unit filename="src/lib3270/ft_cut.c"> 176 + <Unit filename="src\lib3270\ft_cut.c">
177 <Option compilerVar="CC" /> 177 <Option compilerVar="CC" />
178 </Unit> 178 </Unit>
179 - <Unit filename="src/lib3270/ft_cut_ds.h" />  
180 - <Unit filename="src/lib3270/ft_cutc.h" />  
181 - <Unit filename="src/lib3270/ft_dft.c"> 179 + <Unit filename="src\lib3270\ft_cut_ds.h" />
  180 + <Unit filename="src\lib3270\ft_cutc.h" />
  181 + <Unit filename="src\lib3270\ft_dft.c">
182 <Option compilerVar="CC" /> 182 <Option compilerVar="CC" />
183 </Unit> 183 </Unit>
184 - <Unit filename="src/lib3270/ft_dft_ds.h" />  
185 - <Unit filename="src/lib3270/ft_dftc.h" />  
186 - <Unit filename="src/lib3270/ftc.h" />  
187 - <Unit filename="src/lib3270/globals.h" />  
188 - <Unit filename="src/lib3270/glue.c"> 184 + <Unit filename="src\lib3270\ft_dft_ds.h" />
  185 + <Unit filename="src\lib3270\ft_dftc.h" />
  186 + <Unit filename="src\lib3270\ftc.h" />
  187 + <Unit filename="src\lib3270\globals.h" />
  188 + <Unit filename="src\lib3270\glue.c">
189 <Option compilerVar="CC" /> 189 <Option compilerVar="CC" />
190 </Unit> 190 </Unit>
191 - <Unit filename="src/lib3270/gluec.h" />  
192 - <Unit filename="src/lib3270/host.c"> 191 + <Unit filename="src\lib3270\gluec.h" />
  192 + <Unit filename="src\lib3270\host.c">
193 <Option compilerVar="CC" /> 193 <Option compilerVar="CC" />
194 </Unit> 194 </Unit>
195 - <Unit filename="src/lib3270/hostc.h" />  
196 - <Unit filename="src/lib3270/icmdc.h" />  
197 - <Unit filename="src/lib3270/keypadc.h" />  
198 - <Unit filename="src/lib3270/kybd.c"> 195 + <Unit filename="src\lib3270\hostc.h" />
  196 + <Unit filename="src\lib3270\icmdc.h" />
  197 + <Unit filename="src\lib3270\keypadc.h" />
  198 + <Unit filename="src\lib3270\kybd.c">
199 <Option compilerVar="CC" /> 199 <Option compilerVar="CC" />
200 </Unit> 200 </Unit>
201 - <Unit filename="src/lib3270/kybdc.h" />  
202 - <Unit filename="src/lib3270/localdefs.h" />  
203 - <Unit filename="src/lib3270/log.c"> 201 + <Unit filename="src\lib3270\kybdc.h" />
  202 + <Unit filename="src\lib3270\localdefs.h" />
  203 + <Unit filename="src\lib3270\log.c">
204 <Option compilerVar="CC" /> 204 <Option compilerVar="CC" />
205 </Unit> 205 </Unit>
206 - <Unit filename="src/lib3270/macros.c"> 206 + <Unit filename="src\lib3270\macros.c">
207 <Option compilerVar="CC" /> 207 <Option compilerVar="CC" />
208 </Unit> 208 </Unit>
209 - <Unit filename="src/lib3270/mkfb.c"> 209 + <Unit filename="src\lib3270\mkfb.c">
210 <Option compilerVar="CC" /> 210 <Option compilerVar="CC" />
211 </Unit> 211 </Unit>
212 - <Unit filename="src/lib3270/objects.h" />  
213 - <Unit filename="src/lib3270/paste.c"> 212 + <Unit filename="src\lib3270\objects.h" />
  213 + <Unit filename="src\lib3270\paste.c">
214 <Option compilerVar="CC" /> 214 <Option compilerVar="CC" />
215 </Unit> 215 </Unit>
216 - <Unit filename="src/lib3270/popupsc.h" />  
217 - <Unit filename="src/lib3270/print.c"> 216 + <Unit filename="src\lib3270\popupsc.h" />
  217 + <Unit filename="src\lib3270\print.c">
218 <Option compilerVar="CC" /> 218 <Option compilerVar="CC" />
219 </Unit> 219 </Unit>
220 - <Unit filename="src/lib3270/printc.h" />  
221 - <Unit filename="src/lib3270/printer.c"> 220 + <Unit filename="src\lib3270\printc.h" />
  221 + <Unit filename="src\lib3270\printer.c">
222 <Option compilerVar="CC" /> 222 <Option compilerVar="CC" />
223 </Unit> 223 </Unit>
224 - <Unit filename="src/lib3270/printerc.h" />  
225 - <Unit filename="src/lib3270/proxy.c"> 224 + <Unit filename="src\lib3270\printerc.h" />
  225 + <Unit filename="src\lib3270\proxy.c">
226 <Option compilerVar="CC" /> 226 <Option compilerVar="CC" />
227 </Unit> 227 </Unit>
228 - <Unit filename="src/lib3270/proxyc.h" />  
229 - <Unit filename="src/lib3270/resolver.c"> 228 + <Unit filename="src\lib3270\proxyc.h" />
  229 + <Unit filename="src\lib3270\resolver.c">
230 <Option compilerVar="CC" /> 230 <Option compilerVar="CC" />
231 </Unit> 231 </Unit>
232 - <Unit filename="src/lib3270/resolverc.h" />  
233 - <Unit filename="src/lib3270/resources.c"> 232 + <Unit filename="src\lib3270\resolverc.h" />
  233 + <Unit filename="src\lib3270\resources.c">
234 <Option compilerVar="CC" /> 234 <Option compilerVar="CC" />
235 </Unit> 235 </Unit>
236 - <Unit filename="src/lib3270/resources.h" />  
237 - <Unit filename="src/lib3270/rpq.c"> 236 + <Unit filename="src\lib3270\resources.h" />
  237 + <Unit filename="src\lib3270\rpq.c">
238 <Option compilerVar="CC" /> 238 <Option compilerVar="CC" />
239 </Unit> 239 </Unit>
240 - <Unit filename="src/lib3270/savec.h" />  
241 - <Unit filename="src/lib3270/screen.c"> 240 + <Unit filename="src\lib3270\savec.h" />
  241 + <Unit filename="src\lib3270\screen.c">
242 <Option compilerVar="CC" /> 242 <Option compilerVar="CC" />
243 </Unit> 243 </Unit>
244 - <Unit filename="src/lib3270/screen.h" />  
245 - <Unit filename="src/lib3270/screenc.h" />  
246 - <Unit filename="src/lib3270/scrollc.h" />  
247 - <Unit filename="src/lib3270/see.c"> 244 + <Unit filename="src\lib3270\screen.h" />
  245 + <Unit filename="src\lib3270\screenc.h" />
  246 + <Unit filename="src\lib3270\scrollc.h" />
  247 + <Unit filename="src\lib3270\see.c">
248 <Option compilerVar="CC" /> 248 <Option compilerVar="CC" />
249 </Unit> 249 </Unit>
250 - <Unit filename="src/lib3270/seec.h" />  
251 - <Unit filename="src/lib3270/selection.c"> 250 + <Unit filename="src\lib3270\seec.h" />
  251 + <Unit filename="src\lib3270\selection.c">
252 <Option compilerVar="CC" /> 252 <Option compilerVar="CC" />
253 </Unit> 253 </Unit>
254 - <Unit filename="src/lib3270/sf.c"> 254 + <Unit filename="src\lib3270\sf.c">
255 <Option compilerVar="CC" /> 255 <Option compilerVar="CC" />
256 </Unit> 256 </Unit>
257 - <Unit filename="src/lib3270/sfc.h" />  
258 - <Unit filename="src/lib3270/shlobj_missing.h" />  
259 - <Unit filename="src/lib3270/statusc.h" />  
260 - <Unit filename="src/lib3270/tables.c"> 257 + <Unit filename="src\lib3270\sfc.h" />
  258 + <Unit filename="src\lib3270\shlobj_missing.h" />
  259 + <Unit filename="src\lib3270\statusc.h" />
  260 + <Unit filename="src\lib3270\tables.c">
261 <Option compilerVar="CC" /> 261 <Option compilerVar="CC" />
262 </Unit> 262 </Unit>
263 - <Unit filename="src/lib3270/tablesc.h" />  
264 - <Unit filename="src/lib3270/telnet.c"> 263 + <Unit filename="src\lib3270\tablesc.h" />
  264 + <Unit filename="src\lib3270\telnet.c">
265 <Option compilerVar="CC" /> 265 <Option compilerVar="CC" />
266 </Unit> 266 </Unit>
267 - <Unit filename="src/lib3270/telnetc.h" />  
268 - <Unit filename="src/lib3270/testprogram.c"> 267 + <Unit filename="src\lib3270\telnetc.h" />
  268 + <Unit filename="src\lib3270\testprogram.c">
269 <Option compilerVar="CC" /> 269 <Option compilerVar="CC" />
270 </Unit> 270 </Unit>
271 - <Unit filename="src/lib3270/tn3270e.h" />  
272 - <Unit filename="src/lib3270/toggle.h" />  
273 - <Unit filename="src/lib3270/toggles.c"> 271 + <Unit filename="src\lib3270\tn3270e.h" />
  272 + <Unit filename="src\lib3270\toggle.h" />
  273 + <Unit filename="src\lib3270\toggles.c">
274 <Option compilerVar="CC" /> 274 <Option compilerVar="CC" />
275 </Unit> 275 </Unit>
276 - <Unit filename="src/lib3270/togglesc.h" />  
277 - <Unit filename="src/lib3270/trace_ds.c"> 276 + <Unit filename="src\lib3270\togglesc.h" />
  277 + <Unit filename="src\lib3270\trace_ds.c">
278 <Option compilerVar="CC" /> 278 <Option compilerVar="CC" />
279 </Unit> 279 </Unit>
280 - <Unit filename="src/lib3270/trace_dsc.h" />  
281 - <Unit filename="src/lib3270/utf8.c"> 280 + <Unit filename="src\lib3270\trace_dsc.h" />
  281 + <Unit filename="src\lib3270\utf8.c">
282 <Option compilerVar="CC" /> 282 <Option compilerVar="CC" />
283 </Unit> 283 </Unit>
284 - <Unit filename="src/lib3270/utf8c.h" />  
285 - <Unit filename="src/lib3270/util.c"> 284 + <Unit filename="src\lib3270\utf8c.h" />
  285 + <Unit filename="src\lib3270\util.c">
286 <Option compilerVar="CC" /> 286 <Option compilerVar="CC" />
287 </Unit> 287 </Unit>
288 - <Unit filename="src/lib3270/utilc.h" />  
289 - <Unit filename="src/lib3270/version.c"> 288 + <Unit filename="src\lib3270\utilc.h" />
  289 + <Unit filename="src\lib3270\version.c">
290 <Option compilerVar="CC" /> 290 <Option compilerVar="CC" />
291 </Unit> 291 </Unit>
292 - <Unit filename="src/lib3270/w3misc.c"> 292 + <Unit filename="src\lib3270\w3misc.c">
293 <Option compilerVar="CC" /> 293 <Option compilerVar="CC" />
294 </Unit> 294 </Unit>
295 - <Unit filename="src/lib3270/w3miscc.h" />  
296 - <Unit filename="src/lib3270/widec.h" />  
297 - <Unit filename="src/lib3270/winvers.c"> 295 + <Unit filename="src\lib3270\w3miscc.h" />
  296 + <Unit filename="src\lib3270\widec.h" />
  297 + <Unit filename="src\lib3270\winvers.c">
298 <Option compilerVar="CC" /> 298 <Option compilerVar="CC" />
299 </Unit> 299 </Unit>
300 - <Unit filename="src/lib3270/winversc.h" />  
301 - <Unit filename="src/lib3270/xio.c"> 300 + <Unit filename="src\lib3270\winversc.h" />
  301 + <Unit filename="src\lib3270\xio.c">
302 <Option compilerVar="CC" /> 302 <Option compilerVar="CC" />
303 </Unit> 303 </Unit>
304 - <Unit filename="src/lib3270/xioc.h" />  
305 - <Unit filename="src/lib3270/xl.h" />  
306 - <Unit filename="ui/00default.xml" />  
307 - <Unit filename="ui/99debug.xml" /> 304 + <Unit filename="src\lib3270\xioc.h" />
  305 + <Unit filename="src\lib3270\xl.h" />
  306 + <Unit filename="ui\00default.xml" />
  307 + <Unit filename="ui\99debug.xml" />
308 <Unit filename="valgrind.suppression" /> 308 <Unit filename="valgrind.suppression" />
309 <Extensions> 309 <Extensions>
310 <code_completion /> 310 <code_completion />
311 <debugger /> 311 <debugger />
312 <envvars /> 312 <envvars />
  313 + <DoxyBlocks>
  314 + <comment_style block="0" line="0" />
  315 + <doxyfile_project />
  316 + <doxyfile_build />
  317 + <doxyfile_warnings />
  318 + <doxyfile_output />
  319 + <doxyfile_dot />
  320 + <general />
  321 + </DoxyBlocks>
313 </Extensions> 322 </Extensions>
314 </Project> 323 </Project>
315 </CodeBlocks_project_file> 324 </CodeBlocks_project_file>
src/gtk/actions.c
@@ -74,6 +74,11 @@ static void copy_action(GtkAction *action, GtkWidget *widget) @@ -74,6 +74,11 @@ static void copy_action(GtkAction *action, GtkWidget *widget)
74 v3270_copy_clipboard(GTK_V3270(widget)); 74 v3270_copy_clipboard(GTK_V3270(widget));
75 } 75 }
76 76
  77 +static void paste_action(GtkAction *action, GtkWidget *widget)
  78 +{
  79 + trace("Action %s activated on widget %p",gtk_action_get_name(action),widget);
  80 + v3270_paste_clipboard(GTK_V3270(widget));
  81 +}
77 82
78 void ui_connect_action(GtkAction *action, GtkWidget *widget, const gchar *name, const gchar *id) 83 void ui_connect_action(GtkAction *action, GtkWidget *widget, const gchar *name, const gchar *id)
79 { 84 {
@@ -110,6 +115,7 @@ void ui_connect_action(GtkAction *action, GtkWidget *widget, const gchar *name, @@ -110,6 +115,7 @@ void ui_connect_action(GtkAction *action, GtkWidget *widget, const gchar *name,
110 { "connect", connect_action }, 115 { "connect", connect_action },
111 { "copy", copy_action }, 116 { "copy", copy_action },
112 { "disconnect", disconnect_action }, 117 { "disconnect", disconnect_action },
  118 + { "paste", paste_action },
113 }; 119 };
114 120
115 int f; 121 int f;
src/gtk/mainwindow.c
@@ -118,14 +118,31 @@ @@ -118,14 +118,31 @@
118 118
119 static void disconnected(GtkWidget *widget, GtkActionGroup **group) 119 static void disconnected(GtkWidget *widget, GtkActionGroup **group)
120 { 120 {
  121 + gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],FALSE);
121 gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],FALSE); 122 gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],FALSE);
122 gtk_action_group_set_sensitive(group[ACTION_GROUP_OFFLINE],TRUE); 123 gtk_action_group_set_sensitive(group[ACTION_GROUP_OFFLINE],TRUE);
123 } 124 }
124 125
  126 +#ifndef WIN32
  127 + static void clipboard_text_check(GtkClipboard *clipboard, const gchar *text, GtkActionGroup **group)
  128 + {
  129 + trace("%s called with text=%p",__FUNCTION__,text);
  130 + gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],text != NULL);
  131 + }
  132 +#endif
  133 +
125 static void connected(GtkWidget *widget, GtkActionGroup **group) 134 static void connected(GtkWidget *widget, GtkActionGroup **group)
126 { 135 {
127 gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],TRUE); 136 gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],TRUE);
128 gtk_action_group_set_sensitive(group[ACTION_GROUP_OFFLINE],FALSE); 137 gtk_action_group_set_sensitive(group[ACTION_GROUP_OFFLINE],FALSE);
  138 +
  139 +#ifdef WIN32
  140 + gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],TRUE);
  141 +#else
  142 + gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],FALSE);
  143 + gtk_clipboard_request_text(gtk_widget_get_clipboard(widget,GDK_SELECTION_CLIPBOARD),clipboard_text_check,(gpointer) group);
  144 +#endif
  145 +
129 } 146 }
130 147
131 static void update_config(GtkWidget *widget, const gchar *name, const gchar *value) 148 static void update_config(GtkWidget *widget, const gchar *name, const gchar *value)
src/gtk/v3270/clipboard.c
@@ -109,3 +109,174 @@ void v3270_copy_clipboard(v3270 *widget) @@ -109,3 +109,174 @@ void v3270_copy_clipboard(v3270 *widget)
109 } 109 }
110 } 110 }
111 111
  112 +static void paste_text(GtkWidget *widget, const gchar *text, const gchar *encoding)
  113 +{
  114 + gchar *buffer = NULL;
  115 + gchar *ptr;
  116 + GError *error = NULL;
  117 + H3270 *session = v3270_get_session(widget);
  118 +
  119 + if(!text)
  120 + return;
  121 +
  122 + buffer = g_convert(text, -1, lib3270_get_charset(session), encoding, NULL, NULL, &error);
  123 +
  124 + if(!buffer)
  125 + {
  126 + /* Falhou ao converter - Reajusta e tenta de novo */
  127 + int f;
  128 +
  129 + static const struct _xlat
  130 + {
  131 + const gchar *from;
  132 + const gchar *to;
  133 + } xlat[] =
  134 + {
  135 + { "–", "-" },
  136 + { "→", "->" },
  137 + { "←", "<-" },
  138 + { "©", "(c)" },
  139 + { "↔", "<->" },
  140 + { "™", "(TM)" },
  141 + { "®", "(R)" },
  142 + { "“", "\"" },
  143 + { "”", "\"" },
  144 + { "…", "..." },
  145 + { "•", "*" },
  146 + { "․", "." },
  147 + { "·", "*" },
  148 +
  149 + };
  150 +
  151 + gchar *string = g_strdup(text);
  152 +
  153 + if(error)
  154 + {
  155 + g_error_free(error);
  156 + error = NULL;
  157 + }
  158 +
  159 + // FIXME (perry#1#): Is there any better way for a "sed" here?
  160 + for(f=0;f<G_N_ELEMENTS(xlat);f++)
  161 + {
  162 + gchar *ptr = g_strstr_len(string,-1,xlat[f].from);
  163 +
  164 + if(ptr)
  165 + {
  166 + gchar *old = string;
  167 + gchar **tmp = g_strsplit(old,xlat[f].from,-1);
  168 + string = g_strjoinv(xlat[f].to,tmp);
  169 + g_strfreev(tmp);
  170 + g_free(old);
  171 + }
  172 + }
  173 +
  174 + buffer = g_convert(string, -1, lib3270_get_charset(session), encoding, NULL, NULL, &error);
  175 +
  176 + if(!buffer)
  177 + {
  178 + gchar **ln = g_strsplit(string,"\n",-1);
  179 +
  180 + for(f=0;ln[f];f++)
  181 + {
  182 + gchar *str = g_convert(ln[f], -1, lib3270_get_charset(session), encoding, NULL, NULL, &error);
  183 +
  184 + if(error)
  185 + {
  186 + g_error_free(error);
  187 + error = 0;
  188 + }
  189 +
  190 + if(!str)
  191 + {
  192 + GtkWidget *dialog = gtk_message_dialog_new( GTK_WINDOW( gtk_widget_get_toplevel(widget)),
  193 + GTK_DIALOG_DESTROY_WITH_PARENT,
  194 + GTK_MESSAGE_ERROR,
  195 + GTK_BUTTONS_OK,
  196 + _( "Can't convert line %d from %s to %s" ),f+1, encoding, lib3270_get_charset(session));
  197 +
  198 + gtk_window_set_title(GTK_WINDOW(dialog), _( "Charset error" ) );
  199 + if(error)
  200 + {
  201 + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),"%s\n%s", error->message ? error->message : N_( "Unexpected error" ), ln[f]);
  202 + g_error_free(error);
  203 + error = 0;
  204 + }
  205 + else
  206 + {
  207 + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),"%s", ln[f]);
  208 + }
  209 + gtk_dialog_run(GTK_DIALOG (dialog));
  210 + gtk_widget_destroy(dialog);
  211 + return;
  212 +
  213 + }
  214 + else
  215 + {
  216 + g_free(str);
  217 + }
  218 + }
  219 +
  220 + g_strfreev(ln);
  221 + g_free(string);
  222 + }
  223 +
  224 + g_free(string);
  225 +
  226 + if(error)
  227 + {
  228 + g_error_free(error);
  229 + error = 0;
  230 + }
  231 +
  232 +
  233 + if(!buffer)
  234 + {
  235 + GtkWidget *dialog = gtk_message_dialog_new( GTK_WINDOW( gtk_widget_get_toplevel(widget)),
  236 + GTK_DIALOG_DESTROY_WITH_PARENT,
  237 + GTK_MESSAGE_ERROR,
  238 + GTK_BUTTONS_OK,
  239 + _( "Can't convert text from %s to %s" ), encoding, lib3270_get_charset(session));
  240 +
  241 + gtk_window_set_title(GTK_WINDOW(dialog), _( "Charset error" ) );
  242 + if(error)
  243 + {
  244 + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),"%s", error->message ? error->message : N_( "Unexpected error" ));
  245 + g_error_free(error);
  246 + error = 0;
  247 + }
  248 + gtk_dialog_run(GTK_DIALOG (dialog));
  249 + gtk_widget_destroy(dialog);
  250 +
  251 + return;
  252 + }
  253 + }
  254 +
  255 + if(error)
  256 + g_error_free(error);
  257 +
  258 + /* Remove TABS */
  259 + for(ptr = buffer;*ptr;ptr++)
  260 + {
  261 + if(*ptr == '\t')
  262 + *ptr = ' ';
  263 + }
  264 +
  265 + trace("Received text:%p (%d bytes)",buffer,(int) strlen(buffer));
  266 +
  267 +// paste_string(buffer);
  268 +
  269 + g_free(buffer);
  270 +
  271 +}
  272 +
  273 +static void text_received(GtkClipboard *clipboard, const gchar *text, GtkWidget *widget)
  274 +{
  275 + paste_text(widget,text,"UTF-8");
  276 +}
  277 +
  278 +void v3270_paste_clipboard(v3270 *widget)
  279 +{
  280 + gtk_clipboard_request_text(gtk_widget_get_clipboard(GTK_WIDGET(widget),GDK_SELECTION_CLIPBOARD),(GtkClipboardTextReceivedFunc) text_received,(gpointer) widget);
  281 +}
  282 +
src/gtk/v3270/v3270.h
@@ -200,7 +200,7 @@ @@ -200,7 +200,7 @@
200 int v3270_connect(GtkWidget *widget, const gchar *host); 200 int v3270_connect(GtkWidget *widget, const gchar *host);
201 void v3270_disconnect(GtkWidget *widget); 201 void v3270_disconnect(GtkWidget *widget);
202 202
203 -// Clipboard 203 + // Clipboard
204 void v3270_copy_clipboard(v3270 *widget); 204 void v3270_copy_clipboard(v3270 *widget);
205 void v3270_paste_clipboard(v3270 *widget); 205 void v3270_paste_clipboard(v3270 *widget);
206 206
src/include/lib3270.h
@@ -227,7 +227,7 @@ @@ -227,7 +227,7 @@
227 #define LIB3270_EXPORT __attribute__((visibility("default"))) extern 227 #define LIB3270_EXPORT __attribute__((visibility("default"))) extern
228 228
229 #else 229 #else
230 - 230 +
231 #error Unable to set visibility attribute 231 #error Unable to set visibility attribute
232 232
233 #endif 233 #endif
@@ -636,8 +636,8 @@ @@ -636,8 +636,8 @@
636 LIB3270_EXPORT char * lib3270_get_selected(H3270 *h); 636 LIB3270_EXPORT char * lib3270_get_selected(H3270 *h);
637 637
638 638
639 - LIB3270_EXPORT int lib3270_set_model(H3270 *session, int model);  
640 - LIB3270_EXPORT int lib3270_get_model(H3270 *session); 639 + LIB3270_EXPORT int lib3270_set_model(H3270 *session, int model);
  640 + LIB3270_EXPORT int lib3270_get_model(H3270 *session);
641 641
642 #ifdef __cplusplus 642 #ifdef __cplusplus
643 } 643 }
src/include/lib3270/popup.h
@@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
44 } LIB3270_NOTIFY; 44 } LIB3270_NOTIFY;
45 45
46 LIB3270_EXPORT void lib3270_set_popup_handler(int (*popup_handler)(H3270 *, LIB3270_NOTIFY, const char *, const char *, const char *, va_list)); 46 LIB3270_EXPORT void lib3270_set_popup_handler(int (*popup_handler)(H3270 *, LIB3270_NOTIFY, const char *, const char *, const char *, va_list));
  47 + LIB3270_EXPORT lib3270_popup_dialog(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...);
47 48
48 #endif // LIB3270_POPUP_INCLUDED 49 #endif // LIB3270_POPUP_INCLUDED
49 50
src/lib3270/paste.c
@@ -32,14 +32,17 @@ @@ -32,14 +32,17 @@
32 32
33 #include "globals.h" 33 #include "globals.h"
34 34
35 -#if defined(X3270_DISPLAY) /*[*/  
36 -#include <X11/Xatom.h> 35 +/*
  36 +#if defined(X3270_DISPLAY)
  37 + #include <X11/Xatom.h>
37 #endif 38 #endif
  39 +*/
  40 +
38 #define XK_3270 41 #define XK_3270
39 -#if defined(X3270_APL) /*[*/  
40 -#define XK_APL  
41 -#endif /*]*/  
42 -//#include <X11/keysym.h> 42 +
  43 +#if defined(X3270_APL)
  44 + #define XK_APL
  45 +#endif
43 46
44 #include <fcntl.h> 47 #include <fcntl.h>
45 #include "3270ds.h" 48 #include "3270ds.h"
@@ -53,17 +56,18 @@ @@ -53,17 +56,18 @@
53 #include "ctlrc.h" 56 #include "ctlrc.h"
54 #include "ftc.h" 57 #include "ftc.h"
55 #include "hostc.h" 58 #include "hostc.h"
56 -// #include "idlec.h"  
57 -// #include "keymapc.h"  
58 #include "keypadc.h" 59 #include "keypadc.h"
59 #include "kybdc.h" 60 #include "kybdc.h"
60 -// #include "macrosc.h"  
61 #include "popupsc.h" 61 #include "popupsc.h"
62 #include "printc.h" 62 #include "printc.h"
63 #include "screenc.h" 63 #include "screenc.h"
64 -// #if defined(X3270_DISPLAY) /*[*/  
65 -// #include "selectc.h"  
66 -// #endif /*]*/ 64 +
  65 +/*
  66 +#if defined(X3270_DISPLAY)
  67 + #include "selectc.h"
  68 +#endif
  69 +*/
  70 +
67 #include "statusc.h" 71 #include "statusc.h"
68 #include "tablesc.h" 72 #include "tablesc.h"
69 #include "telnetc.h" 73 #include "telnetc.h"
@@ -76,6 +80,8 @@ @@ -76,6 +80,8 @@
76 #endif /*]*/ 80 #endif /*]*/
77 #include "api.h" 81 #include "api.h"
78 82
  83 +#include <lib3270/popup.h>
  84 +
79 /*---[ Struct ]-------------------------------------------------------------------------------------------------*/ 85 /*---[ Struct ]-------------------------------------------------------------------------------------------------*/
80 86
81 typedef struct _paste_data 87 typedef struct _paste_data
@@ -157,6 +163,15 @@ @@ -157,6 +163,15 @@
157 return c; 163 return c;
158 } 164 }
159 165
  166 +/**
  167 + * Set string at cursor position.
  168 + *
  169 + * @param h Session handle.
  170 + * @param str String to set
  171 + *
  172 + * @return Number of characters inserted; <0 in case of error.
  173 + *
  174 + */
160 LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) 175 LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str)
161 { 176 {
162 PASTE_DATA data; 177 PASTE_DATA data;
@@ -218,3 +233,62 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) @@ -218,3 +233,62 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str)
218 screen_resume(h); 233 screen_resume(h);
219 return data.qtd; 234 return data.qtd;
220 } 235 }
  236 +
  237 +LIB3270_EXPORT int lib3270_paste(H3270 *h, const char *str)
  238 +{
  239 + int sz;
  240 + CHECK_SESSION_HANDLE(h);
  241 +
  242 + if(!lib3270_connected(h))
  243 + {
  244 + lib3270_ring_bell(h);
  245 + return 0;
  246 + }
  247 +
  248 + if(h->paste_buffer)
  249 + {
  250 + free(h->paste_buffer);
  251 + h->paste_buffer = NULL;
  252 + }
  253 +
  254 + sz = lib3270_set_string(h,str);
  255 + if(sz < 0)
  256 + {
  257 + // Can´t paste
  258 + lib3270_popup_dialog(h,LIB3270_NOTIFY_WARNING,
  259 + _( "Action failed" ),
  260 + _( "Unable to paste text" ),
  261 + "%s", sz == -EINVAL ? _( "Keyboard is locked" ) : _( "Unexpected error" ) );
  262 + return 0;
  263 + }
  264 +
  265 + if(strlen(str) > sz)
  266 + {
  267 + h->paste_buffer = strdup(str+sz);
  268 + return 1;
  269 + }
  270 +
  271 + return 0;
  272 +}
  273 +
  274 +LIB3270_EXPORT int lib3270_pastenext(H3270 *h)
  275 +{
  276 + char * ptr;
  277 + int rc;
  278 +
  279 + CHECK_SESSION_HANDLE(h);
  280 +
  281 + if(!(lib3270_connected(h) && h->paste_buffer))
  282 + {
  283 + lib3270_ring_bell(h);
  284 + return 0;
  285 + }
  286 +
  287 + ptr = h->paste_buffer;
  288 + h->paste_buffer = NULL;
  289 +
  290 + rc = lib3270_paste(h,ptr);
  291 +
  292 + free(ptr);
  293 + return rc;
  294 +}
src/lib3270/screen.c
@@ -787,3 +787,13 @@ LIB3270_EXPORT void lib3270_set_popup_handler(int (*handler)(H3270 *, LIB3270_NO @@ -787,3 +787,13 @@ LIB3270_EXPORT void lib3270_set_popup_handler(int (*handler)(H3270 *, LIB3270_NO
787 popup_handler = handler ? handler : logpopup; 787 popup_handler = handler ? handler : logpopup;
788 } 788 }
789 789
  790 +LIB3270_EXPORT lib3270_popup_dialog(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...)
  791 +{
  792 + va_list args;
  793 +
  794 + CHECK_SESSION_HANDLE(session);
  795 +
  796 + va_start(args, fmt);
  797 + popup_handler(session,id,title ? title : _( "3270 Error" ), message,fmt,args);
  798 + va_end(args);
  799 +}
src/lib3270/selection.c
@@ -345,29 +345,3 @@ LIB3270_EXPORT char * lib3270_get_selected(H3270 *hSession) @@ -345,29 +345,3 @@ LIB3270_EXPORT char * lib3270_get_selected(H3270 *hSession)
345 return realloc(ret,sz+1); 345 return realloc(ret,sz+1);
346 } 346 }
347 347
348 -LIB3270_EXPORT int lib3270_paste(H3270 *h, const char *str)  
349 -{  
350 - CHECK_SESSION_HANDLE(h);  
351 -  
352 - if(!lib3270_connected(h))  
353 - {  
354 - lib3270_ring_bell(h);  
355 - return 0;  
356 - }  
357 -  
358 - return 0;  
359 -}  
360 -  
361 -LIB3270_EXPORT int lib3270_pastenext(H3270 *h)  
362 -{  
363 - CHECK_SESSION_HANDLE(h);  
364 -  
365 - if(!(lib3270_connected(h) && h->paste_buffer))  
366 - {  
367 - lib3270_ring_bell(h);  
368 - return 0;  
369 - }  
370 -  
371 -  
372 - return 0;  
373 -}