Commit 06893f2755c2e27bd250633c205c0cec9d62c435
1 parent
e85d9d21
Exists in
master
and in
3 other branches
Updating print API.
Showing
3 changed files
with
49 additions
and
9 deletions
Show diff stats
src/core/util.c
| @@ -593,26 +593,39 @@ void lib3270_popup_an_errno(H3270 *hSession, int errn, const char *fmt, ...) | @@ -593,26 +593,39 @@ void lib3270_popup_an_errno(H3270 *hSession, int errn, const char *fmt, ...) | ||
| 593 | 593 | ||
| 594 | } | 594 | } |
| 595 | 595 | ||
| 596 | -LIB3270_EXPORT int lib3270_print(H3270 *hSession, LIB3270_CONTENT_OPTION mode) | 596 | +LIB3270_EXPORT int lib3270_print(H3270 *hSession) |
| 597 | { | 597 | { |
| 598 | - return hSession->cbk.print(hSession, mode); | 598 | + if(check_online_session(hSession)) |
| 599 | + return errno = ENOTCONN; | ||
| 600 | + | ||
| 601 | + return hSession->cbk.print(hSession, (hSession->selected ? LIB3270_CONTENT_SELECTED : LIB3270_CONTENT_ALL)); | ||
| 599 | } | 602 | } |
| 600 | 603 | ||
| 601 | LIB3270_EXPORT int lib3270_print_all(H3270 *hSession) | 604 | LIB3270_EXPORT int lib3270_print_all(H3270 *hSession) |
| 602 | { | 605 | { |
| 603 | - return lib3270_print(hSession,LIB3270_CONTENT_ALL); | 606 | + if(check_online_session(hSession)) |
| 607 | + return errno = ENOTCONN; | ||
| 608 | + | ||
| 609 | + return hSession->cbk.print(hSession,LIB3270_CONTENT_ALL); | ||
| 604 | } | 610 | } |
| 605 | 611 | ||
| 606 | LIB3270_EXPORT int lib3270_print_selected(H3270 *hSession) | 612 | LIB3270_EXPORT int lib3270_print_selected(H3270 *hSession) |
| 607 | { | 613 | { |
| 614 | + if(check_online_session(hSession)) | ||
| 615 | + return errno = ENOTCONN; | ||
| 616 | + | ||
| 608 | if(lib3270_has_selection(hSession)) | 617 | if(lib3270_has_selection(hSession)) |
| 609 | - return lib3270_print(hSession,LIB3270_CONTENT_SELECTED); | 618 | + return hSession->cbk.print(hSession,LIB3270_CONTENT_SELECTED); |
| 619 | + | ||
| 610 | return errno = ENODATA; | 620 | return errno = ENODATA; |
| 611 | } | 621 | } |
| 612 | 622 | ||
| 613 | LIB3270_EXPORT int lib3270_print_copy(H3270 *hSession) | 623 | LIB3270_EXPORT int lib3270_print_copy(H3270 *hSession) |
| 614 | { | 624 | { |
| 615 | - return lib3270_print(hSession,LIB3270_CONTENT_COPY); | 625 | + if(check_online_session(hSession)) |
| 626 | + return errno = ENOTCONN; | ||
| 627 | + | ||
| 628 | + return hSession->cbk.print(hSession,LIB3270_CONTENT_COPY); | ||
| 616 | } | 629 | } |
| 617 | 630 | ||
| 618 | LIB3270_EXPORT int lib3270_save(H3270 *hSession, LIB3270_CONTENT_OPTION mode, const char *filename) | 631 | LIB3270_EXPORT int lib3270_save(H3270 *hSession, LIB3270_CONTENT_OPTION mode, const char *filename) |
src/include/lib3270.h
| @@ -781,18 +781,45 @@ | @@ -781,18 +781,45 @@ | ||
| 781 | LIB3270_EXPORT int lib3270_move_cursor(H3270 *h, LIB3270_DIRECTION dir, unsigned char sel); | 781 | LIB3270_EXPORT int lib3270_move_cursor(H3270 *h, LIB3270_DIRECTION dir, unsigned char sel); |
| 782 | 782 | ||
| 783 | /** | 783 | /** |
| 784 | - * @brief Print page | 784 | + * @brief Default print operation. |
| 785 | + * | ||
| 786 | + * If the terminal has selected area print them, if not, print all contents. | ||
| 785 | * | 787 | * |
| 786 | * @param hSession Session Handle. | 788 | * @param hSession Session Handle. |
| 787 | - * @param mode Content option. | ||
| 788 | * | 789 | * |
| 789 | * @return 0 if ok, error code if not. | 790 | * @return 0 if ok, error code if not. |
| 790 | * | 791 | * |
| 791 | */ | 792 | */ |
| 792 | - LIB3270_EXPORT int lib3270_print(H3270 *hSession, LIB3270_CONTENT_OPTION mode); | 793 | + LIB3270_EXPORT int lib3270_print(H3270 *hSession); |
| 793 | 794 | ||
| 795 | + /** | ||
| 796 | + * @brief Print terminal screen. | ||
| 797 | + * | ||
| 798 | + * @param hSession Session Handle. | ||
| 799 | + * | ||
| 800 | + * @return 0 if ok, error code if not. | ||
| 801 | + * | ||
| 802 | + */ | ||
| 794 | LIB3270_EXPORT int lib3270_print_all(H3270 *hSession); | 803 | LIB3270_EXPORT int lib3270_print_all(H3270 *hSession); |
| 804 | + | ||
| 805 | + /** | ||
| 806 | + * @brief Print only selected area (if available). | ||
| 807 | + * | ||
| 808 | + * @param hSession Session Handle. | ||
| 809 | + * | ||
| 810 | + * @return 0 if ok, error code if not. | ||
| 811 | + * | ||
| 812 | + */ | ||
| 795 | LIB3270_EXPORT int lib3270_print_selected(H3270 *hSession); | 813 | LIB3270_EXPORT int lib3270_print_selected(H3270 *hSession); |
| 814 | + | ||
| 815 | + /** | ||
| 816 | + * @brief Ask the front end module to print stored copy. | ||
| 817 | + * | ||
| 818 | + * @param hSession Session Handle. | ||
| 819 | + * | ||
| 820 | + * @return 0 if ok, error code if not. | ||
| 821 | + * | ||
| 822 | + */ | ||
| 796 | LIB3270_EXPORT int lib3270_print_copy(H3270 *hSession); | 823 | LIB3270_EXPORT int lib3270_print_copy(H3270 *hSession); |
| 797 | 824 | ||
| 798 | /** | 825 | /** |
src/testprogram/testprogram.c
| @@ -4,8 +4,8 @@ | @@ -4,8 +4,8 @@ | ||
| 4 | #include <stdlib.h> | 4 | #include <stdlib.h> |
| 5 | #include <getopt.h> | 5 | #include <getopt.h> |
| 6 | 6 | ||
| 7 | -#include <lib3270.h> | ||
| 8 | #include <lib3270-internals.h> | 7 | #include <lib3270-internals.h> |
| 8 | +#include <lib3270.h> | ||
| 9 | #include <lib3270/actions.h> | 9 | #include <lib3270/actions.h> |
| 10 | #include <lib3270/trace.h> | 10 | #include <lib3270/trace.h> |
| 11 | 11 |