# HG changeset patch # User Space Falcon # Date 1439068677 0 # Node ID 33e4c4cdf4937e26e077469a59b7cb0a965f6cf3 # Parent d14bf25b5e26bd0fc10299eefedf3fcdaa1deb02 libunet: reading of ATTR lines implemented diff -r d14bf25b5e26 -r 33e4c4cdf493 ueda/libunet/unetrd.c --- a/ueda/libunet/unetrd.c Thu Aug 06 20:40:19 2015 +0000 +++ b/ueda/libunet/unetrd.c Sat Aug 08 21:17:57 2015 +0000 @@ -144,6 +144,29 @@ } } +static void +handle_attr(state, out, rest) + struct unetrd_state *state; + struct unetrd_out *out; + char *rest; +{ + char *cp; + + for (cp = rest; isspace(*cp); cp++) + ; + if (*cp == '\0' || *cp == '#') { +error: fprintf(stderr, "%s line %d: invalid syntax on ATTR line\n", + state->filename, state->lineno); + exit(1); + } + out->objname = cp; + cp = index(cp, '='); + if (!cp) + goto error; + *cp++ = '\0'; + out->attr_value = cp; +} + static struct objmap { char *keyword; int typecode; @@ -157,6 +180,7 @@ {"ALTNAME", UNETOBJ_ALTNAME, handle_name_only}, {"PIN", UNETOBJ_PIN, handle_pin_line}, {"PINMAP", UNETOBJ_PINMAP, handle_pin_line}, + {"ATTR", UNETOBJ_ATTR, handle_attr}, {0, 0, 0} }; diff -r d14bf25b5e26 -r 33e4c4cdf493 ueda/libunet/unetrd.h --- a/ueda/libunet/unetrd.h Thu Aug 06 20:40:19 2015 +0000 +++ b/ueda/libunet/unetrd.h Sat Aug 08 21:17:57 2015 +0000 @@ -14,6 +14,7 @@ char *objname; char *connect_to_net; char *nc_comment; + char *attr_value; }; #define UNETOBJ_CLOSINGBRACE 0 @@ -24,3 +25,4 @@ #define UNETOBJ_ALTNAME 5 #define UNETOBJ_PIN 6 #define UNETOBJ_PINMAP 7 +#define UNETOBJ_ATTR 8