Bug 73557 [Dialogs] Pattern matching changes Open Resource type-ahead behaviour
If I use the "Open Resource" dialog (Ctrl-Shift-r) and being typing, it lists matches as though there is an implicit '*' at the end. E.g. if I being typing "MyF", it will show "MyFunClass.java", "MyFoobar.java", etc. But if I add a '*' at the beginning, and start typing e.g. "*F", it doesn't show the same list of files. Instead, only anything ending with 'F' is shown. I've tried this with a couple of other expressions, and it seems that if any regular expression is used, the behaviour of the dialog changes -- there is no longer considered to be a '*' at the end. I think this is confusing behaviour. If I add a manually add a '*' at the end of my expression, and then begin typing before the '*', I get the behaviour that I would expect.
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceListSelectionDialog.java
if ((patternString.indexOf('?') == -1)
                    && (patternString.endsWith("*")) && 
                    (patternString.indexOf('*') == patternString.length() - 1)) {
                
                  
                 
                
                firstMatch = getFirstMatch();
                if (firstMatch == -1) {
                    firstMatch = 0;
                    lastMatch = -1;
                } else {
                    lastMatch = getLastMatch();
                }
                last = lastMatch;
                for (int i = firstMatch; i <= lastMatch; i++) {
                    if (i % 50 == 0) {
                        try {
                            Thread.sleep(10);
                        } catch (InterruptedException e) {
                        }
                    }
                    if (stop || resourceNames.isDisposed()) {
                        disposed[0] = true;
                        return;
                    }
                    final int index = i;
                    display.syncExec(new Runnable() {
                        public void run() {
                            if (stop || resourceNames.isDisposed())