mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-11-19 08:14:05 +02:00
b2/: resolve FN in subst_init and don't consider an FN match evidence of existance
This commit is contained in:
parent
c6e394436c
commit
c2414a5d2c
@ -136,6 +136,7 @@ int main(int argc, char **argv)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
dollar = unique("$");
|
dollar = unique("$");
|
||||||
|
subst_init();
|
||||||
subex_init();
|
subex_init();
|
||||||
for (i = 1; i != argc; i++) {
|
for (i = 1; i != argc; i++) {
|
||||||
if (*argv[i] != '-') {
|
if (*argv[i] != '-') {
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
#define FIELDS 10 /* fields in KiCad schematics */
|
#define FIELDS 10 /* fields in KiCad schematics */
|
||||||
|
|
||||||
|
|
||||||
static const char *fn = NULL, *f[FIELDS];
|
static const char *f[FIELDS];
|
||||||
|
|
||||||
/* Jump targets that can never be reached. */
|
/* Jump targets that can never be reached. */
|
||||||
static struct subst jump_end;
|
static struct subst jump_end;
|
||||||
@ -248,7 +248,6 @@ void subex_init(void)
|
|||||||
int i;
|
int i;
|
||||||
char tmp[4];
|
char tmp[4];
|
||||||
|
|
||||||
fn = unique("FN");
|
|
||||||
for (i = 0; i != FIELDS; i++) {
|
for (i = 0; i != FIELDS; i++) {
|
||||||
sprintf(tmp, "F%d", i);
|
sprintf(tmp, "F%d", i);
|
||||||
f[i] = unique(tmp);
|
f[i] = unique(tmp);
|
||||||
|
11
b2/subst.c
11
b2/subst.c
@ -25,6 +25,9 @@
|
|||||||
#include "subst.h"
|
#include "subst.h"
|
||||||
|
|
||||||
|
|
||||||
|
const char *fn;
|
||||||
|
|
||||||
|
|
||||||
/* ----- Rule set construction --------------------------------------------- */
|
/* ----- Rule set construction --------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
@ -297,7 +300,7 @@ static int find_var_use(const char *var, const struct subst *sub)
|
|||||||
while (sub) {
|
while (sub) {
|
||||||
switch (sub->type) {
|
switch (sub->type) {
|
||||||
case st_match:
|
case st_match:
|
||||||
if (sub->u.match.src == var)
|
if (sub->u.match.src == var && var != fn)
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
case st_assign:
|
case st_assign:
|
||||||
@ -459,3 +462,9 @@ void subst_dump(FILE *file, const struct subst *sub)
|
|||||||
{
|
{
|
||||||
recurse_dump(file, sub, 0);
|
recurse_dump(file, sub, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void subst_init(void)
|
||||||
|
{
|
||||||
|
fn = unique("FN");
|
||||||
|
}
|
||||||
|
@ -73,6 +73,9 @@ struct subst {
|
|||||||
#define MULT_CHARS "GMkmunpf"
|
#define MULT_CHARS "GMkmunpf"
|
||||||
|
|
||||||
|
|
||||||
|
extern const char *fn;
|
||||||
|
|
||||||
|
|
||||||
struct subst *subst_match(const char *src, const char *re);
|
struct subst *subst_match(const char *src, const char *re);
|
||||||
struct subst *subst_assign(const char *dst, enum relop op, const char *pat);
|
struct subst *subst_assign(const char *dst, enum relop op, const char *pat);
|
||||||
struct subst *subst_end(void);
|
struct subst *subst_end(void);
|
||||||
@ -84,4 +87,6 @@ void subst_finalize(struct subst *sub);
|
|||||||
|
|
||||||
void subst_dump(FILE *file, const struct subst *sub);
|
void subst_dump(FILE *file, const struct subst *sub);
|
||||||
|
|
||||||
|
void subst_init(void);
|
||||||
|
|
||||||
#endif /* !SUBST_H */
|
#endif /* !SUBST_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user