Commit 6c280698d327b952cb489d052cfeb5c71497731e
1 parent
cc72c79a
Exists in
master
and in
5 other branches
Incluindo opção para mostrar o charset atual
Showing
3 changed files
with
62 additions
and
0 deletions
Show diff stats
src/include/lib3270/action_table.h
src/lib3270/charset.c
| @@ -243,6 +243,66 @@ LIB3270_EXPORT const char * lib3270_get_charset(H3270 *hSession) | @@ -243,6 +243,66 @@ LIB3270_EXPORT const char * lib3270_get_charset(H3270 *hSession) | ||
| 243 | return hSession->charset.display ? hSession->charset.display : "ISO-8859-1"; | 243 | return hSession->charset.display ? hSession->charset.display : "ISO-8859-1"; |
| 244 | } | 244 | } |
| 245 | 245 | ||
| 246 | +LIB3270_ACTION( charsettable ) | ||
| 247 | +{ | ||
| 248 | + static const char * hChars = "0123456789ABCDEF"; | ||
| 249 | + | ||
| 250 | + int f; | ||
| 251 | + int margin_left = 5; | ||
| 252 | + int row; | ||
| 253 | + int chr; | ||
| 254 | + int r; | ||
| 255 | + | ||
| 256 | + CHECK_SESSION_HANDLE(hSession); | ||
| 257 | + | ||
| 258 | + trace("%s","Showing charset table"); | ||
| 259 | + | ||
| 260 | + (void) memset((char *) hSession->ea_buf, 0, hSession->rows*hSession->cols*sizeof(struct lib3270_ea)); | ||
| 261 | + | ||
| 262 | + int col = margin_left; | ||
| 263 | + for(f=4;f<=0x0f;f++) | ||
| 264 | + { | ||
| 265 | + col += 2; | ||
| 266 | + hSession->ea_buf[col].fg = LIB3270_ATTR_COLOR_BLUE; | ||
| 267 | + hSession->ea_buf[col].bg = LIB3270_ATTR_COLOR_BLACK; | ||
| 268 | + hSession->ea_buf[col].cs = 0; | ||
| 269 | + hSession->ea_buf[col].cc = hSession->charset.asc2ebc[(int) hChars[f]]; | ||
| 270 | + hSession->ea_buf[col].gr = 0; | ||
| 271 | + } | ||
| 272 | + | ||
| 273 | + row = margin_left+hSession->maxCOLS; | ||
| 274 | + for(f=0;f<=0x0f;f++) | ||
| 275 | + { | ||
| 276 | + hSession->ea_buf[row].fg = LIB3270_ATTR_COLOR_BLUE; | ||
| 277 | + hSession->ea_buf[row].bg = LIB3270_ATTR_COLOR_BLACK; | ||
| 278 | + hSession->ea_buf[row].cs = 0; | ||
| 279 | + hSession->ea_buf[row].cc = hSession->charset.asc2ebc[(int) hChars[f]]; | ||
| 280 | + hSession->ea_buf[row].gr = 0; | ||
| 281 | + | ||
| 282 | + row += hSession->maxCOLS; | ||
| 283 | + } | ||
| 284 | + | ||
| 285 | + chr = 0x40; | ||
| 286 | + | ||
| 287 | + for(f=0;f<0x0c;f++) | ||
| 288 | + { | ||
| 289 | + row = (margin_left+hSession->maxCOLS)+(f*2)+2; | ||
| 290 | + for(r=0;r<=0x0f;r++) | ||
| 291 | + { | ||
| 292 | + hSession->ea_buf[row].fg = LIB3270_ATTR_COLOR_WHITE; | ||
| 293 | + hSession->ea_buf[row].bg = LIB3270_ATTR_COLOR_BLACK; | ||
| 294 | + hSession->ea_buf[row].cs = 0; | ||
| 295 | + hSession->ea_buf[row].cc = chr++; | ||
| 296 | + hSession->ea_buf[row].gr = 0; | ||
| 297 | + row += hSession->maxCOLS; | ||
| 298 | + } | ||
| 299 | + } | ||
| 300 | + | ||
| 301 | + hSession->display(hSession); | ||
| 302 | + | ||
| 303 | + return 0; | ||
| 304 | +} | ||
| 305 | + | ||
| 246 | /*ISO-8859-1 | 306 | /*ISO-8859-1 |
| 247 | 307 | ||
| 248 | #include "resources.h" | 308 | #include "resources.h" |
ui/99debug.xml
| @@ -46,6 +46,7 @@ | @@ -46,6 +46,7 @@ | ||
| 46 | 46 | ||
| 47 | <menu name='debugmenu' label='Debug' > | 47 | <menu name='debugmenu' label='Debug' > |
| 48 | <menuitem action='testpattern' group='offline' label='Show test pattern' /> | 48 | <menuitem action='testpattern' group='offline' label='Show test pattern' /> |
| 49 | + <menuitem action='charsettable' group='offline' label='Display current charset' /> | ||
| 49 | <menuitem action='reload' label='Reload buffer contents' /> | 50 | <menuitem action='reload' label='Reload buffer contents' /> |
| 50 | <menuitem action='toggle' id='gdkdebug' label='Debug window updates' /> | 51 | <menuitem action='toggle' id='gdkdebug' label='Debug window updates' /> |
| 51 | </menu> | 52 | </menu> |