# Patch #13 for c3270 3.2.
# Corrects the display of fields with extended attributes in 3278 (monochrome)
# mode.

--- c3270-3.2/screen.c	2002/01/07 17:00:42	1.36
+++ c3270-3.2/screen.c	2002/02/26 18:12:06
@@ -302,7 +302,28 @@
 			baddr = row*cCOLS+col;
 			if (IS_FA(screen_buf[baddr])) {
 				fa = screen_buf[baddr];
-				a = FA_IS_HIGH(fa)? A_BOLD: A_NORMAL;
+				if (appres.m3279) {
+					if (ea_buf[baddr].fg ||
+					    ea_buf[baddr].bg) {
+						int fg, bg;
+
+						if (ea_buf[baddr].fg)
+							fg = cmap[ea_buf[baddr].fg
+							    & 0x0f];
+						else
+							fg = COLOR_WHITE;
+						if (ea_buf[baddr].bg)
+							bg = cmap[ea_buf[baddr].bg
+							    & 0x0f];
+						else
+							bg = COLOR_BLACK;
+						a = get_color_pair(fg, bg);
+					} else {
+						a = color_from_fa(fa);
+					}
+				} else {
+					a = FA_IS_HIGH(fa)? A_BOLD: A_NORMAL;
+				}
 				if (ea_buf[baddr].gr & GR_BLINK)
 					a |= A_BLINK;
 				if (ea_buf[baddr].gr & GR_REVERSE)
@@ -311,24 +332,6 @@
 					a |= A_UNDERLINE;
 				if (ea_buf[baddr].gr & GR_INTENSIFY)
 					a |= A_BOLD;
-				if (appres.m3279 &&
-				    (ea_buf[baddr].fg ||
-				     ea_buf[baddr].bg)) {
-					int fg, bg;
-
-					if (ea_buf[baddr].fg)
-						fg = cmap[ea_buf[baddr].fg
-						    & 0x0f];
-					else
-						fg = COLOR_WHITE;
-					if (ea_buf[baddr].bg)
-						bg = cmap[ea_buf[baddr].bg
-						    & 0x0f];
-					else
-						bg = COLOR_BLACK;
-					a |= get_color_pair(fg, bg);
-				} else
-					a = color_from_fa(fa);
 				attrset(defattr);
 				addch(' ');
 			} else if (FA_IS_ZERO(fa)) {
