Replaces the inaccurate Rec. 709 luma we used to use before. This is the first feature here that requires libm, which doesn't seem to be a particularly great sacrifice. Moreover, I've rectified that the input isn't linear in sRGB, and then was even normalized wrong for the luma formula.
		
			
				
	
	
		
			24 lines
		
	
	
		
			699 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			699 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # Check whether the terminal colours filtered by our algorithm are legible
 | |
| export example=$(
 | |
| 	tcc "-run -lm" - <<-EOF
 | |
| 	#include <stddef.h>
 | |
| 	#include <stdio.h>
 | |
| 	#include <math.h>
 | |
| 
 | |
| 	$(perl -0777 -ne 'print $& if /^.*?\nfilter_color(?s:.*?)^}$/m' degesch.c)
 | |
| 
 | |
| 	void main () {
 | |
| 		size_t len = 0;
 | |
| 		int *table = filter_color_cube_for_acceptable_nick_colors (&len);
 | |
| 		for (size_t i = 0; i < len; i++)
 | |
| 			printf ("<@\\x1b[38;5;%dmIRCuser\\x1b[m> I'm typing!\n", table[i]);
 | |
| 	}
 | |
| 	EOF
 | |
| )
 | |
| 
 | |
| # Both should give acceptable results,
 | |
| # which results in a bad compromise that the main author himself needs
 | |
| xterm -bg black -fg white -e 'echo $example; cat' &
 | |
| xterm -bg white -fg black -e 'echo $example; cat' &
 |