home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / uucp / duucp-1.17 / AU-117b4-src.lha / src / util / man.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-24  |  1.1 KB  |  63 lines

  1. /*
  2.  *  MAN.C
  3.  *
  4.  *  MAN <topic>
  5.  *
  6.  *  searches for UUMAN:topic or UUMAN:topic.Doc
  7.  */
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include "version.h"
  12. #include "config.h"
  13.  
  14. IDENT(".01");
  15.  
  16. int Man(char *file);
  17.  
  18. int
  19. main (int ac, char **av)
  20. {
  21.     short i;
  22.     static char Buf[256];
  23.  
  24.     for (i = 1; i < ac; ++i) {
  25.     char *topic = av[i];
  26.  
  27.     if (Man(topic) == 0) {
  28.         char *manDir = MakeConfigPath(UUMAN, "");
  29.         sprintf(Buf, "%s%s.Doc", manDir, topic);
  30.         if (Man(Buf) == 0) {
  31.         sprintf(Buf, "%s%s", manDir, topic);
  32.         if (Man(Buf) == 0)
  33.             printf("Unable to open %s[.Doc]\n", Buf);
  34.         }
  35.     }
  36.     }
  37. }
  38.  
  39. int Man(char *file)
  40. {
  41.     FILE *fi = fopen(file, "r");
  42.     char *filter = FindConfig(RFILTER);
  43.     short rb = 1;
  44.     static char Cmd[256];
  45.  
  46.     if (fi == NULL)
  47.     return(0);
  48.     if (filter == NULL) {
  49.     if ((filter = FindConfig(FILTER)) == NULL) {
  50.         printf("UULIB:Config, no 'Filter' entry\n");
  51.         return(0);
  52.     }
  53.     rb = 0;
  54.     }
  55.     fclose(fi);
  56.     if (rb)
  57.     sprintf(Cmd, "Run >nil: <nil: %s %s", filter, file);
  58.     else
  59.     sprintf(Cmd, "%s %s", filter, file);
  60.     Execute ((UBYTE *) Cmd, 0, 0);
  61. }
  62.  
  63.