Index: epan/column.c
===================================================================
--- epan/column.c	(revision 25985)
+++ epan/column.c	(working copy)
@@ -43,70 +43,16 @@
 #include <epan/column.h>
 #include <epan/packet.h>
 
+
 /* Given a format number (as defined in column_info.h), returns its equivalent
    string */
 const gchar *
 col_format_to_string(gint fmt) {
+
   const gchar *slist[] = {
-    "%q",                                       /* 0) COL_8021Q_VLAN_ID */
-    "%Yt",                                      /* 1) COL_ABS_DATE_TIME */
-    "%At",                                      /* 2) COL_ABS_TIME */
-    "%c",                                       /* 3) COL_CIRCUIT_ID */
-    "%Xd",                                      /* 4) COL_DSTIDX */
-    "%Xs",                                      /* 5) COL_SRCIDX */
-    "%V",                                       /* 6) COL_VSAN */
-    "%B",                                       /* 7) COL_CUMULATIVE_BYTES */
-    "%Cus",                                     /* 8) COL_CUSTOM */
-    "%y",                                       /* 9) COL_DCE_CALL */
-    "%z",                                       /* 10) COL_DCE_CTX */
-    "%Tt",                                      /* 11) COL_DELTA_TIME */
-    "%dct",                                     /* 12) COL_DELTA_CONV_TIME */
-    "%Gt",                                      /* 13) COL_DELTA_TIME_DIS */
-    "%rd",                                      /* 14) COL_RES_DST */
-    "%ud",                                      /* 15) COL_UNRES_DST */
-    "%rD",                                      /* 16) COL_RES_DST_PORT */
-    "%uD",                                      /* 17) COL_UNRES_DST_PORT */
-    "%d",                                       /* 18) COL_DEF_DST */
-    "%D",                                       /* 19) COL_DEF_DST_PORT */
-    "%a",                                       /* 20) COL_EXPERT */
-    "%I",                                       /* 21) COL_IF_DIR */
-    "%XO",                                      /* 22) COL_OXID */
-    "%XR",                                      /* 23) COL_RXID */
-    "%C",                                       /* 24) COL_FR_DLCI */
-    "%F",                                       /* 25) COL_FREQ_CHAN */
-    "%l",                                       /* 26) COL_BSSGP_TLLI */
-    "%P",                                       /* 27) COL_HPUX_DEVID */
-    "%H",                                       /* 28) COL_HPUX_SUBSYS */
-    "%hd",                                      /* 29) COL_DEF_DL_DST */
-    "%hs",                                      /* 30) COL_DEF_DL_SRC */
-    "%rhd",                                     /* 31) COL_RES_DL_DST */
-    "%uhd",                                     /* 32) COL_UNRES_DL_DST */
-    "%rhs",                                     /* 33) COL_RES_DL_SRC*/
-    "%uhs",                                     /* 34) COL_UNRES_DL_SRC */
-    "%e",                                       /* 35) COL_RSSI */
-    "%x",                                       /* 36) COL_TX_RATE */
-    "%f",                                       /* 37) COL_DSCP_VALUE */
-    "%i",                                       /* 38) COL_INFO */
-    "%U",                                       /* 39) COL_COS_VALUE */
-    "%rnd",                                     /* 40) COL_RES_NET_DST */
-    "%und",                                     /* 41) COL_UNRES_NET_DST */
-    "%rns",                                     /* 42) COL_RES_NET_SRC */
-    "%uns",                                     /* 43) COL_UNRES_NET_SRC */
-    "%nd",                                      /* 44) COL_DEF_NET_DST */
-    "%ns",                                      /* 45) COL_DEF_NET_SRC */
-    "%m",                                       /* 46) COL_NUMBER */
-    "%L",                                       /* 47) COL_PACKET_LENGTH */
-    "%p",                                       /* 48) COL_PROTOCOL */
-    "%Rt",                                      /* 49) COL_REL_TIME */
-    "%rct",                                     /* 50) COL_REL_CONV_TIME */
-    "%s",                                       /* 51) COL_DEF_SRC */
-    "%S",                                       /* 52) COL_DEF_SRC_PORT */
-    "%rs",                                      /* 53) COL_RES_SRC */
-    "%us",                                      /* 54) COL_UNRES_SRC */
-    "%rS",                                      /* 55) COL_RES_SRC_PORT */
-    "%uS",                                      /* 56) COL_UNRES_SRC_PORT */
-    "%E",                                       /* 57) COL_TEI */
-    "%t"                                        /* 58) COL_CLS_TIME */
+#define __TN(format, string, desc)	string,
+  	COLUMN_FORMAT_INFO
+#undef __TN
   };
 
   if (fmt < 0 || fmt >= NUM_COL_FMTS)
@@ -115,76 +61,23 @@
   return(slist[fmt]);
 }
 
