mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-11-29 11:56:15 +02:00
eshow/main.c: support using project file as leader (instead of top sheet)
This commit is contained in:
parent
c0cb1d3bfb
commit
1a4c62da31
@ -31,6 +31,7 @@
|
|||||||
#include "kicad/pl.h"
|
#include "kicad/pl.h"
|
||||||
#include "kicad/lib.h"
|
#include "kicad/lib.h"
|
||||||
#include "kicad/sch.h"
|
#include "kicad/sch.h"
|
||||||
|
#include "kicad/pro.h"
|
||||||
#include "gui/fmt-pango.h"
|
#include "gui/fmt-pango.h"
|
||||||
#include "file/git-hist.h"
|
#include "file/git-hist.h"
|
||||||
#include "gui/gui.h"
|
#include "gui/gui.h"
|
||||||
@ -75,7 +76,7 @@ void usage(const char *name)
|
|||||||
" %s gdb ...\n"
|
" %s gdb ...\n"
|
||||||
"\n"
|
"\n"
|
||||||
" kicad_file [rev:]file.ext\n"
|
" kicad_file [rev:]file.ext\n"
|
||||||
" ext .lib, .sch, or .kicad_wks\n"
|
" ext .pro, .lib, .sch, or .kicad_wks\n"
|
||||||
" rev git revision\n"
|
" rev git revision\n"
|
||||||
"\n"
|
"\n"
|
||||||
" -r recurse into sub-sheets\n"
|
" -r recurse into sub-sheets\n"
|
||||||
@ -120,7 +121,7 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
struct lib lib;
|
struct lib lib;
|
||||||
struct sch_ctx sch_ctx;
|
struct sch_ctx sch_ctx;
|
||||||
struct file sch_file;
|
struct file pro_file, sch_file;
|
||||||
bool recurse = 0;
|
bool recurse = 0;
|
||||||
const char *cat = NULL;
|
const char *cat = NULL;
|
||||||
const char *history = NULL;
|
const char *history = NULL;
|
||||||
@ -132,6 +133,7 @@ int main(int argc, char **argv)
|
|||||||
unsigned i;
|
unsigned i;
|
||||||
bool have_dashdash = 0;
|
bool have_dashdash = 0;
|
||||||
struct file_names file_names;
|
struct file_names file_names;
|
||||||
|
struct file_names *fn = &file_names;
|
||||||
int gfx_argc;
|
int gfx_argc;
|
||||||
char **gfx_argv;
|
char **gfx_argv;
|
||||||
const struct gfx_ops **ops = ops_list;
|
const struct gfx_ops **ops = ops_list;
|
||||||
@ -221,27 +223,33 @@ int main(int argc, char **argv)
|
|||||||
usage(*argv);
|
usage(*argv);
|
||||||
|
|
||||||
classify_files(&file_names, argv + optind, dashdash - optind);
|
classify_files(&file_names, argv + optind, dashdash - optind);
|
||||||
if (!file_names.sch)
|
if (!file_names.pro && !file_names.sch)
|
||||||
fatal("top sheet name required");
|
fatal("project or top sheet name required");
|
||||||
|
|
||||||
if (!have_dashdash) {
|
if (!have_dashdash) {
|
||||||
optind = 0; /* reset getopt */
|
optind = 0; /* reset getopt */
|
||||||
return gui(&file_names, recurse, limit);
|
return gui(&file_names, recurse, limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (file_names.pro) {
|
||||||
|
if (!file_open(&pro_file, file_names.pro, NULL))
|
||||||
|
return 1;
|
||||||
|
fn = pro_parse_file(&pro_file, &file_names);
|
||||||
|
}
|
||||||
|
|
||||||
sch_init(&sch_ctx, recurse);
|
sch_init(&sch_ctx, recurse);
|
||||||
if (!file_open(&sch_file, file_names.sch, NULL))
|
if (!file_open(&sch_file, fn->sch, file_names.pro ? &pro_file : NULL))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
lib_init(&lib);
|
lib_init(&lib);
|
||||||
for (i = 0; i != file_names.n_libs; i++)
|
for (i = 0; i != fn->n_libs; i++)
|
||||||
if (!lib_parse(&lib, file_names.libs[i], &sch_file))
|
if (!lib_parse(&lib, fn->libs[i], &sch_file))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (file_names.pl) {
|
if (fn->pl) {
|
||||||
struct file file;
|
struct file file;
|
||||||
|
|
||||||
if (!file_open(&file, file_names.pl, &sch_file))
|
if (!file_open(&file, fn->pl, &sch_file))
|
||||||
return 1;
|
return 1;
|
||||||
pl = pl_parse(&file);
|
pl = pl_parse(&file);
|
||||||
file_close(&file);
|
file_close(&file);
|
||||||
|
Loading…
Reference in New Issue
Block a user