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 | 190 | * |
| 191 | 191 | * @param hSession Session handle. |
| 192 | 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 | 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 | 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 | 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 | 152 | // Get block size |
| 150 | 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 | 163 | return NULL; |
| 154 | 164 | } | ... | ... |