From e45e6fd274826991c2b7e01fde4d73110487e0e0 Mon Sep 17 00:00:00 2001 From: Jon Loeliger Date: Fri, 23 Mar 2007 15:18:41 -0500 Subject: DTC: Add support for a C-like #include "file" mechanism. Keeps track of open files in a stack, and assigns a filenum to source positions for each lexical token. Modified error reporting to show source file as well. No policy on file directory basis has been decided. Still handles stdin. Tested on all arch/powerpc/boot/dts DTS files Signed-off-by: Jon Loeliger --- dtc.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) (limited to 'dtc.c') diff --git a/dtc.c b/dtc.c index 051a68b..a009605 100644 --- a/dtc.c +++ b/dtc.c @@ -19,6 +19,7 @@ */ #include "dtc.h" +#include "srcpos.h" char *join_path(char *path, char *name) { @@ -61,21 +62,6 @@ void fill_fullpaths(struct node *tree, char *prefix) fill_fullpaths(child, tree->fullpath); } -static FILE *dtc_open_file(char *fname) -{ - FILE *f; - - if (streq(fname, "-")) - f = stdin; - else - f = fopen(fname, "r"); - - if (! f) - die("Couldn't open \"%s\": %s\n", fname, strerror(errno)); - - return f; -} - static void usage(void) { fprintf(stderr, "Usage:\n"); @@ -166,8 +152,7 @@ int main(int argc, char *argv[]) inform, outform, arg); if (streq(inform, "dts")) { - inf = dtc_open_file(arg); - bi = dt_from_source(inf); + bi = dt_from_source(arg); } else if (streq(inform, "fs")) { bi = dt_from_fs(arg); } else if(streq(inform, "dtb")) { -- cgit v1.2.3-59-g8ed1b