Change-Id: If881ec130833c7e7e62caa3d31e350a531f5bc8e Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/12398 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
		
			
				
	
	
		
			120 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /***********************************************************************/
 | |
| /* MANEXT - Extract manual pages from C source code.                   */
 | |
| /***********************************************************************/
 | |
| /*
 | |
|  * MANEXT - A program to extract manual pages from C source code.
 | |
|  * Copyright (C) 1991-1996 Mark Hessling
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or
 | |
|  * modify it under the terms of the GNU General Public License as
 | |
|  * published by the Free Software Foundation; either version 2 of
 | |
|  * the License, or any later version.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | |
|  * General Public License for more details.
 | |
|  *
 | |
|  * If you make modifications to this software that you feel increases
 | |
|  * it usefulness for the rest of the community, please email the
 | |
|  * changes, enhancements, bug fixes as well as any and all ideas to me.
 | |
|  * This software is going to be maintained and enhanced as deemed
 | |
|  * necessary by the community.
 | |
|  *
 | |
|  * Mark Hessling <mark@rexx.org>
 | |
|  */
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| 
 | |
| #define MAX_LINE 255
 | |
| 
 | |
| void display_info()
 | |
| {
 | |
|     fprintf(stderr, "\nMANEXT 1.03 Copyright (C) 1991-1996 Mark Hessling\n"
 | |
|                     "All rights reserved.\n"
 | |
|                     "MANEXT is distributed under the terms of the GNU\n"
 | |
|                     "General Public License and comes with NO WARRANTY.\n"
 | |
|                     "See the file COPYING for details.\n"
 | |
|                     "\nUsage: manext sourcefile [...]\n\n");
 | |
| }
 | |
| 
 | |
| int main(int argc, char **argv)
 | |
| {
 | |
|     char s[MAX_LINE + 1];       /* input line */
 | |
|     int i;
 | |
|     FILE *fp;
 | |
| 
 | |
| #ifdef __EMX__
 | |
|     _wildcard(&argc, &argv);
 | |
| #endif
 | |
|     if (strcmp(argv[1], "-h") == 0)
 | |
|     {
 | |
|         display_info();
 | |
|         exit(1);
 | |
|     }
 | |
| 
 | |
|     for (i = 1; i < argc; i++)
 | |
|     {
 | |
|         if ((fp = fopen(argv[i], "r")) == NULL)
 | |
|         {
 | |
|             fprintf(stderr, "\nCould not open %s\n", argv[i]);
 | |
|             continue;
 | |
|         }
 | |
| 
 | |
|         while (!feof(fp))
 | |
|         {
 | |
|             if (fgets(s, (int)sizeof(s), fp) == NULL)
 | |
|             {
 | |
|                 if (ferror(fp) != 0)
 | |
|                 {
 | |
|                     fprintf(stderr, "*** Error reading %s.  Exiting.\n",
 | |
|                             argv[i]);
 | |
|                     exit(1);
 | |
|                 }
 | |
| 
 | |
|                 break;
 | |
|             }
 | |
| 
 | |
|             /* check for manual entry marker at beginning of line */
 | |
| 
 | |
|             if (strncmp(s, "/*man-start*", 12) != 0)
 | |
|                 continue;
 | |
| 
 | |
|             /* inner loop */
 | |
| 
 | |
|             for (;;)
 | |
|             {
 | |
|                 /* read next line of manual entry */
 | |
| 
 | |
|                 if (fgets(s, (int)sizeof(s), fp) == NULL)
 | |
|                 {
 | |
|                     if (ferror(fp) != 0)
 | |
|                     {
 | |
|                         fprintf(stderr, "*** Error reading %s.  Exiting.\n",
 | |
|                                 argv[i]);
 | |
|                         exit(1);
 | |
|                     }
 | |
| 
 | |
|                     break;
 | |
|                 }
 | |
| 
 | |
|                 /* check for end of entry marker */
 | |
| 
 | |
|                 if (strncmp(s, "**man-end", 9) == 0)
 | |
|                     break;
 | |
| 
 | |
|                 printf("%s", s);
 | |
|             }
 | |
| 
 | |
|             printf("\n\n-----------------------------------"
 | |
|                    "---------------------------------------\n\n");
 | |
|         }
 | |
| 
 | |
|         fclose(fp);
 | |
|     }
 | |
| 
 | |
|     return 0;
 | |
| }
 |