styling fixes master v-0.1
authorNeszt Tibor <tibor@neszt.hu>
Tue, 11 Jun 2013 16:17:21 +0000 (18:17 +0200)
committerNeszt Tibor <tibor@neszt.hu>
Tue, 11 Jun 2013 16:17:21 +0000 (18:17 +0200)
img_merge.c

index 0860bc4..6a5eb6a 100644 (file)
@@ -6,10 +6,9 @@
 #include "img_merge.h"\r
 #include "stdlib.h"\r
 \r
-/* ----------------------------------------------- */\r
-void print_help(void) {\r
+void print_help(void) {/*{{{*/\r
 \r
-  printf("Usage: img_merge -p1 pic1 -c1 brightnes1 .. .. -s step -o outbasename\n");\r
+       printf("Usage: img_merge -p1 pic1 -c1 brightnes1 .. .. -s step -o outbasename\n");\r
 \r
        printf(" Usage: img_merge\n");\r
        printf(" -n number of images to merge (1-999)\n");\r
@@ -33,307 +32,305 @@ void print_help(void) {
        printf("\n");\r
        printf(" those p[n]s, what is not defined will be automatically\n");\r
        printf(" set correspondingly as the last value.  // later on!\n");\r
-}\r
-/* ----------------------------------------------- */\r
-void scan_args(int argc, char **argv) {\r
-  int i, j, r, tmpint;\r
+}/*}}}*/\r
 \r
-  #if debug>1\r
-    printf("* Debug * Arguments being processed\n");\r
-  #endif\r
-  for ( i=1 ; i<maxn ; i++ ) { // a little init.\r
-    c[i]=100;\r
-  }\r
+void scan_args(int argc, char **argv) {/*{{{*/\r
+       int i, j, r, tmpint;\r
 \r
-  for ( i = 1 ; i < argc ; i++ ) {\r
-    switch( argv[i][0] ) {\r
-      case '-':\r
-        switch( argv[i][1] ) {\r
-          case 'n':\r
-            if ( argc > i + 1 && isdigit(argv[i+1][0]) ) {\r
-              if ( num ) {\r
-                printf("Only one -n parameter allowed!\n", num);\r
-                exit(0);\r
-              }\r
-              if ( !p_base[0] ) {\r
-                printf("You must give -p firstpic before -n!\n", num);\r
-                exit(0);\r
-              }\r
-              num = atoi(&argv[i+1][0]);\r
-              if ( num > maxn ) {\r
-                printf("Then given -n parameter is over the maximun: %d\n", maxn);\r
-                exit(0);\r
-              }\r
-              #if debug>1\r
-                printf("* Debug * Found -n: %d\n", num);\r
-              #endif\r
-              i++;\r
-              for ( j = 0 ; j < num ; j++ ) {\r
-                sprintf(p[j+1], "%s", p_base);\r
-                increment_str(p_base);\r
-              }\r
-            }\r
-            break;\r
+       #if debug>1\r
+               printf("* Debug * Arguments being processed\n");\r
+       #endif\r
+       for ( i=1 ; i<maxn ; i++ ) {    // a little init.\r
+               c[i]=100;\r
+       }\r
 \r
-          case 'p':\r
-            if ( isdigit(argv[i][2]) ) {\r
-              j = atoi(&argv[i][2]);\r
-              sprintf(p[j], "%s", argv[i+1]);\r
-              i++, num++;\r
-              #if debug>1\r
-                printf("* Debug * Found -p%d : %s\n", j, p[j]);\r
-              #endif\r
-           } else if ( argc>i+1 ) {\r
-              sprintf(p_base, "%s", argv[i+1]);\r
-              #if debug>1\r
-                printf("* Debug * Found -p global: %s\n", argv[i+1]);\r
-              #endif\r
-            }\r
-            break;\r
+       for ( i = 1 ; i < argc ; i++ ) {\r
+               switch( argv[i][0] ) {\r
+                       case '-':\r
+                               switch( argv[i][1] ) {\r
+                                       case 'n':\r
+                                               if ( argc > i + 1 && isdigit(argv[i+1][0]) ) {\r
+                                                       if ( num ) {\r
+                                                               printf("Only one -n parameter allowed!\n", num);\r
+                                                               exit(0);\r
+                                                       }\r
+                                                       if ( !p_base[0] ) {\r
+                                                               printf("You must give -p firstpic before -n!\n", num);\r
+                                                               exit(0);\r
+                                                       }\r
+                                                       num = atoi(&argv[i+1][0]);\r
+                                                       if ( num > maxn ) {\r
+                                                               printf("Then given -n parameter is over the maximun: %d\n", maxn);\r
+                                                               exit(0);\r
+                                                       }\r
+                                                       #if debug>1\r
+                                                               printf("* Debug * Found -n: %d\n", num);\r
+                                                       #endif\r
+                                                       i++;\r
+                                                       for ( j = 0 ; j < num ; j++ ) {\r
+                                                               sprintf(p[j+1], "%s", p_base);\r
+                                                               increment_str(p_base);\r
+                                                       }\r
+                                               }\r
+                                               break;\r
 \r
-          case 'c':\r
-            #if debug>1\r
-              printf("* Debug * Found -c  : ");\r
-            #endif\r
-            if ( isdigit(argv[i][2]) && argc>i+1 && isdigit(argv[i+1][0]) ) {\r
-              #if debug>1\r
-                printf("* Debug * Found -c%d : %d\n", atoi(&argv[i][2]), atoi(&argv[i+1][0]));\r
-              #endif\r
-              c[ atoi(&argv[i][2]) ] = atoi(&argv[i+1][0]), i++;\r
-            } else if ( argc>i+1 && isdigit(argv[i+1][0]) ) {\r
-              r =  atoi( &argv[i+1][0] );\r
-              for ( j = 0 ; j < maxn ; j++ ) { c[ j ] = r; };\r
-              i++;\r
-              #if debug>1\r
-                printf("* Debug * Found -c for all numbers : %d\n", r);\r
-              #endif\r
-            } else if ( argc>i+1 && argv[i+1][0] == 'a'  ) {\r
-              c[0] = -1;\r
-              i++;\r
-            }\r
-            break;\r
+                                       case 'p':\r
+                                               if ( isdigit(argv[i][2]) ) {\r
+                                                       j = atoi(&argv[i][2]);\r
+                                                       sprintf(p[j], "%s", argv[i+1]);\r
+                                                       i++, num++;\r
+                                                       #if debug>1\r
+                                                               printf("* Debug * Found -p%d : %s\n", j, p[j]);\r
+                                                       #endif\r
+                                        } else if ( argc>i+1 ) {\r
+                                                       sprintf(p_base, "%s", argv[i+1]);\r
+                                                       #if debug>1\r
+                                                               printf("* Debug * Found -p global: %s\n", argv[i+1]);\r
+                                                       #endif\r
+                                               }\r
+                                               break;\r
 \r
-          case 't':\r
-            #if debug>1\r
-              printf("* Debug * Found -t\n");\r
-            #endif\r
-            if ( argc>=i+1 ) {\r
-              if ( argv[i+1][0] == 'S' || argv[i+1][0] == 's' ) {\r
-                t = 0;\r
-              } else if ( argv[i+1][0] == 'X' || argv[i+1][0] == 'x' ) {\r
-                t = 1;\r
-              } else if ( argv[i+1][0] == 'N' || argv[i+1][0] == 'n' ) {\r
-                t = 2;\r
-              } else if ( argv[i+1][0] == 'A' || argv[i+1][0] == 'a' ) {\r
-                t = 3;\r
-              } else if ( argv[i+1][0] == 'D' || argv[i+1][0] == 'd' ) {\r
-                t = 4;\r
-              } else {\r
-                printf("Then given -t merge type (%s) is unknown!\n", &argv[i+1][0]);\r
-                exit(0);\r
-              }\r
-              #if debug>1\r
-                printf("* Debug * Found -t : %c\n", argv[i+1][0]);\r
-              #endif\r
-            }\r
-            break;\r
+                                       case 'c':\r
+                                               #if debug>1\r
+                                                       printf("* Debug * Found -c      : ");\r
+                                               #endif\r
+                                               if ( isdigit(argv[i][2]) && argc>i+1 && isdigit(argv[i+1][0]) ) {\r
+                                                       #if debug>1\r
+                                                               printf("* Debug * Found -c%d : %d\n", atoi(&argv[i][2]), atoi(&argv[i+1][0]));\r
+                                                       #endif\r
+                                                       c[ atoi(&argv[i][2]) ] = atoi(&argv[i+1][0]), i++;\r
+                                               } else if ( argc>i+1 && isdigit(argv[i+1][0]) ) {\r
+                                                       r =     atoi( &argv[i+1][0] );\r
+                                                       for ( j = 0 ; j < maxn ; j++ ) { c[ j ] = r; };\r
+                                                       i++;\r
+                                                       #if debug>1\r
+                                                               printf("* Debug * Found -c for all numbers : %d\n", r);\r
+                                                       #endif\r
+                                               } else if ( argc>i+1 && argv[i+1][0] == 'a'     ) {\r
+                                                       c[0] = -1;\r
+                                                       i++;\r
+                                               }\r
+                                               break;\r
 \r
-          case 's':\r
-            if ( isdigit(argv[i+1][0]) ) {\r
-              #if debug>1\r
-                printf("* Debug * Found -s  : %d\n", atoi(&argv[i+1][0]));\r
-              #endif\r
-              step = atoi(&argv[i+1][0]), i++;\r
-            }\r
-            break;\r
+                                       case 't':\r
+                                               #if debug>1\r
+                                                       printf("* Debug * Found -t\n");\r
+                                               #endif\r
+                                               if ( argc>=i+1 ) {\r
+                                                       if ( argv[i+1][0] == 'S' || argv[i+1][0] == 's' ) {\r
+                                                               t = 0;\r
+                                                       } else if ( argv[i+1][0] == 'X' || argv[i+1][0] == 'x' ) {\r
+                                                               t = 1;\r
+                                                       } else if ( argv[i+1][0] == 'N' || argv[i+1][0] == 'n' ) {\r
+                                                               t = 2;\r
+                                                       } else if ( argv[i+1][0] == 'A' || argv[i+1][0] == 'a' ) {\r
+                                                               t = 3;\r
+                                                       } else if ( argv[i+1][0] == 'D' || argv[i+1][0] == 'd' ) {\r
+                                                               t = 4;\r
+                                                       } else {\r
+                                                               printf("Then given -t merge type (%s) is unknown!\n", &argv[i+1][0]);\r
+                                                               exit(0);\r
+                                                       }\r
+                                                       #if debug>1\r
+                                                               printf("* Debug * Found -t : %c\n", argv[i+1][0]);\r
+                                                       #endif\r
+                                               }\r
+                                               break;\r
 \r
-          case 'f':\r
-            if ( isdigit(argv[i+1][0]) ) {\r
-              #if debug>1\r
-                printf("* Debug * Found -f  : %d\n", atoi(&argv[i+1][0]));\r
-              #endif\r
-              framestep = atoi(&argv[i+1][0]), i++;\r
-            }\r
-            break;\r
+                                       case 's':\r
+                                               if ( isdigit(argv[i+1][0]) ) {\r
+                                                       #if debug>1\r
+                                                               printf("* Debug * Found -s      : %d\n", atoi(&argv[i+1][0]));\r
+                                                       #endif\r
+                                                       step = atoi(&argv[i+1][0]), i++;\r
+                                               }\r
+                                               break;\r
 \r
-          case 'o':\r
-            #if debug>1\r
-              printf("* Debug * Found -o  : %s\n",argv[i+1]);\r
-            #endif\r
-            sprintf(outbasename, "%s", argv[i+1]);\r
-            i++;\r
-            break;\r
-        }\r
-        break;\r
-      case '?':\r
-        print_help();\r
-        break;\r
-      default:\r
-        break;\r
-    }\r
-    if ( c[0] == -1 && num > 0 ) {\r
-      for ( j = 0 ; j < maxn ; j++ ) { c[ j ] = 100/num; };\r
-    }\r
-  }\r
-  if (num<2) {\r
-    print_help();\r
-    exit(0);\r
-  }\r
-}\r
-/* ----------------------------------------- */\r
-void merge_begin(uint8_t *img, int c) {\r
-  int i,j,h3i,j3, pos;\r
+                                       case 'f':\r
+                                               if ( isdigit(argv[i+1][0]) ) {\r
+                                                       #if debug>1\r
+                                                               printf("* Debug * Found -f      : %d\n", atoi(&argv[i+1][0]));\r
+                                                       #endif\r
+                                                       framestep = atoi(&argv[i+1][0]), i++;\r
+                                               }\r
+                                               break;\r
 \r
-  for( i = 0 ; i < w ; i++ ) {\r
-    h3i = h * 3 * i;\r
-    for( j = 0 ; j < h ; j++ ) {\r
-      j3 = 3*j;\r
-      pos = h3i + j3;\r
-      outbuffer[pos+0] = c*img[pos+0];\r
-      outbuffer[pos+1] = c*img[pos+1];\r
-      outbuffer[pos+2] = c*img[pos+2];\r
-    }\r
-  }\r
-}\r
-/* ----------------------------------------- */\r
-void merge(uint8_t *img, int c) {\r
-  int i,j,h3i,j3, pos;\r
+                                       case 'o':\r
+                                               #if debug>1\r
+                                                       printf("* Debug * Found -o      : %s\n",argv[i+1]);\r
+                                               #endif\r
+                                               sprintf(outbasename, "%s", argv[i+1]);\r
+                                               i++;\r
+                                               break;\r
+                               }\r
+                               break;\r
+                       case '?':\r
+                               print_help();\r
+                               break;\r
+                       default:\r
+                               break;\r
+               }\r
+               if ( c[0] == -1 && num > 0 ) {\r
+                       for ( j = 0 ; j < maxn ; j++ ) { c[ j ] = 100 / num; };\r
+               }\r
+       }\r
+       if (num < 2) {\r
+               print_help();\r
+               exit(0);\r
+       }\r
+}/*}}}*/\r
 \r
-  for( i = 0 ; i < w ; i++ ) {\r
-    h3i = h*3*i;\r
-    for( j = 0 ; j < h ; j++ ) {\r
-      j3 = 3 * j;\r
-      pos = h3i + j3;\r
-      if ( t == 1 ) { // max\r
-        if ( c*img[pos+0] > outbuffer[pos+0] ) { outbuffer[pos+0] = c*img[pos+0]; }\r
-        if ( c*img[pos+1] > outbuffer[pos+1] ) { outbuffer[pos+1] = c*img[pos+1]; }\r
-        if ( c*img[pos+2] > outbuffer[pos+2] ) { outbuffer[pos+2] = c*img[pos+2]; }\r
-      } else if ( t == 2 ) { // min\r
-        if ( c*img[pos+0] < outbuffer[pos+0] ) { outbuffer[pos+0] = c*img[pos+0]; }\r
-        if ( c*img[pos+1] < outbuffer[pos+1] ) { outbuffer[pos+1] = c*img[pos+1]; }\r
-        if ( c*img[pos+2] < outbuffer[pos+2] ) { outbuffer[pos+2] = c*img[pos+2]; }\r
-      } else if ( t == 4 ) { // diff\r
-        if ( c*img[pos+0] != outbuffer[pos+0] ) { outbuffer[pos+0] += c*img[pos+0]; } else { outbuffer[pos+0] = 0; }\r
-        if ( c*img[pos+1] != outbuffer[pos+1] ) { outbuffer[pos+1] += c*img[pos+1]; } else { outbuffer[pos+1] = 0; }\r
-        if ( c*img[pos+2] != outbuffer[pos+2] ) { outbuffer[pos+2] += c*img[pos+2]; } else { outbuffer[pos+2] = 0; }\r
-      } else {\r
-        outbuffer[pos+0] += c*img[pos+0];\r
-        outbuffer[pos+1] += c*img[pos+1];\r
-        outbuffer[pos+2] += c*img[pos+2];\r
-      }\r
-    }\r
-  }\r
-}\r
-/* ----------------------------------------- */\r
-void merge_finish(void) {\r
-  int i,j,h3i,j3, pos;\r
+void merge_begin(uint8_t *img, int c) {/*{{{*/\r
+       int i,j,h3i,j3, pos;\r
 \r
-  for( i = 0 ; i < w ; i++ ) {\r
-    h3i = h*3*i;\r
-    for( j = 0 ; j < h ; j++ ) {\r
-      j3 = 3 * j;\r
-      pos = h3i + j3;\r
-      if ( t == 3 ) { // avg\r
-        outimage[pos+0] = (uint8_t) ( outbuffer[pos+2]/100/num <= 255 ? outbuffer[pos+2]/100/num : 255 );\r
-        outimage[pos+1] = (uint8_t) ( outbuffer[pos+1]/100/num <= 255 ? outbuffer[pos+1]/100/num : 255 );\r
-        outimage[pos+2] = (uint8_t) ( outbuffer[pos+0]/100/num <= 255 ? outbuffer[pos+0]/100/num : 255 );\r
-      } else {\r
-        outimage[pos+0] = (uint8_t) ( outbuffer[pos+2]/100 <= 255 ? outbuffer[pos+2]/100 : 255 );\r
-        outimage[pos+1] = (uint8_t) ( outbuffer[pos+1]/100 <= 255 ? outbuffer[pos+1]/100 : 255 );\r
-        outimage[pos+2] = (uint8_t) ( outbuffer[pos+0]/100 <= 255 ? outbuffer[pos+0]/100 : 255 );\r
-      }\r
-    }\r
-  }\r
-}\r
-/* ----------------------------------------------- */\r
-void increment_str( char *p ) {\r
-  int i;\r
+       for ( i = 0 ; i < w ; i++ ) {\r
+               h3i = h * 3 * i;\r
+               for ( j = 0 ; j < h ; j++ ) {\r
+                       j3 = 3*j;\r
+                       pos = h3i + j3;\r
+                       outbuffer[pos+0] = c*img[pos+0];\r
+                       outbuffer[pos+1] = c*img[pos+1];\r
+                       outbuffer[pos+2] = c*img[pos+2];\r
+               }\r
+       }\r
+}/*}}}*/\r
 \r
-  for ( i = 0 ; p[i] != '\0' ; i++ );\r
-  i-=5;\r
-  while ( (++p[i]) == ('9'+1) ) {\r
-    p[i] = '0';\r
-    i--;\r
-  }\r
-}\r
-/* ----------------------------------------------- */\r
-void increment(void) {\r
-  int i,j;\r
+void merge(uint8_t *img, int c) {/*{{{*/\r
+       int i, j, h3i, j3, pos;\r
 \r
-  for ( i = 1 ; i < num + 1 ; i++ ) {\r
-    for ( j = 0 ; p[i][j] != '\0' ; j++ );\r
-    j -= 5;\r
-    while ( (++p[i][j]) == ('9'+1) ) {\r
-      p[i][j] = '0';\r
-      j--;\r
-    }\r
-  }\r
-}\r
-/* ----------------------------------------- */\r
-/* ----------------------------------------- */\r
-/* ----------------------------------------- */\r
-int main(int argc, char **argv) {\r
-  tga_image img1;\r
-  tga_image img2;\r
-  tga_result result;\r
-  int i, j;\r
+       for ( i = 0 ; i < w ; i++ ) {\r
+               h3i = h * 3 * i;\r
+               for ( j = 0 ; j < h ; j++ ) {\r
+                       j3 = 3 * j;\r
+                       pos = h3i + j3;\r
+                       if ( t == 1 ) { // max\r
+                               if ( c*img[pos+0] > outbuffer[pos+0] ) { outbuffer[pos+0] = c*img[pos+0]; }\r
+                               if ( c*img[pos+1] > outbuffer[pos+1] ) { outbuffer[pos+1] = c*img[pos+1]; }\r
+                               if ( c*img[pos+2] > outbuffer[pos+2] ) { outbuffer[pos+2] = c*img[pos+2]; }\r
+                       } else if ( t == 2 ) { // min\r
+                               if ( c*img[pos+0] < outbuffer[pos+0] ) { outbuffer[pos+0] = c*img[pos+0]; }\r
+                               if ( c*img[pos+1] < outbuffer[pos+1] ) { outbuffer[pos+1] = c*img[pos+1]; }\r
+                               if ( c*img[pos+2] < outbuffer[pos+2] ) { outbuffer[pos+2] = c*img[pos+2]; }\r
+                       } else if ( t == 4 ) { // diff\r
+                               if ( c*img[pos+0] != outbuffer[pos+0] ) { outbuffer[pos+0] += c*img[pos+0]; } else { outbuffer[pos+0] = 0; }\r
+                               if ( c*img[pos+1] != outbuffer[pos+1] ) { outbuffer[pos+1] += c*img[pos+1]; } else { outbuffer[pos+1] = 0; }\r
+                               if ( c*img[pos+2] != outbuffer[pos+2] ) { outbuffer[pos+2] += c*img[pos+2]; } else { outbuffer[pos+2] = 0; }\r
+                       } else {\r
+                               outbuffer[pos+0] += c*img[pos+0];\r
+                               outbuffer[pos+1] += c*img[pos+1];\r
+                               outbuffer[pos+2] += c*img[pos+2];\r
+                       }\r
+               }\r
+       }\r
+}/*}}}*/\r
 \r
-  scan_args(argc, argv);\r
+void merge_finish(void) {/*{{{*/\r
+       int i, j, h3i, j3, pos;\r
 \r
-  #if debug>1\r
-    printf("* Debug * Checking first file:%s\n",p[1]);\r
-  #endif\r
-  result = tga_read(&tga_images[1], p[1]);\r
-  if (result != TGA_NOERR) {\r
-    printf("Error opening first file!\n");\r
-    exit(0);\r
-  }\r
-  if (!tga_is_top_to_bottom(&tga_images[1])) tga_flip_vert(&tga_images[1]);\r
-  w = tga_images[1].width;\r
-  h = tga_images[1].height;\r
-  #if debug>1\r
-    printf("* Debug * Width:%d , Height:%d\n",w,h);\r
-  #endif\r
-  tga_free_buffers(&tga_images[1]);\r
+       for ( i = 0 ; i < w ; i++ ) {\r
+               h3i = h * 3 * i;\r
+               for ( j = 0 ; j < h ; j++ ) {\r
+                       j3 = 3 * j;\r
+                       pos = h3i + j3;\r
+                       if ( t == 3 ) { // avg\r
+                               outimage[pos+0] = (uint8_t) ( outbuffer[pos+2]/100/num <= 255 ? outbuffer[pos+2]/100/num : 255 );\r
+                               outimage[pos+1] = (uint8_t) ( outbuffer[pos+1]/100/num <= 255 ? outbuffer[pos+1]/100/num : 255 );\r
+                               outimage[pos+2] = (uint8_t) ( outbuffer[pos+0]/100/num <= 255 ? outbuffer[pos+0]/100/num : 255 );\r
+                       } else {\r
+                               outimage[pos+0] = (uint8_t) ( outbuffer[pos+2]/100 <= 255 ? outbuffer[pos+2]/100 : 255 );\r
+                               outimage[pos+1] = (uint8_t) ( outbuffer[pos+1]/100 <= 255 ? outbuffer[pos+1]/100 : 255 );\r
+                               outimage[pos+2] = (uint8_t) ( outbuffer[pos+0]/100 <= 255 ? outbuffer[pos+0]/100 : 255 );\r
+                       }\r
+               }\r
+       }\r
+}/*}}}*/\r
 \r
-  outimage = (uint8_t*) malloc( w*h*3*sizeof(uint8_t) );\r
-  outbuffer = (int*) malloc( w*h*3*sizeof(int) );\r
+void increment_str(char *p) {/*{{{*/\r
+       int i;\r
 \r
-  while(step) {\r
-    for ( i = 1 ; i < num + 1 ; i += framestep ) {\r
-      result = tga_read(&tga_images[i], p[i]);\r
-      if (result == TGA_NOERR) {\r
-        if (!tga_is_top_to_bottom(&tga_images[i])) tga_flip_vert(&tga_images[i]);\r
-        if (!( tga_images[i].width==w && tga_images[i].height==h )) {\r
-          printf("Not identical dimensions!\n");\r
-          exit(0);\r
-        }\r
-        image_datas[i] = tga_images[i].image_data;\r
-        if ( i == 1 ) {\r
-          merge_begin(image_datas[i], c[i]);\r
-        } else {\r
-          merge(image_datas[i], c[i]);\r
-        }\r
-        #if debug>1\r
-          printf("* Debug * Image merged:%s - %d%%\n",p[i],c[i]);\r
-        #endif\r
-        tga_free_buffers(&tga_images[i]);\r
-      } else {\r
-        printf("Error opening image:%s!\n",p[i]);\r
-        exit(0);\r
-      }\r
-    }\r
-    merge_finish();\r
-    sprintf(outname,"%s%05d.tga",outbasename,outindex++);\r
-    tga_write_rgb(outname, (uint8_t *) outimage, w, h, 24);\r
-    #if debug>1\r
-      printf("* Debug * Image writen:%s\n",outname);\r
-    #endif\r
-    for ( j = 0 ; j < step ; j++ ) { increment(); }\r
-  }\r
+       for ( i = 0 ; p[i] != '\0' ; i++ );\r
+       i -= 5;\r
+       while ( (++p[i]) == ('9'+1) ) {\r
+               p[i] = '0';\r
+               i--;\r
+       }\r
+}/*}}}*/\r
 \r
-  free(outimage);\r
-  free(outbuffer);\r
+void increment(void) {/*{{{*/\r
+       int i, j;\r
 \r
-  return 0;\r
-}\r
+       for ( i = 1 ; i < num + 1 ; i++ ) {\r
+               for ( j = 0 ; p[i][j] != '\0' ; j++ );\r
+               j -= 5;\r
+               while ( (++p[i][j]) == ('9' + 1) ) {\r
+                       p[i][j] = '0';\r
+                       j--;\r
+               }\r
+       }\r
+}/*}}}*/\r
+\r
+int main(int argc, char **argv) {/*{{{*/\r
+       tga_image img1;\r
+       tga_image img2;\r
+       tga_result result;\r
+       int i, j;\r
+\r
+       scan_args(argc, argv);\r
+\r
+       #if debug>1\r
+               printf("* Debug * Checking first file:%s\n",p[1]);\r
+       #endif\r
+       result = tga_read(&tga_images[1], p[1]);\r
+       if (result != TGA_NOERR) {\r
+               printf("Error opening first file!\n");\r
+               exit(0);\r
+       }\r
+       if (!tga_is_top_to_bottom(&tga_images[1])) tga_flip_vert(&tga_images[1]);\r
+       w = tga_images[1].width;\r
+       h = tga_images[1].height;\r
+       #if debug>1\r
+               printf("* Debug * Width:%d , Height:%d\n",w,h);\r
+       #endif\r
+       tga_free_buffers(&tga_images[1]);\r
+\r
+       outimage = (uint8_t*) malloc( w*h*3*sizeof(uint8_t) );\r
+       outbuffer = (int*) malloc( w*h*3*sizeof(int) );\r
+\r
+       while(step) {\r
+               for ( i = 1 ; i < num + 1 ; i += framestep ) {\r
+                       result = tga_read(&tga_images[i], p[i]);\r
+                       if (result == TGA_NOERR) {\r
+                               if (!tga_is_top_to_bottom(&tga_images[i])) tga_flip_vert(&tga_images[i]);\r
+                               if (!( tga_images[i].width==w && tga_images[i].height==h )) {\r
+                                       printf("Not identical dimensions!\n");\r
+                                       exit(0);\r
+                               }\r
+                               image_datas[i] = tga_images[i].image_data;\r
+                               if ( i == 1 ) {\r
+                                       merge_begin(image_datas[i], c[i]);\r
+                               } else {\r
+                                       merge(image_datas[i], c[i]);\r
+                               }\r
+                               #if debug>1\r
+                                       printf("* Debug * Image merged:%s - %d%%\n",p[i],c[i]);\r
+                               #endif\r
+                               tga_free_buffers(&tga_images[i]);\r
+                       } else {\r
+                               printf("Error opening image:%s!\n",p[i]);\r
+                               exit(0);\r
+                       }\r
+               }\r
+               merge_finish();\r
+               sprintf(outname,"%s%05d.tga",outbasename,outindex++);\r
+               tga_write_rgb(outname, (uint8_t *) outimage, w, h, 24);\r
+               #if debug>1\r
+                       printf("* Debug * Image writen:%s\n",outname);\r
+               #endif\r
+               for ( j = 0 ; j < step ; j++ ) { increment(); }\r
+       }\r
+\r
+       free(outimage);\r
+       free(outbuffer);\r
+\r
+       return 0;\r
+}/*}}}*/\r