forked from osmocom/wireshark
Simplify the parsing of column preferences, which should make it easier
to add column prefs in the future. Fix up whitespace in a couple of places. svn path=/trunk/; revision=22923
This commit is contained in:
parent
6805bdaed6
commit
b2d3e554db
156
epan/column.c
156
epan/column.c
|
@ -104,7 +104,7 @@ col_format_to_string(gint fmt) {
|
||||||
"%l",
|
"%l",
|
||||||
"%a",
|
"%a",
|
||||||
"%F"
|
"%F"
|
||||||
};
|
};
|
||||||
|
|
||||||
if (fmt < 0 || fmt >= NUM_COL_FMTS)
|
if (fmt < 0 || fmt >= NUM_COL_FMTS)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -600,21 +600,6 @@ get_column_char_width(gint format)
|
||||||
return strlen(get_column_longest_string(format));
|
return strlen(get_column_longest_string(format));
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TIME_DEF 0
|
|
||||||
#define TIME_REL 1
|
|
||||||
#define TIME_ABS 2
|
|
||||||
#define DATE_TIME_ABS 3
|
|
||||||
#define TIME_DEL 4
|
|
||||||
#define TIME_DEL_DIS 5
|
|
||||||
|
|
||||||
#define RES_DEF 0
|
|
||||||
#define RES_DO 1
|
|
||||||
#define RES_DONT 2
|
|
||||||
|
|
||||||
#define ADDR_DEF 0
|
|
||||||
#define ADDR_DL 3
|
|
||||||
#define ADDR_NET 6
|
|
||||||
|
|
||||||
gint
|
gint
|
||||||
get_column_format(gint col) {
|
get_column_format(gint col) {
|
||||||
GList *clp = g_list_nth(prefs.col_list, col);
|
GList *clp = g_list_nth(prefs.col_list, col);
|
||||||
|
@ -627,142 +612,11 @@ get_column_format(gint col) {
|
||||||
|
|
||||||
gint
|
gint
|
||||||
get_column_format_from_str(gchar *str) {
|
get_column_format_from_str(gchar *str) {
|
||||||
gchar *cptr = str;
|
gint i;
|
||||||
gint res_off = RES_DEF, addr_off = ADDR_DEF, time_off = TIME_DEF;
|
|
||||||
gint prev_code = -1;
|
|
||||||
|
|
||||||
/* To do: Make this parse %-formatted strings "for real" */
|
for (i = 0; i < NUM_COL_FMTS; i++) {
|
||||||
while (*cptr != '\0') {
|
if (strcmp(str, col_format_to_string(i)) == 0)
|
||||||
switch (*cptr) {
|
return i;
|
||||||
case 't': /* To do: fix for absolute and delta */
|
|
||||||
return COL_CLS_TIME + time_off;
|
|
||||||
break;
|
|
||||||
case 'm':
|
|
||||||
return COL_NUMBER;
|
|
||||||
break;
|
|
||||||
case 's':
|
|
||||||
if (prev_code == COL_OXID) {
|
|
||||||
return COL_SRCIDX;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return COL_DEF_SRC + res_off + addr_off;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'd':
|
|
||||||
if (prev_code == COL_OXID) {
|
|
||||||
return COL_DSTIDX;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return COL_DEF_DST + res_off + addr_off;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'S':
|
|
||||||
return COL_DEF_SRC_PORT + res_off;
|
|
||||||
break;
|
|
||||||
case 'D':
|
|
||||||
return COL_DEF_DST_PORT + res_off;
|
|
||||||
break;
|
|
||||||
case 'p':
|
|
||||||
return COL_PROTOCOL;
|
|
||||||
break;
|
|
||||||
case 'i':
|
|
||||||
return COL_INFO;
|
|
||||||
break;
|
|
||||||
case 'r':
|
|
||||||
res_off = RES_DO;
|
|
||||||
break;
|
|
||||||
case 'u':
|
|
||||||
res_off = RES_DONT;
|
|
||||||
break;
|
|
||||||
case 'h':
|
|
||||||
addr_off = ADDR_DL;
|
|
||||||
break;
|
|
||||||
case 'n':
|
|
||||||
addr_off = ADDR_NET;
|
|
||||||
break;
|
|
||||||
case 'R':
|
|
||||||
if (prev_code == COL_OXID) {
|
|
||||||
return COL_RXID;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
time_off = TIME_REL;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'A':
|
|
||||||
time_off = TIME_ABS;
|
|
||||||
break;
|
|
||||||
case 'Y':
|
|
||||||
time_off = DATE_TIME_ABS;
|
|
||||||
break;
|
|
||||||
case 'T':
|
|
||||||
time_off = TIME_DEL;
|
|
||||||
break;
|
|
||||||
case 'G': /* Todo: use a better letter for time since last displayed packet */
|
|
||||||
time_off = TIME_DEL_DIS;
|
|
||||||
break;
|
|
||||||
case 'L':
|
|
||||||
return COL_PACKET_LENGTH;
|
|
||||||
break;
|
|
||||||
case 'B':
|
|
||||||
return COL_CUMULATIVE_BYTES;
|
|
||||||
break;
|
|
||||||
case 'X':
|
|
||||||
prev_code = COL_OXID;
|
|
||||||
break;
|
|
||||||
case 'O':
|
|
||||||
return COL_OXID;
|
|
||||||
break;
|
|
||||||
case 'I':
|
|
||||||
return COL_IF_DIR;
|
|
||||||
break;
|
|
||||||
case 'c':
|
|
||||||
return COL_CIRCUIT_ID;
|
|
||||||
break;
|
|
||||||
case 'V':
|
|
||||||
return COL_VSAN;
|
|
||||||
break;
|
|
||||||
case 'x':
|
|
||||||
return COL_TX_RATE;
|
|
||||||
break;
|
|
||||||
case 'e':
|
|
||||||
return COL_RSSI;
|
|
||||||
break;
|
|
||||||
case 'H':
|
|
||||||
return COL_HPUX_SUBSYS;
|
|
||||||
break;
|
|
||||||
case 'P':
|
|
||||||
return COL_HPUX_DEVID;
|
|
||||||
break;
|
|
||||||
case 'y':
|
|
||||||
return COL_DCE_CALL;
|
|
||||||
break;
|
|
||||||
case 'z':
|
|
||||||
return COL_DCE_CTX;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
return COL_8021Q_VLAN_ID;
|
|
||||||
break;
|
|
||||||
case 'f':
|
|
||||||
return COL_DSCP_VALUE;
|
|
||||||
break;
|
|
||||||
case 'U':
|
|
||||||
return COL_COS_VALUE;
|
|
||||||
break;
|
|
||||||
case 'E':
|
|
||||||
return COL_TEI;
|
|
||||||
case 'C':
|
|
||||||
return COL_FR_DLCI;
|
|
||||||
case 'l':
|
|
||||||
return COL_BSSGP_TLLI;
|
|
||||||
break;
|
|
||||||
case 'a':
|
|
||||||
return COL_EXPERT;
|
|
||||||
break;
|
|
||||||
case 'F':
|
|
||||||
return COL_FREQ_CHAN;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
cptr++;
|
|
||||||
}
|
}
|
||||||
return -1; /* illegal */
|
return -1; /* illegal */
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,7 +109,7 @@ enum {
|
||||||
COL_DSCP_VALUE, /* IP DSCP Value */
|
COL_DSCP_VALUE, /* IP DSCP Value */
|
||||||
COL_COS_VALUE, /* L2 COS Value */
|
COL_COS_VALUE, /* L2 COS Value */
|
||||||
COL_TEI, /* Q.921 TEI */
|
COL_TEI, /* Q.921 TEI */
|
||||||
COL_FR_DLCI, /* Frame Relay DLCI */
|
COL_FR_DLCI, /* Frame Relay DLCI */
|
||||||
COL_BSSGP_TLLI, /* GPRS BSSGP IE TLLI */
|
COL_BSSGP_TLLI, /* GPRS BSSGP IE TLLI */
|
||||||
COL_EXPERT, /* Expert Info */
|
COL_EXPERT, /* Expert Info */
|
||||||
COL_FREQ_CHAN, /* IEEE 802.11 (and WiMax?) - Channel */
|
COL_FREQ_CHAN, /* IEEE 802.11 (and WiMax?) - Channel */
|
||||||
|
|
Loading…
Reference in New Issue