+
 /* Given a format number (as defined in column_info.h), returns its
   description */
-static const gchar *dlist[NUM_COL_FMTS] = {
-    "802.1Q VLAN id",                           /* 0) COL_8021Q_VLAN_ID */
-    "Absolute date and time",                   /* 1) COL_ABS_DATE_TIME */
-    "Absolute time",                            /* 2) COL_ABS_TIME */
-    "Circuit ID",                               /* 3) COL_CIRCUIT_ID */
-    "Cisco Dst PortIdx",                        /* 4) COL_DSTIDX */
-    "Cisco Src PortIdx",                        /* 5) COL_SRCIDX */
-    "Cisco VSAN",                               /* 6) COL_VSAN */
-    "Cumulative Bytes" ,                        /* 7) COL_CUMULATIVE_BYTES */
-    "Custom",                                   /* 8) COL_CUSTOM */
-    "DCE/RPC call (cn_call_id / dg_seqnum)",    /* 9) COL_DCE_CALL */
-    "DCE/RPC context ID (cn_ctx_id)",           /* 10) COL_DCE_CTX */
-    "Delta time",                               /* 11) COL_DELTA_TIME */
-    "Delta time (conversation)",                /* 12) COL_DELTA_CONV_TIME */
-    "Delta time displayed",                     /* 13) COL_DELTA_TIME_DIS */
-    "Dest addr (resolved)",                     /* 14) COL_RES_DST */
-    "Dest addr (unresolved)",                   /* 15) COL_UNRES_DST */
-    "Dest port (resolved)",                     /* 16) COL_RES_DST_PORT */
-    "Dest port (unresolved)",                   /* 17) COL_UNRES_DST_PORT */
-    "Destination address",                      /* 18) COL_DEF_DST */
-    "Destination port",                         /* 19) COL_DEF_DST_PORT */
-    "Expert Info Severity",                     /* 20) COL_EXPERT */
-    "FW-1 monitor if/direction",                /* 21) COL_IF_DIR */
-    "Fibre Channel OXID",                       /* 22) COL_OXID */
-    "Fibre Channel RXID",                       /* 23) COL_RXID */
-    "Frame Relay DLCI",                         /* 24) COL_FR_DLCI */
-    "Frequency/Channel",                        /* 25) COL_FREQ_CHAN */
-    "GPRS BSSGP TLLI",                          /* 26) COL_BSSGP_TLLI */
-    "HP-UX Device ID",                          /* 27) COL_HPUX_DEVID */
-    "HP-UX Subsystem",                          /* 28) COL_HPUX_SUBSYS */
-    "Hardware dest addr",                       /* 29) COL_DEF_DL_DST */
-    "Hardware src addr",                        /* 30) COL_DEF_DL_SRC */
-    "Hw dest addr (resolved)",                  /* 31) COL_RES_DL_DST */
-    "Hw dest addr (unresolved)",                /* 32) COL_UNRES_DL_DST */
-    "Hw src addr (resolved)",                   /* 33) COL_RES_DL_SRC*/
-    "Hw src addr (unresolved)",                 /* 34) COL_UNRES_DL_SRC */
-    "IEEE 802.11 RSSI",                         /* 35) COL_RSSI */
-    "IEEE 802.11 TX rate",                      /* 36) COL_TX_RATE */
-    "IP DSCP Value",                            /* 37) COL_DSCP_VALUE */
-    "Information",                              /* 38) COL_INFO */
-    "L2 COS Value (802.1p)",                    /* 39) COL_COS_VALUE */
-    "Net dest addr (resolved)",                 /* 40) COL_RES_NET_DST */
-    "Net dest addr (unresolved)",               /* 41) COL_UNRES_NET_DST */
-    "Net src addr (resolved)",                  /* 42) COL_RES_NET_SRC */
-    "Net src addr (unresolved)",                /* 43) COL_UNRES_NET_SRC */
-    "Network dest addr",                        /* 44) COL_DEF_NET_DST */
-    "Network src addr",                         /* 45) COL_DEF_NET_SRC */
-    "Number",                                   /* 46) COL_NUMBER */
-    "Packet length (bytes)" ,                   /* 47) COL_PACKET_LENGTH */
-    "Protocol",                                 /* 48) COL_PROTOCOL */
-    "Relative time",                            /* 49) COL_REL_TIME */
-    "Relative time (conversation)",             /* 50) COL_REL_CONV_TIME */
-    "Source address",                           /* 51) COL_DEF_SRC */
-    "Source port",                              /* 52) COL_DEF_SRC_PORT */
-    "Src addr (resolved)",                      /* 53) COL_RES_SRC */
-    "Src addr (unresolved)",                    /* 54) COL_UNRES_SRC */
-    "Src port (resolved)",                      /* 55) COL_RES_SRC_PORT */
-    "Src port (unresolved)",                    /* 56) COL_UNRES_SRC_PORT */
-    "TEI",                                      /* 57) COL_TEI */
-    "Time (format as specified)"                /* 58) COL_CLS_TIME */
-};
-
 const gchar *
 col_format_desc(gint fmt) {
+
+  const gchar *dlist[] = {
+#define __TN(format, string, desc)	desc,
+    COLUMN_FORMAT_INFO
+#undef __TN
+  };
+	
   g_assert((fmt >= 0) && (fmt < NUM_COL_FMTS));
   return(dlist[fmt]);
 }
 
