Index: trunk/config.h.in =================================================================== --- trunk/config.h.in (revision 3178) +++ trunk/config.h.in (revision 3179) @@ -178,6 +178,9 @@ #define COORD_MAX @/local/pcb/coord_max@ #define coord_abs @/local/pcb/coord_abs@ +/* Other autodetected types */ +typedef @/local/pcb/long64@ pcb_long64_t; + /* the dot-dir: where to save user config under ther user's home; it's used as ~/DOT_PCB_RND/ */ #define DOT_PCB_RND "@/local/pcb/dot_pcb_rnd@" Index: trunk/doc-rnd/TODO =================================================================== --- trunk/doc-rnd/TODO (revision 3178) +++ trunk/doc-rnd/TODO (revision 3179) @@ -17,6 +17,8 @@ - replace settings with lihata (conf_*) - remove CFN_INCREMENTS, test if saving increments from preferences works - TEST: + - png export: bloat settings in pixel (scale changed) + - whether polygon rendering breaks if pcb_long64_t is double - import netlist and import EDIF (File/Load Netlist in gtk - file format should be autodetected usign file content) - atexit change -> is the design saved periodically? is it saved on a crash? - dbus support Index: trunk/doc-rnd/conf/tree/editor.html =================================================================== --- trunk/doc-rnd/conf/tree/editor.html (revision 3178) +++ trunk/doc-rnd/conf/tree/editor.html (revision 3179) @@ -18,6 +18,7 @@ highlight_on_point boolean 0 Highlight if crosshair is on endpoints. show_solder_side boolean 0 mirror output save_last_command boolean 0 save the last command entered by user + line_refraction integer 0 value for line lookahead setting save_in_tmp boolean 0 always save data in /tmp draw_grid boolean 0 draw grid points all_direction_lines boolean 0 enable lines to all directions Index: trunk/scconfig/Rev.h =================================================================== --- trunk/scconfig/Rev.h (revision 3178) +++ trunk/scconfig/Rev.h (revision 3179) @@ -1 +1 @@ -static const int myrev = 2985; +static const int myrev = 3179; Index: trunk/scconfig/Rev.tab =================================================================== --- trunk/scconfig/Rev.tab (revision 3178) +++ trunk/scconfig/Rev.tab (revision 3179) @@ -1,2 +1,3 @@ +3179 configure c89 correctness: do not depend on hardwired long long, detect it 2985 configure Revcheck installed in Makefiles. 2984 configure Introduction of the config-rev system. Index: trunk/scconfig/hooks.c =================================================================== --- trunk/scconfig/hooks.c (revision 3178) +++ trunk/scconfig/hooks.c (revision 3179) @@ -454,6 +454,11 @@ put("/local/pcb/coord_type", chosen); put("/local/pcb/coord_max", tmp); put("/local/pcb/coord_abs", abs_name); + + if (long_long_bits >= 64) chosen = "long long int"; + else if (long_bits >= 64) chosen = "long int"; + else chosen = "double"; + put("/local/pcb/long64", chosen); } return 0; Index: trunk/src/polygon1.c =================================================================== --- trunk/src/polygon1.c (revision 3178) +++ trunk/src/polygon1.c (revision 3179) @@ -2534,10 +2534,10 @@ if (s->v->point[1] <= p->p[1]) { if (s->v->next->point[1] > p->p[1]) { Vector v1, v2; - long long cross; + pcb_long64_t cross; Vsub2(v1, s->v->next->point, s->v->point); Vsub2(v2, p->p, s->v->point); - cross = (long long) v1[0] * v2[1] - (long long) v2[0] * v1[1]; + cross = (pcb_long64_t) v1[0] * v2[1] - (pcb_long64_t) v2[0] * v1[1]; if (cross == 0) { p->f = 1; longjmp(p->env, 1); @@ -2549,10 +2549,10 @@ else { if (s->v->next->point[1] <= p->p[1]) { Vector v1, v2; - long long cross; + pcb_long64_t cross; Vsub2(v1, s->v->next->point, s->v->point); Vsub2(v2, p->p, s->v->point); - cross = (long long) v1[0] * v2[1] - (long long) v2[0] * v1[1]; + cross = (pcb_long64_t) v1[0] * v2[1] - (pcb_long64_t) v2[0] * v1[1]; if (cross == 0) { p->f = 1; longjmp(p->env, 1);