diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/build-packet.c | 6 | ||||
-rw-r--r-- | g10/keylist.c | 6 | ||||
-rw-r--r-- | g10/packet.h | 9 |
3 files changed, 16 insertions, 5 deletions
diff --git a/g10/build-packet.c b/g10/build-packet.c index 9b6496766..4bfc2ac10 100644 --- a/g10/build-packet.c +++ b/g10/build-packet.c @@ -1277,8 +1277,9 @@ sig_to_notation(PKT_signature *sig) { const byte *p; size_t len; - int seq=0,crit; - struct notation *list=NULL; + int seq = 0; + int crit; + notation_t list = NULL; /* See RFC 4880, 5.2.3.16 for the format of notation data. In short, a notation has: @@ -1323,6 +1324,7 @@ sig_to_notation(PKT_signature *sig) n->value=xmalloc(n2+1); memcpy(n->value,&p[8+n1],n2); n->value[n2]='\0'; + n->flags.human = 1; } else /* Binary data. */ diff --git a/g10/keylist.c b/g10/keylist.c index cbde0bb72..2a1ef2e12 100644 --- a/g10/keylist.c +++ b/g10/keylist.c @@ -401,7 +401,7 @@ void show_notation (PKT_signature * sig, int indent, int mode, int which) { estream_t fp = mode ? log_get_stream () : es_stdout; - struct notation *nd, *notations; + notation_t nd, notations; if (which == 0) which = 3; @@ -448,6 +448,10 @@ show_notation (PKT_signature * sig, int indent, int mode, int which) { write_status_buffer (STATUS_NOTATION_NAME, nd->name, strlen (nd->name), 0); + if (nd->flags.critical || nd->flags.human) + write_status_text (STATUS_NOTATION_FLAGS, + nd->flags.critical && nd->flags.human? "1 1" : + nd->flags.critical? "1 0" : "0 1"); write_status_buffer (STATUS_NOTATION_DATA, nd->value, strlen (nd->value), 50); } diff --git a/g10/packet.h b/g10/packet.h index 194c13442..6ea2f8314 100644 --- a/g10/packet.h +++ b/g10/packet.h @@ -531,12 +531,14 @@ struct notation /* The notation's name. */ char *name; /* If the notation is human readable, then the value is stored here - as a NUL-terminated string. */ + as a NUL-terminated string. If it is not human readable a human + readable approximation of the binary value _may_ be stored + here. */ char *value; /* Sometimes we want to %-expand the value. In these cases, we save that transformed value here. */ char *altvalue; - /* If the notation is not human readable, then the value is strored + /* If the notation is not human readable, then the value is stored here. */ unsigned char *bdat; /* The amount of data stored in BDAT. @@ -552,6 +554,8 @@ struct notation { /* The notation is critical. */ unsigned int critical:1; + /* The notation is human readable. */ + unsigned int human:1; /* The notation should be deleted. */ unsigned int ignore:1; } flags; @@ -559,6 +563,7 @@ struct notation /* A field to facilitate creating a list of notations. */ struct notation *next; }; +typedef struct notation *notation_t; /*-- mainproc.c --*/ void reset_literals_seen(void); |