]> git.donarmstrong.com Git - dactyl.git/blobdiff - common/content/bookmarks.js
Import 1.0 supporting Firefox up to 14.*
[dactyl.git] / common / content / bookmarks.js
index ca1bdb001d9b3743cf1d2478b7588d20b60e407a..195bee664cfd3673e13bf2c0e51c4079ec59235e 100644 (file)
@@ -15,13 +15,13 @@ var Bookmarks = Module("bookmarks", {
 
         storage.addObserver("bookmark-cache", function (key, event, arg) {
             if (["add", "change", "remove"].indexOf(event) >= 0)
-                autocommands.trigger("Bookmark" + event[0].toUpperCase() + event.substr(1),
+                autocommands.trigger("Bookmark" + util.capitalize(event),
                      iter({
                          bookmark: {
                              toString: function () "bookmarkcache.bookmarks[" + arg.id + "]",
                              valueOf: function () arg
                          }
-                     }, arg));
+                     }, arg).toObject());
             bookmarks.timer.tell();
         }, window);
     },
@@ -345,11 +345,12 @@ var Bookmarks = Module("bookmarks", {
                 catch (e) {}
 
             if (charset)
-                var encodedParam = escape(window.convertFromUnicode(charset, param));
+                var encodedParam = escape(window.convertFromUnicode(charset, param)).replace(/\+/g, encodeURIComponent);
             else
-                encodedParam = bookmarkcache.keywords[keyword].encodeURIComponent(param);
+                encodedParam = bookmarkcache.keywords[keyword.toLowerCase()].encodeURIComponent(param);
 
-            url = url.replace(/%s/g, encodedParam).replace(/%S/g, param);
+            url = url.replace(/%s/g, function () encodedParam)
+                     .replace(/%S/g, function () param);
             if (/%s/i.test(data))
                 postData = window.getPostDataStream(data, param, encodedParam, "application/x-www-form-urlencoded");
         }
@@ -472,7 +473,7 @@ var Bookmarks = Module("bookmarks", {
                 let updated = bookmarks.add(opts);
                 let action  = updated ? "updated" : "added";
 
-                let extra   = (opts.title == opts.url) ? "" : " (" + opts.title + ")";
+                let extra   = (opts.title && opts.title != opts.url) ? " (" + opts.title + ")" : "";
 
                 dactyl.echomsg({ domains: [util.getHost(opts.url)], message: _("bookmark." + action, opts.url + extra) },
                                1, commandline.FORCE_SINGLELINE);
@@ -707,6 +708,9 @@ var Bookmarks = Module("bookmarks", {
                 ctxt.compare = CompletionContext.Sort.unsorted;
                 ctxt.filterFunc = null;
 
+                if (ctxt.waitingForTab)
+                    return;
+
                 let words = ctxt.filter.toLowerCase().split(/\s+/g);
                 ctxt.completions = ctxt.completions.filter(function (i) words.every(function (w) i.toLowerCase().indexOf(w) >= 0));