--- a/XWorkstation.st Mon Aug 24 14:44:38 1998 +0200
+++ b/XWorkstation.st Mon Aug 24 15:16:06 1998 +0200
@@ -2994,13 +2994,21 @@
else if (__isFloat(startAngle)) {
f = __floatVal(startAngle);
angle1 = f * 64;
- }
+ else if (__isShortFloat(startAngle)) {
+ f = __shortFloatVal(startAngle);
+ angle1 = f * 64;
+ } else goto bad;
+
if (__isSmallInteger(angle))
angle2 = __intVal(angle) * 64;
else if (__isFloat(angle)) {
f = __floatVal(angle);
angle2 = f * 64;
- }
+ else if (__isShortFloat(angle)) {
+ f = __shortFloatVal(angle);
+ angle2 = f * 64;
+ } else goto bad;
+
if (ISCONNECTED
&& __isExternalAddress(aGCId)
&& __isExternalAddress(aDrawableId)
@@ -3021,8 +3029,11 @@
}
RETURN ( self );
}
-%}.
- "badGC, badDrawable or coordinates not integer"
+ bad: ;
+%}.
+ "badGC, badDrawable or coordinates not integer
+ or angle(s) not integer or float."
+
self primitiveFailed
!
@@ -3599,13 +3610,21 @@
else if (__isFloat(startAngle)) {
f = __floatVal(startAngle);
angle1 = f * 64;
- }
+ else if (__isShortFloat(startAngle)) {
+ f = __shortFloatVal(startAngle);
+ angle1 = f * 64;
+ } else goto bad;
+
if (__isSmallInteger(angle))
angle2 = __intVal(angle) * 64;
else if (__isFloat(angle)) {
f = __floatVal(angle);
angle2 = f * 64;
- }
+ else if (__isShortFloat(angle)) {
+ f = __shortFloatVal(angle);
+ angle2 = f * 64;
+ } else goto bad;
+
if (ISCONNECTED
&& __isExternalAddress(aGCId)
&& __isExternalAddress(aDrawableId)
@@ -3626,8 +3645,11 @@
}
RETURN ( self );
}
-%}.
- "badGC, badDrawable or coordinates not integer"
+ bad: ;
+%}.
+ "badGC, badDrawable or coordinates not integer
+ or non float angle(s)"
+
self primitiveFailed
!
@@ -9934,6 +9956,6 @@
!XWorkstation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.287 1998-08-10 10:03:03 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.288 1998-08-24 13:16:06 cg Exp $'
! !
XWorkstation initialize!