+ if(!current_polygon) {
+ fprintf(stderr, "assert(%s) failed in %s in line %d: %s\n", expr, file, line, function);
+ exit(1);
+ }
+
+ void*md5 = initialize_md5();
+
+ int s,t;
+ gfxpolystroke_t*stroke = current_polygon->strokes;
+ for(;stroke;stroke=stroke->next) {
+ for(t=0;t<stroke->num_points;t++) {
+ update_md5(md5, (unsigned char*)&stroke->points[t].x, sizeof(stroke->points[t].x));
+ update_md5(md5, (unsigned char*)&stroke->points[t].y, sizeof(stroke->points[t].y));
+ }
+ }
+ 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]);
+