diff --git a/License.txt b/License.txt index 3c775c7f..415f9f5d 100644 --- a/License.txt +++ b/License.txt @@ -10,8 +10,8 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott -Copyright (c) 2009 by Prathyush Thota +Copyright (c) 2006-2009 by Martin Stubenschrott +and the authors of the specific projects inside (see the AUTHORS file in each). Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/common/Makefile.common b/common/Makefile.common index 89cb8d69..c1458a87 100644 --- a/common/Makefile.common +++ b/common/Makefile.common @@ -9,7 +9,7 @@ LOCALEDIR = locale DOC_SRC_FILES = $(wildcard $(LOCALEDIR)/*/*.txt) LOCALES = $(foreach locale,$(wildcard $(LOCALEDIR)/*),$(word 2,$(subst /, ,$(locale)))) -MAKE_JAR = VERSION="$(VERSION)" DATE="$(BUILD_DATE)" bash $(BASE)/make_jar.sh +MAKE_JAR = VERSION="$(VERSION)" DATE="$(BUILD_DATE)" sh $(BASE)/make_jar.sh # TODO: specify source files manually? JAR_BASES = $(TOP) $(BASE) @@ -45,7 +45,7 @@ TARGETS = all help info doc jar xpi install clean distclean $(JAR) $(TARGETS:%=\%.%): echo MAKE $* $(@:$*.%=%) $(MAKE) -C $* $(@:$*.%=%) - echo $$SHELL + .PHONY: $(TARGETS) all: help diff --git a/common/content/bindings.xml b/common/content/bindings.xml index 09693199..d2fd0254 100644 --- a/common/content/bindings.xml +++ b/common/content/bindings.xml @@ -47,11 +47,9 @@ - - diff --git a/common/content/buffer.js b/common/content/buffer.js index 19a449c7..cfd40399 100644 --- a/common/content/buffer.js +++ b/common/content/buffer.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -44,7 +44,6 @@ function Buffer() //{{{ // FIXME: This doesn't belong here. let mainWindowID = config.mainWindowID || "main-window"; - let fontSize = util.computedStyle(document.getElementById(mainWindowID)).fontSize; styles.registerSheet("chrome://liberator/skin/liberator.css"); @@ -125,6 +124,7 @@ function Buffer() //{{{ else v = win.scrollMaxY / 100 * vertical; + marks.add("'", true); win.scrollTo(h, v); } @@ -147,13 +147,13 @@ function Buffer() //{{{ getter: function () window.fullScreen }); - options.add(["nextpattern"], + options.add(["nextpattern"], // \u00BB is » (>> in a single char) "Patterns to use when guessing the 'next' page in a document sequence", - "stringlist", "\\bnext\\b,^>$,^(>>|»)$,^(>|»),(>|»)$,\\bmore\\b"); + "stringlist", "\\bnext\\b,^>$,^(>>|\u00BB)$,^(>|\u00BB),(>|\u00BB)$,\\bmore\\b"); - options.add(["previouspattern"], + options.add(["previouspattern"], // \u00AB is « (<< in a single char) "Patterns to use when guessing the 'previous' page in a document sequence", - "stringlist", "\\bprev|previous\\b,^<$,^(<<|«)$,^(<|«),(<|«)$"); + "stringlist", "\\bprev|previous\\b,^<$,^(<<|\u00AB)$,^(<|\u00AB),(<|\u00AB)$"); options.add(["pageinfo", "pa"], "Desired info on :pa[geinfo]", "charlist", "gfm", { @@ -603,6 +603,7 @@ function Buffer() //{{{ commands.add(["st[op]"], "Stop loading", +<<<<<<< HEAD:common/content/buffer.js function () { if (config.stop) @@ -610,6 +611,9 @@ function Buffer() //{{{ else window.BrowserStop(); }, +======= + function () { window.BrowserStop(); }, +>>>>>>> a9f04ee3d00b282e7a91b37eb23168fb39e9de5b:common/content/buffer.js { argCount: "0" }); commands.add(["vie[wsource]"], @@ -1034,7 +1038,16 @@ function Buffer() //{{{ } else if (elemTagName == "input" && elem.getAttribute('type').toLowerCase() == "file") { - commandline.input("Upload file: ", function (file) elem.value = file, {completer: completion.file, default: elem.value}); + commandline.input("Upload file: ", function (path) + { + let file = io.getFile(path); + + if (!file.exists()) + return liberator.beep(); + + elem.value = file.path; + } + , {completer: completion.file, default: elem.value}); return; } @@ -1144,7 +1157,16 @@ function Buffer() //{{{ } else if (localName == "input" && elem.getAttribute('type').toLowerCase() == "file") { - commandline.input("Upload file: ", function (file) elem.value = file, {completer: completion.file, default: elem.value}); + commandline.input("Upload file: ", function (path) + { + let file = io.getFile(path); + + if (!file.exists()) + return liberator.beep(); + + elem.value = file.path; + } + , {completer: completion.file, default: elem.value}); return; } @@ -1297,6 +1319,17 @@ function Buffer() //{{{ scrollToPercentiles(-1, percentage); }, + scrollToRatio: function (x, y) + { + scrollToPercentiles(x * 100, y * 100); + }, + + scrollTo: function (x, y) + { + marks.add("'", true); + content.scrollTo(x, y); + }, + /** * Scrolls the current buffer laterally to its leftmost. */ @@ -1533,12 +1566,11 @@ function Marks() //{{{ function onPageLoad(event) { let win = event.originalTarget.defaultView; - for (let i = 0, length = pendingJumps.length; i < length; i++) + for (let [i, mark] in Iterator(pendingJumps)) { - let mark = pendingJumps[i]; if (win && win.location.href == mark.location) { - win.scrollTo(mark.position.x * win.scrollMaxX, mark.position.y * win.scrollMaxY); + buffer.scrollToRatio(mark.position.x, mark.position.y); pendingJumps.splice(i, 1); return; } @@ -1583,7 +1615,7 @@ function Marks() //{{{ } } - function isLocalMark(mark) /^[a-z]$/.test(mark); + function isLocalMark(mark) /^['`a-z]$/.test(mark); function isURLMark(mark) /^[A-Z0-9]$/.test(mark); function localMarkIter() @@ -1744,13 +1776,14 @@ function Marks() //{{{ * @param {string} mark */ // TODO: add support for frameset pages - add: function (mark) + add: function (mark, silent) { let win = window.content; if (win.document.body.localName.toLowerCase() == "frameset") { - liberator.echoerr("Marks support for frameset pages not implemented yet"); + if (!silent) + liberator.echoerr("Marks support for frameset pages not implemented yet"); return; } @@ -1761,7 +1794,8 @@ function Marks() //{{{ if (isURLMark(mark)) { urlMarks.set(mark, { location: win.location.href, position: position, tab: tabs.getTab() }); - liberator.log("Adding URL mark: " + markToString(mark, urlMarks.get(mark)), 5); + if (!silent) + liberator.log("Adding URL mark: " + markToString(mark, urlMarks.get(mark)), 5); } else if (isLocalMark(mark)) { @@ -1771,7 +1805,8 @@ function Marks() //{{{ localMarks.set(mark, []); let vals = { location: win.location.href, position: position }; localMarks.get(mark).push(vals); - liberator.log("Adding local mark: " + markToString(mark, vals), 5); + if (!silent) + liberator.log("Adding local mark: " + markToString(mark, vals), 5); } }, @@ -1841,7 +1876,7 @@ function Marks() //{{{ return; } liberator.log("Jumping to URL mark: " + markToString(mark, slice), 5); - win.scrollTo(slice.position.x * win.scrollMaxX, slice.position.y * win.scrollMaxY); + buffer.scrollToRatio(slice.position.x, slice.position.y); ok = true; } } @@ -1856,7 +1891,7 @@ function Marks() //{{{ if (win.location.href == lmark.location) { liberator.log("Jumping to local mark: " + markToString(mark, lmark), 5); - win.scrollTo(lmark.position.x * win.scrollMaxX, lmark.position.y * win.scrollMaxY); + buffer.scrollToRatio(lmark.position.x, lmark.position.y); ok = true; break; } diff --git a/common/content/commands.js b/common/content/commands.js index d6417a23..6cc8ab97 100644 --- a/common/content/commands.js +++ b/common/content/commands.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/common/content/completion.js b/common/content/completion.js index a917fd93..aa90fd03 100644 --- a/common/content/completion.js +++ b/common/content/completion.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -1393,11 +1393,27 @@ function Completion() //{{{ song: function song(context, args) { if (args.completeArg == 0) - context.completions = getArtists(); + { + context.title = ["Artists"]; + context.completions = player.getArtists(); + } else if (args.completeArg == 1) - context.completions = getAlbums(args[0]); + { + context.title = ["Albums by " + args[0]]; + context.completions = player.getAlbums(args[0]); + } else if (args.completeArg == 2) - context.completions = getTracks(args[0],args[1]); + { + context.title = ["Tracks from " + args[1] + " by " + args[0]]; + context.completions = player.getTracks(args[0], args[1]); + } + }, + + playlist: function playlist(context, args) + { + context.title = ["Playlist", "Type"]; + context.keys = { text: "name", description: "type" }; + context.completions = player.getPlaylists(); }, buffer: function buffer(context) @@ -1648,6 +1664,14 @@ function Completion() //{{{ context.completions = marks.all; }, + mediaView: function mediaView(context) + { + context.title = ["Media View", "URL"]; + context.anchored = false; + context.keys = { text: "contentTitle", description: "contentUrl" }; + context.completions = player.getMediaPages(); + }, + menuItem: function menuItem(context) { context.title = ["Menu Path", "Label"]; diff --git a/common/content/editor.js b/common/content/editor.js index 59d1c9dd..073e88cf 100644 --- a/common/content/editor.js +++ b/common/content/editor.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/common/content/events.js b/common/content/events.js index 1eef6fd5..5a1b1ad5 100644 --- a/common/content/events.js +++ b/common/content/events.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -687,7 +687,7 @@ function Events() //{{{ [""], "Advance keyboard focus", function () { document.commandDispatcher.advanceFocus(); }); - mappings.add([modes.NORMAL, modes.PLAYER,modes.VISUAL, modes.CARET, modes.INSERT, modes.TEXTAREA], + mappings.add([modes.NORMAL, modes.PLAYER, modes.VISUAL, modes.CARET, modes.INSERT, modes.TEXTAREA], [""], "Rewind keyboard focus", function () { document.commandDispatcher.rewindFocus(); }); @@ -898,6 +898,7 @@ function Events() //{{{ let wasFeeding = this.feedingKeys; this.feedingKeys = true; + this.duringFeed = this.duringFeed || ""; let wasSilent = commandline.silent; if (silent) commandline.silent = silent; @@ -993,6 +994,15 @@ function Events() //{{{ this.feedingKeys = wasFeeding; if (silent) commandline.silent = wasSilent; + + if (this.duringFeed != "") + { + //Create a scalar constant for closure. + let duringFeed = this.duringFeed; + this.duringFeed = ""; + + setTimeout(function () events.feedkeys(duringFeed, false, false, true), 0); + } } return i == keys.length; }, @@ -1357,9 +1367,9 @@ function Events() //{{{ // we can differentiate between a recorded // interrupting whatever it's started and a real // interrupting our playback. - if (events.feedingKeys) + if (events.feedingKeys && !event.isMacro) { - if (key == "" && !event.isMacro) + if (key == "") { events.feedingKeys = false; if (modes.isReplaying) @@ -1371,6 +1381,13 @@ function Events() //{{{ event.stopPropagation(); return true; } + else + { + events.duringFeed += key; + event.preventDefault(); + event.stopPropagation(); + return true; + } } let stop = true; // set to false if we should NOT consume this event but let Firefox handle it @@ -1653,13 +1670,16 @@ function Events() //{{{ } }, // for notifying the user about secure web pages - onSecurityChange: function (webProgress, aRequest, aState) + onSecurityChange: function (webProgress, request, state) { - if (aState & Ci.nsIWebProgressListener.STATE_IS_INSECURE) + // TODO: do something useful with STATE_SECURE_MED and STATE_SECURE_LOW + if (state & Ci.nsIWebProgressListener.STATE_IS_INSECURE) statusline.setClass("insecure"); - else if (aState & Ci.nsIWebProgressListener.STATE_IS_BROKEN) + else if (state & Ci.nsIWebProgressListener.STATE_IS_BROKEN) statusline.setClass("broken"); - else if (aState & Ci.nsIWebProgressListener.STATE_IS_SECURE) + else if (state & Ci.nsIWebProgressListener.STATE_IDENTITY_EV_TOPLEVEL) + statusline.setClass("extended"); + else if (state & Ci.nsIWebProgressListener.STATE_SECURE_HIGH) statusline.setClass("secure"); }, onStatusChange: function (webProgress, request, status, message) diff --git a/common/content/find.js b/common/content/find.js index 90a73868..1599bc00 100644 --- a/common/content/find.js +++ b/common/content/find.js @@ -1,4 +1,4 @@ -/***** B/GIN LICENSE BLOCK ***** {{{ +/***** BEGIN LICENSE BLOCK ***** {{{ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/common/content/help.css b/common/content/help.css index 67bdba86..c8107467 100644 --- a/common/content/help.css +++ b/common/content/help.css @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/common/content/hints.js b/common/content/hints.js index 5e27d0c4..c263ae30 100644 --- a/common/content/hints.js +++ b/common/content/hints.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/common/content/io.js b/common/content/io.js index ffebc794..130b005b 100644 --- a/common/content/io.js +++ b/common/content/io.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Code based on venkman Alternatively, the contents of this file may be used under the terms of @@ -105,12 +105,7 @@ function IO() //{{{ .map(function (dir) dir == "" ? io.getCurrentDirectory().path : dir); } - function replacePathSep(path) - { - if (WINDOWS) - return path.replace("/", "\\"); - return path; - } + function replacePathSep(path) path.replace("/", IO.PATH_SEP, "g"); function joinPaths(head, tail) { @@ -278,7 +273,7 @@ function IO() //{{{ function (args) { // TODO: "E172: Only one file name allowed" - let filename = args[0] || "~/" + (WINDOWS ? "_" : ".") + EXTENSION_NAME + "rc"; + let filename = args[0] || io.getRCFile(null, true).path; let file = io.getFile(filename); if (file.exists() && !args.bang) @@ -459,11 +454,6 @@ function IO() //{{{ */ sourcing: null, - /** - * @property {string} The OS's path separator. - */ - pathSeparator: WINDOWS ? "\\" : "/", - /** * Expands "~" and environment variables in path. * @@ -554,10 +544,12 @@ function IO() //{{{ * Returns the first user RC file found in dir. * * @param {string} dir The directory to search. + * @param {boolean} always When true, return a path whether + * the file exists or not. * @default $HOME. * @returns {nsIFile} The RC file or null if none is found. */ - getRCFile: function (dir) + getRCFile: function (dir, always) { dir = dir || "~"; @@ -571,8 +563,9 @@ function IO() //{{{ return rcFile1; else if (rcFile2.exists() && rcFile2.isFile()) return rcFile2; - else - return null; + else if (always) + return rcFile1; + return null; }, // return a nsILocalFile for path where you can call isDirectory(), etc. on @@ -1107,6 +1100,12 @@ lookup: }; //}}} +IO.PATH_SEP = (function () { + let file = services.create("file"); + file.append("foo"); + return file.path[0]; +})(); + /** * @property {string} The value of the $VIMPERATOR_RUNTIME environment * variable. @@ -1126,8 +1125,6 @@ IO.expandPath = function (path, relative) { // TODO: proper pathname separator translation like Vim - this should be done elsewhere const WINDOWS = liberator.has("Win32"); - if (WINDOWS) - path = path.replace("/", "\\", "g"); // expand any $ENV vars - this is naive but so is Vim and we like to be compatible // TODO: Vim does not expand variables set to an empty string (and documents it). @@ -1141,7 +1138,8 @@ IO.expandPath = function (path, relative) path = expand(path); // expand ~ - if (!relative && (WINDOWS ? /^~(?:$|[\\\/])/ : /^~(?:$|\/)/).test(path)) + // Yuck. + if (!relative && RegExp("~(?:$|[/" + util.escapeRegex(IO.PATH_SEP) + "])").test(path)) { // Try $HOME first, on all systems let home = services.get("environment").get("HOME"); @@ -1157,11 +1155,7 @@ IO.expandPath = function (path, relative) // TODO: Vim expands paths twice, once before checking for ~, once // after, but doesn't document it. Is this just a bug? --Kris path = expand(path); - - if (WINDOWS) - path = path.replace("/", "\\", "g"); - - return path; + return path.replace("/", IO.PATH_SEP, "g"); }; // vim: set fdm=marker sw=4 ts=4 et: diff --git a/common/content/liberator.js b/common/content/liberator.js index 1bbc0324..a10f9300 100644 --- a/common/content/liberator.js +++ b/common/content/liberator.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -83,9 +83,6 @@ const liberator = (function () //{{{ { if (nError++ == 0) window.toJavaScriptConsole(); - liberator.dump("Error loading module - "+ name + ".."); - liberator.dump(e); - liberator.dump(e.stack); liberator.reportError(e); } } @@ -1229,7 +1226,12 @@ const liberator = (function () //{{{ config.features.push(getPlatformFeature()); config.defaults = config.defaults || {}; config.guioptions = config.guioptions || {}; - config.browserModes = config.browserModes || [modes.NORMAL]; + + // -> we can't use this, since config.browserModes might already be defined as a getter-only + // TODO: also change the other config.* defaults? + // config.browserModes = config.browserModes || [modes.NORMAL]; + if (!config.browserModes) + config.browserModes = [modes.NORMAL]; config.mailModes = config.mailModes || [modes.NORMAL]; // TODO: suitable defaults? //config.mainWidget @@ -1290,11 +1292,12 @@ const liberator = (function () //{{{ // TODO: we should have some class where all this guioptions stuff fits well hideGUI(); - // finally, read a ~/.vimperatorrc and plugin/**.{vimp,js} + // finally, read the RC file and source plugins // make sourcing asynchronous, otherwise commands that open new tabs won't work setTimeout(function () { - let init = services.get("environment").get(config.name.toUpperCase() + "_INIT"); + let extensionName = config.name.toUpperCase(); + let init = services.get("environment").get(extensionName + "_INIT"); let rcFile = io.getRCFile("~"); if (init) @@ -1302,7 +1305,10 @@ const liberator = (function () //{{{ else { if (rcFile) + { io.source(rcFile.path, true); + services.get("environment").set("MY_" + extensionName + "RC", rcFile.path); + } else liberator.log("No user RC file found", 3); } @@ -1319,7 +1325,7 @@ const liberator = (function () //{{{ // after sourcing the initialization files, this function will set // all gui options to their default values, if they have not been - // set before by any rc file + // set before by any RC file for (let option in options) { if (option.setter) diff --git a/common/content/liberator.xul b/common/content/liberator.xul index e7609f52..d26700a7 100644 --- a/common/content/liberator.xul +++ b/common/content/liberator.xul @@ -13,7 +13,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/common/content/mappings.js b/common/content/mappings.js index 0f222d64..c72f40c5 100644 --- a/common/content/mappings.js +++ b/common/content/mappings.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -257,8 +257,11 @@ function Mappings() //{{{ addMapCommands("", [modes.NORMAL], ""); addMapCommands("c", [modes.COMMAND_LINE], "command line"); addMapCommands("i", [modes.INSERT, modes.TEXTAREA], "insert"); + // FIXME if (liberator.has("mail")) addMapCommands("m", [modes.MESSAGE], "message"); + if (liberator.has("player")) + addMapCommands("p", [modes.PLAYER], "player"); /////////////////////////////////////////////////////////////////////////////}}} ////////////////////// PUBLIC SECTION ////////////////////////////////////////// diff --git a/common/content/modes.js b/common/content/modes.js index f0d71735..25b65b6b 100644 --- a/common/content/modes.js +++ b/common/content/modes.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -277,6 +277,8 @@ const modes = (function () //{{{ self.addMode("OUTPUT_MULTILINE", true); self.addMode("SEARCH_FORWARD", true); self.addMode("SEARCH_BACKWARD", true); + self.addMode("SEARCH_VIEW_FORWARD", true); + self.addMode("SEARCH_VIEW_BACKWARD", true); self.addMode("MENU", true); // a popupmenu is active self.addMode("LINE", true); // linewise visual mode self.addMode("PROMPT", true); diff --git a/common/content/options.js b/common/content/options.js index 1442ce23..fb9bbeae 100644 --- a/common/content/options.js +++ b/common/content/options.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/common/content/style.js b/common/content/style.js index d994dbd6..24a05657 100644 --- a/common/content/style.js +++ b/common/content/style.js @@ -71,9 +71,10 @@ Highlights.prototype.CSS = +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -49,7 +49,7 @@ function Tabs() //{{{ tabmail.__defineGetter__("mTabs", function () this.tabContainer.childNodes); tabmail.__defineGetter__("mCurrentTab", function () this.tabContainer.selectedItem); tabmail.__defineGetter__("mStrip", function () this.tabStrip); - tabmail.__defineGetter__("browsers", function () [browser for (browser in Iterator(this.mTabs))] ); + tabmail.__defineGetter__("browsers", function () [browser for (browser in Iterator(this.mTabs))]); } return tabmail; }; @@ -687,9 +687,10 @@ function Tabs() //{{{ { let tabStrip = null; + // FIXME: why is this app specific conditional code here? if (config.hostApplication == "Firefox") tabStrip = getBrowser().mStrip.getElementsByClassName("tabbrowser-tabs")[0]; - else if (config.hostApplication == "Thunderbird") + else if (/^(Thunderbird|Songbird)$/.test(config.hostApplication)) tabStrip = getBrowser().mStrip; return tabStrip; diff --git a/common/content/template.js b/common/content/template.js index ea6cf3a1..9f4df824 100644 --- a/common/content/template.js +++ b/common/content/template.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/common/content/ui.js b/common/content/ui.js index af7fccd1..05ebe89e 100644 --- a/common/content/ui.js +++ b/common/content/ui.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -58,6 +58,11 @@ function CommandLine() //{{{ get length() this._messages.length, + clear: function clear() + { + this._messages = []; + }, + add: function add(message) { if (!message) @@ -772,6 +777,11 @@ function CommandLine() //{{{ "number", 500, { validator: function (value) value >= 0 }); + options.add(["maxitems"], + "Maximum number of items to display at once", + "number", 20, + { validator: function (value) value >= 0 }); + options.add(["messages", "msgs"], "Number of messages to store in the message history", "number", 100, @@ -975,6 +985,22 @@ function CommandLine() //{{{ }, { argCount: "0" }); + commands.add(["messc[lear]"], + "Clear the message history", + function () { messageHistory.clear(); }, + { argCount: "0" }); + + commands.add(["sil[ent]"], + "Run a command silently", + function (args) + { + commandline.runSilently(function () liberator.execute(args[0])); + }, + { + completer: function (context) completion.ex(context), + literal: 0 + }); + /////////////////////////////////////////////////////////////////////////////}}} ////////////////////// PUBLIC SECTION ////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////{{{ @@ -1704,8 +1730,6 @@ function ItemList(id) //{{{ ////////////////////// PRIVATE SECTION ///////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////{{{ - const CONTEXT_LINES = 3; - var maxItems = 20; var completionElements = []; var iframe = document.getElementById(id); @@ -1761,7 +1785,7 @@ function ItemList(id) //{{{
{ - template.map(util.range(0, maxItems * 2), function (i) + template.map(util.range(0, options["maxitems"] * 2), function (i)
  • ~
  • ) @@ -1797,7 +1821,7 @@ function ItemList(id) //{{{ * Uses the entries in "items" to fill the listbox and does incremental * filling to speed up things. * - * @param {number} offset Start at this index and show maxItems. + * @param {number} offset Start at this index and show options["maxitems"]. */ function fill(offset) { @@ -1807,11 +1831,11 @@ function ItemList(id) //{{{ return false; startIndex = offset; - endIndex = Math.min(startIndex + maxItems, items.allItems.items.length); + endIndex = Math.min(startIndex + options["maxitems"], items.allItems.items.length); let haveCompletions = false; let off = 0; - let end = startIndex + maxItems; + let end = startIndex + options["maxitems"]; function getRows(context) { function fix(n) Math.max(0, Math.min(len, n)); @@ -1925,6 +1949,8 @@ function ItemList(id) //{{{ let sel = selIndex; let len = items.allItems.items.length; let newOffset = startIndex; + let maxItems = options["maxitems"]; + let contextLines = (maxItems > 3)? 3 : Math.max(0, maxItems - 1); if (index == -1 || index == null || index == len) // wrapped around { @@ -1935,10 +1961,10 @@ function ItemList(id) //{{{ } else { - if (index <= startIndex + CONTEXT_LINES) - newOffset = index - CONTEXT_LINES; - if (index >= endIndex - CONTEXT_LINES) - newOffset = index + CONTEXT_LINES - maxItems + 1; + if (index <= startIndex + contextLines) + newOffset = index - contextLines; + if (index >= endIndex - contextLines) + newOffset = index + contextLines - maxItems + 1; newOffset = Math.min(newOffset, len - maxItems); newOffset = Math.max(newOffset, 0); @@ -2018,16 +2044,18 @@ function StatusLine() //{{{ /** * Update the status bar to indicate how secure the website is: + * extended - Secure connection with Extended Validation(EV) certificate. * secure - Secure connection with valid certificate. * broken - Secure connection with invalid certificate, or * mixed content. * insecure - Insecure connection. * - * @param {'secure'|'broken'|'insecure'} type + * @param {'extended'|'secure'|'broken'|'insecure'} type */ setClass: function setClass(type) { const highlightGroup = { + extended: "StatusLineExtended", secure: "StatusLineSecure", broken: "StatusLineBroken", insecure: "StatusLine" diff --git a/common/content/util.js b/common/content/util.js index ad41bd18..ce1705d4 100644 --- a/common/content/util.js +++ b/common/content/util.js @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -249,6 +249,40 @@ const util = { //{{{ return delimiter + str.replace(/([\\'"])/g, "\\$1").replace("\n", "\\n", "g").replace("\t", "\\t", "g") + delimiter; }, + /** + * Split a string on literal occurances of a marker. + * + * Specifically this ignores occurences preceded by a backslash, or + * contained within 'single' or "double" quotes. + * + * It assumes backslash escaping on strings, and will thus not count quotes + * that are preceded by a backslash or within other quotes as starting or + * ending quoted sections of the string. + * + * @param {string} str + * @param {RegExp} marker + */ + splitLiteral: function splitLiteral(str, marker) + { + let results = []; + let resep = RegExp(/^(([^\\'"]|\\.|'([^\\']|\\.)*'|"([^\\"]|\\.)*")*?)/.source + marker.source); + let cont = true; + + while (cont) + { + cont = false; + str = str.replace(resep, function (match, before) + { + results.push(before); + cont = true; + return ""; + }); + } + + results.push(str); + return results; + }, + /** * Converts bytes to a pretty printed data size string. * @@ -618,7 +652,7 @@ const util = { //{{{ */ stringToURLArray: function stringToURLArray(str) { - let urls = str.split(RegExp("\\s*" + options["urlseparator"] + "\\s*")); + let urls = util.splitLiteral(str, RegExp("\\s*" + options["urlseparator"] + "\\s*")); return urls.map(function (url) { try @@ -641,7 +675,7 @@ const util = { //{{{ // Ok, not a valid proto. If it looks like URL-ish (foo.com/bar), // let Gecko figure it out. - if (/[.]/.test(url) && !/\s/.test(url) || /^[\w-.]+:\d+(?:\/|$)/.test(url)) + if (/[.\/]/.test(url) && !/\s/.test(url) || /^[\w-.]+:\d+(?:\/|$)/.test(url)) return url; // TODO: it would be clearer if the appropriate call to diff --git a/common/make_jar.sh b/common/make_jar.sh index 00064e23..7632d64d 100644 --- a/common/make_jar.sh +++ b/common/make_jar.sh @@ -51,8 +51,6 @@ do ) done -cd $stage -zip -r "$top/$jar" * -cd - +(cd $stage; zip -r "$top/$jar" *) rm -rf "$stage" diff --git a/common/skin/liberator.css b/common/skin/liberator.css index 48c22c33..62b386b4 100644 --- a/common/skin/liberator.css +++ b/common/skin/liberator.css @@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or @@ -141,13 +141,17 @@ statusbarpanel { } #liberator-commandline-prompt { + background-color: inherit; margin: 0px; padding: 0px; - background-color: inherit; } #liberator-commandline-command { background-color: inherit; color: inherit; + margin: 0px; +} +#liberator-message { + margin: 0px; } #sidebar { diff --git a/muttator/AUTHORS b/muttator/AUTHORS index cdad350d..763ced8e 100644 --- a/muttator/AUTHORS +++ b/muttator/AUTHORS @@ -1,5 +1,5 @@ Main developer/Project founder: - * Martin Stubenschrott (stubenschrott@gmx.net) + * Martin Stubenschrott (stubenschrott@vimperator.org) Developers: * Daniel Bainton (dpb .AT. driftaway .DOT. org) diff --git a/muttator/License.txt b/muttator/License.txt index 7efdb050..39f969f2 100644 --- a/muttator/License.txt +++ b/muttator/License.txt @@ -10,7 +10,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/muttator/Makefile b/muttator/Makefile index 13f19fdc..fc702e36 100644 --- a/muttator/Makefile +++ b/muttator/Makefile @@ -1,6 +1,6 @@ #### configuration -VERSION = 0.5pre +VERSION = 0.5 NAME = muttator include ../common/Makefile.common diff --git a/muttator/NEWS b/muttator/NEWS index 3df6ed64..1a72b793 100644 --- a/muttator/NEWS +++ b/muttator/NEWS @@ -1,7 +1,9 @@ -2008-xx-xx: +2008-03-29 * version 0.5 + * fixes for recent TB nightly changes * new "threads" option (non-functional for now) * new "archivefolder" option + * small bug fixes 2008-08-03: * version 0.4 diff --git a/muttator/content/compose/compose.xul b/muttator/content/compose/compose.xul index f7466a7a..a0db3f57 100644 --- a/muttator/content/compose/compose.xul +++ b/muttator/content/compose/compose.xul @@ -13,7 +13,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. -Copyright (c) 2006-2009 by Martin Stubenschrott +Copyright (c) 2006-2009 by Martin Stubenschrott Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or diff --git a/muttator/content/compose/liberator.xul b/muttator/content/compose/liberator.xul deleted file mode 120000 index e6fca064..00000000 --- a/muttator/content/compose/liberator.xul +++ /dev/null @@ -1 +0,0 @@ -../../../common/content/liberator.xul \ No newline at end of file diff --git a/muttator/content/compose/liberator.xul b/muttator/content/compose/liberator.xul new file mode 100644 index 00000000..d26700a7 --- /dev/null +++ b/muttator/content/compose/liberator.xul @@ -0,0 +1,119 @@ + + + + + + +]> + + + + {doctitle} @@ -23,8 +23,8 @@ email=stubenschrott@gmx.net [replacements] -LOGO=
    -HEADER=
    +LOGO=
    +HEADER=
    \[count\]=[count] \[!\]=[!] diff --git a/xulmus/locale/en-US/autocommands.txt b/xulmus/locale/en-US/autocommands.txt old mode 100755 new mode 100644 index 36104b56..c59e18ba --- a/xulmus/locale/en-US/autocommands.txt +++ b/xulmus/locale/en-US/autocommands.txt @@ -12,7 +12,7 @@ Execute commands automatically on events. [c]:au[tocmd][c] {event} {pat} {cmd} -Add {cmd} to the list of commands Vimperator will execute on {event} for a URL matching {pat}: +Add {cmd} to the list of commands Xulmus will execute on {event} for a URL matching {pat}: * [c]:autocmd[!][c] {events} {pat}: list/remove autocommands filtered by {events} and {pat} * [c]:autocmd[!][c] {events}: list/remove autocommands matching {events} @@ -26,14 +26,22 @@ Available {events}: *ColorScheme* Triggered after a color scheme has been loaded *DOMLoad* Triggered when a page's DOM content has fully loaded *DownloadPost* Triggered when a download has completed -*Fullscreen* Triggered when the browser's fullscreen state changes +*Fullscreen* Triggered when the player's fullscreen state changes *LocationChange* Triggered when changing tabs or when navigating to a new location *PageLoadPre* Triggered after a page load is initiated *PageLoad* Triggered when a page gets (re)loaded/opened *ShellCmdPost* Triggered after executing a shell command with [c]:![c]#{cmd} -*VimperatorEnter* Triggered after Firefox starts -*VimperatorLeavePre* Triggered before exiting Firefox, just before destroying each module -*VimperatorLeave* Triggered before exiting Firefox +*TrackChangePre* Triggered before a playing track is changed +*TrackChange* Triggered after a playing track has changed +*ViewChangePre* Triggered before a sequencer view is changed +*ViewChange* Triggered after a sequencer view is changed +*StreamStart* Triggered after a stream has started +*StreamPause* Triggered after a stream has paused +*StreamEnd* Triggered after a stream has ended +*StreamStop* Triggered after a stream has stopped +*XulmusEnter* Triggered after Songbird starts +*XulmusLeavePre* Triggered before exiting Songbird, just before destroying each module +*XulmusLeave* Triggered before exiting Songbird -------------------------------------------------------------- {pat} is a regular expression, use .* if you want to match all URLs. @@ -53,6 +61,8 @@ The following keywords are available where relevant: ** The target destination of a download. Only for *DownloadPost*. ** The new fullscreen state. Only for *Fullscreen*. ** The color scheme name. Only for *ColorScheme*. +** The new sequencer view. Only for *ViewChangePre* and *ViewChange*. +** The new media track. Only for *TrackChangePre*, *TrackChange* and *Stream\**. -------------------------------------------------------------- ________________________________________________________________________________ diff --git a/xulmus/locale/en-US/browsing.txt b/xulmus/locale/en-US/browsing.txt old mode 100755 new mode 100644 index 9b44fa8a..ab3df4b6 --- a/xulmus/locale/en-US/browsing.txt +++ b/xulmus/locale/en-US/browsing.txt @@ -2,15 +2,15 @@ HEADER |surfing| |browsing| + -Vimperator overrides nearly all Firefox keys in order to make browsing more +Xulmus overrides nearly all Songbird keys in order to make browsing more pleasant for Vim users. On the rare occasions when you want to pass a keystroke -to Firefox, or to the web page, and have it retain its original meaning you +to Songbird, or to the web page, and have it retain its original meaning you have 2 possibilities: |pass-through| || |CTRL-Z| + ||CTRL-Z|| ________________________________________________________________________________ -Disable all Vimperator keys except [m][m] and pass them to the next event +Disable all Xulmus keys except [m][m] and pass them to the next event handler. This is especially useful, if JavaScript controlled forms like the RichEdit form fields of Gmail don't work anymore. To exit this mode, press [m][m]. If you also need to pass [m][m] in this mode to the web page, @@ -21,10 +21,10 @@ ________________________________________________________________________________ ||CTRL-V|| ________________________________________________________________________________ If you only need to pass a single key to a JavaScript form field or another -extension prefix the key with [m][m]. Also works to unshadow Firefox -shortcuts like [m][m] which are otherwise hidden in Vimperator. When -Vimperator mode is temporarily disabled with [m][m], [m][m] will pass -the next key to Vimperator instead of the web page. +extension prefix the key with [m][m]. Also works to unshadow Songbird +shortcuts like [m][m] which are otherwise hidden in Xulmus. When +Xulmus mode is temporarily disabled with [m][m], [m][m] will pass +the next key to Xulmus instead of the web page. ________________________________________________________________________________ section:Opening{nbsp}web{nbsp}pages[opening] @@ -52,7 +52,7 @@ Each token is analyzed and in this order: 3. Opened with the default search engine or keyword (specified with the 'defsearch' option) if the first word is no search engine ([c]:open linus torvalds[c] opens a Google search for linux torvalds). -4. Passed directly to Firefox in all other cases ([c]:open www.osnews.com, +4. Passed directly to Songbird in all other cases ([c]:open www.osnews.com, www.slashdot.org[c] opens OSNews in the current, and Slashdot in a new background tab). @@ -100,13 +100,6 @@ like [m]o[m] but preselects current URL in the [c]:open[c] query. ________________________________________________________________________________ -|:winopen| |:wopen| |:winedit| -||:wino[pen][!] [a][arg1][a], [a][arg2][a], ...|| + -________________________________________________________________________________ -Just like [c]:tabopen[c] but opens the resulting web page(s) in a new window. -________________________________________________________________________________ - - || |p| + ||p|| ________________________________________________________________________________ @@ -286,7 +279,7 @@ section:Quitting[quitting,save-session] ||:q[uit]|| ________________________________________________________________________________ Quit current tab. If this is the last tab in the window, close the window. If -this was the last window, close Vimperator. When quitting Vimperator, the +this was the last window, close Xulmus. When quitting Xulmus, the session is not stored. ________________________________________________________________________________ @@ -294,23 +287,16 @@ ________________________________________________________________________________ |:qa| |:qall| |:quita| |:quitall| + ||:quita[ll]|| ________________________________________________________________________________ -Quit Vimperator. Quit Vimperator, no matter how many tabs/windows are open. +Quit Xulmus. Quit Xulmus, no matter how many tabs/windows are open. The session is not stored. ________________________________________________________________________________ -|:wc| |:wclose| |:winc| |:winclose| -||:winc[lose]|| + -________________________________________________________________________________ -Close window. -________________________________________________________________________________ - - |:xa| |:xall| |:wq| |:wqa| |:wqall| ||:wqa[ll]|| + ||:xa[ll]|| ________________________________________________________________________________ -Save the session and quit. Quit Vimperator, no matter how many tabs/windows +Save the session and quit. Quit Xulmus, no matter how many tabs/windows are open. The session is stored. [c]:wq[c] is different from Vim, as it closes the window instead of just one tab by popular demand. Complain on the mailing list, if you want to change that. @@ -327,7 +313,7 @@ ________________________________________________________________________________ |ZZ| ||ZZ|| ________________________________________________________________________________ -Quit and save the session. Quit Vimperator, no matter how many tabs/windows +Quit and save the session. Quit Xulmus, no matter how many tabs/windows are open. The session is stored. Works like [c]:xall[c]. ________________________________________________________________________________ diff --git a/xulmus/locale/en-US/buffer.txt b/xulmus/locale/en-US/buffer.txt old mode 100755 new mode 100644 index 91022f27..50bc589a --- a/xulmus/locale/en-US/buffer.txt +++ b/xulmus/locale/en-US/buffer.txt @@ -2,7 +2,7 @@ HEADER |buffer| |document| + -Vimperator holds exactly one buffer object for each tab. It is usually an +Xulmus holds exactly one buffer object for each tab. It is usually an (X)HTML document with advanced features. section:Buffer{nbsp}information[buffer-information] @@ -234,7 +234,7 @@ default zoom levels are 30%, 50%, 67%, 80%, 90%, 100%, 110%, 120%, 133%, 150%, 170%, 200%, 240%, 300%. The available zoom range can be changed by setting the \'zoom.minPercent' and -\'zoom.maxPercent' Firefox preferences. The zoom levels can be changed using +\'zoom.maxPercent' Songbird preferences. The zoom levels can be changed using the \'toolkit.ZoomManager.zoomLevels' preference. Note: \'toolkit.ZoomManager.zoomLevels' is specified as a list of values diff --git a/xulmus/locale/en-US/cmdline.txt b/xulmus/locale/en-US/cmdline.txt old mode 100755 new mode 100644 diff --git a/xulmus/locale/en-US/developer.txt b/xulmus/locale/en-US/developer.txt old mode 100755 new mode 100644 index cf875d82..7401a2f1 --- a/xulmus/locale/en-US/developer.txt +++ b/xulmus/locale/en-US/developer.txt @@ -60,7 +60,7 @@ Some notes about the code above: automatically marked up as an argument. There are also some additional asciidoc commands specifically for writing -Vimperator documentation: +Xulmus documentation: - *$$section:Writing{nbsp}documentation[writing-docs,documentation]$$* Creates a new section like _Writing Documentation_ in this help file with 2 tags. diff --git a/xulmus/locale/en-US/eval.txt b/xulmus/locale/en-US/eval.txt old mode 100755 new mode 100644 index 17c71dda..accb6fce --- a/xulmus/locale/en-US/eval.txt +++ b/xulmus/locale/en-US/eval.txt @@ -53,10 +53,10 @@ passing the argument to `eval()`. is found, and interpret them with the JavaScript _eval()_ function. The special version [c]:javascript![c] opens the JavaScript console of -Firefox. +Songbird. [m][m] completion is available for [c]:javascript {cmd}[c] (but not -yet for the [c]:js <Sidebar menu. Add-ons, Preferences and Downloads are -also available in the sidebar. +Open the specified display pane. {pane} is any of "content pane bottom", +"service pane bottom" or "right sidebar". ________________________________________________________________________________ // vim: set filetype=asciidoc: diff --git a/xulmus/locale/en-US/help.js b/xulmus/locale/en-US/help.js old mode 100755 new mode 100644 diff --git a/xulmus/locale/en-US/hints.txt b/xulmus/locale/en-US/hints.txt old mode 100755 new mode 100644 index ef3200bb..aba281d5 --- a/xulmus/locale/en-US/hints.txt +++ b/xulmus/locale/en-US/hints.txt @@ -25,7 +25,7 @@ ________________________________________________________________________________ Start QuickHint mode, but open link in a new tab. Like normal QuickHint mode (activated with [m]f[m]) but opens the link in a new tab. The new tab will be loaded in background according to the -\'browser.tabs.loadInBackground' Firefox preference. +\'browser.tabs.loadInBackground' Songbird preference. ________________________________________________________________________________ diff --git a/xulmus/locale/en-US/index.txt b/xulmus/locale/en-US/index.txt old mode 100755 new mode 100644 index 5a6a2fbb..6fa51e1a --- a/xulmus/locale/en-US/index.txt +++ b/xulmus/locale/en-US/index.txt @@ -4,6 +4,41 @@ HEADER This file contains a list of all available commands. +section:Player{nbsp}mode[player-index] + +||[m]x[m]|| Play the current track + +||[m]z[m]|| Play the previous track + +||[m]b[m]|| Play the next track + +||[m]c[m]|| Pause/unpause the current track + +||[m]v[m]|| Stop playing the current track + +||[m]t[m]|| Toggle shuffle mode + +||[m]r[m]|| Toggle repeat mode + +||[m]i[m]|| Select the currently playing track + +||[m]f[m]|| Filter and play tracks + +||[m]F[m]|| Filter and show the tracks as a view + +||[m]h[m]|| Seek -10s + +||[m][m]|| Seek -10s + +||[m]l[m]|| Seek +10s + +||[m][m]|| Seek -10s + +||[m]H[m]|| Seek -1m + +||[m][m]|| Seek -10s + +||[m]L[m]|| Seek +1m + +||[m][m]|| Seek -10s + +||[m]+[m]|| Increase volume by 10% + +||[m]-[m]|| Decrease volume by 10% + + +||[m]/[m]|| Search forward for a track + +||[m]n[m]|| Find the next track + +||[m]N[m]|| Find the previous track + + +// TODO: better formatting +|||| Rate the current track with 0 stars + +|||| Rate the current track with 1 stars + +|||| Rate the current track with 2 stars + +|||| Rate the current track with 3 stars + +|||| Rate the current track with 4 stars + +|||| Rate the current track with 5 stars + + section:Insert{nbsp}mode[insert-index] ||[m][m]|| Launch the external editor + @@ -24,7 +59,7 @@ section:Normal{nbsp}mode[normal-index] ||[m][m]|| Scroll window upwards in the buffer + ||[m][m]|| Pass through next key + ||[m][m]|| Decrement last number in URL + -||[m][m]|| Temporarily ignore all Vimperator key bindings + +||[m][m]|| Temporarily ignore all Xulmus key bindings + ||[m][m]|| Focus content + @@ -141,6 +176,18 @@ section:Command-line{nbsp}editing[ex-edit-index] section:Ex{nbsp}commands[ex-cmd-index,:index] +||[c]:playerplay[c]|| Play the current track + +||[c]:playerprev[c]|| Play the previous track + +||[c]:playernext[c]|| Play the next track + +||[c]:playerpause[c]|| Pause/unpause the current track + +||[c]:playerstop[c]|| Stop playing the current track + +||[c]:filter[c]|| Filter and play tracks + +||[c]:Filter[c]|| Filter and show the tracks as a view + +||[c]:seek[c]|| Seek to an absolute or relative position in a track + +||[c]:volume[c]|| Set the player volume + +||[c]:load[c]|| Load a playlist + +||[c]:mediaview[c]|| Change the media view + + ||[c]:![c]|| Run a command + ||[c]:abbreviate[c]|| Abbreviate a key sequence + ||[c]:abclear[c]|| Remove all abbreviations + @@ -174,6 +221,8 @@ section:Ex{nbsp}commands[ex-cmd-index,:index] ||[c]:doautoall[c]|| Apply the autocommands matching the specified URL to all buffers + ||[c]:doautocmd[c]|| Apply the autocommands matching the specified URL to the current buffer + ||[c]:downloads[c]|| Show progress of current downloads + +||[c]:displaypane[c]|| Open the specified display pane + +||[c]:dpclose[c]|| Close the specified display pane + ||[c]:echo[c]|| Echo the expression + ||[c]:echoerr[c]|| Echo the expression as an error message + ||[c]:echomsg[c]|| Echo the expression as an informational message + @@ -184,7 +233,7 @@ section:Ex{nbsp}commands[ex-cmd-index,:index] ||[c]:forward[c]|| Go forward in the browser history + ||[c]:hardcopy[c]|| Print current document + ||[c]:help[c]|| Display help + -||[c]:highlight[c]|| Style Vimperator + +||[c]:highlight[c]|| Style Xulmus + ||[c]:history[c]|| Show recently visited URLs + ||[c]:iabbrev[c]|| Abbreviate a key sequence in Insert mode + ||[c]:iabclear[c]|| Remove all abbreviations in Insert mode + @@ -203,7 +252,7 @@ section:Ex{nbsp}commands[ex-cmd-index,:index] ||[c]:mark[c]|| Mark current location within the web page + ||[c]:marks[c]|| Show all location marks of current web page + ||[c]:messages[c]|| Display previously given messages + -||[c]:mkvimperatorrc[c]|| Write current key mappings and changed options to the config file + +||[c]:mkxulmusrc[c]|| Write current key mappings and changed options to the config file + ||[c]:nohlsearch[c]|| Remove the search highlighting + ||[c]:noremap[c]|| Map a key sequence without remapping keys + ||[c]:normal[c]|| Execute Normal mode commands + @@ -212,7 +261,7 @@ section:Ex{nbsp}commands[ex-cmd-index,:index] ||[c]:pageinfo[c]|| Show various page information + ||[c]:pagestyle[c]|| Select the author style sheet to apply + ||[c]:play[c]|| Replay a recorded macro + -||[c]:preferences[c]|| Show Firefox preferences dialog + +||[c]:preferences[c]|| Show Songbird preferences dialog + ||[c]:pwd[c]|| Print the current directory name + ||[c]:qmark[c]|| Mark a URL with a letter for quick access + ||[c]:qmarks[c]|| Show all QuickMarks + @@ -224,13 +273,11 @@ section:Ex{nbsp}commands[ex-cmd-index,:index] ||[c]:restart[c]|| Force undefined to restart + ||[c]:runtime[c]|| Source the specified file from each directory in 'runtimepath' + ||[c]:saveas[c]|| Save current document to disk + -||[c]:sbclose[c]|| Close the sidebar window + ||[c]:scriptnames[c]|| List all sourced script names + ||[c]:set[c]|| Set an option + ||[c]:setglobal[c]|| Set global option + ||[c]:setlocal[c]|| Set local option + -||[c]:sidebar[c]|| Open the sidebar window + -||[c]:style[c]|| Style Vimperator and web sites + +||[c]:style[c]|| Style Xulmus and web sites + ||[c]:source[c]|| Read Ex commands from a file + ||[c]:stop[c]|| Stop loading + ||[c]:tab[c]|| Execute a command and tell it to output in a new tab + @@ -252,8 +299,6 @@ section:Ex{nbsp}commands[ex-cmd-index,:index] ||[c]:version[c]|| Show version information + ||[c]:viewsource[c]|| View source code of current document + ||[c]:viusage[c]|| List all mappings with a short description + -||[c]:winclose[c]|| Close window + -||[c]:winopen[c]|| Open one or more URLs in a new window + ||[c]:wqall[c]|| Save the session and quit + ||[c]:zoom[c]|| Set zoom value of current web page + @@ -284,6 +329,7 @@ section:Options[option-index] ||'laststatus'|| Show the status line + ||'linksearch'|| Limit the search to hyperlink text + ||'loadplugins'|| Load plugin scripts when starting up + +||'maxitems'|| Maximum number of items to display at once in a listing + ||'messages'|| Number of messages to store in the message history + ||'more'|| Pause the message list window when more than one screen of listings is displayed + ||'newtab'|| Define which commands should output in a new tab by default + diff --git a/xulmus/locale/en-US/insert.txt b/xulmus/locale/en-US/insert.txt old mode 100755 new mode 100644 diff --git a/xulmus/locale/en-US/intro.txt b/xulmus/locale/en-US/intro.txt old mode 100755 new mode 100644 index 98c9a70d..490f00c9 --- a/xulmus/locale/en-US/intro.txt +++ b/xulmus/locale/en-US/intro.txt @@ -1,31 +1,25 @@ LOGO -+++
    +++ -*First there was a Navigator, then there was an Explorer. -Later it was time for a Konqueror. Now it's time for an Imperator, the -VIMperator :)* -+++
    +++ - section:Introduction[intro] -http://vimperator.org[Vimperator] is a free browser add-on for Firefox, -which makes it look and behave like the http://www.vim.org[Vim] -text editor. It has similar key bindings, and you could call it a modal -web browser, as key bindings differ according to which mode you are in. +http://vimperator.org/Xulmus[Xulmus] is a free media player add-on for +Songbird, which combines the best features of the +http://cmus.sourceforge.net[CMus] music player and the http://www.vim.org[Vim] +text editor. |warning| + Warning: -To provide the most authentic Vim experience, the Firefox menubar and toolbar -are hidden. + -If you really need them, type: [c]:set guioptions+=mT[c] to get them back. + -If you don't like Vimperator at all, you can uninstall it by typing +To provide the most authentic CMus/Vim experience, the Songbird toolbar +is hidden. + +If you really need it, type: [c]:set guioptions+=T[c] to get it back. + +If you don't like Xulmus at all, you can uninstall it by typing [c]:addons[c] and remove/disable it. + If you like it but can't remember the shortcuts, then press [m]F1[m] or [c]:help[c] to get this help window back. |author| |donation| + -Vimperator was written by mailto:stubenschrott@gmx.net[Martin Stubenschrott]. -If you appreciate my work on Vimperator and want to encourage me working on it +Xulmus was written by mailto:prathyushthota@gmail.com[Prathyush Thota]. +If you appreciate my work on Xulmus and want to encourage me working on it more, you can either send me greetings, patches or make a donation: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -38,14 +32,15 @@ more, you can either send me greetings, patches or make a donation: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Of course as a believer in free open source software, only make a donation -if you really like Vimperator and the money doesn't hurt -- otherwise just use +if you really like Xulmus and the money doesn't hurt -- otherwise just use it, recommend it and like it :) section:Help{nbsp}topics[overview] -- help:Tutorial[tutorial.html]: A quick-start tutorial for new users. -- help:Initialization[starting.html]: How Vimperator starts up, where it reads +//- help:Tutorial[tutorial.html]: A quick-start tutorial for new users. +- help:Initialization[starting.html]: How Xulmus starts up, where it reads the config file... +- help:Player[player.html]: Interacting with the media player. - help:Browsing[browsing.html]: Basic mappings and commands needed for a browsing session (how to open a web page or go back in history). - help:Buffer{nbsp}commands[buffer.html]: Operations on the current document @@ -65,8 +60,8 @@ section:Help{nbsp}topics[overview] - help:Autocommands[autocommands.html]: Automatically executing code on certain events. - help:Print[print.html]: Printing pages. -- help:GUI[gui.html]: Accessing Firefox menus, dialogs and the sidebar. -- help:Styling[styling.html]: Changing the styling of content pages and Vimperator itself. +- help:GUI[gui.html]: Accessing Songbird menus, dialogs and the sidebar. +- help:Styling[styling.html]: Changing the styling of content pages and Xulmus itself. - help:Messages[message.html]: A description of messages and error messages. - help:Developer{nbsp}information[developer.html]: How to write docs or plugins. @@ -87,11 +82,11 @@ section:Features[features] * Advanced completion of bookmark and history URLs (searching also in title, not only URL) * Vim-like statusline with a wget-like progress bar * Minimal GUI (easily hide useless menubar and toolbar with [c]:set guioptions=[c]) -* Ability to [c]:source[c] JavaScript files, and to use a [a]~/.vimperatorrc[a] file - with syntax highlighting if you install scripts/vimperator.vim +* Ability to [c]:source[c] JavaScript files, and to use a [a]~/.xulmusrc[a] file + with syntax highlighting if you install scripts/xulmus.vim * Easy quick searches ([c]:open foo[c] will search for "foo" in google, [c]:open ebay terminator[c] will search for "terminator" on ebay) - with support for Firefox keyword bookmarks and search engines + with support for Songbird keyword bookmarks and search engines * Count supported for many commands ([m]3[m] will go back 3 pages) * Beep on errors * Marks support ([m]ma[m] to set mark a on a web page, [m]'a[m] to go there) diff --git a/xulmus/locale/en-US/map.txt b/xulmus/locale/en-US/map.txt old mode 100755 new mode 100644 index 4e9af03a..cec05288 --- a/xulmus/locale/en-US/map.txt +++ b/xulmus/locale/en-US/map.txt @@ -58,7 +58,7 @@ Map the key sequence {lhs} to {rhs}. The {rhs} is remapped, allowing for nested and recursive mappings. Warning: Mappings are NOT saved between sessions, make sure you put them in your -vimperatorrc file! +xulmusrc file! ________________________________________________________________________________ @@ -71,7 +71,7 @@ Map the key sequence {lhs} to {rhs} (in Command-line mode). The {rhs} is remapped, allowing for nested and recursive mappings. Warning: Mappings are NOT saved between sessions, make sure you put them in your -vimperatorrc file! +xulmusrc file! ________________________________________________________________________________ @@ -84,7 +84,7 @@ Map the key sequence {lhs} to {rhs} (in Insert mode). The {rhs} is remapped, allowing for nested and recursive mappings. Warning: Mappings are NOT saved between sessions, make sure you put them in your -vimperatorrc file! +xulmusrc file! ________________________________________________________________________________ @@ -172,7 +172,7 @@ ________________________________________________________________________________ section:Abbreviations[abbreviations] -Vimperator can automatically replace words identified as abbreviations, +Xulmus can automatically replace words identified as abbreviations, which may be used to save typing or to correct commonly misspelled words. An abbreviation can be one of three types that are defined by the types of constituent characters. Whitespace and quotes are non-keyword @@ -319,7 +319,7 @@ Completion can be enabled by specifying one of the following arguments to the *buffer* buffers *color* color schemes *command* Ex commands -*dialog* Firefox dialogs +*dialog* Songbird dialogs *dir* directories *environment* environment variables *event* autocommand events @@ -330,8 +330,8 @@ Completion can be enabled by specifying one of the following arguments to the *macro* named macros *mapping* user mappings *menu* menu items -*option* Vimperator options -*preference* Firefox preferences +*option* Xulmus options +*preference* Songbird preferences *search* search engines and keywords *shellcmd* shell commands *sidebar* sidebar panels diff --git a/xulmus/locale/en-US/marks.txt b/xulmus/locale/en-US/marks.txt old mode 100755 new mode 100644 index 837268be..d1a7a5b5 --- a/xulmus/locale/en-US/marks.txt +++ b/xulmus/locale/en-US/marks.txt @@ -2,14 +2,14 @@ HEADER |different-marks| |marks| + -Vimperator supports a number of different marks: +Xulmus supports a number of different marks: - Bookmarks which allow you to mark a web page as one of your favorites for easy access. - QuickMarks allow you to define up to 62 (a-zA-Z0-9) web sites (or groups of web sites) which you visit most often. - Local marks to store the position within a web page. -- History is also a special type of marks, as Vimperator automatically +- History is also a special type of marks, as Xulmus automatically remembers sites which you have visited in the past. section:Bookmarks[bookmarks] diff --git a/xulmus/locale/en-US/message.txt b/xulmus/locale/en-US/message.txt old mode 100755 new mode 100644 index 99c1d723..04270207 --- a/xulmus/locale/en-US/message.txt +++ b/xulmus/locale/en-US/message.txt @@ -2,7 +2,7 @@ HEADER |message-history| + -Vimperator stores all info and error messages in a message history. The type of +Xulmus stores all info and error messages in a message history. The type of info messages output can be controlled by the 'verbose' option. |:mes| |:messages| + diff --git a/xulmus/locale/en-US/options.txt b/xulmus/locale/en-US/options.txt old mode 100755 new mode 100644 index a16aa9f6..9bcd2de3 --- a/xulmus/locale/en-US/options.txt +++ b/xulmus/locale/en-US/options.txt @@ -2,7 +2,7 @@ HEADER |options| + -Vimperator has a number of internal variables and switches which can be set to +Xulmus has a number of internal variables and switches which can be set to achieve special effects. These options come in 5 forms: `------------`----------------------------------------- *boolean* can only be on or off @@ -155,35 +155,35 @@ Environment variables are expanded for path options like 'cdpath' and 'runtimepath'. The variable notation is _$VAR_ (terminated by a non-word character) or _$\\{VAR}_. _%VAR%_ is also supported on Windows. -section:Setting{nbsp}Firefox{nbsp}options[firefox-options,preferences] +section:Setting{nbsp}Songbird{nbsp}options[songbird-options,preferences] -Firefox options can be viewed and set with the following commands: +Songbird options can be viewed and set with the following commands: |:prefs| |:preferences| ||:pref[erences]|| ________________________________________________________________________________ -Show the Firefox preferences dialog. You can change the browser preferences -from this dialog. Be aware that not all Firefox preferences work, because -Vimperator overrides some key bindings and changes Firefox's GUI. +Show the Songbird preferences dialog. You can change the player preferences +from this dialog. Be aware that not all Songbird preferences work, because +Xulmus overrides some key bindings and changes Songbird's GUI. ________________________________________________________________________________ |:prefs!| |:preferences!| ||:pref[erences]!|| ________________________________________________________________________________ -Opens about:config in the current tab where you can change advanced Firefox +Opens about:config in the current tab where you can change advanced Songbird preferences. ________________________________________________________________________________ |:set!| |:set-!| ||:se[t]! {preference}={value}|| + ________________________________________________________________________________ -Change any Firefox {preference} (those in the about:config window). You can also -reset/delete those preferences with [c]:set! {preference}&[c]. +Change any Songbird {preference} (those in the about:config window). You can +also reset/delete those preferences with [c]:set! {preference}&[c]. ________________________________________________________________________________ |overridden-preferences| + -Vimperator sets several Firefox preferences at startup. If this is undesirable, +Xulmus sets several Songbird preferences at startup. If this is undesirable, they can be changed to a different value in your RC file using [c]:set! {preference}={value}[c] @@ -231,7 +231,7 @@ Items which are completed at the [c]:[tab]open[c] prompt. Available items: `---`-------------------------------------------------------------------------------- *s* Search engines and keyword URLs *f* Local files -*l* Firefox location bar entries (bookmarks and history sorted in an intelligent way) +*l* Songbird location bar entries (bookmarks and history sorted in an intelligent way) *b* Bookmarks *S* Suggest engines ------------------------------------------------------------------------------------- @@ -253,7 +253,7 @@ schwarzenegger[c] will be exactly the same as [c]:open youtube arnold schwarzenegger[c]. Therefore, you need to add a keyword or search engine "youtube" first. -If 'defsearch' is empty, then Firefox will always attempt to open the +If 'defsearch' is empty, then Songbird will always attempt to open the raw [a][arg][a]. ____ @@ -265,7 +265,7 @@ Set the external text editor. Sets the editor to run when [m][m] is pressed in INSERT and TEXTAREA modes. -Warning: Vimperator will not behave correctly if the editor forks its own +Warning: Xulmus will not behave correctly if the editor forks its own process, such as with gvim without the -f argument. ____ @@ -331,7 +331,7 @@ Show or hide certain GUI elements like the menu or toolbar. Supported characters `---`----------- *m* Menubar *T* Toolbar -*B* Bookmark bar +*p* Player controls *n* Tab number *N* Tab number over image *b* Bottom scrollbar @@ -439,8 +439,8 @@ ____ ||'insertmode' 'im'|| boolean (default: on) ____ Use Insert mode as the default for text areas. -Makes Vimperator work in a way that Insert mode is the default mode for text areas. -Useful if you want to use Vimperator as a modeless editor, keeping the known Firefox interface for editing text areas. +Makes Xulmus work in a way that Insert mode is the default mode for text areas. +Useful if you want to use Xulmus as a modeless editor, keeping the known Songbird interface for editing text areas. ____ @@ -471,12 +471,20 @@ ____ ||'loadplugins' 'lpl'|| boolean (default on) ____ Load plugin scripts when starting up. When on, yet unloaded plugins are -automatically loaded after the vimperatorrc file has been sourced. To +automatically loaded after the xulmusrc file has been sourced. To load plugins earlier, use the [c]:loadplugins[c] command within the -vimperatorrc. +xulmusrc. ____ +|\'maxitems'| +||'maxitems'|| number (default: 20) +____ +Maximum number of items to display at once in a listing. +____ + + + |\'msgs'| |\'messages'| ||'messages' 'msgs'|| number (default: 100) ____ @@ -555,12 +563,12 @@ they always open in a new tab. Possible values: .---`------------------------------------------------------------------------------------------------ *0* Force to open in the current tab (Warning: this can stop some web sites from working correctly!) *1* Always open in a new tab -*2* Open in a new window if it has a specific requested size (default in Firefox) +*2* Open in a new window if it has a specific requested size (default in Songbird) *3* Always open in a new window *4* Open in the same tab unless it has a specific requested size ----------------------------------------------------------------------------------------------------- -Note: This option does not change the popup blocker of Firefox in any way. +Note: This option does not change the popup blocker of Songbird in any way. ____ @@ -570,7 +578,7 @@ ____ Speed up first time history/bookmark completion History access can be quite slow for a large history. -Vimperator maintains a cache to speed it up significantly on subsequent access. +Xulmus maintains a cache to speed it up significantly on subsequent access. In order to also speed up first time access, it is cached at startup, if this option is set (recommended). ____ @@ -587,23 +595,23 @@ link elements are those defined by 'hinttags'. ____ -|$VIMPERATOR_RUNTIME| +|$XULMUS_RUNTIME| |\'rtp'| |\'runtimepath'| ||'runtimepath' 'rtp'|| stringlist ____ -(default: _$VIMPERATOR_RUNTIME_ or Unix, Mac: "\~/.vimperator", Windows: "\~/vimperator") +(default: _$XULMUS_RUNTIME_ or Unix, Mac: "\~/.xulmus", Windows: "\~/xulmus") List of directories searched for runtime files: + colors/ + macros/ + plugin/ + -Example: [c]:set runtimepath=\~/myvimperator,\~/.vimperator[c] + -This will search for plugins in both "\~/myvimperator/plugin" and -"\~/.vimperator/plugin" +Example: [c]:set runtimepath=\~/myxulmus,\~/.xulmus[c] + +This will search for plugins in both "\~/myxulmus/plugin" and +"\~/.xulmus/plugin" -On startup, if the environment variable _$VIMPERATOR_RUNTIME_ does not -exist, Vimperator will set it to match this value. +On startup, if the environment variable _$XULMUS_RUNTIME_ does not +exist, Xulmus will set it to match this value. ____ @@ -690,13 +698,13 @@ ____ |\'titlestring'| -||'titlestring'|| string (default: "Vimperator") +||'titlestring'|| string (default: "Xulmus") ____ -Change the title of the browser window. -Vimperator changes the browser title from "Title of web page - Mozilla Firefox" to -"Title of web page - Vimperator". + +Change the title of the player window. +Xulmus changes the player title from "Songbird" to +"Title of tab - Xulmus". + If you don't like that, you can restore it with: -[c]:set titlestring=Mozilla\ Firefox[c]. +[c]:set titlestring=Songbird[c]. ____ @@ -725,7 +733,7 @@ ____ ||'verbose' 'vbs'|| number (default: 1) ____ Define which info messages are displayed. -When bigger than zero, Vimperator will give messages about what it is doing. +When bigger than zero, Xulmus will give messages about what it is doing. These can be viewed at any time with the [c]:messages[c] command. The highest value is 15, being the most verbose mode. diff --git a/xulmus/locale/en-US/overlay.dtd b/xulmus/locale/en-US/overlay.dtd old mode 100755 new mode 100644 diff --git a/xulmus/locale/en-US/overlay.properties b/xulmus/locale/en-US/overlay.properties old mode 100755 new mode 100644 diff --git a/xulmus/locale/en-US/pattern.txt b/xulmus/locale/en-US/pattern.txt old mode 100755 new mode 100644 index 6462a897..0009d6ff --- a/xulmus/locale/en-US/pattern.txt +++ b/xulmus/locale/en-US/pattern.txt @@ -2,9 +2,9 @@ HEADER |text-search-commands| + -Vimperator provides a Vim-like interface to Firefox's standard text search +Xulmus provides a Vim-like interface to Songbird's standard text search functionality. There is no support for using regular expressions in search -commands as Firefox does not provide native regexp support. It is unlikely that +commands as Songbird does not provide native regexp support. It is unlikely that this will ever be available. |/| + diff --git a/xulmus/locale/en-US/player.txt b/xulmus/locale/en-US/player.txt new file mode 100644 index 00000000..08324382 --- /dev/null +++ b/xulmus/locale/en-US/player.txt @@ -0,0 +1,217 @@ +HEADER + +|player-mode| |player| + + +The following features apply to Player mode which is activated when the media +tab has focus. + +section:Playing{nbsp}tracks[playing-tracks] + +|p_x| |:playerp| |:playerplay| +||:playerp[lay]|| + +||x|| +________________________________________________________________________________ +Play the current track. +________________________________________________________________________________ + +|p_z| |:playerpr| |:playerprev| +||:playerpr[ev]|| + +||z|| +________________________________________________________________________________ +Play the previous track. +________________________________________________________________________________ + + +|p_b| |:playern| |:playernext| +||:playern[ext]|| + +||b|| +________________________________________________________________________________ +Play the next track. +________________________________________________________________________________ + + +|p_c| |:playerpa| |:playerpause| +||:playerpa[use]|| + +||c|| +________________________________________________________________________________ +Pause/unpause the current track. +________________________________________________________________________________ + + +|p_v| |:players| |:playerstop| +||:players[top]|| + +||v|| +________________________________________________________________________________ +Stop playing the current track. +________________________________________________________________________________ + + +|p_x| +||x|| +________________________________________________________________________________ +Toggle shuffle mode. +________________________________________________________________________________ + + +|p_r| +||r|| +________________________________________________________________________________ +Toggle repeat mode. +________________________________________________________________________________ + + +|p_i| +||i|| +________________________________________________________________________________ +Select the currently playing track. +________________________________________________________________________________ + +section:Filtering{nbsp}the{nbsp}library[filter,filtering] + +|p_f| |:f| |:filter| +||:f[ilter] {artist} [a][album][a] [a][track][a]|| + +||f|| +________________________________________________________________________________ +Filter and play tracks. If only {artist} is specified then all tracks for that +artist are played in album order. If [a][album][a] is also specified then all +tracks for that album are played. A specific track can be specified with +[a][track][a]. +________________________________________________________________________________ + + +|p_F| |:F| |:Filter| +||:F[ilter] {keywords}|| + +||F|| +________________________________________________________________________________ +Filter and show the tracks as a view. The tracks are filtered by the {keywords} +provided as arguments. This text search applies over the default filter +properties, namely: Genre, Artist, Album and Track. +________________________________________________________________________________ + +section:Seeking{nbsp}to{nbsp}a{nbsp}track{nbsp}position[seeking] + +|p_| |p_h| +||[count]h|| +________________________________________________________________________________ +Seek +10s. +________________________________________________________________________________ + + +|p_| |p_l| +||[count]l|| +________________________________________________________________________________ +Seek -10s. +________________________________________________________________________________ + + +|p_| |p_H| +||[count]H|| +________________________________________________________________________________ +Seek +1m. +________________________________________________________________________________ + + +|p_| |p_L| +||[count]L|| +________________________________________________________________________________ +Seek -1m. +________________________________________________________________________________ + + +|:see| |:seek| +||:see[k] {[HH:]MM:SS]}|| + +||:see[k] +{time[hms]} | -{time[hms]}|| + +________________________________________________________________________________ +Seek to an absolute or relative position in a track. The position can be given +in seconds (s), minutes (m), or hours (h). If the unit is not specified then +seconds is assumed. The position is absolute unless the value is prefixed with +"-" or "+". + +Positions may also be specified in [a][HH:]MM:SS[a] format. +________________________________________________________________________________ + +section:Adjusting{nbsp}the{nbsp}volume[volume] + +|p_+| |p_=| +||+|| + +||=|| +________________________________________________________________________________ +Increase volume by 10%. +________________________________________________________________________________ + + +|p_-| +||-|| + +________________________________________________________________________________ +Decrease volume by 10%. +________________________________________________________________________________ + + +|:vol| |:volume| +||:vol[ume] {value}|| + +||:vol[ume] +{value} | -{value}|| + +________________________________________________________________________________ +Set the player volume. {value} can be an absolute value between 0 and 100% or a +relative value if prefixed with "-" or "+". +________________________________________________________________________________ + +section:Managing{nbsp}playlists[playlists] + +|:load| +||:load [a][playlist][a]|| + +________________________________________________________________________________ +Load [a][playlist][a]. If no playlist is specified then the main library view +is loaded. +________________________________________________________________________________ + +section:Changing{nbsp}media{nbsp}views[media-view,view] + +|:mediav| |:mediaview| +||:mediav[iew] {view}|| + +________________________________________________________________________________ +Change the media view to {view}. This can only be run when the media tab is the +current tab. +________________________________________________________________________________ + +section:Search{nbsp}commands[search] + +|p_/| +||/{pattern}|| + +________________________________________________________________________________ +Search forward for a track matching {pattern} in the visible media view. +________________________________________________________________________________ + +//|p_?| +//||?{pattern}|| + +//________________________________________________________________________________ +//Search backwards for a track matching {pattern} in the visible media view. +//________________________________________________________________________________ + +|p_n| +||n|| + +________________________________________________________________________________ +Find the next track. Repeats the last search. If the search hits BOTTOM of the +view, it continues from TOP. +________________________________________________________________________________ + +|p_N| +||N|| + +________________________________________________________________________________ +Find the previous track. Repeats the last search in the opposite direction. If +the search hits TOP of the view, it continues from BOTTTOM. +________________________________________________________________________________ + +section:Rating{nbsp}tracks[rating] + +|p_| |p_| |p_| |p_| |p_| |p_| +|||| + +|||| + +|||| + +|||| + +|||| + +|||| + +________________________________________________________________________________ +Rate the current track with N stars. +________________________________________________________________________________ + +// vim: set filetype=asciidoc: diff --git a/xulmus/locale/en-US/print.txt b/xulmus/locale/en-US/print.txt old mode 100755 new mode 100644 index 8cf3d180..9002f9b9 --- a/xulmus/locale/en-US/print.txt +++ b/xulmus/locale/en-US/print.txt @@ -18,7 +18,7 @@ As above, but write the output to {filename}. Note: Not available on Windows. ________________________________________________________________________________ -section:Firefox{nbsp}printing{nbsp}dialogs[firefox-print-dialogs] +section:Songbird{nbsp}printing{nbsp}dialogs[songbird-print-dialogs] The "Print Preview" and "Page Setup" dialogs can be opened via the [c]:dialog[c] command diff --git a/xulmus/locale/en-US/repeat.txt b/xulmus/locale/en-US/repeat.txt old mode 100755 new mode 100644 index 2817c980..24c35754 --- a/xulmus/locale/en-US/repeat.txt +++ b/xulmus/locale/en-US/repeat.txt @@ -2,7 +2,7 @@ HEADER |repeat| + -Vimperator can repeat a number of commands and record macros. +Xulmus can repeat a number of commands and record macros. section:Macros[macros,complex-repeat] @@ -52,7 +52,7 @@ ____________________________________________________________________________ ||[count].|| ____________________________________________________________________________ Repeat the last keyboard mapping [count] times. Note that, unlike in Vim, this -does not apply solely to editing commands, mainly because Vimperator doesn't +does not apply solely to editing commands, mainly because Xulmus doesn't have them. ____________________________________________________________________________ @@ -85,8 +85,8 @@ function hello2() { -------------------------------------------------------------------------------- are only available within the scope of the script. -The _.vimperatorrc_ file in your home directory and any files in -_\~/.vimperator/plugin/_ are always sourced at startup. \~ is supported as a +The _.xulmusrc_ file in your home directory and any files in +_\~/.xulmus/plugin/_ are always sourced at startup. \~ is supported as a shortcut for the _$HOME_ directory. If [!] is specified, errors are not printed. ________________________________________________________________________________ @@ -96,10 +96,10 @@ ________________________________________________________________________________ ||:loadplugins|| + ________________________________________________________________________________ Load all unloaded plugins immediately. Because plugins are automatically -loaded after vimperatorrc is sourced, this command must be placed early -in the vimperatorrc file if vimperatorrc also includes commands that are +loaded after xulmusrc is sourced, this command must be placed early +in the xulmusrc file if xulmusrc also includes commands that are implemented by plugins. Additionally, this command allows for sourcing -new plugins without restarting Vimperator. +new plugins without restarting Xulmus. ________________________________________________________________________________ @@ -123,7 +123,7 @@ ________________________________________________________________________________ |:fini| |:finish| ||:fini[sh]|| + ________________________________________________________________________________ -Stop sourcing a script file. This can only be called from within a Vimperator +Stop sourcing a script file. This can only be called from within a Xulmus script file. ________________________________________________________________________________ @@ -136,7 +136,7 @@ Profile a piece of code or a command. Run {code} [count] times (default 1) and returns the elapsed time. {code} is always passed to JavaScript's eval(), which might be slow, so take the results with a grain of salt. -If {code} starts with a [c]:[c], it is executed as a Vimperator command. +If {code} starts with a [c]:[c], it is executed as a Xulmus command. Use the special version with [!] if you just want to run any command multiple times without showing profiling statistics. diff --git a/xulmus/locale/en-US/starting.txt b/xulmus/locale/en-US/starting.txt old mode 100755 new mode 100644 index df384fd0..b32bddbd --- a/xulmus/locale/en-US/starting.txt +++ b/xulmus/locale/en-US/starting.txt @@ -1,22 +1,22 @@ HEADER -Vimperator does not yet read any command-line options. When it does, they will +Xulmus does not yet read any command-line options. When it does, they will be documented here. section:Initialization[initialization,startup] -At startup, Vimperator completes the following tasks in order. +At startup, Xulmus completes the following tasks in order. -1. Vimperator can perform user initialization commands. When +1. Xulmus can perform user initialization commands. When one of the following is successfully located, it is executed, and no further locations are tried. - a. |$VIMPERATOR_INIT| - _$VIMPERATOR_INIT_ -- May contain a single Ex command (e.g., + a. |$XULMUS_INIT| + _$XULMUS_INIT_ -- May contain a single Ex command (e.g., "[c]:source {file}[c]"). - b. [a]\~/_vimperatorrc[a] -- Windows only. If this file exists, its contents + b. [a]\~/_xulmusrc[a] -- Windows only. If this file exists, its contents are executed. - c. [a]\~/.vimperatorrc[a] -- If this file exists, its contents are executed. + c. [a]\~/.xulmusrc[a] -- If this file exists, its contents are executed. 2. If 'exrc' is set, then any RC file in the current directory is also sourced. @@ -31,18 +31,18 @@ command). The user's ~ (i.e., "home") directory is determined as follows: * On Unix and Mac, the environment variable _$HOME_ is used. -* On Windows, Vimperator checks for the existence of _%HOME%_, then +* On Windows, Xulmus checks for the existence of _%HOME%_, then _%USERPROFILE%_, and then _%HOMEDRIVE%%HOMEPATH%_. It uses the first one it finds. section:Saving{nbsp}settings[save-settings] -|:mkv| |:mkvimperatorrc| -||:mkv[imperatorrc][!] [a][file][a]|| + +|:mkx| |:mkxulmusrc| +||:mkx[ulmusrc][!] [a][file][a]|| + ________________________________________________________________________________ Write current key mappings and changed options to [a][file][a]. If no -[a][file][a] is specified then _~/.vimperatorrc_ is written unless this file -already exists. The special version [c]:mkvimperatorrc![c] will overwrite +[a][file][a] is specified then _~/.xulmusrc_ is written unless this file +already exists. The special version [c]:mkxulmusrc![c] will overwrite [a][file][a] if it exists. Warning: this differs from Vim's behavior which defaults to writing the file @@ -54,7 +54,7 @@ section:Restarting[restarting] |:res| |:restart| + ||:res[tart]|| ________________________________________________________________________________ -Force the browser to restart. Useful when installing extensions. +Force Xulmus to restart. Useful when installing extensions. ________________________________________________________________________________ // vim: set filetype=asciidoc: diff --git a/xulmus/locale/en-US/styling.txt b/xulmus/locale/en-US/styling.txt old mode 100755 new mode 100644 index a4ba91a2..f3579ec8 --- a/xulmus/locale/en-US/styling.txt +++ b/xulmus/locale/en-US/styling.txt @@ -2,9 +2,9 @@ HEADER |styling| + -Vimperator allows you to style both the browser and any web pages you view. All +Xulmus allows you to style both the player and any web pages you view. All styling is specified via CSS. Although you may style any user interface element -via the [c]:style[c] command, most Vimperator elements can be styled with the +via the [c]:style[c] command, most Xulmus elements can be styled with the [c]:highlight[c] command, for convenience. |E185| |:colo| |:colorscheme| + @@ -22,13 +22,13 @@ ________________________________________________________________________________ ________________________________________________________________________________ Highlight {group} with {css}. Normally, {css} is checked for valid syntax before it's applied. Once you're certain it's -valid, [!] will override the check, to speed Vimperator startup. +valid, [!] will override the check, to speed Xulmus startup. {selector} can be any valid CSS selector, such as [c]:hover[c], and if provided will restrict the match to matching elements. Valid groups are: `--------------------`----------------------------------- -*Bell* Vimperator's visual bell +*Bell* Xulmus's visual bell *Boolean* A JavaScript Boolean object *CmdLine* The command line *CmdOutput* @@ -102,7 +102,7 @@ ________________________________________________________________________________ |:sty| |:style| + ||:sty[le][!] [-name={name}] [-append] {filter} [{css}]|| + ________________________________________________________________________________ -Add CSS styles to the browser or to web pages. {filter} is a comma +Add CSS styles to the player or to web pages. {filter} is a comma separated list of URLs to match. URLs ending with *\** are matched as prefixes, URLs not containing any *:* or */* characters are matched as domains. If {name} (short option: [c]-n[c]) is provided, any diff --git a/xulmus/locale/en-US/tabs.txt b/xulmus/locale/en-US/tabs.txt old mode 100755 new mode 100644 index 9ccded72..6b267edb --- a/xulmus/locale/en-US/tabs.txt +++ b/xulmus/locale/en-US/tabs.txt @@ -199,20 +199,21 @@ Like [m]d[m] but selects the tab to the left of the deleted tab. ________________________________________________________________________________ -|u| |:u| |:undo| -||:[count]u[ndo] [a][url][a]|| + -||[count]u|| -________________________________________________________________________________ -Undo closing of a tab. If a count is given, don't undo the last but the -[count]th last closed tab. With [a][url][a] restores the tab matching the URL. -________________________________________________________________________________ - - -|:undoa| |:undoall| + -||:undoa[ll]|| -________________________________________________________________________________ -Undo closing of all closed tabs. Firefox stores up to 10 closed tabs, even -after a browser restart. -________________________________________________________________________________ +// FIXME: No undo in Songbird for now. +//|u| |:u| |:undo| +//||:[count]u[ndo] [a][url][a]|| + +//||[count]u|| +//________________________________________________________________________________ +//Undo closing of a tab. If a count is given, don't undo the last but the +//[count]th last closed tab. With [a][url][a] restores the tab matching the URL. +//________________________________________________________________________________ +// +// +//|:undoa| |:undoall| + +//||:undoa[ll]|| +//________________________________________________________________________________ +//Undo closing of all closed tabs. Songbird stores up to 10 closed tabs, even +//after a browser restart. +//________________________________________________________________________________ // vim: set filetype=asciidoc: diff --git a/xulmus/locale/en-US/tutorial.txt b/xulmus/locale/en-US/tutorial.txt old mode 100755 new mode 100644 diff --git a/xulmus/locale/en-US/various.txt b/xulmus/locale/en-US/various.txt old mode 100755 new mode 100644 index 79d485dc..65e315b9 --- a/xulmus/locale/en-US/various.txt +++ b/xulmus/locale/en-US/various.txt @@ -34,14 +34,14 @@ Run a command. Runs {cmd} through system() and displays its output. Any \'!' in backslash before the \'!', then that backslash is removed. Warning: Input redirection (< foo) not done, also do not run commands which -require stdin or it will hang Firefox! +require stdin or it will hang Songbird! ________________________________________________________________________________ |:ve| |:version| + ||:ve[rsion][!]|| ________________________________________________________________________________ -Show version information. You can show the Firefox version page with +Show version information. You can show the Songbird version page with [c]:version![c]. ________________________________________________________________________________ diff --git a/xulmus/locale/en-US/xhtml11.css b/xulmus/locale/en-US/xhtml11.css old mode 100755 new mode 100644 diff --git a/xulmus/skin/icon.png b/xulmus/skin/icon.png old mode 100755 new mode 100644 index e821ed66..3d16d3fc Binary files a/xulmus/skin/icon.png and b/xulmus/skin/icon.png differ diff --git a/xulmus/xulmusrc.example b/xulmus/xulmusrc.example old mode 100755 new mode 100644