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;
 | 
						|
}
 |