1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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");
|