+
 /* Marks each array element true if it can be substituted for the given
    column format */
 void
Index: epan/column_info.h
===================================================================
--- epan/column_info.h	(revision 25985)
+++ epan/column_info.h	(working copy)
@@ -55,78 +55,83 @@
   gboolean columns_changed;  /* Have the columns been changed in the prefs? */
 } column_info;
 
+
 /*
  * All of the possible columns in summary listing.
- *
- * NOTE1: The entries MUST remain in this order, or else you need to reorder
- *        the slist[] and dlist[] arrays in column.c to match!
- *
- * NOTE2: Please add the COL_XYZ entry in the appropriate spot, such that the
- *        dlist[] array remains in alphabetical order!
+ * Format: __TN(format, string, desc)\
+ * NOTE: Please add the COL_XYZ entry in the appropriate spot, such that the
+ *       desc remains in alphabetical order!
  */
+#define COLUMN_FORMAT_INFO \
+__TN(COL_8021Q_VLAN_ID,		"%q",	"802.1Q VLAN id")\
+__TN(COL_ABS_DATE_TIME,		"%Yt",	"Absolute date and time")\
+__TN(COL_ABS_TIME,			"%At",	"Absolute time")\
+__TN(COL_CIRCUIT_ID,		"%c",	"Circuit ID")\
+__TN(COL_DSTIDX,			"%Xd",	"Cisco Dst PortIdx")\
+__TN(COL_SRCIDX,			"%Xs",	"Cisco Src PortIdx")\
+__TN(COL_VSAN,				"%V",	"Cisco VSAN")\
+__TN(COL_CUMULATIVE_BYTES,	"%B",	"Cumulative Bytes")\
+__TN(COL_CUSTOM,			"%Cus",	"Custom")\
+__TN(COL_DCE_CALL,			"%y",	"DCE/RPC call (cn_call_id / dg_seqnum)")\
+__TN(COL_DCE_CTX,			"%z",	"DCE/RPC context ID (cn_ctx_id)")\
+__TN(COL_DELTA_TIME,		"%Tt",	"Delta time")\
+__TN(COL_DELTA_CONV_TIME,	"%dct",	"Delta time (conversation)")\
+__TN(COL_DELTA_TIME_DIS,	"%Gt",	"Delta time displayed")\
+__TN(COL_RES_DST,			"%rd",	"Dest addr (resolved)")\
+__TN(COL_UNRES_DST,			"%ud",	"Dest addr (unresolved)")\
+__TN(COL_RES_DST_PORT,		"%rD",	"Dest port (resolved)")\
+__TN(COL_UNRES_DST_PORT,	"%uD",	"Dest port (unresolved)")\
+__TN(COL_DEF_DST,			"%d",	"Destination address")\
+__TN(COL_DEF_DST_PORT,		"%D",	"Destination port")\
+__TN(COL_EXPERT,			"%a",	"Expert Info Severity")\
+__TN(COL_IF_DIR,			"%I",	"FW-1 monitor if/direction")\
+__TN(COL_OXID,				"%XO",	"Fibre Channel OXID")\
+__TN(COL_RXID,				"%XR",	"Fibre Channel RXID")\
+__TN(COL_FR_DLCI,			"%C",	"Frame Relay DLCI")\
+__TN(COL_FREQ_CHAN,			"%F",	"Frequency/Channel")\
+__TN(COL_BSSGP_TLLI,		"%l",	"GPRS BSSGP TLLI")\
+__TN(COL_HPUX_DEVID,		"%p",	"HP-UX Device ID")\
+__TN(COL_HPUX_SUBSYS,		"%H",	"HP-UX Subsystem")\
+__TN(COL_DEF_DL_DST,		"%hd",	"Hardware dest addr")\
+__TN(COL_DEF_DL_SRC,		"%hs",	"Hardware src addr")\
+__TN(COL_RES_DL_DST,		"%rhd",	"Hw dest addr (resolved)")\
+__TN(COL_UNRES_DL_DST,		"%uhd",	"Hw dest addr (unresolved)")\
+__TN(COL_RES_DL_SRC,		"%rhs",	"Hw src addr (resolved)")\
+__TN(COL_UNRES_DL_SRC,		"%uhs",	"Hw src addr (unresolved)")\
+__TN(COL_RSSI,				"%e",	"IEEE 802.11 RSSI")\
+__TN(COL_TX_RATE,			"%x",	"IEEE 802.11 TX rate")\
+__TN(COL_DSCP_VALUE,		"%f",	"IP DSCP Value")\
+__TN(COL_INFO,				"%i",	"Information")\
+__TN(COL_COS_VALUE,			"%U",	"L2 COS Value (802.1p)")\
+__TN(COL_RES_NET_DST,		"%rnd",	"Net dest addr (resolved)")\
+__TN(COL_UNRES_NET_DST,		"%und",	"Net dest addr (unresolved)")\
+__TN(COL_RES_NET_SRC,		"%rns",	"Net src addr (resolved)")\
+__TN(COL_UNRES_NET_SRC,		"%uns",	"Net src addr (unresolved)")\
+__TN(COL_DEF_NET_DST,		"%nd",	"Network dest addr")\
+__TN(COL_DEF_NET_SRC,		"%ns",	"Network src addr")\
+__TN(COL_NUMBER,			"%m",	"Number")\
+__TN(COL_PACKET_LENGTH,		"%L",	"Packet length (bytes)")\
+__TN(COL_PROTOCOL,			"%p",	"Protocol")\
+__TN(COL_REL_TIME,			"%Rt",	"Relative time")\
+__TN(COL_REL_CONV_TIME,		"%rct",	"Relative time (conversation)")\
+__TN(COL_DEF_SRC,			"%s",	"Source address")\
+__TN(COL_DEF_SRC_PORT,		"%S",	"Source port")\
+__TN(COL_RES_SRC,			"%rs",	"Src addr (resolved)")\
+__TN(COL_UNRES_SRC,			"%us",	"Src addr (unresolved)")\
+__TN(COL_RES_SRC_PORT,		"%rS",	"Src port (resolved)")\
+__TN(COL_UNRES_SRC_PORT,	"%uS",	"Src port (unresolved)")\
+__TN(COL_TEI,				"%E",	"TEI")\
+__TN(COL_CLS_TIME,			"%t",	"Time (format as specified)")\
+
+
 enum {
-  COL_8021Q_VLAN_ID,  /* 0) 802.1Q vlan ID */
-  COL_ABS_DATE_TIME,  /* 1) Absolute date and time */
-  COL_ABS_TIME,       /* 2) Absolute time */
-  COL_CIRCUIT_ID,     /* 3) Circuit ID */
-  COL_DSTIDX,         /* 4) Dst port idx - Cisco MDS-specific */
-  COL_SRCIDX,         /* 5) Src port idx - Cisco MDS-specific */
-  COL_VSAN,           /* 6) VSAN - Cisco MDS-specific */
-  COL_CUMULATIVE_BYTES, /* 7) Cumulative number of bytes */
-  COL_CUSTOM,         /* 8) Custom column (any filter name's contents) */
-  COL_DCE_CALL,       /* 9) DCE/RPC connection oriented call id OR datagram sequence number */
-  COL_DCE_CTX,        /* 10) DCE/RPC connection oriented context id */
-  COL_DELTA_TIME,     /* 11) Delta time */
-  COL_DELTA_CONV_TIME,/* 12) Delta time to last frame in conversation */
-  COL_DELTA_TIME_DIS, /* 13) Delta time displayed*/
-  COL_RES_DST,        /* 14) Resolved dest */
-  COL_UNRES_DST,      /* 15) Unresolved dest */
-  COL_RES_DST_PORT,   /* 16) Resolved dest port */
-  COL_UNRES_DST_PORT, /* 17) Unresolved dest port */
-  COL_DEF_DST,        /* 18) Destination address */
-  COL_DEF_DST_PORT,   /* 19) Destination port */
-  COL_EXPERT,         /* 20) Expert Info */
-  COL_IF_DIR,         /* 21) FW-1 monitor interface/direction */
-  COL_OXID,           /* 22) Fibre Channel OXID */
-  COL_RXID,           /* 23) Fibre Channel RXID */
-  COL_FR_DLCI,        /* 24) Frame Relay DLCI */
-  COL_FREQ_CHAN,      /* 25) IEEE 802.11 (and WiMax?) - Channel */
-  COL_BSSGP_TLLI,     /* 26) GPRS BSSGP IE TLLI */
-  COL_HPUX_DEVID,     /* 27) HP-UX Nettl Device ID */
-  COL_HPUX_SUBSYS,    /* 28) HP-UX Nettl Subsystem */
-  COL_DEF_DL_DST,     /* 29) Data link layer dest address */
-  COL_DEF_DL_SRC,     /* 30) Data link layer source address */
-  COL_RES_DL_DST,     /* 31) Resolved DL dest */
-  COL_UNRES_DL_DST,   /* 32) Unresolved DL dest */
-  COL_RES_DL_SRC,     /* 33) Resolved DL source */
-  COL_UNRES_DL_SRC,   /* 34) Unresolved DL source */
-  COL_RSSI,           /* 35) IEEE 802.11 - received signal strength */
-  COL_TX_RATE,        /* 36) IEEE 802.11 - TX rate in Mbps */
-  COL_DSCP_VALUE,     /* 37) IP DSCP Value */
-  COL_INFO,           /* 38) Description */
-  COL_COS_VALUE,      /* 39) L2 COS Value */
-  COL_RES_NET_DST,    /* 40) Resolved net dest */
-  COL_UNRES_NET_DST,  /* 41) Unresolved net dest */
-  COL_RES_NET_SRC,    /* 42) Resolved net source */
-  COL_UNRES_NET_SRC,  /* 43) Unresolved net source */
-  COL_DEF_NET_DST,    /* 44) Network layer dest address */
-  COL_DEF_NET_SRC,    /* 45) Network layer source address */
-  COL_NUMBER,         /* 46) Packet list item number */
-  COL_PACKET_LENGTH,  /* 47) Packet length in bytes */
-  COL_PROTOCOL,       /* 48) Protocol */
-  COL_REL_TIME,       /* 49) Relative time */
-  COL_REL_CONV_TIME,  /* 50) Relative time to beginning of conversation */
-  COL_DEF_SRC,        /* 51) Source address */
-  COL_DEF_SRC_PORT,   /* 52) Source port */
-  COL_RES_SRC,        /* 53) Resolved source */
-  COL_UNRES_SRC,      /* 54) Unresolved source */
-  COL_RES_SRC_PORT,   /* 55) Resolved source port */
-  COL_UNRES_SRC_PORT, /* 56) Unresolved source port */
-  COL_TEI,            /* 57) Q.921 TEI */
-  COL_CLS_TIME,       /* 58) Command line-specified time (default relative) */
-  NUM_COL_FMTS        /* 59) Should always be last */
+#define __TN(format, string, desc)	format,
+COLUMN_FORMAT_INFO
+#undef __TN
+NUM_COL_FMTS
 };
 
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
