struct        StringsBase     *StringsBase=0L;

/*#define RUN*/
#ifdef  RUN

long AtoL(s) register char *s; {
  register long val=0; register int sign =1; register char c=*s;
  if(c==' ') { do ; while(*++s==' '); }
  c=*s;
  if((c=='+')||(c=='-')) {
   if(c=='+') sign = 1;
   if(c=='-') sign = -1; s++;
  }
  c=*s;
  if(c>='0' && c<= '9') {
   do {
    val=10*val+c-'0';  c=*++s;
   } while(c>='0' && c <= '9');
  }
  if(sign<0) val=-val;
  return (val);
 }                      /* $VER: AtoL 0.2 MRZ06 */

#endif

long t(s) char *s; {
  long el=0,l; char os[64]; l=AtoL(s); sprintf(os,"<%s>",s);
  printf(" %22s = %ld\n",os,l);
  return el;
 }

int main() {                             /* MAIN */
  register long l,al; char *s[32];
  StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0);
  t(" 23"); t("a 23"); t(" b23"); t(" -1"); t(" +2"); t(" -+456");
  t(" +-456"); t(" 1234567890atol"); t("   -255"); t("AtoL12345");
  t("987"); t("-987"); t("+987"); t("");
  if(StringsBase) CloseLibrary(StringsBase);
  return 0;
 }                                                             /* END */

#ifdef  COMMENT
                  < 23> = 23
                 <a 23> = 0
                 < b23> = 0
                  < -1> = -1
                  < +2> = 2
               < -+456> = 0
               < +-456> = 0
      < 1234567890atol> = 1234567890
              <   -255> = -255
            <AtoL12345> = 0
                  <987> = 987
                 <-987> = -987
                 <+987> = 987
                     <> = 0
#endif

