Commit 4ee125ba225bfe3afab219fcee88ee39b76b74a8

Authored by Perry Werneck
1 parent 3de2daaa

Refactoring action table for use with keyboard preferences dialog.

@@ -52,7 +52,6 @@ vgcore.* @@ -52,7 +52,6 @@ vgcore.*
52 doxygen/html 52 doxygen/html
53 *.crl 53 *.crl
54 *.sh 54 *.sh
55 -src/include/lib3270/actions.h  
56 doxygen/doxyfile 55 doxygen/doxyfile
57 win32-configure* 56 win32-configure*
58 ValgrindOut.xml 57 ValgrindOut.xml
@@ -33,6 +33,7 @@ INSTALL_PACKAGES=@INSTALL_PACKAGES@ @@ -33,6 +33,7 @@ INSTALL_PACKAGES=@INSTALL_PACKAGES@
33 SOURCES= \ 33 SOURCES= \
34 $(wildcard src/core/*.c) \ 34 $(wildcard src/core/*.c) \
35 $(wildcard src/core/keyboard/*.c) \ 35 $(wildcard src/core/keyboard/*.c) \
  36 + $(wildcard src/core/actions/*.c) \
36 $(wildcard src/core/ft/*.c) \ 37 $(wildcard src/core/ft/*.c) \
37 $(wildcard src/core/@OSNAME@/*.rc) \ 38 $(wildcard src/core/@OSNAME@/*.rc) \
38 $(wildcard src/core/@OSNAME@/*.c) \ 39 $(wildcard src/core/@OSNAME@/*.c) \
@@ -325,23 +326,6 @@ $(BASEDIR)/.tmp/$(LIBNAME)/fallbacks.c: \ @@ -325,23 +326,6 @@ $(BASEDIR)/.tmp/$(LIBNAME)/fallbacks.c: \
325 -c src/core/X3270.xad \ 326 -c src/core/X3270.xad \
326 $@ 327 $@
327 328
328 -$(BASEDIR)/src/include/lib3270/actions.h: \  
329 - src/include/lib3270/action_table.h \  
330 - $(wildcard src/mkactions/*.c)  
331 -  
332 - @$(MKDIR) $(dir $@)  
333 - @$(MKDIR) $(BINDIR)  
334 - @echo $< ...  
335 -  
336 - @$(HOST_CC) \  
337 - -g \  
338 - -I$(BASEDIR)/src/include \  
339 - -DBUILD_DATE=`date +%Y%m%d` \  
340 - -o $(BINDIR)/mkactions@EXEEXT@ \  
341 - $(wildcard src/mkactions/*.c)  
342 -  
343 - @$(BINDIR)/mkactions@EXEEXT@ -o $@  
344 -  
345 $(POTDIR)/lib3270.pot: \ 329 $(POTDIR)/lib3270.pot: \
346 $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(LIBNAME)/$(SRC).pot) 330 $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(LIBNAME)/$(SRC).pot)
347 331
@@ -41,7 +41,10 @@ @@ -41,7 +41,10 @@
41 <Unit filename="README.md" /> 41 <Unit filename="README.md" />
42 <Unit filename="configure.ac" /> 42 <Unit filename="configure.ac" />
43 <Unit filename="gitsync.sh" /> 43 <Unit filename="gitsync.sh" />
44 - <Unit filename="src/core/actions.c"> 44 + <Unit filename="src/core/actions/actions.c">
  45 + <Option compilerVar="CC" />
  46 + </Unit>
  47 + <Unit filename="src/core/actions/table.c">
45 <Option compilerVar="CC" /> 48 <Option compilerVar="CC" />
46 </Unit> 49 </Unit>
47 <Unit filename="src/core/ansi.c"> 50 <Unit filename="src/core/ansi.c">
@@ -213,6 +216,7 @@ @@ -213,6 +216,7 @@
213 <Unit filename="src/include/lib3270.h" /> 216 <Unit filename="src/include/lib3270.h" />
214 <Unit filename="src/include/lib3270/X11keysym.h" /> 217 <Unit filename="src/include/lib3270/X11keysym.h" />
215 <Unit filename="src/include/lib3270/action_table.h" /> 218 <Unit filename="src/include/lib3270/action_table.h" />
  219 + <Unit filename="src/include/lib3270/actions.h" />
216 <Unit filename="src/include/lib3270/charset.h" /> 220 <Unit filename="src/include/lib3270/charset.h" />
217 <Unit filename="src/include/lib3270/filetransfer.h" /> 221 <Unit filename="src/include/lib3270/filetransfer.h" />
218 <Unit filename="src/include/lib3270/html.h" /> 222 <Unit filename="src/include/lib3270/html.h" />
src/core/actions.c
@@ -1,96 +0,0 @@ @@ -1,96 +0,0 @@
1 -/*  
2 - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270  
3 - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a  
4 - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.  
5 - *  
6 - * Copyright (C) <2008> <Banco do Brasil S.A.>  
7 - *  
8 - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob  
9 - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela  
10 - * Free Software Foundation.  
11 - *  
12 - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER  
13 - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO  
14 - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para  
15 - * obter mais detalhes.  
16 - *  
17 - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este  
18 - * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple  
19 - * Place, Suite 330, Boston, MA, 02111-1307, USA  
20 - *  
21 - * Este programa está nomeado como actions.c e possui - linhas de código.  
22 - *  
23 - * Contatos:  
24 - *  
25 - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)  
26 - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)  
27 - *  
28 - */  
29 -  
30 -#include <lib3270-internals.h>  
31 -#include <lib3270/trace.h>  
32 -#include <lib3270/actions.h>  
33 -  
34 -/*---[ Globals ]--------------------------------------------------------------------------------------------------------------*/  
35 -  
36 -/*---[ Statics ]--------------------------------------------------------------------------------------------------------------*/  
37 -  
38 -/*---[ Implement ]------------------------------------------------------------------------------------------------------------*/  
39 -  
40 -/**  
41 - * @brief Get LIB3270 action table;  
42 - *  
43 - */  
44 - LIB3270_EXPORT const LIB3270_ACTION_ENTRY * lib3270_get_action_table()  
45 - {  
46 - #undef DECLARE_LIB3270_ACTION  
47 - #undef DECLARE_LIB3270_CLEAR_SELECTION_ACTION  
48 - #undef DECLARE_LIB3270_KEY_ACTION  
49 - #undef DECLARE_LIB3270_CURSOR_ACTION  
50 - #undef DECLARE_LIB3270_FKEY_ACTION  
51 -  
52 - #define DECLARE_LIB3270_ACTION( name, description ) { #name, description, lib3270_ ## name },  
53 - #define DECLARE_LIB3270_CLEAR_SELECTION_ACTION( name, description ) { #name, description, lib3270_ ## name },  
54 - #define DECLARE_LIB3270_KEY_ACTION( name, description ) { #name, description, lib3270_ ## name },  
55 - #define DECLARE_LIB3270_CURSOR_ACTION( name, description ) { #name, description, lib3270_cursor_ ## name },  
56 - #define DECLARE_LIB3270_FKEY_ACTION( name, description ) // name  
57 -  
58 - static const LIB3270_ACTION_ENTRY actions[] =  
59 - {  
60 - #include <lib3270/action_table.h>  
61 - { NULL, NULL, NULL }  
62 - };  
63 -  
64 - return actions;  
65 - }  
66 -  
67 -  
68 -/**  
69 - * @brief Launch an action by name.  
70 - *  
71 - * @param name Name of the action to launch.  
72 - *  
73 - * @return 0 if ok, error code if not (sets errno).  
74 - *  
75 - */  
76 -LIB3270_EXPORT int lib3270_action(H3270 *hSession, const char *name)  
77 -{  
78 - const LIB3270_ACTION_ENTRY *actions = lib3270_get_action_table();  
79 - size_t f;  
80 -  
81 - CHECK_SESSION_HANDLE(hSession);  
82 -  
83 - for(f=0; actions[f].name; f++)  
84 - {  
85 - if(!strcasecmp(name,actions[f].name))  
86 - {  
87 - lib3270_trace_event(hSession,"Action: %s\n",actions[f].name);  
88 - return actions[f].call(hSession);  
89 - }  
90 -  
91 - }  
92 -  
93 - lib3270_trace_event(hSession,"Unknown action %s\n",name);  
94 - return errno = ENOENT;  
95 -  
96 -}  
src/core/actions/actions.c 0 → 100644
@@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
  19 + * Place, Suite 330, Boston, MA, 02111-1307, USA
  20 + *
  21 + * Este programa está nomeado como actions.c e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 +#include <lib3270-internals.h>
  31 +#include <lib3270/trace.h>
  32 +#include <lib3270/actions.h>
  33 +
  34 +/*---[ Implement ]------------------------------------------------------------------------------------------------------------*/
  35 +
  36 +/**
  37 + * @brief Launch an action by name.
  38 + *
  39 + * @param name Name of the action to launch.
  40 + *
  41 + * @return 0 if ok, error code if not (sets errno).
  42 + *
  43 + */
  44 +LIB3270_EXPORT int lib3270_action(H3270 *hSession, const char *name)
  45 +{
  46 + const LIB3270_ACTION_ENTRY *actions = lib3270_get_action_table();
  47 + size_t f;
  48 +
  49 + CHECK_SESSION_HANDLE(hSession);
  50 +
  51 + for(f=0; actions[f].name; f++)
  52 + {
  53 + if(!strcasecmp(name,actions[f].name))
  54 + {
  55 + lib3270_trace_event(hSession,"Action: %s\n",actions[f].name);
  56 + return actions[f].call(hSession);
  57 + }
  58 +
  59 + }
  60 +
  61 + lib3270_trace_event(hSession,"Unknown action %s\n",name);
  62 + return errno = ENOENT;
  63 +
  64 +}
src/core/actions/table.c 0 → 100644
@@ -0,0 +1,462 @@ @@ -0,0 +1,462 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
  19 + * Place, Suite 330, Boston, MA, 02111-1307, USA
  20 + *
  21 + * Este programa está nomeado como actions.c e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 +#include <lib3270-internals.h>
  31 +#include <lib3270/trace.h>
  32 +#include <lib3270/actions.h>
  33 +#include <lib3270/toggle.h>
  34 +
  35 +/*---[ Implement ]------------------------------------------------------------------------------------------------------------*/
  36 +
  37 + static int save_all(H3270 *hSession)
  38 + {
  39 + return lib3270_save_all(hSession,NULL);
  40 + }
  41 +
  42 + static int paste_file(H3270 *hSession)
  43 + {
  44 + return lib3270_load(hSession,NULL);
  45 + }
  46 +
  47 + static int print(H3270 *hSession)
  48 + {
  49 + return lib3270_print(hSession);
  50 + }
  51 +
  52 + static int connect_host(H3270 *hSession)
  53 + {
  54 + return lib3270_reconnect(hSession,0);
  55 + }
  56 +
  57 +/**
  58 + * @brief Get LIB3270 action table;
  59 + *
  60 + */
  61 + LIB3270_EXPORT const LIB3270_ACTION_ENTRY * lib3270_get_action_table()
  62 + {
  63 +
  64 + static const LIB3270_ACTION_ENTRY actions[] =
  65 + {
  66 + //
  67 + // Network actions
  68 + //
  69 + {
  70 + "connect",
  71 + NULL,
  72 + "connect",
  73 + NULL,
  74 + N_( "Connect to host." ),
  75 + connect_host
  76 + },
  77 +
  78 + {
  79 + "disconnect",
  80 + NULL,
  81 + "disconnect",
  82 + NULL,
  83 + N_( "Disconnect from host." ),
  84 + lib3270_disconnect
  85 + },
  86 +
  87 + //
  88 + // Navigation actions
  89 + //
  90 + {
  91 + "up",
  92 + "Up",
  93 + NULL,
  94 + NULL,
  95 + N_( "Cursor up 1 position." ),
  96 + lib3270_cursor_up
  97 + },
  98 +
  99 + {
  100 + "down",
  101 + "Down",
  102 + NULL,
  103 + NULL,
  104 + N_( "Cursor down 1 position." ),
  105 + lib3270_cursor_down
  106 + },
  107 +
  108 + {
  109 + "left",
  110 + "Left",
  111 + NULL,
  112 + NULL,
  113 + N_( "Cursor left 1 position." ),
  114 + lib3270_cursor_left
  115 + },
  116 +
  117 + {
  118 + "right",
  119 + "Right",
  120 + NULL,
  121 + NULL,
  122 + N_( "Cursor right 1 position." ),
  123 + lib3270_cursor_right
  124 + },
  125 +
  126 + {
  127 + "newline",
  128 + "Control_R",
  129 + NULL,
  130 + NULL,
  131 + N_( "Cursor to first field on next line or any lines after that." ),
  132 + lib3270_newline
  133 + },
  134 +
  135 + {
  136 + "previousword",
  137 + NULL,
  138 + NULL,
  139 + NULL,
  140 + N_( "Cursor to previous word." ),
  141 + lib3270_previousword
  142 + },
  143 +
  144 + {
  145 + "nextword",
  146 + NULL,
  147 + NULL,
  148 + NULL,
  149 + N_( "Cursor to next unprotected word." ),
  150 + lib3270_nextword
  151 + },
  152 +
  153 + //
  154 + // Save/load actions
  155 + //
  156 + {
  157 + "saveall",
  158 + NULL,
  159 + "document-save",
  160 + NULL,
  161 + N_( "Save screen." ),
  162 + save_all
  163 + },
  164 +
  165 + {
  166 + "loadfile",
  167 + NULL,
  168 + "document-load",
  169 + NULL,
  170 + N_( "Paste file." ),
  171 + paste_file
  172 + },
  173 +
  174 + //
  175 + // Selection actions
  176 + //
  177 + {
  178 + "select_all",
  179 + "<ctrl>a",
  180 + "edit-select-all",
  181 + NULL,
  182 + NULL,
  183 + lib3270_select_all
  184 + },
  185 +
  186 + {
  187 + "select_field",
  188 + "<Ctrl>f",
  189 + NULL,
  190 + NULL,
  191 + N_( "Select Field" ),
  192 + lib3270_select_field
  193 + },
  194 +
  195 + {
  196 + "unselect",
  197 + NULL,
  198 + NULL,
  199 + NULL,
  200 + N_( "Remove selection" ),
  201 + lib3270_unselect
  202 + },
  203 +
  204 + {
  205 + "reselect",
  206 + "<Ctrl>r",
  207 + NULL,
  208 + NULL,
  209 + N_( "Reselect"),
  210 + lib3270_reselect
  211 + },
  212 +
  213 +
  214 + //
  215 + // Field actions.
  216 + //
  217 + {
  218 + "fieldend",
  219 + NULL,
  220 + NULL,
  221 + NULL,
  222 + N_( "Move the cursor to the first blank after the last nonblank in the field." ),
  223 + lib3270_fieldend
  224 + },
  225 +
  226 + {
  227 + "firstfield",
  228 + "Home",
  229 + "go-first",
  230 + NULL,
  231 + N_( "Move to first unprotected field on screen." ),
  232 + lib3270_firstfield
  233 + },
  234 +
  235 + {
  236 + "nextfield",
  237 + "Tab",
  238 + "go-next",
  239 + NULL,
  240 + N_( "Tab forward to next field." ),
  241 + lib3270_nextfield
  242 + },
  243 +
  244 + {
  245 + "previousfield",
  246 + "ISO_Left_Tab",
  247 + "go-previous",
  248 + NULL,
  249 + N_( "Tab backward to previous field." ),
  250 + lib3270_previousfield
  251 + },
  252 +
  253 +
  254 + //
  255 + // Erase actions.
  256 + //
  257 + {
  258 + "deleteword",
  259 + "<Ctrl>w",
  260 + NULL,
  261 + NULL,
  262 + N_( "Backspaces the cursor until it hits the front of a word." ),
  263 + lib3270_deleteword
  264 + },
  265 +
  266 + {
  267 + "deletefield",
  268 + "<Ctrl>u",
  269 + NULL,
  270 + NULL,
  271 + N_( "Delete field" ),
  272 + lib3270_deletefield
  273 + },
  274 +
  275 +
  276 + {
  277 + "eraseinput",
  278 + NULL,
  279 + NULL,
  280 + NULL,
  281 + NULL,
  282 + lib3270_eraseinput
  283 + },
  284 +
  285 + {
  286 + "eraseeof",
  287 + "End",
  288 + NULL,
  289 + NULL,
  290 + N_( "Erase End Of Field Key." ),
  291 + lib3270_eraseeof
  292 + },
  293 +
  294 + {
  295 + "eraseeol",
  296 + NULL,
  297 + NULL,
  298 + NULL,
  299 + N_( "Erase End Of Line Key." ),
  300 + lib3270_eraseeol
  301 + },
  302 +
  303 + {
  304 + "erase",
  305 + "BackSpace",
  306 + NULL,
  307 + NULL,
  308 + NULL,
  309 + lib3270_erase
  310 + },
  311 +
  312 + //
  313 + // Keyboard actions
  314 + //
  315 + {
  316 + "enter",
  317 + NULL,
  318 + NULL,
  319 + NULL,
  320 + N_( "Send an \"Enter\" action." ),
  321 + lib3270_enter
  322 + },
  323 +
  324 +
  325 + {
  326 + "kybdreset",
  327 + "Escape",
  328 + NULL,
  329 + NULL,
  330 + NULL,
  331 + lib3270_kybdreset
  332 + },
  333 +
  334 + {
  335 + "clear",
  336 + NULL,
  337 + NULL,
  338 + NULL,
  339 + N_( "Clear AID key" ),
  340 + lib3270_clear
  341 + },
  342 +
  343 +
  344 + {
  345 + "delete",
  346 + "Delete",
  347 + NULL,
  348 + NULL,
  349 + NULL,
  350 + lib3270_delete
  351 + },
  352 +
  353 + {
  354 + "dup",
  355 + "<Shift>KP_Multiply",
  356 + NULL,
  357 + NULL,
  358 + N_( "DUP key" ),
  359 + lib3270_dup
  360 + },
  361 +
  362 + {
  363 + "fieldmark",
  364 + NULL,
  365 + NULL,
  366 + NULL,
  367 + N_( "FM key" ),
  368 + lib3270_fieldmark
  369 + },
  370 +
  371 + {
  372 + "backspace",
  373 + NULL,
  374 + NULL,
  375 + NULL,
  376 + N_( "3270-style backspace." ),
  377 + lib3270_backspace
  378 + },
  379 +
  380 + {
  381 + "attn",
  382 + "<shift>Escape",
  383 + NULL,
  384 + NULL,
  385 + "ATTN key, per RFC 2355. Sends IP, regardless.",
  386 + lib3270_attn
  387 + },
  388 +
  389 + {
  390 + "break",
  391 + NULL,
  392 + NULL,
  393 + NULL,
  394 + NULL,
  395 + lib3270_break
  396 + },
  397 +
  398 + {
  399 + "pastenext",
  400 + "<shift><ctrl>v",
  401 + NULL,
  402 + NULL,
  403 + NULL,
  404 + lib3270_paste_next
  405 + },
  406 +
  407 + {
  408 + "sysreq",
  409 + "<shift>Print",
  410 + NULL,
  411 + NULL,
  412 + NULL,
  413 + lib3270_sysreq
  414 + },
  415 +
  416 + //
  417 + // Misc actions
  418 + //
  419 + {
  420 + "print",
  421 + "Print",
  422 + "document-print",
  423 + NULL,
  424 + NULL,
  425 + print
  426 + },
  427 +
  428 + //
  429 + // Test actions
  430 + //
  431 +
  432 + {
  433 + "testpattern",
  434 + NULL,
  435 + NULL,
  436 + NULL,
  437 + NULL,
  438 + lib3270_testpattern
  439 + },
  440 +
  441 + {
  442 + "charsettable",
  443 + NULL,
  444 + NULL,
  445 + NULL,
  446 + NULL,
  447 + lib3270_charsettable
  448 + },
  449 +
  450 + {
  451 + NULL,
  452 + NULL,
  453 + NULL,
  454 + NULL,
  455 + NULL,
  456 + NULL
  457 + }
  458 + };
  459 +
  460 + return actions;
  461 + }
  462 +
src/core/charset.c
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 */ 35 */
36 36
37 #include <lib3270-internals.h> 37 #include <lib3270-internals.h>
38 -#include <lib3270/X11keysym.h> 38 +#include <X11keysym.h>
39 #include <lib3270/charset.h> 39 #include <lib3270/charset.h>
40 #include <lib3270/log.h> 40 #include <lib3270/log.h>
41 #include <lib3270/trace.h> 41 #include <lib3270/trace.h>
src/core/paste.c
@@ -318,7 +318,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str, @@ -318,7 +318,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str,
318 return rc; 318 return rc;
319 } 319 }
320 320
321 -LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str) 321 +LIB3270_EXPORT int lib3270_paste_text(H3270 *h, const unsigned char *str)
322 { 322 {
323 int sz; 323 int sz;
324 CHECK_SESSION_HANDLE(h); 324 CHECK_SESSION_HANDLE(h);
@@ -356,7 +356,7 @@ LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str) @@ -356,7 +356,7 @@ LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str)
356 return 0; 356 return 0;
357 } 357 }
358 358
359 -LIB3270_EXPORT int lib3270_pastenext(H3270 *hSession) 359 +LIB3270_EXPORT int lib3270_paste_next(H3270 *hSession)
360 { 360 {
361 char * ptr; 361 char * ptr;
362 int rc; 362 int rc;
@@ -372,7 +372,7 @@ LIB3270_EXPORT int lib3270_pastenext(H3270 *hSession) @@ -372,7 +372,7 @@ LIB3270_EXPORT int lib3270_pastenext(H3270 *hSession)
372 ptr = hSession->paste_buffer; 372 ptr = hSession->paste_buffer;
373 hSession->paste_buffer = NULL; 373 hSession->paste_buffer = NULL;
374 374
375 - rc = lib3270_paste(hSession,(unsigned char *) ptr); 375 + rc = lib3270_paste_text(hSession,(unsigned char *) ptr);
376 376
377 lib3270_free(ptr); 377 lib3270_free(ptr);
378 return rc; 378 return rc;
src/include/X11keysym.h 0 → 100644
@@ -0,0 +1,217 @@ @@ -0,0 +1,217 @@
  1 +/*
  2 + * Copyright 1999 by Paul Mattes.
  3 + * Permission to use, copy, modify, and distribute this software and its
  4 + * documentation for any purpose and without fee is hereby granted,
  5 + * provided that the above copyright notice appear in all copies and that
  6 + * both that copyright notice and this permission notice appear in
  7 + * supporting documentation.
  8 + *
  9 + * c3270, s3270 and tcl3270 are distributed in the hope that they will
  10 + * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE
  12 + * for more details.
  13 + */
  14 +
  15 +/* X11 keysyms used by c3270, s3270 and tcl3270 */
  16 +
  17 +#if !defined(_x11_keysym_h) /*[*/
  18 +#define _x11_keysym_h 1
  19 +
  20 +/* Latin-1 Keysyms */
  21 +#define XK_space 0x020
  22 +#define XK_exclam 0x021
  23 +#define XK_quotedbl 0x022
  24 +#define XK_numbersign 0x023
  25 +#define XK_dollar 0x024
  26 +#define XK_percent 0x025
  27 +#define XK_ampersand 0x026
  28 +#define XK_apostrophe 0x027
  29 +#define XK_quoteright 0x027
  30 +#define XK_parenleft 0x028
  31 +#define XK_parenright 0x029
  32 +#define XK_asterisk 0x02a
  33 +#define XK_plus 0x02b
  34 +#define XK_comma 0x02c
  35 +#define XK_minus 0x02d
  36 +#define XK_period 0x02e
  37 +#define XK_slash 0x02f
  38 +#define XK_0 0x030
  39 +#define XK_1 0x031
  40 +#define XK_2 0x032
  41 +#define XK_3 0x033
  42 +#define XK_4 0x034
  43 +#define XK_5 0x035
  44 +#define XK_6 0x036
  45 +#define XK_7 0x037
  46 +#define XK_8 0x038
  47 +#define XK_9 0x039
  48 +#define XK_colon 0x03a
  49 +#define XK_semicolon 0x03b
  50 +#define XK_less 0x03c
  51 +#define XK_equal 0x03d
  52 +#define XK_greater 0x03e
  53 +#define XK_question 0x03f
  54 +#define XK_at 0x040
  55 +#define XK_A 0x041
  56 +#define XK_B 0x042
  57 +#define XK_C 0x043
  58 +#define XK_D 0x044
  59 +#define XK_E 0x045
  60 +#define XK_F 0x046
  61 +#define XK_G 0x047
  62 +#define XK_H 0x048
  63 +#define XK_I 0x049
  64 +#define XK_J 0x04a
  65 +#define XK_K 0x04b
  66 +#define XK_L 0x04c
  67 +#define XK_M 0x04d
  68 +#define XK_N 0x04e
  69 +#define XK_O 0x04f
  70 +#define XK_P 0x050
  71 +#define XK_Q 0x051
  72 +#define XK_R 0x052
  73 +#define XK_S 0x053
  74 +#define XK_T 0x054
  75 +#define XK_U 0x055
  76 +#define XK_V 0x056
  77 +#define XK_W 0x057
  78 +#define XK_X 0x058
  79 +#define XK_Y 0x059
  80 +#define XK_Z 0x05a
  81 +#define XK_bracketleft 0x05b
  82 +#define XK_backslash 0x05c
  83 +#define XK_bracketright 0x05d
  84 +#define XK_asciicircum 0x05e
  85 +#define XK_underscore 0x05f
  86 +#define XK_grave 0x060
  87 +#define XK_quoteleft 0x060
  88 +#define XK_a 0x061
  89 +#define XK_b 0x062
  90 +#define XK_c 0x063
  91 +#define XK_d 0x064
  92 +#define XK_e 0x065
  93 +#define XK_f 0x066
  94 +#define XK_g 0x067
  95 +#define XK_h 0x068
  96 +#define XK_i 0x069
  97 +#define XK_j 0x06a
  98 +#define XK_k 0x06b
  99 +#define XK_l 0x06c
  100 +#define XK_m 0x06d
  101 +#define XK_n 0x06e
  102 +#define XK_o 0x06f
  103 +#define XK_p 0x070
  104 +#define XK_q 0x071
  105 +#define XK_r 0x072
  106 +#define XK_s 0x073
  107 +#define XK_t 0x074
  108 +#define XK_u 0x075
  109 +#define XK_v 0x076
  110 +#define XK_w 0x077
  111 +#define XK_x 0x078
  112 +#define XK_y 0x079
  113 +#define XK_z 0x07a
  114 +#define XK_braceleft 0x07b
  115 +#define XK_bar 0x07c
  116 +#define XK_braceright 0x07d
  117 +#define XK_asciitilde 0x07e
  118 +#define XK_nobreakspace 0x0a0
  119 +#define XK_exclamdown 0x0a1
  120 +#define XK_cent 0x0a2
  121 +#define XK_sterling 0x0a3
  122 +#define XK_currency 0x0a4
  123 +#define XK_yen 0x0a5
  124 +#define XK_brokenbar 0x0a6
  125 +#define XK_section 0x0a7
  126 +#define XK_diaeresis 0x0a8
  127 +#define XK_copyright 0x0a9
  128 +#define XK_ordfeminine 0x0aa
  129 +#define XK_guillemotleft 0x0ab
  130 +#define XK_notsign 0x0ac
  131 +#define XK_hyphen 0x0ad
  132 +#define XK_registered 0x0ae
  133 +#define XK_macron 0x0af
  134 +#define XK_degree 0x0b0
  135 +#define XK_plusminus 0x0b1
  136 +#define XK_twosuperior 0x0b2
  137 +#define XK_threesuperior 0x0b3
  138 +#define XK_acute 0x0b4
  139 +#define XK_mu 0x0b5
  140 +#define XK_paragraph 0x0b6
  141 +#define XK_periodcentered 0x0b7
  142 +#define XK_cedilla 0x0b8
  143 +#define XK_onesuperior 0x0b9
  144 +#define XK_masculine 0x0ba
  145 +#define XK_guillemotright 0x0bb
  146 +#define XK_onequarter 0x0bc
  147 +#define XK_onehalf 0x0bd
  148 +#define XK_threequarters 0x0be
  149 +#define XK_questiondown 0x0bf
  150 +#define XK_Agrave 0x0c0
  151 +#define XK_Aacute 0x0c1
  152 +#define XK_Acircumflex 0x0c2
  153 +#define XK_Atilde 0x0c3
  154 +#define XK_Adiaeresis 0x0c4
  155 +#define XK_Aring 0x0c5
  156 +#define XK_AE 0x0c6
  157 +#define XK_Ccedilla 0x0c7
  158 +#define XK_Egrave 0x0c8
  159 +#define XK_Eacute 0x0c9
  160 +#define XK_Ecircumflex 0x0ca
  161 +#define XK_Ediaeresis 0x0cb
  162 +#define XK_Igrave 0x0cc
  163 +#define XK_Iacute 0x0cd
  164 +#define XK_Icircumflex 0x0ce
  165 +#define XK_Idiaeresis 0x0cf
  166 +#define XK_ETH 0x0d0
  167 +#define XK_Eth 0x0d0
  168 +#define XK_Ntilde 0x0d1
  169 +#define XK_Ograve 0x0d2
  170 +#define XK_Oacute 0x0d3
  171 +#define XK_Ocircumflex 0x0d4
  172 +#define XK_Otilde 0x0d5
  173 +#define XK_Odiaeresis 0x0d6
  174 +#define XK_multiply 0x0d7
  175 +#define XK_Ooblique 0x0d8
  176 +#define XK_Ugrave 0x0d9
  177 +#define XK_Uacute 0x0da
  178 +#define XK_Ucircumflex 0x0db
  179 +#define XK_Udiaeresis 0x0dc
  180 +#define XK_Yacute 0x0dd
  181 +#define XK_THORN 0x0de
  182 +#define XK_Thorn 0x0de
  183 +#define XK_ssharp 0x0df
  184 +#define XK_agrave 0x0e0
  185 +#define XK_aacute 0x0e1
  186 +#define XK_acircumflex 0x0e2
  187 +#define XK_atilde 0x0e3
  188 +#define XK_adiaeresis 0x0e4
  189 +#define XK_aring 0x0e5
  190 +#define XK_ae 0x0e6
  191 +#define XK_ccedilla 0x0e7
  192 +#define XK_egrave 0x0e8
  193 +#define XK_eacute 0x0e9
  194 +#define XK_ecircumflex 0x0ea
  195 +#define XK_ediaeresis 0x0eb
  196 +#define XK_igrave 0x0ec
  197 +#define XK_iacute 0x0ed
  198 +#define XK_icircumflex 0x0ee
  199 +#define XK_idiaeresis 0x0ef
  200 +#define XK_eth 0x0f0
  201 +#define XK_ntilde 0x0f1
  202 +#define XK_ograve 0x0f2
  203 +#define XK_oacute 0x0f3
  204 +#define XK_ocircumflex 0x0f4
  205 +#define XK_otilde 0x0f5
  206 +#define XK_odiaeresis 0x0f6
  207 +#define XK_division 0x0f7
  208 +#define XK_oslash 0x0f8
  209 +#define XK_ugrave 0x0f9
  210 +#define XK_uacute 0x0fa
  211 +#define XK_ucircumflex 0x0fb
  212 +#define XK_udiaeresis 0x0fc
  213 +#define XK_yacute 0x0fd
  214 +#define XK_thorn 0x0fe
  215 +#define XK_ydiaeresis 0x0ff
  216 +
  217 +#endif /*]*/
src/include/lib3270/X11keysym.h
@@ -1,217 +0,0 @@ @@ -1,217 +0,0 @@
1 -/*  
2 - * Copyright 1999 by Paul Mattes.  
3 - * Permission to use, copy, modify, and distribute this software and its  
4 - * documentation for any purpose and without fee is hereby granted,  
5 - * provided that the above copyright notice appear in all copies and that  
6 - * both that copyright notice and this permission notice appear in  
7 - * supporting documentation.  
8 - *  
9 - * c3270, s3270 and tcl3270 are distributed in the hope that they will  
10 - * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of  
11 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE  
12 - * for more details.  
13 - */  
14 -  
15 -/* X11 keysyms used by c3270, s3270 and tcl3270 */  
16 -  
17 -#if !defined(_x11_keysym_h) /*[*/  
18 -#define _x11_keysym_h 1  
19 -  
20 -/* Latin-1 Keysyms */  
21 -#define XK_space 0x020  
22 -#define XK_exclam 0x021  
23 -#define XK_quotedbl 0x022  
24 -#define XK_numbersign 0x023  
25 -#define XK_dollar 0x024  
26 -#define XK_percent 0x025  
27 -#define XK_ampersand 0x026  
28 -#define XK_apostrophe 0x027  
29 -#define XK_quoteright 0x027  
30 -#define XK_parenleft 0x028  
31 -#define XK_parenright 0x029  
32 -#define XK_asterisk 0x02a  
33 -#define XK_plus 0x02b  
34 -#define XK_comma 0x02c  
35 -#define XK_minus 0x02d  
36 -#define XK_period 0x02e  
37 -#define XK_slash 0x02f  
38 -#define XK_0 0x030  
39 -#define XK_1 0x031  
40 -#define XK_2 0x032  
41 -#define XK_3 0x033  
42 -#define XK_4 0x034  
43 -#define XK_5 0x035  
44 -#define XK_6 0x036  
45 -#define XK_7 0x037  
46 -#define XK_8 0x038  
47 -#define XK_9 0x039  
48 -#define XK_colon 0x03a  
49 -#define XK_semicolon 0x03b  
50 -#define XK_less 0x03c  
51 -#define XK_equal 0x03d  
52 -#define XK_greater 0x03e  
53 -#define XK_question 0x03f  
54 -#define XK_at 0x040  
55 -#define XK_A 0x041  
56 -#define XK_B 0x042  
57 -#define XK_C 0x043  
58 -#define XK_D 0x044  
59 -#define XK_E 0x045  
60 -#define XK_F 0x046  
61 -#define XK_G 0x047  
62 -#define XK_H 0x048  
63 -#define XK_I 0x049  
64 -#define XK_J 0x04a  
65 -#define XK_K 0x04b  
66 -#define XK_L 0x04c  
67 -#define XK_M 0x04d  
68 -#define XK_N 0x04e  
69 -#define XK_O 0x04f  
70 -#define XK_P 0x050  
71 -#define XK_Q 0x051  
72 -#define XK_R 0x052  
73 -#define XK_S 0x053  
74 -#define XK_T 0x054  
75 -#define XK_U 0x055  
76 -#define XK_V 0x056  
77 -#define XK_W 0x057  
78 -#define XK_X 0x058  
79 -#define XK_Y 0x059  
80 -#define XK_Z 0x05a  
81 -#define XK_bracketleft 0x05b  
82 -#define XK_backslash 0x05c  
83 -#define XK_bracketright 0x05d  
84 -#define XK_asciicircum 0x05e  
85 -#define XK_underscore 0x05f  
86 -#define XK_grave 0x060  
87 -#define XK_quoteleft 0x060  
88 -#define XK_a 0x061  
89 -#define XK_b 0x062  
90 -#define XK_c 0x063  
91 -#define XK_d 0x064  
92 -#define XK_e 0x065  
93 -#define XK_f 0x066  
94 -#define XK_g 0x067  
95 -#define XK_h 0x068  
96 -#define XK_i 0x069  
97 -#define XK_j 0x06a  
98 -#define XK_k 0x06b  
99 -#define XK_l 0x06c  
100 -#define XK_m 0x06d  
101 -#define XK_n 0x06e  
102 -#define XK_o 0x06f  
103 -#define XK_p 0x070  
104 -#define XK_q 0x071  
105 -#define XK_r 0x072  
106 -#define XK_s 0x073  
107 -#define XK_t 0x074  
108 -#define XK_u 0x075  
109 -#define XK_v 0x076  
110 -#define XK_w 0x077  
111 -#define XK_x 0x078  
112 -#define XK_y 0x079  
113 -#define XK_z 0x07a  
114 -#define XK_braceleft 0x07b  
115 -#define XK_bar 0x07c  
116 -#define XK_braceright 0x07d  
117 -#define XK_asciitilde 0x07e  
118 -#define XK_nobreakspace 0x0a0  
119 -#define XK_exclamdown 0x0a1  
120 -#define XK_cent 0x0a2  
121 -#define XK_sterling 0x0a3  
122 -#define XK_currency 0x0a4  
123 -#define XK_yen 0x0a5  
124 -#define XK_brokenbar 0x0a6  
125 -#define XK_section 0x0a7  
126 -#define XK_diaeresis 0x0a8  
127 -#define XK_copyright 0x0a9  
128 -#define XK_ordfeminine 0x0aa  
129 -#define XK_guillemotleft 0x0ab  
130 -#define XK_notsign 0x0ac  
131 -#define XK_hyphen 0x0ad  
132 -#define XK_registered 0x0ae  
133 -#define XK_macron 0x0af  
134 -#define XK_degree 0x0b0  
135 -#define XK_plusminus 0x0b1  
136 -#define XK_twosuperior 0x0b2  
137 -#define XK_threesuperior 0x0b3  
138 -#define XK_acute 0x0b4  
139 -#define XK_mu 0x0b5  
140 -#define XK_paragraph 0x0b6  
141 -#define XK_periodcentered 0x0b7  
142 -#define XK_cedilla 0x0b8  
143 -#define XK_onesuperior 0x0b9  
144 -#define XK_masculine 0x0ba  
145 -#define XK_guillemotright 0x0bb  
146 -#define XK_onequarter 0x0bc  
147 -#define XK_onehalf 0x0bd  
148 -#define XK_threequarters 0x0be  
149 -#define XK_questiondown 0x0bf  
150 -#define XK_Agrave 0x0c0  
151 -#define XK_Aacute 0x0c1  
152 -#define XK_Acircumflex 0x0c2  
153 -#define XK_Atilde 0x0c3  
154 -#define XK_Adiaeresis 0x0c4  
155 -#define XK_Aring 0x0c5  
156 -#define XK_AE 0x0c6  
157 -#define XK_Ccedilla 0x0c7  
158 -#define XK_Egrave 0x0c8  
159 -#define XK_Eacute 0x0c9  
160 -#define XK_Ecircumflex 0x0ca  
161 -#define XK_Ediaeresis 0x0cb  
162 -#define XK_Igrave 0x0cc  
163 -#define XK_Iacute 0x0cd  
164 -#define XK_Icircumflex 0x0ce  
165 -#define XK_Idiaeresis 0x0cf  
166 -#define XK_ETH 0x0d0  
167 -#define XK_Eth 0x0d0  
168 -#define XK_Ntilde 0x0d1  
169 -#define XK_Ograve 0x0d2  
170 -#define XK_Oacute 0x0d3  
171 -#define XK_Ocircumflex 0x0d4  
172 -#define XK_Otilde 0x0d5  
173 -#define XK_Odiaeresis 0x0d6  
174 -#define XK_multiply 0x0d7  
175 -#define XK_Ooblique 0x0d8  
176 -#define XK_Ugrave 0x0d9  
177 -#define XK_Uacute 0x0da  
178 -#define XK_Ucircumflex 0x0db  
179 -#define XK_Udiaeresis 0x0dc  
180 -#define XK_Yacute 0x0dd  
181 -#define XK_THORN 0x0de  
182 -#define XK_Thorn 0x0de  
183 -#define XK_ssharp 0x0df  
184 -#define XK_agrave 0x0e0  
185 -#define XK_aacute 0x0e1  
186 -#define XK_acircumflex 0x0e2  
187 -#define XK_atilde 0x0e3  
188 -#define XK_adiaeresis 0x0e4  
189 -#define XK_aring 0x0e5  
190 -#define XK_ae 0x0e6  
191 -#define XK_ccedilla 0x0e7  
192 -#define XK_egrave 0x0e8  
193 -#define XK_eacute 0x0e9  
194 -#define XK_ecircumflex 0x0ea  
195 -#define XK_ediaeresis 0x0eb  
196 -#define XK_igrave 0x0ec  
197 -#define XK_iacute 0x0ed  
198 -#define XK_icircumflex 0x0ee  
199 -#define XK_idiaeresis 0x0ef  
200 -#define XK_eth 0x0f0  
201 -#define XK_ntilde 0x0f1  
202 -#define XK_ograve 0x0f2  
203 -#define XK_oacute 0x0f3  
204 -#define XK_ocircumflex 0x0f4  
205 -#define XK_otilde 0x0f5  
206 -#define XK_odiaeresis 0x0f6  
207 -#define XK_division 0x0f7  
208 -#define XK_oslash 0x0f8  
209 -#define XK_ugrave 0x0f9  
210 -#define XK_uacute 0x0fa  
211 -#define XK_ucircumflex 0x0fb  
212 -#define XK_udiaeresis 0x0fc  
213 -#define XK_yacute 0x0fd  
214 -#define XK_thorn 0x0fe  
215 -#define XK_ydiaeresis 0x0ff  
216 -  
217 -#endif /*]*/  
src/include/lib3270/action_table.h
@@ -29,6 +29,8 @@ @@ -29,6 +29,8 @@
29 * 29 *
30 */ 30 */
31 31
  32 + #error Deprecated
  33 +
32 /* 34 /*
33 * Action call table. 35 * Action call table.
34 * 36 *
src/include/lib3270/actions.h 0 → 100644
@@ -0,0 +1,467 @@ @@ -0,0 +1,467 @@
  1 +/*
  2 + * Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Contatos:
  22 + *
  23 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  24 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  25 + *
  26 + */
  27 +
  28 +#ifndef LIB3270_ACTIONS_H_INCLUDED
  29 +
  30 + #define LIB3270_ACTIONS_H_INCLUDED 1
  31 +
  32 +#ifdef __cplusplus
  33 + extern "C" {
  34 +#endif
  35 +
  36 + typedef struct _lib3270_action_entry
  37 + {
  38 + const char *name; ///< @brief Action name.
  39 + const char *key; ///< @brief Default key (or NULL if no default).
  40 + const char *icon; ///< @brief Icon name (from https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html)
  41 + const char *label; ///< @brief Label (or NULL).
  42 + const char *tooltip; ///< @brief Description (or NULL).
  43 + int (*call)(H3270 *hSession); ///< @brief lib3270 associated method.
  44 + } LIB3270_ACTION_ENTRY;
  45 +
  46 +/**
  47 + *
  48 + * @brief Send an "Enter" action.
  49 + *
  50 + * @param hSession TN3270 Session handle.
  51 + *
  52 + * @return 0 if Ok, non zero if not (sets errno)
  53 + *
  54 + */
  55 + LIB3270_EXPORT int lib3270_enter(H3270 *hSession);
  56 +
  57 +/**
  58 + *
  59 + * @brief
  60 + *
  61 + * @param hSession TN3270 Session handle.
  62 + * @param keycode Number of the pfkey to activate.
  63 + *
  64 + * @return 0 if Ok, non zero if not (sets errno)
  65 + *
  66 + */
  67 + LIB3270_EXPORT int lib3270_pfkey(H3270 *hSession, int keycode);
  68 +
  69 +/**
  70 + *
  71 + * @brief
  72 + *
  73 + * @param hSession TN3270 Session handle.
  74 + * @param keycode Number of the pakey to activate.
  75 + *
  76 + * @return 0 if Ok, non zero if not (sets errno)
  77 + *
  78 + */
  79 + LIB3270_EXPORT int lib3270_pakey(H3270 *hSession, int keycode);
  80 +
  81 +/**
  82 + *
  83 + * @brief Cursor up 1 position.
  84 + *
  85 + * @param hSession TN3270 Session handle.
  86 + *
  87 + * @return 0 if Ok, non zero if not (sets errno)
  88 + *
  89 + */
  90 + LIB3270_EXPORT int lib3270_cursor_up(H3270 *hSession);
  91 +
  92 +/**
  93 + *
  94 + * @brief Cursor down 1 position.
  95 + *
  96 + * @param hSession TN3270 Session handle.
  97 + *
  98 + * @return 0 if Ok, non zero if not (sets errno)
  99 + *
  100 + */
  101 + LIB3270_EXPORT int lib3270_cursor_down(H3270 *hSession);
  102 +
  103 +/**
  104 + *
  105 + * @brief Cursor left 1 position.
  106 + *
  107 + * @param hSession TN3270 Session handle.
  108 + *
  109 + * @return 0 if Ok, non zero if not (sets errno)
  110 + *
  111 + */
  112 + LIB3270_EXPORT int lib3270_cursor_left(H3270 *hSession);
  113 +
  114 +/**
  115 + *
  116 + * @brief Cursor right 1 position.
  117 + *
  118 + * @param hSession TN3270 Session handle.
  119 + *
  120 + * @return 0 if Ok, non zero if not (sets errno)
  121 + *
  122 + */
  123 + LIB3270_EXPORT int lib3270_cursor_right(H3270 *hSession);
  124 +
  125 +/**
  126 + *
  127 + * @brief Cursor to first field on next line or any lines after that.
  128 + *
  129 + * @param hSession TN3270 Session handle.
  130 + *
  131 + * @return 0 if Ok, non zero if not (sets errno)
  132 + *
  133 + */
  134 + LIB3270_EXPORT int lib3270_newline(H3270 *hSession);
  135 +
  136 +/**
  137 + *
  138 + * @brief
  139 + *
  140 + * @param hSession TN3270 Session handle.
  141 + *
  142 + * @return 0 if Ok, non zero if not (sets errno)
  143 + *
  144 + */
  145 + LIB3270_EXPORT int lib3270_kybdreset(H3270 *hSession);
  146 +
  147 +/**
  148 + *
  149 + * @brief Clear AID key
  150 + *
  151 + * @param hSession TN3270 Session handle.
  152 + *
  153 + * @return 0 if Ok, non zero if not (sets errno)
  154 + *
  155 + */
  156 + LIB3270_EXPORT int lib3270_clear(H3270 *hSession);
  157 +
  158 +/**
  159 + *
  160 + * @brief
  161 + *
  162 + * @param hSession TN3270 Session handle.
  163 + *
  164 + * @return 0 if Ok, non zero if not (sets errno)
  165 + *
  166 + */
  167 + LIB3270_EXPORT int lib3270_eraseinput(H3270 *hSession);
  168 +
  169 +/**
  170 + *
  171 + * @brief
  172 + *
  173 + * @param hSession TN3270 Session handle.
  174 + *
  175 + * @return 0 if Ok, non zero if not (sets errno)
  176 + *
  177 + */
  178 + LIB3270_EXPORT int lib3270_select_field(H3270 *hSession);
  179 +
  180 +/**
  181 + *
  182 + * @brief
  183 + *
  184 + * @param hSession TN3270 Session handle.
  185 + *
  186 + * @return 0 if Ok, non zero if not (sets errno)
  187 + *
  188 + */
  189 + LIB3270_EXPORT int lib3270_select_all(H3270 *hSession);
  190 +
  191 +/**
  192 + *
  193 + * @brief
  194 + *
  195 + * @param hSession TN3270 Session handle.
  196 + *
  197 + * @return 0 if Ok, non zero if not (sets errno)
  198 + *
  199 + */
  200 + LIB3270_EXPORT int lib3270_unselect(H3270 *hSession);
  201 +
  202 +/**
  203 + *
  204 + * @brief
  205 + *
  206 + * @param hSession TN3270 Session handle.
  207 + *
  208 + * @return 0 if Ok, non zero if not (sets errno)
  209 + *
  210 + */
  211 + LIB3270_EXPORT int lib3270_reselect(H3270 *hSession);
  212 +
  213 +/**
  214 + *
  215 + * @brief Erase End Of Field Key.
  216 + *
  217 + * @param hSession TN3270 Session handle.
  218 + *
  219 + * @return 0 if Ok, non zero if not (sets errno)
  220 + *
  221 + */
  222 + LIB3270_EXPORT int lib3270_eraseeof(H3270 *hSession);
  223 +
  224 +/**
  225 + *
  226 + * @brief Erase End Of Line Key.
  227 + *
  228 + * @param hSession TN3270 Session handle.
  229 + *
  230 + * @return 0 if Ok, non zero if not (sets errno)
  231 + *
  232 + */
  233 + LIB3270_EXPORT int lib3270_eraseeol(H3270 *hSession);
  234 +
  235 +/**
  236 + *
  237 + * @brief
  238 + *
  239 + * @param hSession TN3270 Session handle.
  240 + *
  241 + * @return 0 if Ok, non zero if not (sets errno)
  242 + *
  243 + */
  244 + LIB3270_EXPORT int lib3270_erase(H3270 *hSession);
  245 +
  246 +/**
  247 + *
  248 + * @brief
  249 + *
  250 + * @param hSession TN3270 Session handle.
  251 + *
  252 + * @return 0 if Ok, non zero if not (sets errno)
  253 + *
  254 + */
  255 + LIB3270_EXPORT int lib3270_delete(H3270 *hSession);
  256 +
  257 +/**
  258 + *
  259 + * @brief DUP key
  260 + *
  261 + * @param hSession TN3270 Session handle.
  262 + *
  263 + * @return 0 if Ok, non zero if not (sets errno)
  264 + *
  265 + */
  266 + LIB3270_EXPORT int lib3270_dup(H3270 *hSession);
  267 +
  268 +/**
  269 + *
  270 + * @brief FM key
  271 + *
  272 + * @param hSession TN3270 Session handle.
  273 + *
  274 + * @return 0 if Ok, non zero if not (sets errno)
  275 + *
  276 + */
  277 + LIB3270_EXPORT int lib3270_fieldmark(H3270 *hSession);
  278 +
  279 +/**
  280 + *
  281 + * @brief 3270-style backspace.
  282 + *
  283 + * @param hSession TN3270 Session handle.
  284 + *
  285 + * @return 0 if Ok, non zero if not (sets errno)
  286 + *
  287 + */
  288 + LIB3270_EXPORT int lib3270_backspace(H3270 *hSession);
  289 +
  290 +/**
  291 + *
  292 + * @brief Cursor to previous word.
  293 + *
  294 + * @param hSession TN3270 Session handle.
  295 + *
  296 + * @return 0 if Ok, non zero if not (sets errno)
  297 + *
  298 + */
  299 + LIB3270_EXPORT int lib3270_previousword(H3270 *hSession);
  300 +
  301 +/**
  302 + *
  303 + * @brief Cursor to next unprotected word.
  304 + *
  305 + * @param hSession TN3270 Session handle.
  306 + *
  307 + * @return 0 if Ok, non zero if not (sets errno)
  308 + *
  309 + */
  310 + LIB3270_EXPORT int lib3270_nextword(H3270 *hSession);
  311 +
  312 +/**
  313 + *
  314 + * @brief Move the cursor to the first blank after the last nonblank in the field.
  315 + *
  316 + * @param hSession TN3270 Session handle.
  317 + *
  318 + * @return 0 if Ok, non zero if not (sets errno)
  319 + *
  320 + */
  321 + LIB3270_EXPORT int lib3270_fieldend(H3270 *hSession);
  322 +
  323 +/**
  324 + *
  325 + * @brief Move to first unprotected field on screen.
  326 + *
  327 + * @param hSession TN3270 Session handle.
  328 + *
  329 + * @return 0 if Ok, non zero if not (sets errno)
  330 + *
  331 + */
  332 + LIB3270_EXPORT int lib3270_firstfield(H3270 *hSession);
  333 +
  334 +/**
  335 + *
  336 + * @brief
  337 + *
  338 + * @param hSession TN3270 Session handle.
  339 + *
  340 + * @return 0 if Ok, non zero if not (sets errno)
  341 + *
  342 + */
  343 + LIB3270_EXPORT int lib3270_nextfield(H3270 *hSession);
  344 +
  345 +/**
  346 + *
  347 + * @brief Tab backward to previous field.
  348 + *
  349 + * @param hSession TN3270 Session handle.
  350 + *
  351 + * @return 0 if Ok, non zero if not (sets errno)
  352 + *
  353 + */
  354 + LIB3270_EXPORT int lib3270_previousfield(H3270 *hSession);
  355 +
  356 +/**
  357 + *
  358 + * @brief ATTN key, per RFC 2355. Sends IP, regardless.
  359 + *
  360 + * @param hSession TN3270 Session handle.
  361 + *
  362 + * @return 0 if Ok, non zero if not (sets errno)
  363 + *
  364 + */
  365 + LIB3270_EXPORT int lib3270_attn(H3270 *hSession);
  366 +
  367 +/**
  368 + *
  369 + * @brief
  370 + *
  371 + * @param hSession TN3270 Session handle.
  372 + *
  373 + * @return 0 if Ok, non zero if not (sets errno)
  374 + *
  375 + */
  376 + LIB3270_EXPORT int lib3270_break(H3270 *hSession);
  377 +
  378 +/**
  379 + *
  380 + * @brief
  381 + *
  382 + * @param hSession TN3270 Session handle.
  383 + *
  384 + * @return 0 if Ok, non zero if not (sets errno)
  385 + *
  386 + */
  387 + LIB3270_EXPORT int lib3270_paste_next(H3270 *hSession);
  388 +
  389 +/**
  390 + *
  391 + * @brief Backspaces the cursor until it hits the front of a word (does a ^W).
  392 + *
  393 + * @param hSession TN3270 Session handle.
  394 + *
  395 + * @return 0 if Ok, non zero if not (sets errno)
  396 + *
  397 + */
  398 + LIB3270_EXPORT int lib3270_deleteword(H3270 *hSession);
  399 +
  400 +/**
  401 + *
  402 + * @brief Delete field key (does a ^U).
  403 + *
  404 + * @param hSession TN3270 Session handle.
  405 + *
  406 + * @return 0 if Ok, non zero if not (sets errno)
  407 + *
  408 + */
  409 + LIB3270_EXPORT int lib3270_deletefield(H3270 *hSession);
  410 +
  411 +/**
  412 + *
  413 + * @brief
  414 + *
  415 + * @param hSession TN3270 Session handle.
  416 + *
  417 + * @return 0 if Ok, non zero if not (sets errno)
  418 + *
  419 + */
  420 + LIB3270_EXPORT int lib3270_sysreq(H3270 *hSession);
  421 +
  422 +/**
  423 + *
  424 + * @brief
  425 + *
  426 + * @param hSession TN3270 Session handle.
  427 + *
  428 + * @return 0 if Ok, non zero if not (sets errno)
  429 + *
  430 + */
  431 + LIB3270_EXPORT int lib3270_testpattern(H3270 *hSession);
  432 +
  433 +/**
  434 + *
  435 + * @brief
  436 + *
  437 + * @param hSession TN3270 Session handle.
  438 + *
  439 + * @return 0 if Ok, non zero if not (sets errno)
  440 + *
  441 + */
  442 + LIB3270_EXPORT int lib3270_charsettable(H3270 *hSession);
  443 +
  444 +
  445 +/**
  446 + *
  447 + * @brief Get lib3270 action table.
  448 + *
  449 + * @return Array with all the supported actions.
  450 + */
  451 + LIB3270_EXPORT const LIB3270_ACTION_ENTRY * lib3270_get_action_table();
  452 +
  453 +/**
  454 + *
  455 + * @brief Call lib3270 action by name.
  456 + *
  457 + * @param hSession TN3270 Session handle.
  458 + * @param name Name of the action to call.
  459 + *
  460 + */
  461 + LIB3270_EXPORT int lib3270_action(H3270 *hSession, const char *name);
  462 +
  463 +#ifdef __cplusplus
  464 + }
  465 +#endif
  466 +
  467 +#endif // LIB3270_ACTIONS_H_INCLUDED
src/include/lib3270/selection.h
@@ -103,24 +103,24 @@ @@ -103,24 +103,24 @@
103 * @param h Session handle. 103 * @param h Session handle.
104 * @param str String to paste. 104 * @param str String to paste.
105 * 105 *
106 - * @see lib3270_pastenext. 106 + * @see lib3270_paste_next.
107 * 107 *
108 * @return Non 0 if there's more to paste with lib3270_pastenext. 108 * @return Non 0 if there's more to paste with lib3270_pastenext.
109 * 109 *
110 */ 110 */
111 - LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str); 111 + LIB3270_EXPORT int lib3270_paste_text(H3270 *h, const unsigned char *str);
112 112
113 /** 113 /**
114 * @brief Paste remaining string. 114 * @brief Paste remaining string.
115 * 115 *
116 * @param h Session handle. 116 * @param h Session handle.
117 * 117 *
118 - * @see lib3270_paste. 118 + * @see lib3270_paste_text.
119 * 119 *
120 * @return Non 0 if there's more to paste. 120 * @return Non 0 if there's more to paste.
121 * 121 *
122 */ 122 */
123 - LIB3270_EXPORT int lib3270_pastenext(H3270 *h); 123 + LIB3270_EXPORT int lib3270_paste_next(H3270 *h);
124 124
125 /** 125 /**
126 * @brief Move selected box 1 char in the selected direction. 126 * @brief Move selected box 1 char in the selected direction.