Commit 9e14881bc2555401514a0b787ea26da2edbdf630

Authored by Perry Werneck
1 parent dd36c196

Updating documentation, adjusting return codes.

Makefile.in
... ... @@ -64,6 +64,7 @@ GENMARSHAL=@GENMARSHAL@
64 64 CONVERT=@CONVERT@
65 65 OPTIPNG=@OPTIPNG@
66 66 ZIP=@ZIP@
  67 +DOXYGEN=@DOXYGEN@
67 68  
68 69 #---[ Paths ]----------------------------------------------------------------------------
69 70  
... ... @@ -351,6 +352,8 @@ $(POTDIR)/lib3270.pot: \
351 352 locale: \
352 353 $(POTDIR)/lib3270.pot
353 354  
  355 +doc:
  356 + @$(DOXYGEN) ./doxygen/doxyfile
354 357  
355 358 #---[ Debug Targets ]--------------------------------------------------------------------
356 359  
... ...
src/core/keyboard/kybd.c
... ... @@ -940,6 +940,9 @@ LIB3270_EXPORT int lib3270_input_string(H3270 *hSession, const unsigned char *st
940 940 if(length < 0)
941 941 length = strlen((char *) str);
942 942  
  943 + if(hSession->kybdlock)
  944 + return (errno = EPERM);
  945 +
943 946 int pos;
944 947 for(pos = 0; pos < length && str[pos] && !rc; pos++)
945 948 rc = key_ACharacter(hSession,(str[pos] & 0xff), KT_STD, IA_KEY, NULL);
... ...
src/core/paste.c
... ... @@ -248,15 +248,14 @@ LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsi
248 248 row--;
249 249 col--;
250 250  
251   - if(row <= hSession->rows && col <= hSession->cols)
252   - {
253   - hSession->cbk.suspend(hSession);
  251 + if(row > hSession->rows || col > hSession->cols)
  252 + return - (errno = EOVERFLOW);
254 253  
255   - hSession->cursor_addr = (row * hSession->cols) + col;
256   - rc += set_string(hSession, str, length);
  254 + hSession->cbk.suspend(hSession);
257 255  
258   - hSession->cbk.resume(hSession);
259   - }
  256 + hSession->cursor_addr = (row * hSession->cols) + col;
  257 + rc = set_string(hSession, str, length);
  258 + hSession->cbk.resume(hSession);
260 259  
261 260 trace("%s rc=%d",__FUNCTION__,rc);
262 261  
... ... @@ -279,8 +278,12 @@ LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, con
279 278 if(hSession->kybdlock)
280 279 return - (errno = EPERM);
281 280  
282   - if(baddr >= 0 && lib3270_set_cursor_address(hSession,baddr) < 0)
283   - return -1;
  281 + if(baddr >= 0)
  282 + {
  283 + rc = lib3270_set_cursor_address(hSession,baddr);
  284 + if(rc < 0)
  285 + return rc;
  286 + }
284 287  
285 288 if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED))
286 289 lib3270_unselect(hSession);
... ... @@ -306,6 +309,9 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str,
306 309 if(hSession->kybdlock)
307 310 return - (errno = EPERM);
308 311  
  312 + if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED))
  313 + lib3270_unselect(hSession);
  314 +
