]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Starting to scanline of feeder test files
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Tue, 25 Mar 2025 13:55:48 +0000 (09:55 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Tue, 25 Mar 2025 13:55:48 +0000 (09:55 -0400)
app/feeder.c
lib/subrou.c

index 85005d5d7a07299c91c9e6966cbdc60ee372742d..8936909b33c7a50f3567b5934c2b5a45d1ce2566 100644 (file)
@@ -49,14 +49,56 @@ static void usage(const char *name)
 */
 /********************************************************/
 /*                                                     */
+/*     Scanning one line from test file                */
+/*                                                     */
+/********************************************************/
+static _Bool scanline(SOCPTR *socptr,char *line)
+
+{
+_Bool status;
+int phase;
+_Bool proceed;
+
+status=false;
+phase=0;
+proceed=true;
+while (proceed==true) {
+  //(void) fprintf(stdout,"JMPDBG scanline phase='%d'\n",phase);
+  switch (phase) {
+    case 0      :       //removing first space
+      while ((line[0]==' ')||(line[0]=='\t'))
+        (void) memmove(line,line+1,(strlen(line+1)+1));
+      break;
+    case 1      :       //discarding comment
+      if (line[0]=='#') {
+        status=true;
+        phase=999;      //line is a comment no need to go further
+        }
+      break;
+    case 2      :       //checking line
+      break;
+    default     :       //SAFE Guard
+      proceed=false;
+      break;
+    }
+  phase++;
+  }
+return status;
+}
+/*
+\f
+*/
+/********************************************************/
+/*                                                     */
 /*     Scanning data file.                             */
 /*                                                     */
 /********************************************************/
-static _Bool scanfile(const char *filename)
+static _Bool scanfile(SOCPTR *socptr,const char *filename)
 
 {
 _Bool status;
 FILE *fichier;
+char line[200];
 int phase;
 _Bool proceed;
 
@@ -65,6 +107,7 @@ fichier=(FILE *)0;
 phase=0;
 proceed=true;
 while (proceed==true) {
+  //(void) fprintf(stdout,"JMPDBG scanfile phase='%d'\n",phase);
   switch (phase) {
     case 0      :       //checking parameters
       if ((fichier=fopen(filename,"r"))==(FILE *)0) {
@@ -74,8 +117,15 @@ while (proceed==true) {
         }
       break;
     case 1      :       //reading line;
-      (void) fprintf(stdout,"reading file <%s>\n",filename);
-      (void) sleep(1);
+      (void) fprintf(stdout,"Scanning file <%s>\n",filename);
+      while (fgets(line,sizeof(line),fichier)!=(char *)0) {
+        if (scanline(socptr,line)==false) {
+          phase=999;    //Trouble trouble exiting
+          break;
+          }
+        }
+      break;
+    case 2      :       //scanning went well
       status=true;
       break;
     default     :       //SAFE Guard
@@ -115,6 +165,7 @@ numfile=0;
 phase=0;
 proceed=true;
 while (proceed==true) {
+  //(void) fprintf(stdout,"JMPDBG main phase='%d'\n",phase);
   switch (phase) {
     case 0      :       //checking parameters
       if ((params=par_getparams(argc,argv,"d:fh:r:v"))==(ARGTYP *)0) {
@@ -137,7 +188,7 @@ while (proceed==true) {
       break;
     case 3      :       //doing main task
       for (int i=2;i<params->argc;i++) {
-        if (scanfile(params->argv[i])==false) 
+        if (scanfile(socptr,params->argv[i])==false) 
           break;
         numfile++;
         }
index c21f6d8e39023ef87f464841b47c6ef00cf5dc4b..f31beaef6587b0d69ed11278afd4fd9e666cd97e 100644 (file)
@@ -21,7 +21,7 @@
 
 //version definition 
 #define VERSION "0.6"
-#define RELEASE "9"
+#define RELEASE "10"
 
 //Public variables
 PUBLIC  int debug=0;            //debug level