From 5d0ed1a70e6451023e108bb0457afff8cee5e7e5 Mon Sep 17 00:00:00 2001 From: Edward Lee Date: Thu, 9 Jun 2011 09:22:43 -0700 Subject: [PATCH] Closes #533: Preserve the casing of the original input when suggesting Save the original cased query to give it back as the keyword plus whatever is new. --- speakWords/bootstrap.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/speakWords/bootstrap.js b/speakWords/bootstrap.js index 73ebd9a..430f1c5 100644 --- a/speakWords/bootstrap.js +++ b/speakWords/bootstrap.js @@ -53,12 +53,15 @@ let sortedKeywords = []; * Lookup a keyword to suggest for the provided query */ function getKeyword(query) { + // Remember the original query to preserve its original casing + let origQuery = query; + // Split the query into before and after the last space let lastStart = query.lastIndexOf(" ") + 1; let before = query.slice(0, lastStart); // Suggest keywords for the last word of the query - query = query.slice(lastStart); + query = query.slice(lastStart).toLowerCase(); // Don't suggest a keyword for a blank query if (query == "") @@ -75,7 +78,7 @@ function getKeyword(query) { for (let i = 0; i < sortedLen; i++) { let keyword = keywords[i]; if (keyword.slice(0, queryLen) == query) - return before + keyword; + return origQuery + (before + keyword).slice(origQuery.length); } } @@ -130,7 +133,7 @@ function addKeywordSuggestions(window) { } // See if we can suggest a keyword if it isn't the current query - let query = urlBar.textValue.toLowerCase(); + let query = urlBar.textValue; let keyword = getKeyword(query); if (keyword == null || keyword == query) return;