Esme Povirk (@madewokherd) commented about dlls/gdiplus/graphicspath.c:
widen_closed_figure(tmp_points, 0, custom->pathdata.Count - 1, pen, pen_width, last_point);elsewiden_open_figure(tmp_points, 0, custom->pathdata.Count - 1, pen, pen_width, LineCapFlat, LineCapFlat, last_point);}else{for (INT i = 0; i < custom->pathdata.Count; i++){// rotation of CustomCap according to lineperp_dx = custom->pathdata.Points[i].X * cosa + (custom->pathdata.Points[i].Y - 1.0) * sina;perp_dy = custom->pathdata.Points[i].X * sina - (custom->pathdata.Points[i].Y - 1.0) * cosa;*last_point = add_path_list_node(*last_point, posx + perp_dx,posy + perp_dy, custom->pathdata.Types[i]);}}// FIXME: The line should be shorter, and it should ends up when Arrow/Cap is started draw
This comment makes things more confusing, I think. I'd suggest something like `FIXME: The line should be adjusted by the inset value of the custom cap.`.