309 315 hSession->cbk.suspend(hSession);
310 316 rc = set_string(hSession, str, length);
311 317 hSession->cbk.resume(hSession);
... ...
src/core/screen.c
... ... @@ -431,27 +431,12 @@ LIB3270_EXPORT int lib3270_translate_to_address(H3270 *hSession, unsigned int ro
431 431 col--;
432 432  
433 433 if(row > hSession->rows || col > hSession->cols)
434   - {
435   - // Invalid coordinates
436   - errno = EINVAL;
437   - return -1;
438   - }
  434 + return - (errno = EOVERFLOW);
439 435  
440 436 return (row * hSession->cols) + col;
441 437 }
442 438  
443 439  
444   -/**
445   - * @brief Move cursor to a new position.
446   - *
447   - * @see lib3270_set_cursor_position
448   - *
449   - * @param hSession TN3270 session.
450   - * @param baddr New cursor position.
451   - *
452   - * @return Old cursor address or -1 in case of error (sets errno).
453   - *
454   - */
455 440 LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *hSession, unsigned int baddr)
456 441 {
457 442 FAIL_IF_NOT_ONLINE(hSession);
... ... @@ -459,10 +444,7 @@ LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *hSession, unsigned int badd
459 444 trace("%s(%d)",__FUNCTION__,baddr);
460 445  
461 446 if(baddr > (hSession->rows * hSession->cols))
462   - {
463   - errno = EINVAL;
464   - return -1;
465   - }
  447 + return - (errno = EOVERFLOW);
466 448  
467 449 if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED))
468 450 lib3270_unselect(hSession);
... ... @@ -470,46 +452,13 @@ LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *hSession, unsigned int badd
470 452 return cursor_move(hSession,baddr);
471 453 }
472 454  
473   -/**
474   - * @brief Move cursor to a new position.
475   - *
476   - * @see lib3270_set_cursor_position
477   - *
478   - * @param hSession TN3270 session.
479   - * @param row New cursor row.
480   - * @parma col New cursor column.
481   - *
482   - * @return Old cursor address or -1 in case of error (sets errno).
483   - *
484   - */
485 455 LIB3270_EXPORT int lib3270_set_cursor_position(H3270 *hSession, unsigned int row, unsigned int col)
486 456 {
487   - return lib3270_set_cursor_address(hSession,lib3270_translate_to_address(hSession, row, col));
488   -
489   - /*
490   - int baddr = -1;
491   -
492   - CHECK_SESSION_HANDLE(h);
493   -
494   - if(h->selected && !lib3270_get_toggle(h,LIB3270_TOGGLE_KEEP_SELECTED))
495   - lib3270_unselect(h);
496   -
497   - row--;
498   - col--;
499   -
500   - if(row >= 0 && col >= 0 && row <= h->rows && col <= h->cols)
501   - {
502   - baddr = (row * h->cols) + col;
  457 + int baddr = lib3270_translate_to_address(hSession, row, col);
  458 + if(baddr < 0)
  459 + return -errno;
503 460  
504   - if(baddr != h->cursor_addr)
505   - {
506   - h->cursor_addr = baddr;
507   - h->cbk.update_cursor(h,(unsigned short) row,(unsigned short) col,h->text[baddr].chr,h->text[baddr].attr);
508   - }
509   - }
510   -
511   - return baddr;
512   - */
  461 + return lib3270_set_cursor_address(hSession,baddr);
513 462 }
514 463  
515 464 /**
... ... @@ -527,10 +476,7 @@ int cursor_move(H3270 *hSession, int baddr)
527 476 {
528 477 int ret = hSession->cursor_addr;
529 478  
530   - if(ret == baddr)
531   - return ret;
532   -
533   - if(baddr >= 0)
  479 + if(ret != baddr && baddr >= 0)
534 480 {
535 481 hSession->cursor_addr = baddr;
536 482 hSession->cbk.update_cursor(
... ... @@ -545,15 +491,13 @@ int cursor_move(H3270 *hSession, int baddr)
545 491 return ret;
546 492 }
547 493  
548   -/* Status line stuff. */
549   -
  494 +/**
  495 + * @brief Status line stuff.
  496 + */
550 497 void set_status(H3270 *session, LIB3270_FLAG id, Boolean on)
551 498 {
552   - CHECK_SESSION_HANDLE(session);
553   -
554 499 session->oia.flag[id] = (on != 0);
555 500 session->cbk.update_oia(session,id,session->oia.flag[id]);
556   -
557 501 }
558 502  
559 503 void status_ctlr_done(H3270 *session)
... ...
src/include/lib3270.h
... ... @@ -685,7 +685,9 @@
685 685 * @param row Row inside the screen.
686 686 * @param col Col inside the screen.
687 687 *
688   - * @return Current address or -1 if invalid (sets errno).
  688 + * @return Current address or negative if invalid (sets errno).
  689 + *
  690 + * @retval -EOVERFLOW The coordinates are out of the screen.
