This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 200783
Collapse All | Expand All

(-)nb-7.0.1-orig/db/src/org/netbeans/api/db/sql/support/SQLIdentifiers.java (-18 / +10 lines)
Lines 124-148 Link Here
124
        public String unquote(String identifier) {
121
        public String unquote(String identifier) {
125
            Parameters.notNull("identifier", identifier);
122
            Parameters.notNull("identifier", identifier);
126
123
127
            int start = 0;
124
            String result = identifier;
128
            while (identifier.regionMatches(start, quoteString, 0, quoteString.length())) {
125
129
                start += quoteString.length();
126
            if (result.startsWith(quoteString)) {
130
            }
127
                result = result.substring(quoteString.length());
131
            int end = identifier.length();
132
            if (end > start) {
133
                for (;;) {
134
                    int offset = end - quoteString.length();
135
                    if (identifier.regionMatches(offset, quoteString, 0, quoteString.length())) {
136
                        end = offset;
137
                    } else {
138
                        break;
139
                    }
140
                }
141
            }
128
            }
142
            String result = "";
129
143
            if (start < end) {
130
            if (result.endsWith(quoteString)) {
144
                result = identifier.substring(start, end);
131
                result = result.substring(0, result.lastIndexOf(quoteString));
145
            }
132
            }
133
146
            return result;
134
            return result;
147
        }
135
        }
148
136
Lines 151-157 Link Here
151
        }
139
        }
152
140
153
        boolean alreadyQuoted(String identifier) {
141
        boolean alreadyQuoted(String identifier) {
154
            return (identifier.startsWith(quoteString) && identifier.endsWith(quoteString));
142
            return (identifier.startsWith(quoteString)
143
                    && identifier.substring(quoteString.length()).endsWith(quoteString));
155
        }
144
        }
156
145
157
        String doQuote(String identifier) {
146
        String doQuote(String identifier) {
(-)nb-7.0.1-orig/db.sql.editor/src/org/netbeans/modules/db/sql/editor/completion/SQLCompletionQuery.java (-2 / +2 lines)
Lines 979-985 Link Here
979
            if (!incomplete) {
979
            if (!incomplete) {
980
                lastPrefix = parts.remove(parts.size() - 1);
980
                lastPrefix = parts.remove(parts.size() - 1);
981
                String quoteString = quoter.getQuoteString();
981
                String quoteString = quoter.getQuoteString();
982
                if (lastPrefix.startsWith(quoteString)) {
982
                if (quoteString.length() > 0 && lastPrefix.startsWith(quoteString)) {
983
                    if (lastPrefix.endsWith(quoteString) && lastPrefix.length() > quoteString.length()) {
983
                    if (lastPrefix.endsWith(quoteString) && lastPrefix.length() > quoteString.length()) {
984
                        // User typed '"foo"."bar"|', can't complete that.
984
                        // User typed '"foo"."bar"|', can't complete that.
985
                        return null;
985
                        return null;
Lines 988-994 Link Here
988
                    lastPrefix = quoter.unquote(lastPrefix);
988
                    lastPrefix = quoter.unquote(lastPrefix);
989
                    lastPrefixOffset = lastPrefixOffset + (lastPrefixLength - lastPrefix.length());
989
                    lastPrefixOffset = lastPrefixOffset + (lastPrefixLength - lastPrefix.length());
990
                    quoted = true;
990
                    quoted = true;
991
                } else if (lastPrefix.endsWith(quoteString)) {
991
                } else if (quoteString.length() > 0 && lastPrefix.endsWith(quoteString)) {
992
                    // User typed '"foo".bar"|', can't complete.
992
                    // User typed '"foo".bar"|', can't complete.
993
                    return null;
993
                    return null;
994
                }
994
                }

Return to bug 200783