diff --git a/src/pipe/graph-history.h b/src/pipe/graph-history.h index 48b4056c..121d07e8 100644 --- a/src/pipe/graph-history.h +++ b/src/pipe/graph-history.h @@ -34,7 +34,7 @@ dt_graph_history_reset( // write all connections for(uint32_t m=0;mnum_modules;m++) for(int c=0;cmodule[m].num_connectors;c++,i+=(hi[i+1]!=hi[i])) - if(!(hi[i+1] = dt_graph_write_connection_ascii(graph, m, c, hi[i], max-hi[i]))) + if(!(hi[i+1] = dt_graph_write_connection_ascii(graph, m, c, hi[i], max-hi[i], 1))) return 1; // write all params @@ -130,7 +130,7 @@ dt_graph_history_connection( if(_dt_graph_history_check_buf(graph, 70)) return; int i = graph->history_item_end; char **hi = graph->history_item, *max = graph->history_pool + graph->history_max; - if(hi[i] < (hi[i+1] = dt_graph_write_connection_ascii(graph, modid, conid, hi[i], max - hi[i]))) + if(hi[i] < (hi[i+1] = dt_graph_write_connection_ascii(graph, modid, conid, hi[i], max - hi[i], 1))) { *(hi[i+1]-1) = 0; graph->history_item_cur = ++graph->history_item_end; } } diff --git a/src/pipe/graph-io.c b/src/pipe/graph-io.c index fc2283e8..0f4e96b6 100644 --- a/src/pipe/graph-io.c +++ b/src/pipe/graph-io.c @@ -340,7 +340,8 @@ dt_graph_write_connection_ascii( const int m, // module index const int i, // connector index on given module char *line, - size_t size) + size_t size, + int allow_empty) { if(graph->module[m].name == 0) return line; dt_connector_t *c = graph->module[m].connector+i; @@ -348,6 +349,7 @@ dt_graph_write_connection_ascii( dt_token_t name, inst, conn; if(c->connected_mi == -1) { // explicitly record disconnect event (important for history) + if(!allow_empty) return line; // don't write disconnect events explicitly name = inst = conn = dt_token("-1"); } else @@ -490,7 +492,7 @@ int dt_graph_write_config_ascii( // write all connections for(int m=0;mnum_modules;m++) for(int i=0;imodule[m].num_connectors;i++) - if(!(buf = dt_graph_write_connection_ascii(graph, m, i, buf, end-buf))) + if(!(buf = dt_graph_write_connection_ascii(graph, m, i, buf, end-buf, 0))) goto error; // write all params diff --git a/src/pipe/graph-io.h b/src/pipe/graph-io.h index a0313a1f..168c0064 100644 --- a/src/pipe/graph-io.h +++ b/src/pipe/graph-io.h @@ -26,7 +26,8 @@ dt_graph_write_connection_ascii( const int m, // module index const int i, // connector index on given module char *line, - size_t size); + size_t size, + int write_empty); // also serialise disconnected inputs (for history) // write param VKDT_API char * diff --git a/src/pipe/modules/bs.h b/src/pipe/modules/bs.h index 2b2021e4..427f5355 100644 --- a/src/pipe/modules/bs.h +++ b/src/pipe/modules/bs.h @@ -26,7 +26,7 @@ DECLARE_FUNC(int, dt_module_connect, (dt_graph_t *graph, int n0, int c0, int DECLARE_FUNC(int, dt_module_feedback, (dt_graph_t *graph, int n0, int c0, int n1, int c1)); DECLARE_FUNC(int, dt_module_remove, (dt_graph_t *graph, const int mid)); DECLARE_FUNC(int, dt_module_add, (dt_graph_t *graph, dt_token_t name, dt_token_t inst)); -DECLARE_FUNC(char*, dt_graph_write_connection_ascii, (dt_graph_t *graph, const int m, const int i, char *line, size_t size)); +DECLARE_FUNC(char*, dt_graph_write_connection_ascii, (dt_graph_t *graph, const int m, const int i, char *line, size_t size, int allow_empty)); DECLARE_FUNC(char*, dt_graph_write_param_ascii, (const dt_graph_t *graph, const int m, const int p, char *line, size_t size, char **eop)); DECLARE_FUNC(char*, dt_graph_write_module_ascii, (const dt_graph_t *graph, const int m, char *line, size_t size)); DECLARE_VAR(dt_pipe_global_t, dt_pipe);