[libpayload] Work around sign-extending issue
Somewhere characters are getting sign-extended, meaning that the attributes of the drawing chars (>= 128) are wrong. Cast the value before sending it to VGA. Signed-off-by: Jordan Crouse <jordan.crouse@amd.com> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3195 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
		
				
					committed by
					
						
						Uwe Hermann
					
				
			
			
				
	
			
			
			
						parent
						
							42cccdf03b
						
					
				
				
					commit
					0e122af465
				
			@@ -580,7 +580,13 @@ int wnoutrefresh(WINDOW *win)
 | 
				
			|||||||
					c |= tmp << 12;
 | 
										c |= tmp << 12;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				c |= win->_line[y].text[x].chars[0];
 | 
									/*
 | 
				
			||||||
 | 
									 * FIXME: Somewhere along the line, the
 | 
				
			||||||
 | 
									 * character value is getting sign-extented.
 | 
				
			||||||
 | 
									 * For now grab just the 8 bit character,
 | 
				
			||||||
 | 
									 * but this will break wide characters!
 | 
				
			||||||
 | 
									 */
 | 
				
			||||||
 | 
									c |= (chtype) (win->_line[y].text[x].chars[0] & 0xff);
 | 
				
			||||||
				vga_putc(y, x, c);
 | 
									vga_putc(y, x, c);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user