Cleaning print.cpp (i.e. removing all direct calls to the Console_ implementation).
This commit is contained in:
parent
e37b2a0af7
commit
926880df9a
|
@ -748,7 +748,6 @@ void prime(void);
|
|||
// primetab.cpp
|
||||
|
||||
// print.cpp
|
||||
//char* get_tex_flag_address();
|
||||
void print(U *p);
|
||||
void printline(U *p);
|
||||
void print_subexpr(U *p);
|
||||
|
|
18
src/config.c
18
src/config.c
|
@ -10,8 +10,6 @@
|
|||
|
||||
#define menu_free_item(item) if(item) free(item->str)
|
||||
|
||||
extern int* get_tex_flag_address();
|
||||
|
||||
int test;
|
||||
|
||||
void draw_menu(Menu* menu)
|
||||
|
@ -87,22 +85,22 @@ void draw_menu(Menu* menu)
|
|||
|
||||
void menu_setup()
|
||||
{
|
||||
int number = 2;
|
||||
int number = 1;
|
||||
Menu menu;
|
||||
menu.items = malloc(sizeof(Menu_Item*) * number);
|
||||
|
||||
menu.items[0] = menu_create_item("About", FUNCTION_CALL, menu_about, (void*)NULL);
|
||||
menu.items[1] = menu_create_item("Pretty Print", CHECK_BOX, get_tex_flag_address(), save_config);
|
||||
if(menu.items[0] && menu.items[1]) menu.items_number = number;
|
||||
//menu.items[1] = menu_create_item("Pretty Print", CHECK_BOX, get_tex_flag_address(), save_config);
|
||||
if(menu.items[0]/* && menu.items[1]*/) menu.items_number = number;
|
||||
else {
|
||||
menu_free_item(menu.items[0]);
|
||||
menu_free_item(menu.items[1]);
|
||||
//menu_free_item(menu.items[1]);
|
||||
}
|
||||
|
||||
draw_menu(&menu);
|
||||
|
||||
menu_free_item(menu.items[0]);
|
||||
menu_free_item(menu.items[1]);
|
||||
//menu_free_item(menu.items[1]);
|
||||
free(menu.items);
|
||||
}
|
||||
|
||||
|
@ -146,11 +144,11 @@ Menu_Item* menu_create_item(const char* str, Menu_Item_Type type, void* other, v
|
|||
|
||||
void save_config()
|
||||
{
|
||||
memory_save(CONFIG_FILE, (int*)get_tex_flag_address(), 4);
|
||||
//memory_save(CONFIG_FILE, (int*)get_tex_flag_address(), 4);
|
||||
}
|
||||
|
||||
void load_config()
|
||||
{
|
||||
if(memory_exists(CONFIG_FILE))
|
||||
*(int*)(get_tex_flag_address()) = *((int*)memory_load(CONFIG_FILE));
|
||||
//if(memory_exists(CONFIG_FILE))
|
||||
// *(int*)(get_tex_flag_address()) = *((int*)memory_load(CONFIG_FILE));
|
||||
}
|
||||
|
|
|
@ -1,32 +1,13 @@
|
|||
// tty style printing
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "defs.h"
|
||||
#include "console.h"
|
||||
|
||||
#include "tex/TeX.h"
|
||||
|
||||
#define TEX 1
|
||||
#define MAX_TEX_WIDTH 110
|
||||
#define MAX_TEX_HEIGHT 50
|
||||
|
||||
//char* get_tex_flag_address();
|
||||
|
||||
int tex_flag = 1;
|
||||
|
||||
int out_index, out_length;
|
||||
char *out_str;
|
||||
static int char_count, last_char;
|
||||
|
||||
char *power_str = "^";
|
||||
|
||||
extern "C"{
|
||||
int* get_tex_flag_address()
|
||||
{
|
||||
return &tex_flag;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
print(U *p)
|
||||
{
|
||||
|
@ -36,23 +17,7 @@ print(U *p)
|
|||
void
|
||||
printline(U *p)
|
||||
{
|
||||
int old_tex_flag = tex_flag;
|
||||
#ifdef TEX
|
||||
int width, height, baseline;
|
||||
char* edit_line = (char*)Console_GetEditLine();
|
||||
//tex_flag = 1;
|
||||
#endif
|
||||
print_expr(p);
|
||||
#ifdef TEX
|
||||
TeX_sizeComplex(edit_line, &width, &height, &baseline);
|
||||
/*if(width > MAX_TEX_WIDTH || height > MAX_TEX_HEIGHT) {
|
||||
tex_flag = 0;
|
||||
Console_Clear_EditLine();
|
||||
print_expr(p);
|
||||
}*/
|
||||
|
||||
tex_flag = old_tex_flag;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -150,10 +115,6 @@ print_a_over_b(U *p)
|
|||
p1 = cdr(p1);
|
||||
}
|
||||
|
||||
//#ifdef TEX
|
||||
if(tex_flag) print_str("\\frac{");
|
||||
//#endif
|
||||
|
||||
if (n == 0)
|
||||
print_char('1');
|
||||
else {
|
||||
|
@ -179,19 +140,13 @@ print_a_over_b(U *p)
|
|||
}
|
||||
}
|
||||
|
||||
//#ifdef TEX
|
||||
if(tex_flag) print_str("}{");
|
||||
else {
|
||||
//#else
|
||||
if (test_flag == 0)
|
||||
print_str(" / ");
|
||||
else
|
||||
print_str("/");
|
||||
if (test_flag == 0)
|
||||
print_str(" / ");
|
||||
else
|
||||
print_str("/");
|
||||
|
||||
if (d > 1)
|
||||
print_char('(');
|
||||
}
|
||||
//#endif
|
||||
if (d > 1)
|
||||
print_char('(');
|
||||
|
||||
flag = 0;
|
||||
p1 = cdr(p);
|
||||
|
@ -215,15 +170,6 @@ print_a_over_b(U *p)
|
|||
p1 = cdr(p1);
|
||||
}
|
||||
|
||||
//#ifdef TEX
|
||||
|
||||
//#else
|
||||
if(!tex_flag && d > 1) //if (d > 1)
|
||||
print_char(')');
|
||||
|
||||
if(tex_flag) print_str("}");
|
||||
//#endif
|
||||
|
||||
restore();
|
||||
}
|
||||
|
||||
|
@ -231,7 +177,6 @@ void
|
|||
print_term(U *p)
|
||||
{
|
||||
U* p_sqrt = NULL;
|
||||
int sqrt_factor_number = 0, non_sqrt_factor_number = 0, i = 0;
|
||||
|
||||
if (car(p) == symbol(MULTIPLY) && any_denominators(p)) {
|
||||
print_a_over_b(p);
|
||||
|
@ -248,78 +193,6 @@ print_term(U *p)
|
|||
p = cdr(p);
|
||||
}
|
||||
|
||||
#if 0
|
||||
#ifdef TEX
|
||||
p_sqrt = p; //temp buffer
|
||||
sqrt_factor_number = 0;
|
||||
non_sqrt_factor_number = 0;
|
||||
|
||||
//Get the number of factor which are square root of something
|
||||
while(iscons(p_sqrt) || isnum(p_sqrt)){
|
||||
if(caar(p_sqrt) == symbol(POWER) && equalq(caddar(p), 1, 2)) sqrt_factor_number++;
|
||||
else non_sqrt_factor_number++;
|
||||
p_sqrt = cdr(p_sqrt);
|
||||
}
|
||||
|
||||
p_sqrt = p;
|
||||
|
||||
if(sqrt_factor_number > 1) {
|
||||
//First, print the factor wich are not square root of something
|
||||
if(non_sqrt_factor_number) {
|
||||
//Print the first wich is not square root of something
|
||||
while (iscons(p_sqrt) || isnum(p_sqrt)) {
|
||||
if(!(caar(p_sqrt) == symbol(POWER) && equalq(caddar(p), 1, 2))) {
|
||||
print_factor(cdar(p_sqrt));
|
||||
break;
|
||||
}
|
||||
else p_sqrt = cdr(p_sqrt);
|
||||
}
|
||||
|
||||
p_sqrt = cdr(p_sqrt);
|
||||
i++;
|
||||
//Print the other ones
|
||||
while ((iscons(p_sqrt) || isnum(p_sqrt)) && i < non_sqrt_factor_number) {
|
||||
if(!(caar(p_sqrt) == symbol(POWER) && equalq(caddar(p), 1, 2))){
|
||||
print_multiply_sign();
|
||||
print_factor(cdar(p_sqrt));
|
||||
p_sqrt = cdr(p_sqrt);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p_sqrt = p;
|
||||
i = 0;
|
||||
|
||||
print_str("\\sqrt{");
|
||||
|
||||
while (iscons(p_sqrt) || isnum(p_sqrt)) {
|
||||
if(caar(p_sqrt) == symbol(POWER) && equalq(caddar(p), 1, 2)) {
|
||||
print_expr(cadar(p_sqrt));
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
p_sqrt = cdr(p_sqrt);
|
||||
}
|
||||
|
||||
p_sqrt = cdr(p_sqrt);
|
||||
|
||||
while ((iscons(p_sqrt) || isnum(p_sqrt)) && i < sqrt_factor_number) {
|
||||
if(caar(p_sqrt) == symbol(POWER) && equalq(caddar(p), 1, 2)) {
|
||||
print_multiply_sign();
|
||||
print_expr(cadar(p_sqrt));
|
||||
i++;
|
||||
p_sqrt = cdr(p_sqrt);
|
||||
}
|
||||
}
|
||||
|
||||
print_str("}");
|
||||
|
||||
return;
|
||||
}
|
||||
#endif // TeX
|
||||
#endif // 0
|
||||
|
||||
print_factor(car(p));
|
||||
p = cdr(p);
|
||||
while (iscons(p)) {
|
||||
|
@ -351,16 +224,6 @@ print_denom(U *p, int d)
|
|||
if (d == 1 && !isminusone(EXPO))
|
||||
print_char('(');
|
||||
|
||||
#ifdef TEX
|
||||
if (tex_flag && equalq(EXPO, -1, 2)) {
|
||||
print_str("\\sqrt{");
|
||||
print_expr(BASE);
|
||||
print_str("}");
|
||||
restore();
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (isfraction(BASE) || car(BASE) == symbol(ADD) || car(BASE) == symbol(MULTIPLY) || car(BASE) == symbol(POWER) || lessp(BASE, zero)) {
|
||||
print_char('(');
|
||||
print_expr(BASE);
|
||||
|
@ -437,8 +300,7 @@ print_factor(U *p)
|
|||
|
||||
if (isminusone(caddr(p))) {
|
||||
if (test_flag == 0)
|
||||
if(tex_flag) print_str("\\frac{1}{");
|
||||
else print_str("1 / ");
|
||||
print_str("1 / ");
|
||||
else {
|
||||
print_str("1/");
|
||||
}
|
||||
|
@ -449,27 +311,9 @@ print_factor(U *p)
|
|||
} else
|
||||
print_expr(cadr(p));
|
||||
|
||||
if(tex_flag) print_str("}");
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef TEX
|
||||
if (tex_flag && equalq(caddr(p), 1, 2)) {
|
||||
print_str("\\sqrt{");
|
||||
print_expr(cadr(p));
|
||||
print_str("}");
|
||||
return;
|
||||
}
|
||||
|
||||
if (tex_flag && equalq(caddr(p), -1, 2)) {
|
||||
print_str("\\frac{1}{\\sqrt{");
|
||||
print_expr(cadr(p));
|
||||
//if(caddr)
|
||||
print_str("}}");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (isadd(cadr(p)) || caadr(p) == symbol(MULTIPLY) || caadr(p) == symbol(POWER) || isnegativenumber(cadr(p))) {
|
||||
print_str("(");
|
||||
print_expr(cadr(p));
|
||||
|
@ -502,22 +346,6 @@ print_factor(U *p)
|
|||
return;
|
||||
}
|
||||
|
||||
// if (car(p) == _list) {
|
||||
// print_str("{");
|
||||
// p = cdr(p);
|
||||
// if (iscons(p)) {
|
||||
// print_expr(car(p));
|
||||
// p = cdr(p);
|
||||
// }
|
||||
// while (iscons(p)) {
|
||||
// print_str(",");
|
||||
// print_expr(car(p));
|
||||
// p = cdr(p);
|
||||
// }
|
||||
// print_str("}");
|
||||
// return;
|
||||
// }
|
||||
|
||||
if (car(p) == symbol(INDEX) && issymbol(cadr(p))) {
|
||||
print_index_function(p);
|
||||
return;
|
||||
|
@ -529,10 +357,6 @@ print_factor(U *p)
|
|||
}
|
||||
|
||||
if (iscons(p)) {
|
||||
//if (car(p) == symbol(FORMAL) && cadr(p)->k == SYM) {
|
||||
// print_str(((struct symbol *) cadr(p))->name);
|
||||
// return;
|
||||
//}
|
||||
print_factor(car(p));
|
||||
p = cdr(p);
|
||||
print_str("(");
|
||||
|
@ -555,17 +379,9 @@ print_factor(U *p)
|
|||
if (p == symbol(DERIVATIVE))
|
||||
print_char('d');
|
||||
else if (p == symbol(E))
|
||||
#ifdef ARM9
|
||||
print_str("\235(1)");
|
||||
#else
|
||||
print_str("e");
|
||||
#endif
|
||||
else if (p == symbol(PI))
|
||||
#ifdef ARM9
|
||||
print_str("\233");
|
||||
#else
|
||||
Console_Output((const unsigned char *)"pi");
|
||||
#endif
|
||||
print_str("pi");
|
||||
else
|
||||
print_str(get_printname(p));
|
||||
}
|
||||
|
@ -643,10 +459,7 @@ print_char(int c)
|
|||
{
|
||||
last_char = c;
|
||||
char_count++;
|
||||
// if (display_flag == 1)
|
||||
// displaychar(c);
|
||||
// else
|
||||
printchar(c);
|
||||
printchar(c);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue