+ @brief Compare faces.
+
+ The mface_equal () function compares faces $FACE1 and $FACE2.
+
+ @return If two faces have the same property values, return 1.
+ Otherwise return 0. */
+
+int
+mface_equal (MFace *face1, MFace *face2)
+{
+ MFaceHLineProp *hline1, *hline2;
+ MFaceBoxProp *box1, *box2;
+ int i;
+
+ if (face1 == face2)
+ return 1;
+ if (memcmp (face1->property, face2->property, sizeof face1->property) == 0)
+ return 1;
+ for (i = MFACE_FOUNDRY; i <= MFACE_BACKGROUND; i++)
+ if (face1->property[i] != face2->property[i])
+ return 0;
+ for (i = MFACE_VIDEOMODE; i <= MFACE_RATIO; i++)
+ if (face1->property[i] != face2->property[i])
+ return 0;
+ hline1 = (MFaceHLineProp *) face1->property[MFACE_HLINE];
+ hline2 = (MFaceHLineProp *) face2->property[MFACE_HLINE];
+ if (hline1 != hline2)
+ {
+ if (! hline1 || ! hline2)
+ return 0;
+ if (memcmp (hline1, hline2, sizeof (MFaceHLineProp)) != 0)
+ return 0;
+ }
+ box1 = (MFaceBoxProp *) face1->property[MFACE_BOX];
+ box2 = (MFaceBoxProp *) face2->property[MFACE_BOX];
+ if (box1 != box2)
+ {
+ if (! box1 || ! box2)
+ return 0;
+ if (memcmp (box1, box2, sizeof (MFaceBoxProp)) != 0)
+ return 0;
+ }
+ return 1;
+}
+
+
+/*=*/
+/***en