USAGE.C
上传用户:hlzzc88
上传日期:2007-01-06
资源大小:220k
文件大小:2k
源码类别:

编译器/解释器

开发平台:

Others

  1. /*
  2.  * 68K/386 32-bit C compiler.
  3.  *
  4.  * copyright (c) 1997, David Lindauer
  5.  * 
  6.  * This compiler is intended for educational use.  It may not be used
  7.  * for profit without the express written consent of the author.
  8.  *
  9.  * It may be freely redistributed, as long as this notice remains intact
  10.  * and either the original sources or derived sources 
  11.  * are distributed along with any executables derived from the originals.
  12.  *
  13.  * The author is not responsible for any damages that may arise from use
  14.  * of this software, either idirect or consequential.
  15.  *
  16.  * v1.35 March 1997
  17.  * David Lindauer, gclind01@starbase.spd.louisville.edu
  18.  *
  19.  * Credits to Mathew Brandt for original K&R C compiler
  20.  *
  21.  */
  22. /*
  23.  * Display usage information and exit.
  24.  */
  25. #include <stdio.h>
  26. #include <string.h>
  27. #include <stdlib.h>
  28. #include <stdarg.h>
  29. #include "cmdline.h"
  30. /*
  31.  * Main program must define the usage text
  32.  */
  33. extern char *usage_text;
  34. /* Program banner */
  35. void banner( char *fmt, ... )
  36. {
  37.   va_list argptr;
  38.   putc('n', stdout);
  39.   va_start( argptr, fmt);
  40.   vprintf( fmt, argptr);
  41.   va_end(argptr);
  42.   putc('n', stdout);
  43.   putc('n', stdout);
  44. }
  45. /* Print usage info */
  46. void usage( char *prog_name)
  47. {
  48.   char *short_name;
  49.   char *extension;
  50.   short_name = strrchr(prog_name, '\' );
  51.   if (short_name == NULL)
  52.     short_name = strrchr( prog_name, '/' );
  53.   if (short_name == NULL)
  54.     short_name = strrchr( prog_name, ':' );
  55.   if (short_name)
  56.     short_name++;
  57.   else
  58.     short_name = prog_name;
  59.   extension = strrchr( short_name, '.');
  60.   if (extension != NULL)
  61.     *extension = '';
  62.   printf("nUsage: %s %sn", short_name, usage_text);
  63.   exit( 1 );
  64. }