Commit 5e9d1f19bba63159a99e8dc333a01c4ecd211c6c
1 parent
062033af
Exists in
master
and in
3 other branches
Small adjustments in the library.
Showing
5 changed files
with
66 additions
and
35 deletions
Show diff stats
src/include/3270ds.h
1 | 1 | /* |
2 | - * Modifications Copyright 1993, 1994, 1995, 1999, 2000, 2002, 2003, 2004, | |
3 | - * 2005 by Paul Mattes. | |
4 | - * RPQNAMES modifications Copyright 2004 by Don Russell. | |
5 | - * Original X11 Port Copyright 1990 by Jeff Sparkes. | |
6 | - * Permission to use, copy, modify, and distribute this software and its | |
7 | - * documentation for any purpose and without fee is hereby granted, | |
8 | - * provided that the above copyright notice appear in all copies and that | |
9 | - * both that copyright notice and this permission notice appear in | |
10 | - * supporting documentation. | |
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. | |
11 | 5 | * |
12 | - * Copyright 1989 by Georgia Tech Research Corporation, Atlanta, GA 30332. | |
13 | - * All Rights Reserved. GTRC hereby grants public use of this software. | |
14 | - * Derivative works based on this software must incorporate this copyright | |
15 | - * notice. | |
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 | + * Este programa está nomeado como lib3270.h 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) | |
16 | 27 | * |
17 | - * x3270, c3270, s3270, tcl3270 and pr3287 are distributed in the hope that | |
18 | - * they will be useful, but WITHOUT ANY WARRANTY; without even the implied | |
19 | - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | - * file LICENSE for more details. | |
21 | 28 | */ |
22 | 29 | |
23 | 30 | /** | ... | ... |
src/include/lib3270.h
... | ... | @@ -279,18 +279,34 @@ |
279 | 279 | */ |
280 | 280 | typedef enum lib3270_cstate |
281 | 281 | { |
282 | - LIB3270_NOT_CONNECTED, /**< @brief no socket, disconnected */ | |
283 | - LIB3270_RESOLVING, /**< @brief resolving hostname */ | |
284 | - LIB3270_PENDING, /**< @brief connection pending */ | |
285 | - LIB3270_CONNECTED_INITIAL, /**< @brief connected, no mode yet */ | |
286 | - LIB3270_CONNECTED_ANSI, /**< @brief connected in NVT ANSI mode */ | |
287 | - LIB3270_CONNECTED_3270, /**< @brief connected in old-style 3270 mode */ | |
288 | - LIB3270_CONNECTED_INITIAL_E, /**< @brief connected in TN3270E mode, unnegotiated */ | |
289 | - LIB3270_CONNECTED_NVT, /**< @brief connected in TN3270E mode, NVT mode */ | |
290 | - LIB3270_CONNECTED_SSCP, /**< @brief connected in TN3270E mode, SSCP-LU mode */ | |
291 | - LIB3270_CONNECTED_TN3270E /**< @brief connected in TN3270E mode, 3270 mode */ | |
282 | + LIB3270_NOT_CONNECTED, ///< @brief no socket, disconnected | |
283 | + LIB3270_RESOLVING, ///< @brief resolving hostname | |
284 | + LIB3270_PENDING, ///< @brief connection pending | |
285 | + LIB3270_CONNECTED_INITIAL, ///< @brief connected, no mode yet | |
286 | + LIB3270_CONNECTED_ANSI, ///< @brief connected in NVT ANSI mode | |
287 | + LIB3270_CONNECTED_3270, ///< @brief connected in old-style 3270 mode | |
288 | + LIB3270_CONNECTED_INITIAL_E, ///< @brief connected in TN3270E mode, unnegotiated | |
289 | + LIB3270_CONNECTED_NVT, ///< @brief connected in TN3270E mode, NVT mode | |
290 | + LIB3270_CONNECTED_SSCP, ///< @brief connected in TN3270E mode, SSCP-LU mode | |
291 | + LIB3270_CONNECTED_TN3270E ///< @brief connected in TN3270E mode, 3270 mode | |
292 | 292 | } LIB3270_CSTATE; |
293 | 293 | |
294 | + /** | |
295 | + * @brief Field attributes. | |
296 | + */ | |
297 | + typedef enum lib3270_field_attribute | |
298 | + { | |
299 | + LIB3270_FIELD_ATTRIBUTE_PRINTABLE = 0xc0, ///< @brief these make the character "printable" | |
300 | + LIB3270_FIELD_ATTRIBUTE_PROTECT = 0x20, ///< @brief unprotected (0) / protected (1) | |
301 | + LIB3270_FIELD_ATTRIBUTE_NUMERIC = 0x10, ///< @brief alphanumeric (0) / numeric (1) | |
302 | + LIB3270_FIELD_ATTRIBUTE_INTENSITY = 0x0c, ///< @brief display/selector pen detectable: | |
303 | + LIB3270_FIELD_ATTRIBUTE_INT_NORM_NSEL = 0x00, ///< @brief 00 normal, non-detect | |
304 | + LIB3270_FIELD_ATTRIBUTE_INT_NORM_SEL = 0x04, ///< @brief 01 normal, detectable | |
305 | + LIB3270_FIELD_ATTRIBUTE_INT_HIGH_SEL = 0x08, ///< @brief 10 intensified, detectable | |
306 | + LIB3270_FIELD_ATTRIBUTE_INT_ZERO_NSEL = 0x0c, ///< @brief 11 nondisplay, non-detect | |
307 | + LIB3270_FIELD_ATTRIBUTE_RESERVED = 0x02, ///< @brief must be 0 | |
308 | + LIB3270_FIELD_ATTRIBUTE_MODIFIED = 0x01 ///< @brief modified (1) | |
309 | + } LIB3270_FIELD_ATTRIBUTE; | |
294 | 310 | |
295 | 311 | /** |
296 | 312 | * @brief Host options |
... | ... | @@ -1149,7 +1165,15 @@ |
1149 | 1165 | */ |
1150 | 1166 | LIB3270_EXPORT int lib3270_field_addr(H3270 *hSession, int baddr); |
1151 | 1167 | |
1152 | - LIB3270_EXPORT int lib3270_field_attribute(H3270 *hSession, int baddr); | |
1168 | + /** | |
1169 | + * @brief Get field attribute for a given buffer address. | |
1170 | + * | |
1171 | + * @param hSession Session handle. | |
1172 | + * @param addr Buffer address of the field. | |
1173 | + * | |
1174 | + * @return field attribute or -1 when failed (sets errno). | |
1175 | + */ | |
1176 | + LIB3270_EXPORT int lib3270_get_field_attribute(H3270 *hSession, int baddr); | |
1153 | 1177 | |
1154 | 1178 | /** |
1155 | 1179 | * @brief Get the length of the field at given buffer address. | ... | ... |
src/include/lib3270/selection.h
... | ... | @@ -43,9 +43,9 @@ |
43 | 43 | * |
44 | 44 | */ |
45 | 45 | typedef struct _lib3270_selection_element { |
46 | - unsigned char chr; ///< @brief Element character | |
47 | - unsigned short flags; ///< @brief Element colors & visual state. | |
48 | - unsigned char attributes; ///< @brief 3270 attributes. | |
46 | + unsigned char chr; ///< @brief Element character. | |
47 | + unsigned short flags; ///< @brief Element colors & visual state. @see LIB3270_ATTR | |
48 | + unsigned char field_attributes; ///< @brief Field attribute. @see LIB3270_FIELD_ATTRIBUTE | |
49 | 49 | } lib3270_selection_element; |
50 | 50 | |
51 | 51 | /** | ... | ... |
src/lib3270/ctlr.c
... | ... | @@ -514,7 +514,7 @@ LIB3270_EXPORT int lib3270_field_addr(H3270 *hSession, int baddr) |
514 | 514 | return -1; |
515 | 515 | } |
516 | 516 | |
517 | -LIB3270_EXPORT int lib3270_field_attribute(H3270 *hSession, int baddr) | |
517 | +LIB3270_EXPORT int lib3270_get_field_attribute(H3270 *hSession, int baddr) | |
518 | 518 | { |
519 | 519 | int sbaddr; |
520 | 520 | ... | ... |
src/lib3270/selection/get.c
... | ... | @@ -182,9 +182,9 @@ LIB3270_EXPORT lib3270_selection * lib3270_get_selection(H3270 *hSession, int cu |
182 | 182 | fa = hSession->ea_buf[baddr].fa; |
183 | 183 | } |
184 | 184 | |
185 | - selection->contents[dstaddr].chr = (hSession->text[baddr].chr ? hSession->text[baddr].chr : ' '); | |
186 | - selection->contents[dstaddr].flags = hSession->text[baddr].attr; | |
187 | - selection->contents[dstaddr].attributes = fa; | |
185 | + selection->contents[dstaddr].chr = (hSession->text[baddr].chr ? hSession->text[baddr].chr : ' '); | |
186 | + selection->contents[dstaddr].flags = hSession->text[baddr].attr; | |
187 | + selection->contents[dstaddr].field_attributes = fa; | |
188 | 188 | |
189 | 189 | if(cut && !FA_IS_PROTECTED(fa)) { |
190 | 190 | clear_chr(hSession,baddr); | ... | ... |