@ -148,12 +148,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
			
		
	
		
			
				
					} ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					static  char  backspaceText [ BUFFER_SIZE  +  1 ] ;  // Pretty dumb waste of memory because only backspace characters, used with send_string to backspace and remove input
  
			
		
	
		
			
				
					static  char  text [ BUFFER_SIZE  +  1 ] ;  // Used to store input and then output when ready to print
  
			
		
	
		
			
				
					static  unsigned  char  inputLocation  =  0 ;  // Current index in text input
  
			
		
	
		
			
				
					static  char  text [ BUFFER_SIZE  +  1 ]  =  { [ 0 ]  =  ' 0 ' }  ;  // Used to store input and then output when ready to print
  
			
		
	
		
			
				
					static  unsigned  char  inputLocation  =  1 ;  // Current index in text input
  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/*-----
  
			
		
	
		
			
				
					  Known  Problem :  A  negative  sign  before  an  open  parenthesis  as  the  first  character  in  the  input  such  as  " -(4+3) "  will  not  be  parsed  correctly ,  a  very  hacky  solution  would  be  to  force  the  first  character  of  the  input  to  be  a  0 
 
			
		
	
		
			
				
					- - - - - */  
			
		
	
		
			
				
					double  calc ( char  input [ ] )  // Finds value of input char array, relatively small and fast I think
  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					  char  inputToken [ BUFFER_SIZE  +  1 ] ;  // Input buffer, used when a single token (generally a number) takes up more
 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -213,7 +210,7 @@ double calc(char input[]) // Finds value of input char array, relatively small a
 
			
		
	
		
			
				
					        tokens [ tokenCount ] . raw . op . priority  =  PRIO_DIV ; 
 
			
		
	
		
			
				
					        break ; 
 
			
		
	
		
			
				
					      case  CHAR_EXP : 
 
			
		
	
		
			
				
					        tokens [ tokenCount ] . raw . op . priority  =  PRIO_EXP 
 
			
		
	
		
			
				
					        tokens [ tokenCount ] . raw . op . priority  =  PRIO_EXP ; 
 
			
		
	
		
			
				
					        tokens [ tokenCount ] . raw . op . ltr  =  false ; 
 
			
		
	
		
			
				
					        break ; 
 
			
		
	
		
			
				
					      case  CHAR_SIN : 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -501,7 +498,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record)
 
			
		
	
		
			
				
					          characterPressed  =  ' . ' ; 
 
			
		
	
		
			
				
					          break ; 
 
			
		
	
		
			
				
					        case  KC_BSPC : 
 
			
		
	
		
			
				
					          if ( inputLocation  >  0 ) 
 
			
		
	
		
			
				
					          if ( inputLocation  >  1 ) 
 
			
		
	
		
			
				
					          { 
 
			
		
	
		
			
				
					            inputLocation - - ; 
 
			
		
	
		
			
				
					          } 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -514,7 +511,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record)
 
			
		
	
		
			
				
					          forceReturnTrue  =  true ; 
 
			
		
	
		
			
				
					          break ; 
 
			
		
	
		
			
				
					        case  CALC : 
 
			
		
	
		
			
				
					          for ( int  i  =  0 ;  i  <  inputLocation ;  i + + ) 
 
			
		
	
		
			
				
					          for ( int  i  =  0 ;  i  <  inputLocation  -  1  ;  i + + ) 
 
			
		
	
		
			
				
					          { 
 
			
		
	
		
			
				
					            backspaceText [ i ]  =  ( char ) 8 ; 
 
			
		
	
		
			
				
					          } 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -526,6 +523,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record)
 
			
		
	
		
			
				
					            text [ i ]  =  ' \0 ' ; 
 
			
		
	
		
			
				
					            backspaceText [ i ]  =  ' \0 ' ; 
 
			
		
	
		
			
				
					          } 
 
			
		
	
		
			
				
					          text [ 0 ]  =  ' 0 ' ;  // Fixes error with 
 
 
			
		
	
		
			
				
					          inputLocation  =  1 ;  // Restart at one to ensure the first character is a 0
 
 
			
		
	
		
			
				
					          break ; 
 
			
		
	
		
			
				
					        case  ENDCALC : 
 
			
		
	
		
			
				
					          layer_state  =  0 ; 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -584,3 +583,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record)
 
			
		
	
		
			
				
					    return  true ; 
 
			
		
	
		
			
				
					  } 
 
			
		
	
		
			
				
					}