// rules: CheckIndentationInsideFunction void main() { if (ptr == (void *)block + ((i) * M_MINUS) + 520) { if (size <= M_MINUS) block->tab[i] = size; else return (ft_memcpy(large_size(size), (void *)block + (i * M_MINUS) + 520, size)); return ((void *)block + (i * M_MINUS) + 520); } }
void rubber_stix_font_rep::get_extents (string s, metric& ex) { SI dy; string ltype; string orig= s; font fn= search_font (s, dy, ltype); fn->get_extents (s, ex); ex->y1 += dy; ex->y2 += dy; ex->y3 += dy; ex->y4 += dy; if (ltype != "") { int nr= large_size (orig); if (ltype[0] == '|' || ltype == "interleave") { if (ex->y2 - ex->y1 >= 9 * base->yx) adjust_hspace (ex, base->wfn / 10); else if (ex->y2 - ex->y1 >= 6 * base->yx) adjust_hspace (ex, base->wfn / 15); else if (ex->y2 - ex->y1 >= 3 * base->yx) adjust_hspace (ex, base->wfn / 20); } else if (ltype[0] == '(') { if (nr == 2) ex->x1 += base->wfn / 24; else if (nr == 3) ex->x1 += base->wfn / 10; else if (nr == 4) ex->x1 += base->wfn / 18; else if (nr > 4) { ex->x1 -= base->wfn / 8; ex->x2 += base->wfn / 16; } } else if (ltype[0] == ')') { if (nr == 2) ex->x2 -= base->wfn / 24; else if (nr == 3) ex->x2 -= base->wfn / 10; else if (nr == 4) ex->x2 -= base->wfn / 18; else if (nr > 4) { ex->x2 += base->wfn / 8; ex->x1 -= base->wfn / 16; } } else if (ltype[0] == '{') { if (nr == 2) adjust_hspace (ex, -base->wfn / 15); else if (nr == 3) adjust_hspace (ex, -base->wfn / 10); else if (nr == 4) { ex->x2 -= base->wfn / 5; ex->x1 += base->wfn / 10; } } else if (ltype[0] == '}') { if (nr == 2) adjust_hspace (ex, -base->wfn / 15); else if (nr == 3) adjust_hspace (ex, -base->wfn / 10); else if (nr == 4) { ex->x1 += base->wfn / 5; ex->x2 -= base->wfn / 10; } } else if (ltype[0] == '[' || ltype == "llbracket" || ltype == "lfloor" || ltype == "lceil") { if (nr == 2) ex->x1 += base->wfn / 30; else if (nr == 3) ex->x1 += base->wfn / 20; else if (nr == 4) ex->x1 += base->wfn / 10; else if (nr > 4 && ltype != "llbracket") { ex->x1 -= base->wfn / 8; ex->x2 += base->wfn / 32; } } else if (ltype[0] == ']' || ltype == "rrbracket" || ltype == "rfloor" || ltype == "rceil") { if (nr == 2) ex->x2 -= base->wfn / 30; else if (nr == 3) ex->x2 -= base->wfn / 20; else if (nr == 4) ex->x2 -= base->wfn / 10; else if (nr > 4 && ltype != "rrbracket") { ex->x2 += base->wfn / 8; ex->x1 -= base->wfn / 32; } } else if (ltype == "langle" || ltype == "rangle") { if (nr == 2) adjust_hspace (ex, -base->wfn / 36); else if (nr == 3) adjust_hspace (ex, -base->wfn / 24); else if (nr >= 4) adjust_hspace (ex, -base->wfn / 12); } } }
int rubber_stix_font_rep::search_font_sub (string s, string& rew, string& ltype) { ltype= ""; if (starts (s, "<big-") && ends (s, "-1>")) { string r= s (5, N(s) - 3); if (ends (r, "lim")) r= r (0, N(r) - 3); if (starts (r, "up") && ends (r, "int")) { rew= "<big-" * r (2, N(r)) * ">"; return 4; } if (ends (r, "int") || r == "sum" || r == "prod" || r == "pluscup") { rew= s; return 0; } if (r == "box") s= "<big-square-1>"; rew= s; return 1; } if (starts (s, "<big-") && ends (s, "-2>")) { string r= s (5, N(s) - 3); if (ends (r, "lim")) r= r (0, N(r) - 3); if (starts (r, "up") && ends (r, "int")) { rew= "<big-" * r (2, N(r)) * ">"; return 5; } if (ends (r, "int")) { rew= "<big-" * r * ">"; return 3; } if (r == "sum" || r == "prod" || r == "amalg" || r == "cap" || r == "cup" || r == "vee" || r == "wedge") { rew= "<big-" * r * ">"; return 6; } if (r == "pluscup") { rew= "<big-" * r * ">"; return 1; } if (r == "box") s= "<big-square-2>"; rew= s; return 2; } if (starts (s, "<mid-")) s= "<left-" * s (5, N(s)); if (starts (s, "<right-")) s= "<left-" * s (7, N(s)); if (starts (s, "<large-")) s= "<left-" * s (7, N(s)); if (starts (s, "<left-")) { int pos= search_backwards ("-", N(s), s); if (pos > 6) ltype= s (6, pos); } if (starts (s, "<left-.")) { rew= ""; return 0; } if (starts (s, "<left-|") || starts (s, "<left-interleave-")) { int nr= large_size (s); if (nr <= 0) { string r= large_type (s); r= r (5, N(r)); if (N(r) > 1) r= "<" * r * ">"; rew= r; return 0; } else { rew= "<" * large_type (s) * "-" * as_string (nr + 9) * ">"; return 16; } } if (starts (s, "<left-") && ends (s, "-0>")) { rew= s; return 0; } if (starts (s, "<left-") && ends (s, "-1>")) { string r= s (6, N(s) - 3); if (N(r) > 1) r= "<" * r * ">"; rew= r; return 7; } if (starts (s, "<left-") && ends (s, "-2>")) { string r= s (6, N(s) - 3); if (N(r) > 1) r= "<" * r * ">"; rew= r; return 8; } if (starts (s, "<left-") && ends (s, "-3>")) { string r= s (6, N(s) - 3); if (N(r) > 1) r= "<" * r * ">"; rew= r; return 9; } if (starts (s, "<left-") && ends (s, "-4>")) { string r= s (6, N(s) - 3); if (N(r) > 1) r= "<" * r * ">"; rew= r; return 10; } if (starts (s, "<left-")) { int pos= search_backwards ("-", N(s), s); if (pos > 6) { string r= s (6, pos); int nr= as_int (s (pos+1, N(s)-1)); if (r == "(" || r == ")" || r == "[" || r == "]") { rew= "<left-" * r * "-" * as_string (nr + 5) * ">"; return 17; } if (r == "{" || r == "}") { rew= "<left-" * r * "-" * as_string (nr + 2) * ">"; return 17; } if (r == "lfloor" || r == "rfloor" || r == "lceil" || r == "rceil") { rew= "<left-" * r * "-" * as_string (nr + 9) * ">"; return 17; } if (r == "/" || r == "\\" || r == "langle" || r == "rangle") { if (N(r) == 1) rew= r; else rew= "<" * r * ">"; return 10; } } } if (starts (s, "<rubber-") && ends (s, ">")) { int pos= search_backwards ("-", N(s), s); if (pos > 8) { string r= s (8, pos); int nr= as_int (s (pos+1, N(s)-1)); if (nr < 0) nr= 0; if (nr > 5) nr= 5; if (r == "hat") rew= "<#2C6>"; else if (r == "tilde") rew= "<#2DC>"; else if (r == "check") rew= "<#2C7>"; else if (r == "bar") rew= "<#203E>"; else if (r == "vect") rew= "<#20D7>"; else if (r == "breve") rew= "<#2D8>"; else if (r == "invbreve") rew= "<#311>"; else if (r == "punderbrace") rew= "<#23DD>"; else if (r == "punderbrace*") rew= "<#23DD>"; else if (r == "underbrace") rew= "<#23DF>"; else if (r == "underbrace*") rew= "<#23DF>"; else if (r == "squnderbrace") rew= "<#23B5>"; else if (r == "squnderbrace*") rew= "<#23B5>"; else if (r == "poverbrace") rew= "<#23DC>"; else if (r == "poverbrace*") rew= "<#23DC>"; else if (r == "overbrace") rew= "<#23DE>"; else if (r == "overbrace*") rew= "<#23DE>"; else if (r == "sqoverbrace") rew= "<#23B4>"; else if (r == "sqoverbrace*") rew= "<#23B4>"; else { rew= s; return 0; } if (nr == 0) return 0; else return 10 + nr; } } rew= s; return 0; }