Commit 4ee125ba225bfe3afab219fcee88ee39b76b74a8

Authored by Perry Werneck
1 parent 3de2daaa

Refactoring action table for use with keyboard preferences dialog.

.gitignore
... ... @@ -52,7 +52,6 @@ vgcore.*
52 52 doxygen/html
53 53 *.crl
54 54 *.sh
55   -src/include/lib3270/actions.h
56 55 doxygen/doxyfile
57 56 win32-configure*
58 57 ValgrindOut.xml
... ...
Makefile.in
... ... @@ -33,6 +33,7 @@ INSTALL_PACKAGES=@INSTALL_PACKAGES@
33 33 SOURCES= \
34 34 $(wildcard src/core/*.c) \
35 35 $(wildcard src/core/keyboard/*.c) \
  36 + $(wildcard src/core/actions/*.c) \
36 37 $(wildcard src/core/ft/*.c) \
37 38 $(wildcard src/core/@OSNAME@/*.rc) \
38 39 $(wildcard src/core/@OSNAME@/*.c) \
... ... @@ -325,23 +326,6 @@ $(BASEDIR)/.tmp/$(LIBNAME)/fallbacks.c: \
325 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 329 $(POTDIR)/lib3270.pot: \
346 330 $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(LIBNAME)/$(SRC).pot)
347 331  
... ...
lib3270.cbp
... ... @@ -41,7 +41,10 @@
41 41 <Unit filename="README.md" />
42 42 <Unit filename="configure.ac" />
43 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 48 <Option compilerVar="CC" />
46 49 </Unit>
47 50 <Unit filename="src/core/ansi.c">
... ... @@ -213,6 +216,7 @@
213 216 <Unit filename="src/include/lib3270.h" />
214 217 <Unit filename="src/include/lib3270/X11keysym.h" />
215 218 <Unit filename="src/include/lib3270/action_table.h" />
  219 + <Unit filename="src/include/lib3270/actions.h" />
216 220 <Unit filename="src/include/lib3270/charset.h" />
217 221 <Unit filename="src/include/lib3270/filetransfer.h" />
218 222 <Unit filename="src/include/lib3270/html.h" />
... ...
src/core/actions.c
... ... @@ -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 @@
  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 @@
  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 35 */
36 36  
37 37 #include <lib3270-internals.h>
38   -#include <lib3270/X11keysym.h>
  38 +#include <X11keysym.h>
39 39 #include <lib3270/charset.h>
40 40 #include <lib3270/log.h>
41 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 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 323 int sz;
324 324 CHECK_SESSION_HANDLE(h);
... ... @@ -356,7 +356,7 @@ LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str)
356 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 361 char * ptr;
362 362 int rc;
... ... @@ -372,7 +372,7 @@ LIB3270_EXPORT int lib3270_pastenext(H3270 *hSession)
372 372 ptr = hSession->paste_buffer;
373 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 377 lib3270_free(ptr);
378 378 return rc;
... ...
src/include/X11keysym.h 0 → 100644
... ... @@ -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   -/*
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 29 *
30 30 */
31 31  
  32 + #error Deprecated
  33 +
32 34 /*
33 35 * Action call table.
34 36 *
... ...
src/include/lib3270/actions.h 0 → 100644
... ... @@ -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 103 * @param h Session handle.
104 104 * @param str String to paste.
105 105 *
106   - * @see lib3270_pastenext.
  106 + * @see lib3270_paste_next.
107 107 *
108 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 114 * @brief Paste remaining string.
115 115 *
116 116 * @param h Session handle.
117 117 *
118   - * @see lib3270_paste.
  118 + * @see lib3270_paste_text.
119 119 *
120 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 126 * @brief Move selected box 1 char in the selected direction.
... ...