689 691 *
690 692 */
691 693 LIB3270_EXPORT int lib3270_translate_to_address(H3270 *hSession, unsigned int row, unsigned int col);
... ... @@ -710,13 +712,19 @@
710 712 /**
711 713 * @brief Set string at defined row/column.
712 714 *
  715 + * Set the string in the defined row/column; returns number of processed caracter if succeeds or negative value if not.
  716 + *
713 717 * @param hSession Session handle.
714 718 * @param row Row for the first character.
715 719 * @param col Col for the first character.
716 720 * @param str String to set.
717 721 * @param length Length of the string (-1 for auto-detect).
718 722 *
719   - * @return Negative if error or number of processed characters.
  723 + * @return Negative if error or number (sets errno) of processed characters.
  724 + *
  725 + * @retval -EPERM The keyboard is locked.
  726 + * @retval -EOVERFLOW The row or col is bigger than the screen size.
  727 + * @retval -ENOTCONN Disconnected from host.
720 728 *
721 729 */
722 730 LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsigned int col, const unsigned char *str, int length);
... ... @@ -731,6 +739,10 @@
731 739 *
732 740 * @return Negative if error or number of processed characters.
733 741 *
  742 + * @retval -EPERM The keyboard is locked.
  743 + * @retval -EOVERFLOW The address is beyond the screen length.
  744 + * @retval -ENOTCONN Disconnected from host.
  745 + *
734 746 */
735 747 LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, const unsigned char *str, int length);
736 748  
... ... @@ -741,7 +753,10 @@
741 753 * @param str Text to insert.
742 754 * @param length Length of the string (-1 for auto-detect).
743 755 *
744   - * @return 0 if success, non zero if failed.
  756 + * @return 0 if success, non zero if failed (sets errno).
  757 + *
  758 + * @retval EPERM The keyboard is locked.
  759 + * @retval ENOTCONN Disconnected from host.
745 760 *
746 761 */
747 762 LIB3270_EXPORT int lib3270_input_string(H3270 *hSession, const unsigned char *str, int length);
... ... @@ -754,7 +769,11 @@
754 769 * @param hSession TN3270 session.
755 770 * @param baddr New cursor position.
756 771 *
757   - * @return Old cursor address or -1 in case of error (sets errno).
  772 + * @return Old cursor address or negative in case of error (sets errno).
  773 + *
  774 + * @retval -EOVERFLOW The address is beyond the screen length.
  775 + * @retval -ENOTCONN Disconnected from host.
  776 + *
758 777 */
759 778 LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *hSession, unsigned int baddr);
760 779  
... ... @@ -765,8 +784,10 @@
765 784 * @param row New cursor row.
766 785 * @param col New cursor col.
767 786 *
768   - * @return last cursor address or -1 if invalid (sets errno).
  787 + * @return Old cursor address or negative in case of error (sets errno).
769 788 *
  789 + * @retval -EOVERFLOW The address is beyond the screen length.
  790 + * @retval -ENOTCONN Disconnected from host.
770 791 */
771 792 LIB3270_EXPORT int lib3270_set_cursor_position(H3270 *h, unsigned int row, unsigned int col);
772 793  
... ...
src/include/statusc.h
1 1 /*
2   - * Copyright 1999, 2000, 2002 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 is distributed in the hope that it will be useful, but WITHOUT ANY
10   - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   - * FOR A PARTICULAR PURPOSE. See the file LICENSE for more details.
  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 + * Este programa está nomeado como host.c e possui 1078 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 + *
12 28 */
13 29  
14   -/* c3270 verson of statusc.h */
15   -
16   -// #include "api.h"
17   -
18 30 LIB3270_INTERNAL void status_compose(int on, unsigned char c, enum keytype keytype);
19 31 LIB3270_INTERNAL void status_ctlr_done(H3270 *session);
20 32  
... ...
src/selection/get.c
... ... @@ -182,7 +182,6 @@ LIB3270_EXPORT lib3270_selection * lib3270_get_selection(H3270 *hSession, int cu
182 182  
183 183 if(baddr < 0)
184 184 {
185   - errno = EINVAL;
186 185 lib3270_free(selection);
187 186 return NULL;
188 187 }
... ...