Commit eb9067bee6f1cacd5222b0c018acaacdd6160677
1 parent
fd4606e2
Exists in
master
and in
3 other branches
Adding option to get the entire terminal window as selection.
Showing
2 changed files
with
14 additions
and
3 deletions
Show diff stats
src/include/lib3270/selection.h
@@ -190,11 +190,12 @@ | @@ -190,11 +190,12 @@ | ||
190 | * | 190 | * |
191 | * @param hSession Session handle. | 191 | * @param hSession Session handle. |
192 | * @param cut Non zero to clear selected contents. | 192 | * @param cut Non zero to clear selected contents. |
193 | + * @param all Non zero to get entire terminal, zero to get only the selected rectangle. | ||
193 | * | 194 | * |
194 | * @return NULL on error (sets errno), pointer to a rectangle containing the selected area (release it with lib3270_free). | 195 | * @return NULL on error (sets errno), pointer to a rectangle containing the selected area (release it with lib3270_free). |
195 | * | 196 | * |
196 | */ | 197 | */ |
197 | - LIB3270_EXPORT lib3270_selection * lib3270_get_selection(H3270 *hSession, int cut); | 198 | + LIB3270_EXPORT lib3270_selection * lib3270_get_selection(H3270 *hSession, int cut, int all); |
198 | 199 | ||
199 | /** | 200 | /** |
200 | * @brief Get bitmasked flag for the current selection. | 201 | * @brief Get bitmasked flag for the current selection. |
src/selection/get.c
@@ -144,11 +144,21 @@ LIB3270_EXPORT char * lib3270_cut_selected(H3270 *hSession) | @@ -144,11 +144,21 @@ LIB3270_EXPORT char * lib3270_cut_selected(H3270 *hSession) | ||
144 | return lib3270_get_selected_text(hSession,0,LIB3270_SELECTION_CUT); | 144 | return lib3270_get_selected_text(hSession,0,LIB3270_SELECTION_CUT); |
145 | } | 145 | } |
146 | 146 | ||
147 | -LIB3270_EXPORT lib3270_selection * lib3270_get_selection(H3270 *hSession, int cut) | 147 | +LIB3270_EXPORT lib3270_selection * lib3270_get_selection(H3270 *hSession, int cut, int all) |
148 | { | 148 | { |
149 | + if(check_online_session(hSession)) | ||
150 | + return NULL; | ||
151 | + | ||
149 | // Get block size | 152 | // Get block size |
150 | unsigned int row, col, width, height; | 153 | unsigned int row, col, width, height; |
151 | - if(lib3270_get_selection_rectangle(hSession, &row, &col, &width, &height)) | 154 | + |
155 | + if(all) | ||
156 | + { | ||
157 | + row = col = 0; | ||
158 | + width = lib3270_get_width(hSession); | ||
159 | + height = lib3270_get_height(hSession); | ||
160 | + } | ||
161 | + else if(lib3270_get_selection_rectangle(hSession, &row, &col, &width, &height)) | ||
152 | { | 162 | { |
153 | return NULL; | 163 | return NULL; |
154 | } | 164 | } |