diff --git a/.gitignore b/.gitignore
index ff9b350..1ccda00 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,7 +52,6 @@ vgcore.*
doxygen/html
*.crl
*.sh
-src/include/lib3270/actions.h
doxygen/doxyfile
win32-configure*
ValgrindOut.xml
diff --git a/Makefile.in b/Makefile.in
index a32e495..c223eea 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -33,6 +33,7 @@ INSTALL_PACKAGES=@INSTALL_PACKAGES@
SOURCES= \
$(wildcard src/core/*.c) \
$(wildcard src/core/keyboard/*.c) \
+ $(wildcard src/core/actions/*.c) \
$(wildcard src/core/ft/*.c) \
$(wildcard src/core/@OSNAME@/*.rc) \
$(wildcard src/core/@OSNAME@/*.c) \
@@ -325,23 +326,6 @@ $(BASEDIR)/.tmp/$(LIBNAME)/fallbacks.c: \
-c src/core/X3270.xad \
$@
-$(BASEDIR)/src/include/lib3270/actions.h: \
- src/include/lib3270/action_table.h \
- $(wildcard src/mkactions/*.c)
-
- @$(MKDIR) $(dir $@)
- @$(MKDIR) $(BINDIR)
- @echo $< ...
-
- @$(HOST_CC) \
- -g \
- -I$(BASEDIR)/src/include \
- -DBUILD_DATE=`date +%Y%m%d` \
- -o $(BINDIR)/mkactions@EXEEXT@ \
- $(wildcard src/mkactions/*.c)
-
- @$(BINDIR)/mkactions@EXEEXT@ -o $@
-
$(POTDIR)/lib3270.pot: \
$(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(LIBNAME)/$(SRC).pot)
diff --git a/lib3270.cbp b/lib3270.cbp
index ac48d80..69bd884 100644
--- a/lib3270.cbp
+++ b/lib3270.cbp
@@ -41,7 +41,10 @@
-
+
+
+
+
@@ -213,6 +216,7 @@
+
diff --git a/src/core/actions.c b/src/core/actions.c
deleted file mode 100644
index dd9c55a..0000000
--- a/src/core/actions.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
- * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
- * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
- *
- * Copyright (C) <2008>
- *
- * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
- * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
- * Free Software Foundation.
- *
- * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
- * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
- * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
- * obter mais detalhes.
- *
- * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
- * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA, 02111-1307, USA
- *
- * Este programa está nomeado como actions.c e possui - linhas de código.
- *
- * Contatos:
- *
- * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
- * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
- *
- */
-
-#include
-#include
-#include
-
-/*---[ Globals ]--------------------------------------------------------------------------------------------------------------*/
-
-/*---[ Statics ]--------------------------------------------------------------------------------------------------------------*/
-
-/*---[ Implement ]------------------------------------------------------------------------------------------------------------*/
-
-/**
- * @brief Get LIB3270 action table;
- *
- */
- LIB3270_EXPORT const LIB3270_ACTION_ENTRY * lib3270_get_action_table()
- {
- #undef DECLARE_LIB3270_ACTION
- #undef DECLARE_LIB3270_CLEAR_SELECTION_ACTION
- #undef DECLARE_LIB3270_KEY_ACTION
- #undef DECLARE_LIB3270_CURSOR_ACTION
- #undef DECLARE_LIB3270_FKEY_ACTION
-
- #define DECLARE_LIB3270_ACTION( name, description ) { #name, description, lib3270_ ## name },
- #define DECLARE_LIB3270_CLEAR_SELECTION_ACTION( name, description ) { #name, description, lib3270_ ## name },
- #define DECLARE_LIB3270_KEY_ACTION( name, description ) { #name, description, lib3270_ ## name },
- #define DECLARE_LIB3270_CURSOR_ACTION( name, description ) { #name, description, lib3270_cursor_ ## name },
- #define DECLARE_LIB3270_FKEY_ACTION( name, description ) // name
-
- static const LIB3270_ACTION_ENTRY actions[] =
- {
- #include
- { NULL, NULL, NULL }
- };
-
- return actions;
- }
-
-
-/**
- * @brief Launch an action by name.
- *
- * @param name Name of the action to launch.
- *
- * @return 0 if ok, error code if not (sets errno).
- *
- */
-LIB3270_EXPORT int lib3270_action(H3270 *hSession, const char *name)
-{
- const LIB3270_ACTION_ENTRY *actions = lib3270_get_action_table();
- size_t f;
-
- CHECK_SESSION_HANDLE(hSession);
-
- for(f=0; actions[f].name; f++)
- {
- if(!strcasecmp(name,actions[f].name))
- {
- lib3270_trace_event(hSession,"Action: %s\n",actions[f].name);
- return actions[f].call(hSession);
- }
-
- }
-
- lib3270_trace_event(hSession,"Unknown action %s\n",name);
- return errno = ENOENT;
-
-}
diff --git a/src/core/actions/actions.c b/src/core/actions/actions.c
new file mode 100644
index 0000000..84e8a42
--- /dev/null
+++ b/src/core/actions/actions.c
@@ -0,0 +1,64 @@
+/*
+ * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
+ * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
+ * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
+ *
+ * Copyright (C) <2008>
+ *
+ * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
+ * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
+ * Free Software Foundation.
+ *
+ * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
+ * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
+ * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
+ * obter mais detalhes.
+ *
+ * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
+ * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA, 02111-1307, USA
+ *
+ * Este programa está nomeado como actions.c e possui - linhas de código.
+ *
+ * Contatos:
+ *
+ * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
+ * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
+ *
+ */
+
+#include
+#include
+#include
+
+/*---[ Implement ]------------------------------------------------------------------------------------------------------------*/
+
+/**
+ * @brief Launch an action by name.
+ *
+ * @param name Name of the action to launch.
+ *
+ * @return 0 if ok, error code if not (sets errno).
+ *
+ */
+LIB3270_EXPORT int lib3270_action(H3270 *hSession, const char *name)
+{
+ const LIB3270_ACTION_ENTRY *actions = lib3270_get_action_table();
+ size_t f;
+
+ CHECK_SESSION_HANDLE(hSession);
+
+ for(f=0; actions[f].name; f++)
+ {
+ if(!strcasecmp(name,actions[f].name))
+ {
+ lib3270_trace_event(hSession,"Action: %s\n",actions[f].name);
+ return actions[f].call(hSession);
+ }
+
+ }
+
+ lib3270_trace_event(hSession,"Unknown action %s\n",name);
+ return errno = ENOENT;
+
+}
diff --git a/src/core/actions/table.c b/src/core/actions/table.c
new file mode 100644
index 0000000..bf32ef0
--- /dev/null
+++ b/src/core/actions/table.c
@@ -0,0 +1,462 @@
+/*
+ * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
+ * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
+ * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
+ *
+ * Copyright (C) <2008>
+ *
+ * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
+ * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
+ * Free Software Foundation.
+ *
+ * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
+ * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
+ * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
+ * obter mais detalhes.
+ *
+ * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
+ * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA, 02111-1307, USA
+ *
+ * Este programa está nomeado como actions.c e possui - linhas de código.
+ *
+ * Contatos:
+ *
+ * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
+ * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
+ *
+ */
+
+#include
+#include
+#include
+#include
+
+/*---[ Implement ]------------------------------------------------------------------------------------------------------------*/
+
+ static int save_all(H3270 *hSession)
+ {
+ return lib3270_save_all(hSession,NULL);
+ }
+
+ static int paste_file(H3270 *hSession)
+ {
+ return lib3270_load(hSession,NULL);
+ }
+
+ static int print(H3270 *hSession)
+ {
+ return lib3270_print(hSession);
+ }
+
+ static int connect_host(H3270 *hSession)
+ {
+ return lib3270_reconnect(hSession,0);
+ }
+
+/**
+ * @brief Get LIB3270 action table;
+ *
+ */
+ LIB3270_EXPORT const LIB3270_ACTION_ENTRY * lib3270_get_action_table()
+ {
+
+ static const LIB3270_ACTION_ENTRY actions[] =
+ {
+ //
+ // Network actions
+ //
+ {
+ "connect",
+ NULL,
+ "connect",
+ NULL,
+ N_( "Connect to host." ),
+ connect_host
+ },
+
+ {
+ "disconnect",
+ NULL,
+ "disconnect",
+ NULL,
+ N_( "Disconnect from host." ),
+ lib3270_disconnect
+ },
+
+ //
+ // Navigation actions
+ //
+ {
+ "up",
+ "Up",
+ NULL,
+ NULL,
+ N_( "Cursor up 1 position." ),
+ lib3270_cursor_up
+ },
+
+ {
+ "down",
+ "Down",
+ NULL,
+ NULL,
+ N_( "Cursor down 1 position." ),
+ lib3270_cursor_down
+ },
+
+ {
+ "left",
+ "Left",
+ NULL,
+ NULL,
+ N_( "Cursor left 1 position." ),
+ lib3270_cursor_left
+ },
+
+ {
+ "right",
+ "Right",
+ NULL,
+ NULL,
+ N_( "Cursor right 1 position." ),
+ lib3270_cursor_right
+ },
+
+ {
+ "newline",
+ "Control_R",
+ NULL,
+ NULL,
+ N_( "Cursor to first field on next line or any lines after that." ),
+ lib3270_newline
+ },
+
+ {
+ "previousword",
+ NULL,
+ NULL,
+ NULL,
+ N_( "Cursor to previous word." ),
+ lib3270_previousword
+ },
+
+ {
+ "nextword",
+ NULL,
+ NULL,
+ NULL,
+ N_( "Cursor to next unprotected word." ),
+ lib3270_nextword
+ },
+
+ //
+ // Save/load actions
+ //
+ {
+ "saveall",
+ NULL,
+ "document-save",
+ NULL,
+ N_( "Save screen." ),
+ save_all
+ },
+
+ {
+ "loadfile",
+ NULL,
+ "document-load",
+ NULL,
+ N_( "Paste file." ),
+ paste_file
+ },
+
+ //
+ // Selection actions
+ //
+ {
+ "select_all",
+ "a",
+ "edit-select-all",
+ NULL,
+ NULL,
+ lib3270_select_all
+ },
+
+ {
+ "select_field",
+ "f",
+ NULL,
+ NULL,
+ N_( "Select Field" ),
+ lib3270_select_field
+ },
+
+ {
+ "unselect",
+ NULL,
+ NULL,
+ NULL,
+ N_( "Remove selection" ),
+ lib3270_unselect
+ },
+
+ {
+ "reselect",
+ "r",
+ NULL,
+ NULL,
+ N_( "Reselect"),
+ lib3270_reselect
+ },
+
+
+ //
+ // Field actions.
+ //
+ {
+ "fieldend",
+ NULL,
+ NULL,
+ NULL,
+ N_( "Move the cursor to the first blank after the last nonblank in the field." ),
+ lib3270_fieldend
+ },
+
+ {
+ "firstfield",
+ "Home",
+ "go-first",
+ NULL,
+ N_( "Move to first unprotected field on screen." ),
+ lib3270_firstfield
+ },
+
+ {
+ "nextfield",
+ "Tab",
+ "go-next",
+ NULL,
+ N_( "Tab forward to next field." ),
+ lib3270_nextfield
+ },
+
+ {
+ "previousfield",
+ "ISO_Left_Tab",
+ "go-previous",
+ NULL,
+ N_( "Tab backward to previous field." ),
+ lib3270_previousfield
+ },
+
+
+ //
+ // Erase actions.
+ //
+ {
+ "deleteword",
+ "w",
+ NULL,
+ NULL,
+ N_( "Backspaces the cursor until it hits the front of a word." ),
+ lib3270_deleteword
+ },
+
+ {
+ "deletefield",
+ "u",
+ NULL,
+ NULL,
+ N_( "Delete field" ),
+ lib3270_deletefield
+ },
+
+
+ {
+ "eraseinput",
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ lib3270_eraseinput
+ },
+
+ {
+ "eraseeof",
+ "End",
+ NULL,
+ NULL,
+ N_( "Erase End Of Field Key." ),
+ lib3270_eraseeof
+ },
+
+ {
+ "eraseeol",
+ NULL,
+ NULL,
+ NULL,
+ N_( "Erase End Of Line Key." ),
+ lib3270_eraseeol
+ },
+
+ {
+ "erase",
+ "BackSpace",
+ NULL,
+ NULL,
+ NULL,
+ lib3270_erase
+ },
+
+ //
+ // Keyboard actions
+ //
+ {
+ "enter",
+ NULL,
+ NULL,
+ NULL,
+ N_( "Send an \"Enter\" action." ),
+ lib3270_enter
+ },
+
+
+ {
+ "kybdreset",
+ "Escape",
+ NULL,
+ NULL,
+ NULL,
+ lib3270_kybdreset
+ },
+
+ {
+ "clear",
+ NULL,
+ NULL,
+ NULL,
+ N_( "Clear AID key" ),
+ lib3270_clear
+ },
+
+
+ {
+ "delete",
+ "Delete",
+ NULL,
+ NULL,
+ NULL,
+ lib3270_delete
+ },
+
+ {
+ "dup",
+ "KP_Multiply",
+ NULL,
+ NULL,
+ N_( "DUP key" ),
+ lib3270_dup
+ },
+
+ {
+ "fieldmark",
+ NULL,
+ NULL,
+ NULL,
+ N_( "FM key" ),
+ lib3270_fieldmark
+ },
+
+ {
+ "backspace",
+ NULL,
+ NULL,
+ NULL,
+ N_( "3270-style backspace." ),
+ lib3270_backspace
+ },
+
+ {
+ "attn",
+ "Escape",
+ NULL,
+ NULL,
+ "ATTN key, per RFC 2355. Sends IP, regardless.",
+ lib3270_attn
+ },
+
+ {
+ "break",
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ lib3270_break
+ },
+
+ {
+ "pastenext",
+ "v",
+ NULL,
+ NULL,
+ NULL,
+ lib3270_paste_next
+ },
+
+ {
+ "sysreq",
+ "Print",
+ NULL,
+ NULL,
+ NULL,
+ lib3270_sysreq
+ },
+
+ //
+ // Misc actions
+ //
+ {
+ "print",
+ "Print",
+ "document-print",
+ NULL,
+ NULL,
+ print
+ },
+
+ //
+ // Test actions
+ //
+
+ {
+ "testpattern",
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ lib3270_testpattern
+ },
+
+ {
+ "charsettable",
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ lib3270_charsettable
+ },
+
+ {
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ }
+ };
+
+ return actions;
+ }
+
diff --git a/src/core/charset.c b/src/core/charset.c
index cc0621a..abd66cc 100644
--- a/src/core/charset.c
+++ b/src/core/charset.c
@@ -35,7 +35,7 @@
*/
#include
-#include
+#include
#include
#include
#include
diff --git a/src/core/paste.c b/src/core/paste.c
index 9cc3b7a..3a098ab 100644
--- a/src/core/paste.c
+++ b/src/core/paste.c
@@ -318,7 +318,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str,
return rc;
}
-LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str)
+LIB3270_EXPORT int lib3270_paste_text(H3270 *h, const unsigned char *str)
{
int sz;
CHECK_SESSION_HANDLE(h);
@@ -356,7 +356,7 @@ LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str)
return 0;
}
-LIB3270_EXPORT int lib3270_pastenext(H3270 *hSession)
+LIB3270_EXPORT int lib3270_paste_next(H3270 *hSession)
{
char * ptr;
int rc;
@@ -372,7 +372,7 @@ LIB3270_EXPORT int lib3270_pastenext(H3270 *hSession)
ptr = hSession->paste_buffer;
hSession->paste_buffer = NULL;
- rc = lib3270_paste(hSession,(unsigned char *) ptr);
+ rc = lib3270_paste_text(hSession,(unsigned char *) ptr);
lib3270_free(ptr);
return rc;
diff --git a/src/include/X11keysym.h b/src/include/X11keysym.h
new file mode 100644
index 0000000..7c086ef
--- /dev/null
+++ b/src/include/X11keysym.h
@@ -0,0 +1,217 @@
+/*
+ * Copyright 1999 by Paul Mattes.
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * c3270, s3270 and tcl3270 are distributed in the hope that they will
+ * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE
+ * for more details.
+ */
+
+/* X11 keysyms used by c3270, s3270 and tcl3270 */
+
+#if !defined(_x11_keysym_h) /*[*/
+#define _x11_keysym_h 1
+
+/* Latin-1 Keysyms */
+#define XK_space 0x020
+#define XK_exclam 0x021
+#define XK_quotedbl 0x022
+#define XK_numbersign 0x023
+#define XK_dollar 0x024
+#define XK_percent 0x025
+#define XK_ampersand 0x026
+#define XK_apostrophe 0x027
+#define XK_quoteright 0x027
+#define XK_parenleft 0x028
+#define XK_parenright 0x029
+#define XK_asterisk 0x02a
+#define XK_plus 0x02b
+#define XK_comma 0x02c
+#define XK_minus 0x02d
+#define XK_period 0x02e
+#define XK_slash 0x02f
+#define XK_0 0x030
+#define XK_1 0x031
+#define XK_2 0x032
+#define XK_3 0x033
+#define XK_4 0x034
+#define XK_5 0x035
+#define XK_6 0x036
+#define XK_7 0x037
+#define XK_8 0x038
+#define XK_9 0x039
+#define XK_colon 0x03a
+#define XK_semicolon 0x03b
+#define XK_less 0x03c
+#define XK_equal 0x03d
+#define XK_greater 0x03e
+#define XK_question 0x03f
+#define XK_at 0x040
+#define XK_A 0x041
+#define XK_B 0x042
+#define XK_C 0x043
+#define XK_D 0x044
+#define XK_E 0x045
+#define XK_F 0x046
+#define XK_G 0x047
+#define XK_H 0x048
+#define XK_I 0x049
+#define XK_J 0x04a
+#define XK_K 0x04b
+#define XK_L 0x04c
+#define XK_M 0x04d
+#define XK_N 0x04e
+#define XK_O 0x04f
+#define XK_P 0x050
+#define XK_Q 0x051
+#define XK_R 0x052
+#define XK_S 0x053
+#define XK_T 0x054
+#define XK_U 0x055
+#define XK_V 0x056
+#define XK_W 0x057
+#define XK_X 0x058
+#define XK_Y 0x059
+#define XK_Z 0x05a
+#define XK_bracketleft 0x05b
+#define XK_backslash 0x05c
+#define XK_bracketright 0x05d
+#define XK_asciicircum 0x05e
+#define XK_underscore 0x05f
+#define XK_grave 0x060
+#define XK_quoteleft 0x060
+#define XK_a 0x061
+#define XK_b 0x062
+#define XK_c 0x063
+#define XK_d 0x064
+#define XK_e 0x065
+#define XK_f 0x066
+#define XK_g 0x067
+#define XK_h 0x068
+#define XK_i 0x069
+#define XK_j 0x06a
+#define XK_k 0x06b
+#define XK_l 0x06c
+#define XK_m 0x06d
+#define XK_n 0x06e
+#define XK_o 0x06f
+#define XK_p 0x070
+#define XK_q 0x071
+#define XK_r 0x072
+#define XK_s 0x073
+#define XK_t 0x074
+#define XK_u 0x075
+#define XK_v 0x076
+#define XK_w 0x077
+#define XK_x 0x078
+#define XK_y 0x079
+#define XK_z 0x07a
+#define XK_braceleft 0x07b
+#define XK_bar 0x07c
+#define XK_braceright 0x07d
+#define XK_asciitilde 0x07e
+#define XK_nobreakspace 0x0a0
+#define XK_exclamdown 0x0a1
+#define XK_cent 0x0a2
+#define XK_sterling 0x0a3
+#define XK_currency 0x0a4
+#define XK_yen 0x0a5
+#define XK_brokenbar 0x0a6
+#define XK_section 0x0a7
+#define XK_diaeresis 0x0a8
+#define XK_copyright 0x0a9
+#define XK_ordfeminine 0x0aa
+#define XK_guillemotleft 0x0ab
+#define XK_notsign 0x0ac
+#define XK_hyphen 0x0ad
+#define XK_registered 0x0ae
+#define XK_macron 0x0af
+#define XK_degree 0x0b0
+#define XK_plusminus 0x0b1
+#define XK_twosuperior 0x0b2
+#define XK_threesuperior 0x0b3
+#define XK_acute 0x0b4
+#define XK_mu 0x0b5
+#define XK_paragraph 0x0b6
+#define XK_periodcentered 0x0b7
+#define XK_cedilla 0x0b8
+#define XK_onesuperior 0x0b9
+#define XK_masculine 0x0ba
+#define XK_guillemotright 0x0bb
+#define XK_onequarter 0x0bc
+#define XK_onehalf 0x0bd
+#define XK_threequarters 0x0be
+#define XK_questiondown 0x0bf
+#define XK_Agrave 0x0c0
+#define XK_Aacute 0x0c1
+#define XK_Acircumflex 0x0c2
+#define XK_Atilde 0x0c3
+#define XK_Adiaeresis 0x0c4
+#define XK_Aring 0x0c5
+#define XK_AE 0x0c6
+#define XK_Ccedilla 0x0c7
+#define XK_Egrave 0x0c8
+#define XK_Eacute 0x0c9
+#define XK_Ecircumflex 0x0ca
+#define XK_Ediaeresis 0x0cb
+#define XK_Igrave 0x0cc
+#define XK_Iacute 0x0cd
+#define XK_Icircumflex 0x0ce
+#define XK_Idiaeresis 0x0cf
+#define XK_ETH 0x0d0
+#define XK_Eth 0x0d0
+#define XK_Ntilde 0x0d1
+#define XK_Ograve 0x0d2
+#define XK_Oacute 0x0d3
+#define XK_Ocircumflex 0x0d4
+#define XK_Otilde 0x0d5
+#define XK_Odiaeresis 0x0d6
+#define XK_multiply 0x0d7
+#define XK_Ooblique 0x0d8
+#define XK_Ugrave 0x0d9
+#define XK_Uacute 0x0da
+#define XK_Ucircumflex 0x0db
+#define XK_Udiaeresis 0x0dc
+#define XK_Yacute 0x0dd
+#define XK_THORN 0x0de
+#define XK_Thorn 0x0de
+#define XK_ssharp 0x0df
+#define XK_agrave 0x0e0
+#define XK_aacute 0x0e1
+#define XK_acircumflex 0x0e2
+#define XK_atilde 0x0e3
+#define XK_adiaeresis 0x0e4
+#define XK_aring 0x0e5
+#define XK_ae 0x0e6
+#define XK_ccedilla 0x0e7
+#define XK_egrave 0x0e8
+#define XK_eacute 0x0e9
+#define XK_ecircumflex 0x0ea
+#define XK_ediaeresis 0x0eb
+#define XK_igrave 0x0ec
+#define XK_iacute 0x0ed
+#define XK_icircumflex 0x0ee
+#define XK_idiaeresis 0x0ef
+#define XK_eth 0x0f0
+#define XK_ntilde 0x0f1
+#define XK_ograve 0x0f2
+#define XK_oacute 0x0f3
+#define XK_ocircumflex 0x0f4
+#define XK_otilde 0x0f5
+#define XK_odiaeresis 0x0f6
+#define XK_division 0x0f7
+#define XK_oslash 0x0f8
+#define XK_ugrave 0x0f9
+#define XK_uacute 0x0fa
+#define XK_ucircumflex 0x0fb
+#define XK_udiaeresis 0x0fc
+#define XK_yacute 0x0fd
+#define XK_thorn 0x0fe
+#define XK_ydiaeresis 0x0ff
+
+#endif /*]*/
diff --git a/src/include/lib3270/X11keysym.h b/src/include/lib3270/X11keysym.h
deleted file mode 100644
index 7c086ef..0000000
--- a/src/include/lib3270/X11keysym.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Copyright 1999 by Paul Mattes.
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation.
- *
- * c3270, s3270 and tcl3270 are distributed in the hope that they will
- * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE
- * for more details.
- */
-
-/* X11 keysyms used by c3270, s3270 and tcl3270 */
-
-#if !defined(_x11_keysym_h) /*[*/
-#define _x11_keysym_h 1
-
-/* Latin-1 Keysyms */
-#define XK_space 0x020
-#define XK_exclam 0x021
-#define XK_quotedbl 0x022
-#define XK_numbersign 0x023
-#define XK_dollar 0x024
-#define XK_percent 0x025
-#define XK_ampersand 0x026
-#define XK_apostrophe 0x027
-#define XK_quoteright 0x027
-#define XK_parenleft 0x028
-#define XK_parenright 0x029
-#define XK_asterisk 0x02a
-#define XK_plus 0x02b
-#define XK_comma 0x02c
-#define XK_minus 0x02d
-#define XK_period 0x02e
-#define XK_slash 0x02f
-#define XK_0 0x030
-#define XK_1 0x031
-#define XK_2 0x032
-#define XK_3 0x033
-#define XK_4 0x034
-#define XK_5 0x035
-#define XK_6 0x036
-#define XK_7 0x037
-#define XK_8 0x038
-#define XK_9 0x039
-#define XK_colon 0x03a
-#define XK_semicolon 0x03b
-#define XK_less 0x03c
-#define XK_equal 0x03d
-#define XK_greater 0x03e
-#define XK_question 0x03f
-#define XK_at 0x040
-#define XK_A 0x041
-#define XK_B 0x042
-#define XK_C 0x043
-#define XK_D 0x044
-#define XK_E 0x045
-#define XK_F 0x046
-#define XK_G 0x047
-#define XK_H 0x048
-#define XK_I 0x049
-#define XK_J 0x04a
-#define XK_K 0x04b
-#define XK_L 0x04c
-#define XK_M 0x04d
-#define XK_N 0x04e
-#define XK_O 0x04f
-#define XK_P 0x050
-#define XK_Q 0x051
-#define XK_R 0x052
-#define XK_S 0x053
-#define XK_T 0x054
-#define XK_U 0x055
-#define XK_V 0x056
-#define XK_W 0x057
-#define XK_X 0x058
-#define XK_Y 0x059
-#define XK_Z 0x05a
-#define XK_bracketleft 0x05b
-#define XK_backslash 0x05c
-#define XK_bracketright 0x05d
-#define XK_asciicircum 0x05e
-#define XK_underscore 0x05f
-#define XK_grave 0x060
-#define XK_quoteleft 0x060
-#define XK_a 0x061
-#define XK_b 0x062
-#define XK_c 0x063
-#define XK_d 0x064
-#define XK_e 0x065
-#define XK_f 0x066
-#define XK_g 0x067
-#define XK_h 0x068
-#define XK_i 0x069
-#define XK_j 0x06a
-#define XK_k 0x06b
-#define XK_l 0x06c
-#define XK_m 0x06d
-#define XK_n 0x06e
-#define XK_o 0x06f
-#define XK_p 0x070
-#define XK_q 0x071
-#define XK_r 0x072
-#define XK_s 0x073
-#define XK_t 0x074
-#define XK_u 0x075
-#define XK_v 0x076
-#define XK_w 0x077
-#define XK_x 0x078
-#define XK_y 0x079
-#define XK_z 0x07a
-#define XK_braceleft 0x07b
-#define XK_bar 0x07c
-#define XK_braceright 0x07d
-#define XK_asciitilde 0x07e
-#define XK_nobreakspace 0x0a0
-#define XK_exclamdown 0x0a1
-#define XK_cent 0x0a2
-#define XK_sterling 0x0a3
-#define XK_currency 0x0a4
-#define XK_yen 0x0a5
-#define XK_brokenbar 0x0a6
-#define XK_section 0x0a7
-#define XK_diaeresis 0x0a8
-#define XK_copyright 0x0a9
-#define XK_ordfeminine 0x0aa
-#define XK_guillemotleft 0x0ab
-#define XK_notsign 0x0ac
-#define XK_hyphen 0x0ad
-#define XK_registered 0x0ae
-#define XK_macron 0x0af
-#define XK_degree 0x0b0
-#define XK_plusminus 0x0b1
-#define XK_twosuperior 0x0b2
-#define XK_threesuperior 0x0b3
-#define XK_acute 0x0b4
-#define XK_mu 0x0b5
-#define XK_paragraph 0x0b6
-#define XK_periodcentered 0x0b7
-#define XK_cedilla 0x0b8
-#define XK_onesuperior 0x0b9
-#define XK_masculine 0x0ba
-#define XK_guillemotright 0x0bb
-#define XK_onequarter 0x0bc
-#define XK_onehalf 0x0bd
-#define XK_threequarters 0x0be
-#define XK_questiondown 0x0bf
-#define XK_Agrave 0x0c0
-#define XK_Aacute 0x0c1
-#define XK_Acircumflex 0x0c2
-#define XK_Atilde 0x0c3
-#define XK_Adiaeresis 0x0c4
-#define XK_Aring 0x0c5
-#define XK_AE 0x0c6
-#define XK_Ccedilla 0x0c7
-#define XK_Egrave 0x0c8
-#define XK_Eacute 0x0c9
-#define XK_Ecircumflex 0x0ca
-#define XK_Ediaeresis 0x0cb
-#define XK_Igrave 0x0cc
-#define XK_Iacute 0x0cd
-#define XK_Icircumflex 0x0ce
-#define XK_Idiaeresis 0x0cf
-#define XK_ETH 0x0d0
-#define XK_Eth 0x0d0
-#define XK_Ntilde 0x0d1
-#define XK_Ograve 0x0d2
-#define XK_Oacute 0x0d3
-#define XK_Ocircumflex 0x0d4
-#define XK_Otilde 0x0d5
-#define XK_Odiaeresis 0x0d6
-#define XK_multiply 0x0d7
-#define XK_Ooblique 0x0d8
-#define XK_Ugrave 0x0d9
-#define XK_Uacute 0x0da
-#define XK_Ucircumflex 0x0db
-#define XK_Udiaeresis 0x0dc
-#define XK_Yacute 0x0dd
-#define XK_THORN 0x0de
-#define XK_Thorn 0x0de
-#define XK_ssharp 0x0df
-#define XK_agrave 0x0e0
-#define XK_aacute 0x0e1
-#define XK_acircumflex 0x0e2
-#define XK_atilde 0x0e3
-#define XK_adiaeresis 0x0e4
-#define XK_aring 0x0e5
-#define XK_ae 0x0e6
-#define XK_ccedilla 0x0e7
-#define XK_egrave 0x0e8
-#define XK_eacute 0x0e9
-#define XK_ecircumflex 0x0ea
-#define XK_ediaeresis 0x0eb
-#define XK_igrave 0x0ec
-#define XK_iacute 0x0ed
-#define XK_icircumflex 0x0ee
-#define XK_idiaeresis 0x0ef
-#define XK_eth 0x0f0
-#define XK_ntilde 0x0f1
-#define XK_ograve 0x0f2
-#define XK_oacute 0x0f3
-#define XK_ocircumflex 0x0f4
-#define XK_otilde 0x0f5
-#define XK_odiaeresis 0x0f6
-#define XK_division 0x0f7
-#define XK_oslash 0x0f8
-#define XK_ugrave 0x0f9
-#define XK_uacute 0x0fa
-#define XK_ucircumflex 0x0fb
-#define XK_udiaeresis 0x0fc
-#define XK_yacute 0x0fd
-#define XK_thorn 0x0fe
-#define XK_ydiaeresis 0x0ff
-
-#endif /*]*/
diff --git a/src/include/lib3270/action_table.h b/src/include/lib3270/action_table.h
index 7fb6097..d303c32 100644
--- a/src/include/lib3270/action_table.h
+++ b/src/include/lib3270/action_table.h
@@ -29,6 +29,8 @@
*
*/
+ #error Deprecated
+
/*
* Action call table.
*
diff --git a/src/include/lib3270/actions.h b/src/include/lib3270/actions.h
new file mode 100644
index 0000000..414d31a
--- /dev/null
+++ b/src/include/lib3270/actions.h
@@ -0,0 +1,467 @@
+/*
+ * Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
+ * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
+ * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
+ *
+ * Copyright (C) <2008>
+ *
+ * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
+ * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
+ * Free Software Foundation.
+ *
+ * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
+ * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
+ * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
+ * obter mais detalhes.
+ *
+ * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
+ * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
+ * St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Contatos:
+ *
+ * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
+ * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
+ *
+ */
+
+#ifndef LIB3270_ACTIONS_H_INCLUDED
+
+ #define LIB3270_ACTIONS_H_INCLUDED 1
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+ typedef struct _lib3270_action_entry
+ {
+ const char *name; ///< @brief Action name.
+ const char *key; ///< @brief Default key (or NULL if no default).
+ const char *icon; ///< @brief Icon name (from https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html)
+ const char *label; ///< @brief Label (or NULL).
+ const char *tooltip; ///< @brief Description (or NULL).
+ int (*call)(H3270 *hSession); ///< @brief lib3270 associated method.
+ } LIB3270_ACTION_ENTRY;
+
+/**
+ *
+ * @brief Send an "Enter" action.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_enter(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ * @param keycode Number of the pfkey to activate.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_pfkey(H3270 *hSession, int keycode);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ * @param keycode Number of the pakey to activate.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_pakey(H3270 *hSession, int keycode);
+
+/**
+ *
+ * @brief Cursor up 1 position.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_cursor_up(H3270 *hSession);
+
+/**
+ *
+ * @brief Cursor down 1 position.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_cursor_down(H3270 *hSession);
+
+/**
+ *
+ * @brief Cursor left 1 position.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_cursor_left(H3270 *hSession);
+
+/**
+ *
+ * @brief Cursor right 1 position.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_cursor_right(H3270 *hSession);
+
+/**
+ *
+ * @brief Cursor to first field on next line or any lines after that.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_newline(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_kybdreset(H3270 *hSession);
+
+/**
+ *
+ * @brief Clear AID key
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_clear(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_eraseinput(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_select_field(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_select_all(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_unselect(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_reselect(H3270 *hSession);
+
+/**
+ *
+ * @brief Erase End Of Field Key.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_eraseeof(H3270 *hSession);
+
+/**
+ *
+ * @brief Erase End Of Line Key.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_eraseeol(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_erase(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_delete(H3270 *hSession);
+
+/**
+ *
+ * @brief DUP key
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_dup(H3270 *hSession);
+
+/**
+ *
+ * @brief FM key
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_fieldmark(H3270 *hSession);
+
+/**
+ *
+ * @brief 3270-style backspace.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_backspace(H3270 *hSession);
+
+/**
+ *
+ * @brief Cursor to previous word.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_previousword(H3270 *hSession);
+
+/**
+ *
+ * @brief Cursor to next unprotected word.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_nextword(H3270 *hSession);
+
+/**
+ *
+ * @brief Move the cursor to the first blank after the last nonblank in the field.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_fieldend(H3270 *hSession);
+
+/**
+ *
+ * @brief Move to first unprotected field on screen.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_firstfield(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_nextfield(H3270 *hSession);
+
+/**
+ *
+ * @brief Tab backward to previous field.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_previousfield(H3270 *hSession);
+
+/**
+ *
+ * @brief ATTN key, per RFC 2355. Sends IP, regardless.
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_attn(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_break(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_paste_next(H3270 *hSession);
+
+/**
+ *
+ * @brief Backspaces the cursor until it hits the front of a word (does a ^W).
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_deleteword(H3270 *hSession);
+
+/**
+ *
+ * @brief Delete field key (does a ^U).
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_deletefield(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_sysreq(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_testpattern(H3270 *hSession);
+
+/**
+ *
+ * @brief
+ *
+ * @param hSession TN3270 Session handle.
+ *
+ * @return 0 if Ok, non zero if not (sets errno)
+ *
+ */
+ LIB3270_EXPORT int lib3270_charsettable(H3270 *hSession);
+
+
+/**
+ *
+ * @brief Get lib3270 action table.
+ *
+ * @return Array with all the supported actions.
+ */
+ LIB3270_EXPORT const LIB3270_ACTION_ENTRY * lib3270_get_action_table();
+
+/**
+ *
+ * @brief Call lib3270 action by name.
+ *
+ * @param hSession TN3270 Session handle.
+ * @param name Name of the action to call.
+ *
+ */
+ LIB3270_EXPORT int lib3270_action(H3270 *hSession, const char *name);
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif // LIB3270_ACTIONS_H_INCLUDED
diff --git a/src/include/lib3270/selection.h b/src/include/lib3270/selection.h
index e79dd32..b45d9d3 100644
--- a/src/include/lib3270/selection.h
+++ b/src/include/lib3270/selection.h
@@ -103,24 +103,24 @@
* @param h Session handle.
* @param str String to paste.
*
- * @see lib3270_pastenext.
+ * @see lib3270_paste_next.
*
* @return Non 0 if there's more to paste with lib3270_pastenext.
*
*/
- LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str);
+ LIB3270_EXPORT int lib3270_paste_text(H3270 *h, const unsigned char *str);
/**
* @brief Paste remaining string.
*
* @param h Session handle.
*
- * @see lib3270_paste.
+ * @see lib3270_paste_text.
*
* @return Non 0 if there's more to paste.
*
*/
- LIB3270_EXPORT int lib3270_pastenext(H3270 *h);
+ LIB3270_EXPORT int lib3270_paste_next(H3270 *h);
/**
* @brief Move selected box 1 char in the selected direction.
--
libgit2 0.21.2