00001
00002 c
00003 c Copyright (c) 1986,1987,1988,1989,1990,1991,1992,1993,
00004 c by Steve McMillan, Drexel University, Philadelphia, PA.
00005 c
00006 c All rights reserved.
00007 c
00008 c Redistribution and use in source and binary forms are permitted
00009 c provided that the above copyright notice and this paragraph are
00010 c duplicated in all such forms and that any documentation,
00011 c advertising materials, and other materials related to such
00012 c distribution and use acknowledge that the software was developed
00013 c by the author named above.
00014 c
00015 c THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
00016 c IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
00017 c WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00018 c
00019
00020 subroutine pushstr
00021 save
00022 c
00023 c Push current strpos settings on a stack. Don't alter settings.
00024 c
00025 dimension stack(30)
00026 common/str posn/i pos set,frx,fry
00027 c
00028 data ipoint/0/
00029 c
00030 if(ipoint.gt.27)stop'str stack overflow.'
00031 ipoint=ipoint+1
00032 stack(ipoint)=i pos set
00033 ipoint=ipoint+1
00034 stack(ipoint)=frx
00035 ipoint=ipoint+1
00036 stack(ipoint)=fry
00037 return
00038 c
00039 entry popstr
00040 c
00041 c pop last strpos settings from the stack.
00042 c
00043 if(ipoint.lt.2)stop'str stack underflow.'
00044 fry=stack(ipoint)
00045 ipoint=ipoint-1
00046 frx=stack(ipoint)
00047 ipoint=ipoint-1
00048 i pos set=stack(ipoint)
00049 ipoint=ipoint-1
00050 c
00051 end