]> granicus.if.org Git - graphviz/commitdiff
ortho: use early return style pervasively in 'segCmp'
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 22 May 2022 02:36:02 +0000 (19:36 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Mon, 23 May 2022 14:18:53 +0000 (07:18 -0700)
Because the leaf of each conditional was returning, we can write all this logic
without `else`. The result seems marginally cleaner and easier to read.

lib/ortho/ortho.c

index 5cb4bb90515ddcd258bd702e8ec9b8b0eca0de1d..f9cbfe6719198d97ba0e6e14b8b82c212d91a8a1 100644 (file)
@@ -648,63 +648,59 @@ segCmp (segment* S1, segment* S2, bend T1, bend T2)
     if(S1->p.p1<S2->p.p1&&S2->p.p1<S1->p.p2)
        return overlapSeg (S1, S2, T1, T2);
        /* left endpoint of S1 inside S2 */
-    else if(S2->p.p1<S1->p.p1&&S1->p.p1<S2->p.p2)
+    if (S2->p.p1 < S1->p.p1 && S1->p.p1 < S2->p.p2)
        return -1*overlapSeg (S2, S1, T1, T2);
-    else if(S1->p.p1==S2->p.p1) {
+    if (S1->p.p1 == S2->p.p1) {
        if(S1->p.p2==S2->p.p2) {
            if (S1->l1 == S2->l1 && S1->l2 == S2->l2)
                return 0;
-           else if (S2->l1==S2->l2) {
+           if (S2->l1 == S2->l2) {
                if (S2->l1 == T1) return 1;
-               else if (S2->l1 == T2) return -1;
-               else if (S1->l1 != T1 && S1->l2 != T1) return 1;
-               else if (S1->l1 != T2 && S1->l2 != T2) return -1;
-               else return 0;
+               if (S2->l1 == T2) return -1;
+               if (S1->l1 != T1 && S1->l2 != T1) return 1;
+               if (S1->l1 != T2 && S1->l2 != T2) return -1;
+               return 0;
            }
-           else if (S2->l1 == T1 && S2->l2 == T2) {
+           if (S2->l1 == T1 && S2->l2 == T2) {
                if (S1->l1 != T1 && S1->l2 == T2) return 1;
-               else if (S1->l1 == T1 && S1->l2 != T2) return -1;
-               else return 0;
+               if (S1->l1 == T1 && S1->l2 != T2) return -1;
+               return 0;
            }
-           else if (S2->l2 == T1 && S2->l1 == T2) {
+           if (S2->l2 == T1 && S2->l1 == T2) {
                if (S1->l2 != T1 && S1->l1 == T2) return 1;
-               else if (S1->l2 == T1 && S1->l1 != T2) return -1;
-               else return 0;
+               if (S1->l2 == T1 && S1->l1 != T2) return -1;
+               return 0;
            }
-           else if (S2->l1 == B_NODE && S2->l2 == T1) {
+           if (S2->l1 == B_NODE && S2->l2 == T1) {
                return ellSeg (S1->l1, S1->l2, T1);
            }
-           else if (S2->l1 == B_NODE && S2->l2 == T2) {
+           if (S2->l1 == B_NODE && S2->l2 == T2) {
                return -1*ellSeg (S1->l1, S1->l2, T2);
            }
-           else if (S2->l1 == T1 && S2->l2 == B_NODE) {
+           if (S2->l1 == T1 && S2->l2 == B_NODE) {
                return ellSeg (S1->l2, S1->l1, T1);
            }
-           else { /* ((S2->l1==T2)&&(S2->l2==B_NODE)) */
-               return -1*ellSeg (S1->l2, S1->l1, T2);
-           }
+           /* ((S2->l1==T2)&&(S2->l2==B_NODE)) */
+           return -1 * ellSeg(S1->l2, S1->l1, T2);
        }
-       else if(S1->p.p2<S2->p.p2) {
+       if (S1->p.p2 < S2->p.p2) {
            if(S1->l2==T1)
                return eqEndSeg (S2->l1, S1->l1, T1, T2);
-           else
-               return -1*eqEndSeg (S2->l1, S1->l1, T1, T2);
-       }
-       else { /* S1->p.p2>S2->p.p2 */
-           if(S2->l2==T2)
-               return eqEndSeg (S1->l1, S2->l1, T1, T2);
-           else
-               return -1*eqEndSeg (S1->l1, S2->l1, T1, T2);
+           return -1 * eqEndSeg(S2->l1, S1->l1, T1, T2);
        }
+       /* S1->p.p2>S2->p.p2 */
+       if (S2->l2 == T2)
+           return eqEndSeg(S1->l1, S2->l1, T1, T2);
+       return -1 * eqEndSeg(S1->l1, S2->l1, T1, T2);
     }
-    else if(S1->p.p2==S2->p.p1) {
+    if (S1->p.p2 == S2->p.p1) {
        if (S1->l2 == S2->l1) return 0;
-       else if (S1->l2 == T2) return 1;
-       else return -1;
+       if (S1->l2 == T2) return 1;
+       return -1;
     }
     /* S1->p.p1==S2->p.p2 */
     if (S1->l1 == S2->l2) return 0;
-    else if (S1->l1 == T2) return 1;
+    if (S1->l1 == T2) return 1;
     return -1;
 }