-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlibaddress.txt
132 lines (113 loc) · 3.18 KB
/
libaddress.txt
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Address
where from?
loose from alias.rc
straight list Envelope
Branched alias.rc + groups
Tags -> multiple groupings
external list with children
how to display each type?
loose -> list/menu
grouped -> tree
tagged -> sidebar
what are parent-of-group, tag set objects?
empty addresses?
for tag sidebar need:
All Addresses
All Tagged
Untagged
Tag1
Tag2
...
Tags apply to all children
e.g. grouped addrs
menu selection: how to tag in multiple groups
pager contains:
extra info
or
current selection (cumulative)
sending code shouldn't know about tags/tree structure
addr_lookup(name) -> linearised lst - only if name is unique
OR -> menu of addresses, limited to (name) -- allow unlimiting
sensitive repo for lkml metadata
1) one address per line, raw
2) all raw header address lines
3) all headers (plus a 1 line body)
need to exclude signing/MIME headers
4) deploy key for travis testing
5) sample addresses with/missing extras
"comment"
(comment)
etc
6) sample addresses with all encodings
7) degenerate addresses
too long
etc
8) error codes for all failures
9) sample IDN addresses
---
Addr given raw text
who parses the commas?
ideally the outside
raw text untouched
parse to name, email, comment
get_display()
checked for IDN
get_canon() (xn-- if nec)
display is utf8
canon is ascii
populate as needed?
ref-counting
lists outside of object
group is list of Addr
Groups: list,hash,vector
not going to be many
Addr could be in many groups (labels)
can groups contain groups?
tree of Addrs?
doesn't seem possible with current config
in use: lots of email will have multiple raw addresses
that all have the same canon email
do we link them?
patterns - need to test group membership
=> reverse lookup
linking email "Rich <[email protected]>" -> 'Richard "flatcap" Russon <[email protected]>"
if it exists only need raw and ptr to master
if not need full Addr
raw,display,canone
is canon encoded? NO
different encodings exists -> hard to search
Grouping: sidebar group -> AddrList easy
flat list -> groups column HOW?
Many-to-many table
fake group "all" for "known" addresses
index classification
Email: known, in (regex) group, is self(user), unknown
Conditionals for testing group membership
colours based on group membership
searching means lots of lookups based on email
OR it's already done when populating the index
limit group apple, checks Email -> master -> group
NO many-to-many
how is limited index affected when groups change?
Addr notifications?
display name overridden by alias name for selected groups?
Does all this belong in libaddr?
Probably not
just the raw, split, canon
lists and groups too?
create alias must affect is-in-group checks ∀ addrs, HOW?
libaddr (used by config) needs to shrink (rest goes to libcontacts)
libconfig will work with get_display() versions of Addr
dump() too
need subflags ∀ address expandos To, From, Cc, Bcc to determine
which gets displayed
$config too: display|punycode|alias|group|initials
colours
by block (it's a date)
by display choice
by regex
mxopen/hcache -> index -> just raw -> storing in hcache?
addr has broken down name, email, comment
index. IdnDecode = no => get_canon()
canon will always exist? YES, need for sorting? comparison? YES
IdnDecode = yes