/*
-* Takes the From: field, and creates a displayable name.
-* Luke Ehresman <lkehresman@yahoo.com>
-* becomes: Luke Ehresman
-* <lkehresman@yahoo.com>
-* becomes: lkehresman@yahoo.com
-*/
+ * Takes the From: field, and creates a displayable name.
+ * Luke Ehresman <lkehresman@yahoo.com>
+ * "Luke Ehresman" <lkehresman@yahoo.com>
+ * lkehresman@yahoo.com (Luke Ehresman)
+ * become: Luke Ehresman
+ * <lkehresman@yahoo.com>
+ * becomes: lkehresman@yahoo.com
+ */
function sqimap_find_displayable_name ($string) {
- $string = ' '.trim($string);
- $orig_string = $string;
- if (strpos($string, '<') && strpos($string, '>')) {
- if (strpos($string, '<') == 1) {
- $string = sqimap_find_email($string);
- } else {
- $string = trim($string);
- $string = substr($string, 0, strpos($string, '<'));
- $string = ereg_replace ('"', '', $string);
- }
-
- if (trim($string) == '') {
- $string = sqimap_find_email($orig_string);
- }
- } else if (strpos($string, '(') && strpos($string, ')')) {
- $fn_start = strpos($string, '(') + 1;
- $fn_len = strpos($string, ')') - $fn_start;
-
- $string = substr($string, $fn_start, $fn_len);
+ $string = trim($string);
+
+ if ( ereg('^(.+)<.*>', $string, $regs) ) {
+ $string = ereg_replace ('"', '', $regs[1] );
+ }
+ elseif ( ereg('\((.*)\)', $string, $regs) ) {
+ $string = $regs[1];
+ }
+ else {
+ $string = sqimap_find_email($string);
}
- return $string;
-}
-
+ return trim($string);
+}
+
/*
* Returns the number of unseen messages in this folder
*/