diff options
Diffstat (limited to 'display-types.diff')
-rw-r--r-- | display-types.diff | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/display-types.diff b/display-types.diff new file mode 100644 index 000000000000..6146c8e61fc9 --- /dev/null +++ b/display-types.diff @@ -0,0 +1,87 @@ +Display the value of "TYPE" attributes for vCard fields that have such +attribute (closes: #442457) + + -- Rafael Laboissiere <rafael@debian.org> Mon, 30 Jun 2008 16:46:12 +0200 + +Index: rolo-011.dfsg.1/src/view.c +=================================================================== +--- rolo-011.dfsg.1.orig/src/view.c 2008-06-30 16:50:13.000000000 +0200 ++++ rolo-011.dfsg.1/src/view.c 2008-06-30 16:50:23.000000000 +0200 +@@ -305,10 +305,14 @@ + view_tel () + { + vc_component *vc = NULL; ++ vc_component_param *vcp = NULL; + char *val = NULL; ++ char *type = NULL; ++ char fmt [80]; ++ char tmp [80]; + int x = 0; + int y = 0; +- int i = 0; ++ int len = -1; + + g_mode = VIEW_TEL; + +@@ -322,20 +326,53 @@ + wstandend (sub); + wmove (sub, 3, 0); + +- for (i = 1, vc = g_v; i <= 5; i++) ++ len = -1; ++ vc = g_v; ++ while (vc = vc_get_next_by_name (vc, VC_TELEPHONE)) ++ { ++ vcp = vc ? vc_param_get_by_name (vc_get_param (vc), "type") : NULL; ++ if (vcp) ++ { ++ type = vc_param_get_value (vcp); ++ if ((len < 0) | (len < strlen (type))) ++ len = strlen (type) + 2; /* take parentheses into account */ ++ } ++ } ++ ++ vc = g_v; ++ while (vc = vc_get_next_by_name (vc, VC_TELEPHONE)) + { +- vc = vc_get_next_by_name (vc, VC_TELEPHONE); +- val = vc_get_value (vc); +- wprintw (sub, "Telephone #%i : %s\n", i, val ? val : ""); ++ vcp = vc ? vc_param_get_by_name (vc_get_param (vc), "type") : NULL; ++ type = vcp ? vc_param_get_value (vcp) : NULL; ++ val = vc ? vc_get_value (vc) : NULL; ++ snprintf (fmt, 79, "Telephone %%%ds : %%s\n", len); ++ snprintf (tmp, 79, type ? "(%s)" : "", type); ++ wprintw (sub, fmt, tmp, val ? val : ""); + } + + wprintw (sub, "\n"); + +- for (i = 1, vc = g_v; i <= 5; i++) ++ len = -1; ++ vc = g_v; ++ while (vc = vc_get_next_by_name (vc, VC_EMAIL)) ++ { ++ vcp = vc ? vc_param_get_by_name (vc_get_param (vc), "type") : NULL; ++ if (vcp) { ++ type = vc_param_get_value (vcp); ++ if ((len < 0) | (len < strlen (type))) ++ len = strlen (type) + 2; /* take parentheses into account */ ++ } ++ } ++ ++ vc = g_v; ++ while (vc = vc_get_next_by_name (vc, VC_EMAIL)) + { +- vc = vc_get_next_by_name (vc, VC_EMAIL); +- val = vc_get_value (vc); +- wprintw (sub, "Email Address #%i : %s\n", i, val ? val : ""); ++ vcp = vc ? vc_param_get_by_name (vc_get_param (vc), "type") : NULL; ++ type = vcp ? vc_param_get_value (vcp) : NULL; ++ val = vc ? vc_get_value (vc) : NULL; ++ snprintf (fmt, 79, "Email Address %%%ds : %%s\n", len); ++ snprintf (tmp, 79, type ? "(%s)" : "", type); ++ wprintw (sub, fmt, tmp, val ? val : ""); + } + + wprintw (sub, "\n"); |