| 294 | } |
| 295 | |
| 296 | int map_user(struct string_list *map, |
| 297 | const char **email, size_t *emaillen, |
| 298 | const char **name, size_t *namelen) |
| 299 | { |
| 300 | struct string_list_item *item; |
| 301 | struct mailmap_entry *me; |
| 302 | |
| 303 | item = lookup_prefix(map, *email, *emaillen); |
| 304 | if (item) { |
| 305 | me = (struct mailmap_entry *)item->util; |
| 306 | if (me->namemap.nr) { |
| 307 | /* |
| 308 | * The item has multiple items, so we'll look up on |
| 309 | * name too. If the name is not found, we choose the |
| 310 | * simple entry. |
| 311 | */ |
| 312 | struct string_list_item *subitem; |
| 313 | subitem = lookup_prefix(&me->namemap, *name, *namelen); |
| 314 | if (subitem) |
| 315 | item = subitem; |
| 316 | } |
| 317 | } |
| 318 | if (item) { |
| 319 | struct mailmap_info *mi = (struct mailmap_info *)item->util; |
| 320 | if (mi->name == NULL && mi->email == NULL) |
| 321 | return 0; |
| 322 | if (mi->email) { |
| 323 | *email = mi->email; |
| 324 | *emaillen = strlen(*email); |
| 325 | } |
| 326 | if (mi->name) { |
| 327 | *name = mi->name; |
| 328 | *namelen = strlen(*name); |
| 329 | } |
| 330 | return 1; |
| 331 | } |
| 332 | return 0; |
| 333 | } |
no test coverage detected