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);
},
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");
}
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);
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));