File rasmol-upstream_distfix.patch of Package rasmol

--- src/abstree.c
+++ src/abstree.c
@@ -1289,15 +1289,15 @@
 
 double CalcDistance( RAtom __far *atm1, RAtom __far *atm2 )
 {
-    register Long dx,dy,dz;
+    register double dx,dy,dz;
     register double dist2;
 
-    dx = atm1->xorg - atm2->xorg + atm1->fxorg - atm2->fxorg;
-    dy = atm1->yorg - atm2->yorg + atm1->fyorg - atm2->fyorg;
-    dz = atm1->zorg - atm2->zorg + atm1->fzorg - atm2->fzorg;
-    if( dx || dy || dz )
+    dx = (double)(atm1->xorg - atm2->xorg + atm1->fxorg - atm2->fxorg);
+    dy = (double)(atm1->yorg - atm2->yorg + atm1->fyorg - atm2->fyorg);
+    dz = (double)(atm1->zorg - atm2->zorg + atm1->fzorg - atm2->fzorg);
+    if( dx != 0.0 || dy != 0.0 || dz != 0.0 )
     {   dist2 = dx*dx + dy*dy + dz*dz;
-        return( sqrt(dist2)/250.0 );
+        return( sqrt(dist2/62500.) );
     } else return 0.0;
 }
 
--- src/render.c
+++ src/render.c
@@ -1919,6 +1919,12 @@
     for( i=0; str[i] && i<12; i++ )
         if( str[i]!=' ' ) 
              WriteChar(str[i]);
+        
+    if (ptr->atm->model) 
+    {
+    	sprintf(buffer,"/%d",ptr->atm->model);
+    	WriteString(buffer);
+    }
 
     if( flag )
     {   sprintf(buffer," (%ld)",ptr->atm->serno);
@@ -2182,7 +2188,7 @@
 		/* [GSG 11/21/95] */
 		AddMonitors2(PickHist[0].atm, PickHist[2].atm,
                   PickHist[1].atm, (RAtom __far *)NULL,
-		  (short) (rint(temp*100)), 128, PickAngle);
+		  (Long) (rint(temp*100)), 128, PickAngle);
 		ReDrawFlag |= RFRefresh;
 
 
@@ -2207,7 +2213,7 @@
 		/* [GSG 11/21/95] */
 	        AddMonitors2(PickHist[0].atm, PickHist[3].atm,
                   PickHist[1].atm, PickHist[2].atm,
-		     (short) (rint(temp*100)), 128, PickTorsn);
+		     (Long) (rint(temp*100)), 128, PickTorsn);
 		ReDrawFlag |= RFRefresh;
             }
         }
--- src/repres.c
+++ src/repres.c
@@ -523,7 +523,7 @@
 /* [GSG 11/21/95] AddMonitors2 can add a monitor w/a given number */
 void AddMonitors2( RAtom __far *src, RAtom __far *dst,
       RAtom __far *mid1, RAtom __far *mid2,
-      short dist, unsigned char units, int monmode )
+      Long dist, unsigned char units, int monmode )
 {
     register Monitor **prev;
     register Monitor *ptr;
@@ -567,17 +567,9 @@
 
 void AddMonitors( RAtom __far *src, RAtom __far *dst )
 {
-    register Long dx, dy, dz;
-    register Long dist;
-    short temp;
+    Long temp;
  
-    dx = src->xorg - dst->xorg + src->fxorg - dst->fxorg;
-    dy = src->yorg - dst->yorg + src->fyorg - dst->fyorg;
-    dz = src->zorg - dst->zorg + src->fzorg - dst->fzorg;
-
-    /* ptr->dist = 100.0*CalcDistance(src,dst) */
-    dist = isqrt( dx*dx + dy*dy + dz*dz );
-    temp = rint(100.0*CalcDistance(src,dst));
+    temp = (Long)rint(100.0*CalcDistance(src,dst));
 
     AddMonitors2(src, dst, 
       (RAtom __far *)NULL, (RAtom __far *)NULL, temp, 127, PickDist);
--- src/repres.h
+++ src/repres.h
@@ -99,7 +99,7 @@
         RAtom __far *mid2;
         RAtom __far *dst;
         int monmode;
-        int dist;
+        Long dist;
         short col;
         unsigned char units;
     } Monitor;
@@ -162,7 +162,7 @@
 void DeleteMonitors( void );
 void AddMonitors2( RAtom __far*, RAtom __far*,
   RAtom __far*, RAtom __far*, 
-  short, unsigned char, int );
+  Long, unsigned char, int );
 void AddMonitors( RAtom __far*, RAtom __far* );
 void CreateMonitor( Long, Long );
 void DisplayMonitors( void );
openSUSE Build Service is sponsored by