argv[2] is basename of the headerfile
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2477 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -45,21 +45,25 @@ FILE *headerfile, *codefile, *logfile;
|
|||||||
#define STEM "asn1"
|
#define STEM "asn1"
|
||||||
|
|
||||||
static char *orig_filename;
|
static char *orig_filename;
|
||||||
|
static char header[1024];
|
||||||
|
|
||||||
void
|
void
|
||||||
init_generate (char *filename)
|
init_generate (char *filename, char *basename)
|
||||||
{
|
{
|
||||||
orig_filename = filename;
|
orig_filename = filename;
|
||||||
headerfile = fopen (STEM ".h", "w");
|
if(basename == NULL)
|
||||||
|
basename = STEM;
|
||||||
|
sprintf(header, "%s.h", basename);
|
||||||
|
headerfile = fopen (header, "w");
|
||||||
if (headerfile == NULL)
|
if (headerfile == NULL)
|
||||||
err (1, "open " STEM ".h");
|
err (1, "open %s", header);
|
||||||
fprintf (headerfile,
|
fprintf (headerfile,
|
||||||
"/* Generated from %s */\n"
|
"/* Generated from %s */\n"
|
||||||
"/* Do not edit */\n\n",
|
"/* Do not edit */\n\n",
|
||||||
filename);
|
filename);
|
||||||
fprintf (headerfile,
|
fprintf (headerfile,
|
||||||
"#ifndef __" STEM "_h__\n"
|
"#ifndef __%s_h__\n"
|
||||||
"#define __" STEM "_h__\n\n");
|
"#define __%s_h__\n\n", basename, basename);
|
||||||
fprintf (headerfile,
|
fprintf (headerfile,
|
||||||
"#include <stddef.h>\n"
|
"#include <stddef.h>\n"
|
||||||
"#include <time.h>\n\n");
|
"#include <time.h>\n\n");
|
||||||
@@ -86,7 +90,7 @@ init_generate (char *filename)
|
|||||||
void
|
void
|
||||||
close_generate ()
|
close_generate ()
|
||||||
{
|
{
|
||||||
fprintf (headerfile, "#endif /* __" STEM "_h__ */\n");
|
fprintf (headerfile, "#endif /* __%s_h__ */\n", header);
|
||||||
|
|
||||||
fclose (headerfile);
|
fclose (headerfile);
|
||||||
fprintf (logfile, "\n");
|
fprintf (logfile, "\n");
|
||||||
|
@@ -45,22 +45,24 @@ extern FILE *yyin;
|
|||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
char *name;
|
char *file;
|
||||||
|
char *name = NULL;
|
||||||
|
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
name = "stdin";
|
name = "stdin";
|
||||||
yyin = stdin;
|
yyin = stdin;
|
||||||
} else {
|
} else {
|
||||||
name = argv[1];
|
file = argv[1];
|
||||||
yyin = fopen (name, "r");
|
yyin = fopen (file, "r");
|
||||||
if (yyin == NULL)
|
if (yyin == NULL)
|
||||||
err (1, "open %s", name);
|
err (1, "open %s", file);
|
||||||
}
|
name = argv[2];
|
||||||
|
}
|
||||||
|
|
||||||
init_generate (name);
|
init_generate (file, name);
|
||||||
initsym ();
|
initsym ();
|
||||||
ret = yyparse ();
|
ret = yyparse ();
|
||||||
close_generate ();
|
close_generate ();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user