r56: Improved option processing
[ctsim.git] / src / rs2sdf.c
index edfd411d92dcda144ffe2f5443679b76ee6e085e..80d1304853b7f6e102f3682bf1a9a4b8412f53de 100644 (file)
@@ -2,8 +2,11 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: rs2sdf.c,v 1.2 2000/05/08 20:02:32 kevin Exp $
+**  $Id: rs2sdf.c,v 1.3 2000/05/16 04:33:59 kevin Exp $
 **  $Log: rs2sdf.c,v $
+**  Revision 1.3  2000/05/16 04:33:59  kevin
+**  Improved option processing
+**
 **  Revision 1.2  2000/05/08 20:02:32  kevin
 **  ANSI C changes
 **
@@ -25,6 +28,7 @@
 **  along with this program; if not, write to the Free Software
 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 ******************************************************************************/
+
 /* FILE
  *   rs2sdf.c                  Convert Raysum to image
  *
@@ -46,20 +50,20 @@ static struct option my_options[] =
 
 
 void 
-usage (const char *program)
+rs2sdf_usage (const char *program)
 {
-  fprintf(stdout, "usage: %s in-rs-file out-sdf-file [OPTIONS]\n", kbasename(program));
+  fprintf(stdout, "rs2sdf_usage: %s in-rs-file out-sdf-file [OPTIONS]\n", kbasename(program));
   fprintf(stdout, "This program converts a raysum file to a SDF2D file\n");
   fprintf(stdout, "\n");
   fprintf(stdout, "   --verbose   Verbose mode\n");
   fprintf(stdout, "   --version   Print version\n");
   fprintf(stdout, "   --help      Print this help message\n");
-  exit(1);
 }
 
          
+
 int 
-main (const int argc, char *const argv[])
+rs2sdf_main (const int argc, char *const argv[])
 {
   IMAGE *im;
   RAYSUM *rs;
@@ -89,23 +93,25 @@ main (const int argc, char *const argv[])
          exit(0);
        case O_HELP:
        case '?':
-         usage(argv[0]);
-         exit(0);
+         rs2sdf_usage(argv[0]);
+         return (0);
        default:
-         usage(argv[0]);
-         exit(1);
+         rs2sdf_usage(argv[0]);
+         return (1);
        }
     }
   
-  if (argc - optind != 2)
-    usage(argv[0]);
+  if (argc - optind != 2) {
+    rs2sdf_usage(argv[0]);
+    return (1);
+  }
 
   rs_name = argv[optind];
   im_name = argv[optind + 1];
 
   if (file_exists(rs_name) == FALSE) {
     fprintf (stderr, "Raysum file %s does not exist\n", rs_name);
-    exit(1);
+    return (1);
   }
   
   rs = raysum_open (rs_name);
@@ -138,3 +144,11 @@ main (const int argc, char *const argv[])
   
   return(0);
 }
+
+#ifndef NO_MAIN
+int 
+main (const int argc, char *const argv[])
+{
+  return (rs2sdf_main(argc, argv));
+}
+#endif