+ if(!current_polygon) {
+ fprintf(stderr, "assert(%s) failed in %s in line %d: %s\n", expr, file, line, function);
+ exit(1);
+ }
+
+ void*md5 = init_md5();
+
+ edge_t* s = current_polygon->edges;
+ while(s) {
+ update_md5(md5, (unsigned char*)&s->a.x, sizeof(s->a.x));
+ update_md5(md5, (unsigned char*)&s->a.y, sizeof(s->a.y));
+ update_md5(md5, (unsigned char*)&s->b.x, sizeof(s->b.x));
+ update_md5(md5, (unsigned char*)&s->b.y, sizeof(s->b.y));
+ s = s->next;
+ }
+ unsigned char h[16];
+ char filename[32+4+1];
+ finish_md5(md5, h);
+ sprintf(filename, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x.ps",
+ h[0],h[1],h[2],h[3],h[4],h[5],h[6],h[7],h[8],h[9],h[10],h[11],h[12],h[13],h[14],h[15]);
+