Jinoh Kang (@iamahuman) commented about dlls/comdlg32/navbar.c:
crumb1->pidl = ILClone(pidl);
IShellFolder_GetDisplayNameOf(desktop, pidl, SHGDN_FORADDRESSBAR, &strret);
StrRetToBufW(&strret, pidl, crumb1->display_name, MAX_PATH);
crumb1->hwnd = CreateWindowExW(0, WC_BUTTONW, crumb1->display_name, WS_CHILD,
0, 0, 0, 0,
info->container_hwnd, (HMENU)IDC_NAVCRUMB, COMDLG32_hInstance, NULL);
SendMessageW(crumb1->hwnd, WM_SETFONT, (LPARAM)gui_font, FALSE);
SendMessageW(crumb1->hwnd, BCM_GETIDEALSIZE, 0, (LPARAM)&full_size);
SetWindowLongPtrW(crumb1->hwnd, GWLP_USERDATA, (LPARAM)crumb1->pidl);
SetWindowSubclass(crumb1->hwnd, NAVBAR_RMBMENU_SubclassProc, 0, (DWORD_PTR)info);
crumb1->full_w = full_size.cx + padding;
crumb1->current_w = crumb1->full_w;
list_add_tail(&new_crumbs, &crumb1->entry);
You can use `list_add_head` to _prepend_ items to a list. You can avoid reversing the list this way. Sorry for failing to mention this earlier.