Skip to content

Commit

Permalink
In EBCDIC mode, fix the update of characters in ASCII/EBCDIC window t…
Browse files Browse the repository at this point in the history
…hat was wrongly "translating" them to ASCII instead of keeping in EBCDIC when moving with arrow keys and TAB (switching between windows)
  • Loading branch information
prso committed Jun 18, 2020
1 parent a7d60e8 commit 4d2b9b2
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions src/acceptch.c
Original file line number Diff line number Diff line change
Expand Up @@ -622,10 +622,13 @@ int wacceptch(WINS *win, off_t len)
/*switch the underline*/
getyx(Winds, row, col); /* current location */
wattrset((editHex) ? win->ascii : win->hex, A_NORMAL);
mvwprintw((editHex) ? win->ascii : win->hex, row,
(editHex) ? col/3 : col*3,
(editHex) ? "%c": "%02X",
(editHex) ? ((isprint(curVal))?curVal : '.'):curVal);

if (editHex)
mvwprintw(win->ascii, row, col/3, "%c",
(USE_EBCDIC) ? EBCDIC[curVal] : (isprint(curVal)) ? curVal : '.');
else
mvwprintw(win->hex, row, col*3, "%02X", curVal);

wnoutrefresh((editHex) ? win->ascii : win->hex);
if (editHex) /* already in hex win */
{
Expand Down Expand Up @@ -767,10 +770,13 @@ int wacceptch(WINS *win, off_t len)
wattron((editHex) ? win->ascii : win->hex,
(inHexList(cursorLoc(lastLine, lastCol, editHex, BASE))) ?
A_BOLD : A_NORMAL);
mvwprintw((editHex) ? win->ascii : win->hex, lastRow,
(editHex) ? lastCol/3 : lastCol*3,
(editHex) ? "%c" : "%02X",
(editHex) ? (isprint(curVal)) ? curVal : '.': curVal);

if (editHex)
mvwprintw(win->ascii, lastRow, lastCol/3, "%c",
(USE_EBCDIC) ? EBCDIC[curVal] : (isprint(curVal)) ? curVal : '.');
else
mvwprintw(win->hex, lastRow, lastCol*3, "%02X", curVal);

wmove(Winds, row, col);
wattrset((editHex) ? win->ascii : win->hex, A_NORMAL);
wnoutrefresh((editHex) ? win->ascii : win->hex);
Expand All @@ -782,10 +788,12 @@ int wacceptch(WINS *win, off_t len)

curVal = getLocVal(cursorLoc(currentLine, col, editHex, BASE));

mvwprintw((editHex) ? win->ascii : win->hex, row,
(editHex) ? col/3 : col*3,
(editHex) ? "%c" : "%02X",
(editHex) ? (isprint(curVal)) ? curVal : '.' : curVal);
if (editHex)
mvwprintw(win->ascii, row, col/3, "%c",
(USE_EBCDIC) ? EBCDIC[curVal] : (isprint(curVal)) ? curVal : '.');
else
mvwprintw(win->hex, row, col*3, "%02X", curVal);

wattrset((editHex) ? win->ascii : win->hex, A_NORMAL);
wnoutrefresh((editHex) ? win->ascii : win->hex);
}
Expand Down

0 comments on commit 4d2b9b2

Please sign in to comment.