From 9a658d57467cf3f51110ec50bc7b50cd73993aaa Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@fe.uni-lj.si>
Date: Tue, 06 Oct 2015 11:47:58 +0000
Subject: [PATCH] Well, another one.

---
 src/io.c |   34 ++++++++++++++++++++++++++--------
 1 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/src/io.c b/src/io.c
index 00f6db5..f913762 100644
--- a/src/io.c
+++ b/src/io.c
@@ -24,7 +24,7 @@
     FILE *fh=fopen(command_line_args.dump_fullfilename,"wb");
 
     /* dump vesicle */
-    fwrite(vesicle, sizeof(ts_vesicle),1,fh);
+    fwrite(vesicle, sizeof(ts_vesicle)-sizeof(ts_double),1,fh);
     /* dump vertex list */
     fwrite(vesicle->vlist, sizeof(ts_vertex_list),1,fh);
     /* dump bond list */
@@ -201,7 +201,7 @@
 /* we restore all the data from the dump */
     /* restore vesicle */
     ts_vesicle *vesicle=(ts_vesicle *)calloc(1,sizeof(ts_vesicle));
-    retval=fread(vesicle, sizeof(ts_vesicle),1,fh);
+    retval=fread(vesicle, sizeof(ts_vesicle)-sizeof(ts_double),1,fh);
 //	fprintf(stderr,"was here! %e\n",vesicle->dmax);
 
     /* restore vertex list */
@@ -439,6 +439,7 @@
     sprintf(command_line_args.output_fullfilename,"output.pvd");
     sprintf(command_line_args.dump_fullfilename,"dump.bin");
     sprintf(command_line_args.tape_fullfilename,"tape");
+    sprintf(command_line_args.tape_templatefull,"./tape");
             FILE *file;
     
 while (1)
@@ -452,6 +453,8 @@
            {"directory",  required_argument, 0, 'd'},
            {"dump-filename", required_argument,0, 'f'},
            {"tape-options",required_argument,0,'c'},
+           {"tape-template", required_argument,0,0},
+            {"dump-from-vtk",required_argument,0,0},
            {0, 0, 0, 0}
          };
        /* getopt_long stores the option index here. */
@@ -470,10 +473,17 @@
            /* If this option set a flag, do nothing else now. */
            if (long_options[option_index].flag != 0)
              break;
-           printf ("option %s", long_options[option_index].name);
+/*           printf ("option %s", long_options[option_index].name);
            if (optarg)
-             printf (" with arg %s", optarg);
-           printf ("\n");
+             printf (" with arg %s", optarg); 
+           printf ("\n"); */
+            //TODO: find a better way.
+            if(strcmp(long_options[option_index].name,"tape-template")==0){
+                strcpy(command_line_args.tape_templatefull,optarg);
+            }
+            if(strcmp(long_options[option_index].name,"dump-from-vtk")==0){
+                strcpy(command_line_args.dump_from_vtk,optarg);
+            }
            break;
 
          case 'c':
@@ -534,6 +544,7 @@
     if ((file = fopen(buffer, "w")) == NULL) {
                 fprintf(stderr,"Could not create output file %s!\n", buffer);
                 fatal("Please specify correct output file or check permissions of the file",1);
+                //there is a tape template. make a copy into desired directory
                 
             } else {
                 fclose(file);
@@ -544,8 +555,15 @@
     strcpy(buffer,command_line_args.path);
     strcat(buffer,command_line_args.tape_fullfilename);
     if (stat(buffer, &sb) == -1) {
-                ts_fprintf(stderr,"Tape '%s' does not exist!\n",buffer);
-                fatal("Please select correct tape or check permissions of the file",1);
+
+                //tape does not exist. does tape template exist?
+                if(stat(command_line_args.tape_templatefull, &sb)==-1){ 
+                    ts_fprintf(stderr,"Tape '%s' does not exist and no tape template was specified (or does not exist)!\n",buffer);
+                    fatal("Please select correct tape or check permissions of the file",1);
+                } else {
+                    //tape template found
+                    fatal("Samo did not program template copy yet",1); 
+                }
             } else {
                 strcpy(command_line_args.tape_fullfilename,buffer);
             }
@@ -573,7 +591,6 @@
     return TS_SUCCESS;
 
 }
-
 
 
 
@@ -995,6 +1012,7 @@
         CFG_SIMPLE_FLOAT("xk0",&tape->xk0),
 	CFG_SIMPLE_INT("pswitch",&tape->pswitch),
 	CFG_SIMPLE_INT("constvolswitch",&tape->constvolswitch),
+	CFG_SIMPLE_INT("constareaswitch",&tape->constareaswitch),
 	CFG_SIMPLE_FLOAT("constvolprecision",&tape->constvolprecision),
 	CFG_SIMPLE_FLOAT("pressure",&tape->pressure),
 	CFG_SIMPLE_FLOAT("k_spring",&tape->kspring),

--
Gitblit v1.9.3