rem: scrollToColumn(bPtr, bPtr->columnCount-bPtr->maxVisibleColumns);
add: bPtr->selectedColumn = i;  if (bPtr->columnCount < bPtr->maxVisibleColumns) { int i = bPtr->maxVisibleColumns - bPtr->columnCount; int curUsedColumnCount = bPtr->usedColumnCount; bPtr->usedColumnCount = bPtr->columnCount; while (i--) { WMAddBrowserColumn(bPtr); } bPtr->usedColumnCount = curUsedColumnCount; }
context: WMSetBrowserPath(WMBrowser *bPtr, char *path){    int i;    char *str = wstrdup(path);    char *tmp;    int item;    Bool ok = True;    WMListItem *listItem;    removeColumn(bPtr, 1);    i = 0;    tmp = strtok(str, bPtr->pathSeparator);    while (tmp) {	/* select it in the column */	item = WMFindRowOfListItemWithTitle(bPtr->columns[i], tmp);	if (item<0) {	    ok = False;	    break;	}	WMSelectListItem(bPtr->columns[i], item);	WMSetListPosition(bPtr->columns[i], item);		listItem = WMGetListItem(bPtr->columns[i], item);	if (!listItem || !listItem->isBranch) {	    break;	} 	/* load next column */	WMAddBrowserColumn(bPtr);	loadColumn(bPtr, i+1);		tmp = strtok(NULL, bPtr->pathSeparator);	i++;    }    free(str);    bPtr->selectedColumn = bPtr->usedColumnCount - 1;    scrollToColumn(bPtr, bPtr->columnCount-bPtr->maxVisibleColumns);    return ok;}