(mh_alias_get_internal): Set `inclusive'
only if the alias matches (mh_alias_get_address): Initialize incl Use mu_address_set_personal to handle alias inclusion
Showing
1 changed file
with
7 additions
and
15 deletions
1 | %{ | 1 | %{ |
2 | /* GNU Mailutils -- a suite of utilities for electronic mail | 2 | /* GNU Mailutils -- a suite of utilities for electronic mail |
3 | Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. | 3 | Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
4 | 4 | ||
5 | GNU Mailutils is free software; you can redistribute it and/or modify | 5 | GNU Mailutils is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
... | @@ -333,10 +333,10 @@ mh_alias_get_internal (char *name, mu_iterator_t start, mu_list_t *return_list, | ... | @@ -333,10 +333,10 @@ mh_alias_get_internal (char *name, mu_iterator_t start, mu_list_t *return_list, |
333 | { | 333 | { |
334 | struct mh_alias *alias; | 334 | struct mh_alias *alias; |
335 | mu_iterator_current (itr, (void **)&alias); | 335 | mu_iterator_current (itr, (void **)&alias); |
336 | if (inclusive) | ||
337 | *inclusive |= alias->inclusive; | ||
338 | if (aliascmp (alias->name, name) == 0) | 336 | if (aliascmp (alias->name, name) == 0) |
339 | { | 337 | { |
338 | if (inclusive) | ||
339 | *inclusive |= alias->inclusive; | ||
340 | *return_list = ali_list_dup (alias->rcpt_list); | 340 | *return_list = ali_list_dup (alias->rcpt_list); |
341 | alias_expand_list (*return_list, itr, inclusive); | 341 | alias_expand_list (*return_list, itr, inclusive); |
342 | rc = 0; | 342 | rc = 0; |
... | @@ -361,6 +361,8 @@ mh_alias_get_address (char *name, mu_address_t *paddr, int *incl) | ... | @@ -361,6 +361,8 @@ mh_alias_get_address (char *name, mu_address_t *paddr, int *incl) |
361 | mu_list_t list; | 361 | mu_list_t list; |
362 | const char *domain = NULL; | 362 | const char *domain = NULL; |
363 | 363 | ||
364 | if (incl) | ||
365 | *incl = 0; | ||
364 | if (mh_alias_get_internal (name, NULL, &list, incl)) | 366 | if (mh_alias_get_internal (name, NULL, &list, incl)) |
365 | return 1; | 367 | return 1; |
366 | if (mu_list_is_empty (list)) | 368 | if (mu_list_is_empty (list)) |
... | @@ -378,18 +380,6 @@ mh_alias_get_address (char *name, mu_address_t *paddr, int *incl) | ... | @@ -378,18 +380,6 @@ mh_alias_get_address (char *name, mu_address_t *paddr, int *incl) |
378 | char *ptr = NULL; | 380 | char *ptr = NULL; |
379 | 381 | ||
380 | mu_iterator_current (itr, (void **)&item); | 382 | mu_iterator_current (itr, (void **)&item); |
381 | if (incl && *incl) | ||
382 | { | ||
383 | if (strchr (item, '@') == 0) | ||
384 | { | ||
385 | if (!domain) | ||
386 | mu_get_user_email_domain (&domain); | ||
387 | asprintf (&ptr, "\"%s\" <%s@%s>", name, item, domain); | ||
388 | } | ||
389 | else | ||
390 | asprintf (&ptr, "\"%s\" <%s>", name, item); | ||
391 | item = ptr; | ||
392 | } | ||
393 | if (mu_address_create (&a, item)) | 383 | if (mu_address_create (&a, item)) |
394 | { | 384 | { |
395 | mh_error (_("Error expanding aliases -- invalid address `%s'"), | 385 | mh_error (_("Error expanding aliases -- invalid address `%s'"), |
... | @@ -397,6 +387,8 @@ mh_alias_get_address (char *name, mu_address_t *paddr, int *incl) | ... | @@ -397,6 +387,8 @@ mh_alias_get_address (char *name, mu_address_t *paddr, int *incl) |
397 | } | 387 | } |
398 | else | 388 | else |
399 | { | 389 | { |
390 | if (incl && *incl) | ||
391 | mu_address_set_personal (a, 1, name); | ||
400 | mu_address_union (paddr, a); | 392 | mu_address_union (paddr, a); |
401 | mu_address_destroy (&a); | 393 | mu_address_destroy (&a); |
402 | } | 394 | } | ... | ... |
-
Please register or sign in to post a comment