cvsuser     03/07/08 02:44:39

  Modified:    languages/bf bfc.imc
  Log:
  work around segfault; add sanity checks
  
  Revision  Changes    Path
  1.2       +16 -7     parrot/languages/bf/bfc.imc
  
  Index: bfc.imc
  ===================================================================
  RCS file: /cvs/public/parrot/languages/bf/bfc.imc,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -w -r1.1 -r1.2
  --- bfc.imc   6 Jul 2003 22:35:22 -0000       1.1
  +++ bfc.imc   8 Jul 2003 09:44:39 -0000       1.2
  @@ -1,4 +1,4 @@
  -# $Id: bfc.imc,v 1.1 2003/07/06 22:35:22 acme Exp $
  +# $Id: bfc.imc,v 1.2 2003/07/08 09:44:39 leo Exp $
   # A Brainfuck compiler
   # By Leon Brocard <[EMAIL PROTECTED]>
   # 
  @@ -16,23 +16,32 @@
     .local string program
     .local string char
   
  +  program = P0[0]
  +  # check argc
  +  I0 = P0
  +  if I0 < 2 goto usage
     # Get the filename
     filename = P0[1]
     if filename goto SOURCE
  -  program = P0[0]
  -  print "usage: ../imcc/imcc -r "
  +usage:
  +  print "usage: ../../parrot "
     print program
     print " file.bf\n"
     end
   
     # Read the file into S1
   SOURCE:
  -  open I0, filename
  +  open P1, filename, "<"
  +  defined I0, P1
  +  if I0, SOURCE_LOOP
  +  print filename
  +  print " not found\n"
  +  branch usage
   SOURCE_LOOP:
  -  readline line, I0
  +  read line, P1, 1024
     file = file . line
     if line goto SOURCE_LOOP
  -  close I0
  +  close P1
   
     length maxpc, file
   
  
  
  

Reply via email to