Index: imap4d/list.c =================================================================== RCS file: /cvsroot/mailutils/mailutils/imap4d/list.c,v retrieving revision 1.11 diff -u -r1.11 list.c --- imap4d/list.c 17 Feb 2002 14:13:50 -0000 1.11 +++ imap4d/list.c 17 Feb 2002 16:00:56 -0000 @@ -30,6 +30,7 @@ { struct inode_list *next; ino_t inode; + dev_t dev; }; /* @@ -168,6 +169,7 @@ stat (cwd, &st); inode_rec.next = NULL; inode_rec.inode = st.st_ino; + inode_rec.dev = st.st_dev; list_file (cwd, ref, (dir) ? dir : "", delim, &inode_rec); chdir (homedir); } @@ -179,10 +181,10 @@ } static int -inode_list_lookup (struct inode_list *list, ino_t inode) +inode_list_lookup (struct inode_list *list, struct stat* st) { for (; list; list = list->next) - if (list->inode == inode) + if (list->inode == st->st_ino && list->dev == st->st_dev) return 1; return 0; } @@ -248,7 +250,7 @@ print_dir (ref, entry, delim); if (S_ISDIR (st.st_mode) - && inode_list_lookup (inode_list, st.st_ino) == 0) + && inode_list_lookup (inode_list, &st) == 0) { if (chdir (entry) == 0) { @@ -257,6 +259,7 @@ struct inode_list inode_rec; inode_rec.inode = st.st_ino; + inode_rec.dev = st.st_dev; inode_rec.next = inode_list; rf = calloc (strlen (ref) + strlen (delim) + strlen (entry) + 1, 1);