|
|
|
@ -247,7 +247,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
static void PrintFeatureList(const SigTableElmt *e, char sep)
|
|
|
|
static void PrintFeatureList(const SigTableElmt *e, char sep)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const uint8_t flags = e->flags;
|
|
|
|
const uint16_t flags = e->flags;
|
|
|
|
|
|
|
|
|
|
|
|
int prev = 0;
|
|
|
|
int prev = 0;
|
|
|
|
if (flags & SIGMATCH_NOOPT) {
|
|
|
|
if (flags & SIGMATCH_NOOPT) {
|
|
|
|
@ -266,6 +266,18 @@ static void PrintFeatureList(const SigTableElmt *e, char sep)
|
|
|
|
printf("compatible with decoder event only rule");
|
|
|
|
printf("compatible with decoder event only rule");
|
|
|
|
prev = 1;
|
|
|
|
prev = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (flags & SIGMATCH_INFO_CONTENT_MODIFIER) {
|
|
|
|
|
|
|
|
if (prev == 1)
|
|
|
|
|
|
|
|
printf("%c", sep);
|
|
|
|
|
|
|
|
printf("content modifier");
|
|
|
|
|
|
|
|
prev = 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (flags & SIGMATCH_INFO_STICKY_BUFFER) {
|
|
|
|
|
|
|
|
if (prev == 1)
|
|
|
|
|
|
|
|
printf("%c", sep);
|
|
|
|
|
|
|
|
printf("sticky buffer");
|
|
|
|
|
|
|
|
prev = 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
if (e->Transform) {
|
|
|
|
if (e->Transform) {
|
|
|
|
if (prev == 1)
|
|
|
|
if (prev == 1)
|
|
|
|
printf("%c", sep);
|
|
|
|
printf("%c", sep);
|
|
|
|
@ -293,6 +305,9 @@ static void SigMultilinePrint(int i, const char *prefix)
|
|
|
|
if (sigmatch_table[i].url) {
|
|
|
|
if (sigmatch_table[i].url) {
|
|
|
|
printf("\n%sDocumentation: %s", prefix, sigmatch_table[i].url);
|
|
|
|
printf("\n%sDocumentation: %s", prefix, sigmatch_table[i].url);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (sigmatch_table[i].alternative) {
|
|
|
|
|
|
|
|
printf("\n%sReplaced by: %s", prefix, sigmatch_table[sigmatch_table[i].alternative].name);
|
|
|
|
|
|
|
|
}
|
|
|
|
printf("\n");
|
|
|
|
printf("\n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|