The prior message seems to have been garbled:

-------------------------------------------------------------------------------------------------------------

diff --git a/src/callbacks.c b/src/callbacks.c
index 9310e14..59f09af 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -822,8 +822,9 @@
callbacks_analyze_active_gerbers_activate(GtkMenuItem *menuitem,
                        _("Layer"), G_TYPE_UINT, _("File"), G_TYPE_STRING,
                        _("Error"), G_TYPE_STRING);
        } else {
-               general_table = table_new_with_columns(2,
-                       _("Layer"), G_TYPE_UINT, _("File"), G_TYPE_STRING);
+               general_table = table_new_with_columns(3,
+                       _("Layer"), G_TYPE_UINT, _("File"), G_TYPE_STRING,
+                       _("Purpose"), G_TYPE_STRING);
        }
        table_set_column_align(general_table, 0, 1.0);

@@ -833,7 +834,8 @@
callbacks_analyze_active_gerbers_activate(GtkMenuItem *menuitem,
                if (files[i] && files[i]->isVisible &&
                                (files[i]->image->layertype ==
                                 GERBV_LAYERTYPE_RS274X)) {
-                       table_add_row(general_table, i + 1, files[i]->name, "");
+                       table_add_row(general_table, i + 1, files[i]->name,
+                          files[i]->image->info->Gerber_X2_Function);

                        /* Check error report on layer */
                        if (stats_report->layer_count > 0 &&
diff --git a/src/gerber.c b/src/gerber.c
index 6810d52..794e5ab 100644
--- a/src/gerber.c
+++ b/src/gerber.c
@@ -1937,6 +1937,47 @@ parse_rs274x(gint levelOfRecursion, gerb_file_t
*fd, gerbv_image_t *image,
            g_free(string);
        }
        break;
+
+    /* Gerber X2 is the official Jun 2014 update to Gerber by Ucamco.
X2 is backwards
+       compatible with Gerber X, and thus gerbv really has to do very little to
+       support X2.  Hooks are left below for anyone wanting to process more
+       X2 attributes.
+
+       See:  https://www.ucamco.com/en/guest/downloads
+    */
+
+    /* Gerber X2 Functions */
+    case A2I('T','F'):
+        string = gerb_fgetstring(fd, '*');
+        #ifdef DEBUG
+        printf("Gerber X2 TF %s\n", string);
+        #endif
+
+        /* Store role of file (e.g. plane/copper/legend/mechanical) */
+        if( !memcmp(string, ".FileFunction", strlen(".FileFunction"))) {
+            string[0]=' ';
+            image->info->Gerber_X2_Function = string;
+        }
+        else {
+            g_free(string);
+        }
+
+        image->info->Gerber_X2_Dirty = TRUE;    /* Warning: file
won't be identical on save */
+       break;
+
+    /* Gerber X2 Metadata Attributes to Ignore */
+    case A2I('T','A'):  // Aperture Attribute
+    case A2I('T','D'):  // Delete Attribute
+    case A2I('T','O'):  // Object Attribute (from 2016.07 spec draft)
+        string = gerb_fgetstring(fd, '*');
+        #ifdef DEBUG
+        printf("Gerber X2 Attribute %s\n", string);
+        #endif
+
+        image->info->Gerber_X2_Dirty = TRUE;    /* Warning: file
won't be identical on save */
+        g_free(string);
+       break;
+
     default:
        string = g_strdup_printf(_("Unknown RS-274X extension found
%%%c%c%% in file \"%s\""),
                                 op[0], op[1], fd->filename);
diff --git a/src/gerbv.h b/src/gerbv.h
index e0575c6..0ad9fd7 100644
--- a/src/gerbv.h
+++ b/src/gerbv.h
@@ -656,6 +656,8 @@ typedef struct gerbv_format {
 /*! Struct holding info about a particular image */
 typedef struct gerbv_image_info {
     char *name;
+    char     *Gerber_X2_Function;   /* Metadata on the role or
function of the given file */
+    gboolean  Gerber_X2_Dirty;      /* Some Gerber X2 data was not
parsed: warn at save */
     gerbv_polarity_t polarity;
     double min_x; /*

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Gerbv-devel mailing list
Gerbv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gerbv-devel

Reply via email to