FreeCalypso > hg > ueda-linux
view ueda/sverp-bind/enterinst.c @ 14:068ea2458c5d
unet-bind: instance entry implemented
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Sun, 02 Aug 2015 00:34:30 +0000 |
parents | |
children | dda8e455c863 |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include "struct.h" extern struct instance *enter_instance(); process_hier_attr(oc, hier) register struct outcomp *oc; char *hier; { register struct instance *inst; oc->altname = hier; inst = enter_instance(hier); inst->outcomp = oc; } process_slotmap_attr(oc, slotmap_file) struct outcomp *oc; char *slotmap_file; { FILE *stream; char linebuf[256]; int lineno; register char *cp; char *instname, *slot; register struct instance *inst; stream = fopen(slotmap_file, "r"); if (!stream) { perror(slotmap_file); exit(1); } for (lineno = 1; fgets(linebuf, sizeof linebuf, stream); lineno++) { cp = index(linebuf, '\n'); if (!cp) { fprintf(stderr, "error: %s line %d is too long or unterminated\n", slotmap_file, lineno); exit(1); } *cp = '\0'; for (cp = linebuf; isspace(*cp); cp++) ; if (*cp == '\0' || *cp == '#') continue; instname = cp; while (*cp && !isspace(*cp)) cp++; if (*cp) *cp++ = '\0'; while (isspace(*cp)) cp++; if (*cp == '\0' || *cp == '#') slot = 0; else { slot = cp; while (*cp && !isspace(*cp)) cp++; if (*cp) *cp++ = '\0'; } inst = enter_instance(instname); inst->outcomp = oc; inst->slot = slot; } fclose(stream); }