| 
									
										
										
										
											2012-10-24 16:40:39 -04:00
										 |  |  | ! Copyright (C) 2012 John Benediktsson | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-13 16:00:44 -05:00
										 |  |  | USING: accessors arrays environment kernel math math.parser | 
					
						
							| 
									
										
										
										
											2012-10-24 16:40:39 -04:00
										 |  |  | sequences system vocabs ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | IN: terminal | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HOOK: (terminal-size) os ( -- columns lines )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-13 16:00:44 -05:00
										 |  |  | "terminal." os name>> append require | 
					
						
							| 
									
										
										
										
											2012-10-24 16:40:39 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | : terminal-size ( -- dim )
 | 
					
						
							|  |  |  |     "COLUMNS" "LINES" | 
					
						
							|  |  |  |     [ os-env [ string>number ] [ 0 ] if* ] bi@
 | 
					
						
							|  |  |  |     2dup [ 0 <= ] either? [ | 
					
						
							|  |  |  |         (terminal-size) | 
					
						
							|  |  |  |         [ over 0 <= [ nip ] [ drop ] if ] bi-curry@ bi*
 | 
					
						
							|  |  |  |     ] when 2array ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : terminal-width ( -- width ) terminal-size first ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : terimal-height ( -- height ) terminal-size second ;
 |