home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 21 / CD_ASCQ_21_040595.iso / dos / prg / c / freedos3 / source / jh_utils / help.c < prev    next >
C/C++ Source or Header  |  1995-01-07  |  3KB  |  100 lines

  1. /*
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.  
  7.    This program is distributed in the hope that it will be useful,
  8.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.    GNU General Public License for more details.
  11.  
  12.    You should have received a copy of the GNU General Public License
  13.    along with this program; if not, write to the Free Software
  14.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  15.    */
  16.  
  17. /***********************************************************************
  18.  * This program displays the help pages for Free-DOS.  It assumes the
  19.  * env. variables HELPATH and PAGER have been set.  HELPPATH should not
  20.  * have a trailing backslash.
  21.  *
  22.  * Author: James Hall
  23.  */
  24.  
  25. #include <stdio.h>        /* For printf, puts */
  26. #include <stdlib.h>        /* For getenv, system */
  27. #include <errno.h>        /* For system */
  28. #include <process.h>        /* For system */
  29. #include "getopt.h"        /* For getopt */
  30. #include "freedos.h"        /* Free-DOS stuff */
  31.  
  32.  
  33. void usage (void);
  34.  
  35.  
  36. main (int argc, char **argv)
  37. {
  38.   /* NOTE: As of 12/26/94, Free-DOS does not divide the Help pages by
  39.      section.  However, it seems a good idea to do so in future, so I
  40.      am using a "section" to make the change-over easier. */
  41.  
  42.   int i, iSec = 1;
  43.   char *psz, szPager[MAX_STR], szPath[MAX_STR], szProg[MAX_STR], szShell[MAX_STR];
  44.   FILE *pFile;
  45.  
  46.   /* Scan the command line */
  47.  
  48.   while ((i = getopt (argc, argv, "?")) != EOF)
  49.     {
  50.       switch (i)
  51.     {
  52.     default:
  53.       usage ();
  54.       break;
  55.     }
  56.     }
  57.  
  58.   /* NOTE: I am no longer supporting the big help file.  It is silly and
  59.      really a waste of disk space.  Just print the usage if no commands
  60.      are provided. */
  61.  
  62.   if ((argc - optind) < 1)
  63.     usage ();
  64.  
  65.  
  66.   /* Get the environment variables */
  67.  
  68.   if (psz = getenv ("HELPPATH"))
  69.     strcpy (szPath, psz);
  70.   else
  71.     strcpy (szPath, "C:\\DOS\\HELP");
  72.  
  73.   if (psz = getenv ("PAGER"))
  74.     strcpy (szPager, psz);
  75.   else
  76.     strcpy (szPager, "MORE");
  77.  
  78.   /* Display the Help pages */
  79.  
  80.   for (i = optind; i < argc; i++)
  81.     {
  82.       fBasename (szProg, argv[i]);
  83.       sprintf (szShell, "%s %s\\%d\\%s", szPager, szPath, iSec, szProg);
  84.  
  85.       puts (szShell);
  86.       system (szShell);
  87.     }
  88.  
  89.   exit (0);
  90. }
  91.  
  92.  
  93. void 
  94. usage (void)
  95. {
  96.   printp ("HELP", "Displays the Help pages for Free-DOS commands");
  97.   printu ("HELP", "command..");
  98.   exit (1);
  99. }
  100.