From bd826de2f539f2e48c8c01d2d7f9f34c7e97104a Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Fri, 13 May 2016 07:43:27 +0000 Subject: [PATCH] Fix in trisurf output, inhibiting print of successful reconstruction. Multiple fixes and improvements in python module. Added symlinking of tapes into the running directories and dumping tapes from snapshots into tape files. --- src/snapshot.c | 60 +++++++++++++++++++++++++++--------------------------------- 1 files changed, 27 insertions(+), 33 deletions(-) diff --git a/src/snapshot.c b/src/snapshot.c index e4681b0..370ce4c 100644 --- a/src/snapshot.c +++ b/src/snapshot.c @@ -1,3 +1,5 @@ +/* vim: set ts=4 sts=4 sw=4 noet : */ +/* vim: set ts=4 sts=4 sw=4 noet : */ #include<stdio.h> #include<general.h> #include<snapshot.h> @@ -7,7 +9,7 @@ #include<inttypes.h> #include<config.h> #include <time.h> - +#include "io.h" /* a helper function that utilizes ts_string data structure and performs same as sprintf */ ts_uint ts_sprintf(ts_string *str, char *fmt, ...){ va_list ap; @@ -56,7 +58,7 @@ fprintf(fh, "<dumpdate>%s</dumpdate>\n", c_time_string); fprintf(fh, "<tape>\n"); - + fprintf(fh,"%s",tapetxt); fprintf(fh, "</tape>\n"); if(vesicle->poly_list!=NULL){ npoly=vesicle->poly_list->n; @@ -69,7 +71,7 @@ npoly=0; nfono=0; } - fprintf(fh, "<trisurf nvtx=\"%u\" npoly=\"%u\" nfono=\"%u\">\n", vesicle->vlist->n, npoly, nfono); + fprintf(fh, "<trisurf nvtx=\"%u\" npoly=\"%u\" nmono=\"%u\" compressed=\"false\">\n", vesicle->vlist->n, npoly, nfono); return TS_SUCCESS; } @@ -82,7 +84,7 @@ ts_uint i; ts_sprintf(data,"<tria>"); for(i=0; i<tlist->n;i++){ - ts_sprintf(data,"%u %u %u",tlist->tria[i]->vertex[0]->idx, tlist->tria[i]->vertex[1]->idx, tlist->tria[i]->vertex[2]->idx); + ts_sprintf(data,"%u %u %u ",tlist->tria[i]->vertex[0]->idx, tlist->tria[i]->vertex[1]->idx, tlist->tria[i]->vertex[2]->idx); } ts_sprintf(data,"</tria>"); return TS_SUCCESS; @@ -92,7 +94,7 @@ ts_uint i; ts_sprintf(data,"<trianeigh>\n"); for(i=0; i<tlist->n;i++){ - ts_sprintf(data,"%u %u %u",tlist->tria[i]->neigh[0]->idx, tlist->tria[i]->neigh[1]->idx, tlist->tria[i]->neigh[2]->idx); + ts_sprintf(data,"%u %u %u ",tlist->tria[i]->neigh[0]->idx, tlist->tria[i]->neigh[1]->idx, tlist->tria[i]->neigh[2]->idx); } ts_sprintf(data,"</trianeigh>\n"); return TS_SUCCESS; @@ -169,10 +171,7 @@ static int mod_table[] = {0, 2, 1}; -char *base64_encode(const unsigned char *data, - size_t input_length, - size_t *output_length) { - +char *base64_encode(const unsigned char *data, size_t input_length, size_t *output_length) { *output_length = 4 * ((input_length + 2) / 3); int i,j; char *encoded_data = malloc(*output_length); @@ -180,29 +179,25 @@ for (i = 0, j = 0; i < input_length;) { - uint32_t octet_a = i < input_length ? (unsigned char)data[i++] : 0; - uint32_t octet_b = i < input_length ? (unsigned char)data[i++] : 0; - uint32_t octet_c = i < input_length ? (unsigned char)data[i++] : 0; + uint32_t octet_a = i < input_length ? (unsigned char)data[i++] : 0; + uint32_t octet_b = i < input_length ? (unsigned char)data[i++] : 0; + uint32_t octet_c = i < input_length ? (unsigned char)data[i++] : 0; + uint32_t triple = (octet_a << 0x10) + (octet_b << 0x08) + octet_c; - uint32_t triple = (octet_a << 0x10) + (octet_b << 0x08) + octet_c; - - encoded_data[j++] = encoding_table[(triple >> 3 * 6) & 0x3F]; - encoded_data[j++] = encoding_table[(triple >> 2 * 6) & 0x3F]; - encoded_data[j++] = encoding_table[(triple >> 1 * 6) & 0x3F]; - encoded_data[j++] = encoding_table[(triple >> 0 * 6) & 0x3F]; + encoded_data[j++] = encoding_table[(triple >> 3 * 6) & 0x3F]; + encoded_data[j++] = encoding_table[(triple >> 2 * 6) & 0x3F]; + encoded_data[j++] = encoding_table[(triple >> 1 * 6) & 0x3F]; + encoded_data[j++] = encoding_table[(triple >> 0 * 6) & 0x3F]; } for (i = 0; i < mod_table[input_length % 3]; i++) - encoded_data[*output_length - 1 - i] = '='; + encoded_data[*output_length - 1 - i] = '='; return encoded_data; } -unsigned char *base64_decode(const char *data, - size_t input_length, - size_t *output_length) { - +unsigned char *base64_decode(const char *data, size_t input_length, size_t *output_length) { int i,j; if (decoding_table == NULL) build_decoding_table(); @@ -216,20 +211,19 @@ if (decoded_data == NULL) return NULL; for (i = 0, j = 0; i < input_length;) { + uint32_t sextet_a = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; + uint32_t sextet_b = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; + uint32_t sextet_c = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; + uint32_t sextet_d = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; - uint32_t sextet_a = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; - uint32_t sextet_b = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; - uint32_t sextet_c = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; - uint32_t sextet_d = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; - - uint32_t triple = (sextet_a << 3 * 6) + uint32_t triple = (sextet_a << 3 * 6) + (sextet_b << 2 * 6) + (sextet_c << 1 * 6) + (sextet_d << 0 * 6); - if (j < *output_length) decoded_data[j++] = (triple >> 2 * 8) & 0xFF; - if (j < *output_length) decoded_data[j++] = (triple >> 1 * 8) & 0xFF; - if (j < *output_length) decoded_data[j++] = (triple >> 0 * 8) & 0xFF; + if (j < *output_length) decoded_data[j++] = (triple >> 2 * 8) & 0xFF; + if (j < *output_length) decoded_data[j++] = (triple >> 1 * 8) & 0xFF; + if (j < *output_length) decoded_data[j++] = (triple >> 0 * 8) & 0xFF; } if(decoding_table !=NULL) free(decoding_table); return decoded_data; @@ -241,7 +235,7 @@ decoding_table = malloc(256); int i; for (i = 0; i < 64; i++) - decoding_table[(unsigned char) encoding_table[i]] = i; + decoding_table[(unsigned char) encoding_table[i]] = i; } -- Gitblit v1.9.3