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 |