Ejemplo n.º 1
0
/* writenodeandport:
 */
static void writenodeandport(FILE * fp, char *node, char *port)
{
    char *ss;
    agputs(agcanonical(node), fp);	/* slimey i know */
    if (port && *port) {
	if (aghtmlstr(port)) {
            agputc(':', fp);
	    agputs(agstrcanon(port, getoutputbuffer(port)), fp);
	}
	else {
	    ss = strchr (port, ':');
	    if (ss) {
		*ss = '\0';
                agputc(':', fp);
		agputs(_agstrcanon(port, getoutputbuffer(port)), fp);
                agputc(':', fp);
		agputs(_agstrcanon(ss+1, getoutputbuffer(ss+1)), fp);
		*ss = ':';
	    }
	    else {
                agputc(':', fp);
		agputs(_agstrcanon(port, getoutputbuffer(port)), fp);
	    }
	}
    }
}
Ejemplo n.º 2
0
/* writenodeandport:
 */
static void writenodeandport(FILE * fp, char *node, char *port)
{
    char *ss;
    fprintf(fp, "%s", agcanonical(node));	/* slimey i know */
    if (port && *port) {
	if (aghtmlstr(port)) {
	    fprintf(fp, ":%s", agstrcanon(port, getoutputbuffer(port)));
	}
	else {
	    ss = strchr (port, ':');
	    if (ss) {
		*ss = '\0';
		fprintf(fp, ":%s",
		    _agstrcanon(port, getoutputbuffer(port)));
		fprintf(fp, ":%s",
		    _agstrcanon(ss+1, getoutputbuffer(ss+1)));
		*ss = ':';
	    }
	    else {
		fprintf(fp, ":%s", _agstrcanon(port, getoutputbuffer(port)));
	    }
	}
    }
}
Ejemplo n.º 3
0
/* agcanonical:
 * Safe version of agstrcanon.
 */
char*
agcanonical(char *str)
{
    return agstrcanon(str, getoutputbuffer(str));
}
Ejemplo n.º 4
0
void write_plainstr(graph_t* g, std::string *str)
{
	int			i;
	node_t		*n;
	edge_t		*e;
	bezier		bz;
	char		buf[SMALLBUF],buf1[SMALLBUF];

	char tmpbuf[1000];

	setup_graph(g);

	sprintf(tmpbuf, "graph %.3f", g->u.drawing->scale);
	str->append(tmpbuf);
	printptf(str, g->u.bb.UR);
	str->append("\n");

	for (n = agfstnode(g); n; n = agnxtnode(g,n)) {
	    str->append("node ");
	    str->append(agstrcanon(n->name,buf));
	    printptf(str,n->u.coord);
	    sprintf(tmpbuf, " %.3f", n->u.width);
	    str->append(tmpbuf);
	    sprintf(tmpbuf, " %.3f ", n->u.height);
	    str->append(tmpbuf);
	    str->append(agstrcanon(n->u.label->text,buf));
	    str->append(" ");
	    str->append(late_nnstring(n,N_style,"solid"));
	    str->append(" ");
	    str->append(n->u.shape->name);
	    str->append(" ");
	    str->append(late_nnstring(n,N_color,DEFAULT_COLOR));
	    str->append(" ");
	    str->append(late_nnstring(n,N_fillcolor,DEFAULT_FILL));
	    str->append("\n");
	}
	for (n = agfstnode(g); n; n = agnxtnode(g,n)) {
		for (e = agfstout(g,n); e; e = agnxtout(g,e)) {
			bz = e->u.spl->list[0];
			str->append("edge ");
			str->append(agstrcanon(e->tail->name,buf));
			str->append(" ");
			str->append(agstrcanon(e->head->name,buf1));
			str->append(" ");
			sprintf(tmpbuf, " %d", bz.size);
			str->append(tmpbuf);

			for (i = 0; i < bz.size; i++) printptf(str,bz.list[i]);
			if (e->u.label) {
			    str->append(" ");
			    str->append(agstrcanon(e->u.label->text,buf));
			    printptf(str,e->u.label->p);
			}
			str->append(" ");
			str->append(late_nnstring(e,E_style,"solid"));
			str->append(" ");
			str->append(late_nnstring(e,E_color,DEFAULT_COLOR));
			str->append("\n");
		}
	}
	str->append("stop\n");
}