mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 12:17:59 +01:00
Update components to load more reliably on FF<4.0. Fix command line option parsing.
This commit is contained in:
@@ -6,28 +6,27 @@
|
||||
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
const Name = Components.classes["@dactyl.googlecode.com/base/dactyl"]
|
||||
.getService().wrappedJSObject.name;
|
||||
const name = Name.toLowerCase();
|
||||
function CommandLineHandler() {
|
||||
this.wrappedJSObject = this;
|
||||
}
|
||||
CommandLineHandler.prototype = {
|
||||
|
||||
classDescription: Name + " Command-line Handler",
|
||||
classDescription: "Dactyl Command-line Handler",
|
||||
|
||||
classID: Components.ID("{16dc34f7-6d22-4aa4-a67f-2921fb5dcb69}"),
|
||||
|
||||
contractID: "@mozilla.org/commandlinehandler/general-startup;1?type=" + name,
|
||||
contractID: "@mozilla.org/commandlinehandler/general-startup;1?type=dactyl",
|
||||
|
||||
_xpcom_categories: [{
|
||||
category: "command-line-handler",
|
||||
entry: "m-" + name
|
||||
entry: "m-dactyl"
|
||||
}],
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsICommandLineHandler]),
|
||||
|
||||
handle: function (commandLine) {
|
||||
let name = Components.classes["@dactyl.googlecode.com/base/dactyl"]
|
||||
.getService().wrappedJSObject.name;
|
||||
// TODO: handle remote launches differently?
|
||||
try {
|
||||
this.optionValue = commandLine.handleFlagWithParam(name, false);
|
||||
|
||||
@@ -109,6 +109,7 @@ ChromeData.prototype = {
|
||||
};
|
||||
|
||||
function Dactyl() {
|
||||
Dactyl.prototype.__proto__ = Cc["@dactyl.googlecode.com/base/dactyl"].getService().wrappedJSObject;
|
||||
this.wrappedJSObject = this;
|
||||
|
||||
this.HELP_TAGS = {};
|
||||
@@ -131,8 +132,6 @@ Dactyl.prototype = {
|
||||
}
|
||||
},
|
||||
|
||||
__proto__: Cc["@dactyl.googlecode.com/base/dactyl"].getService().wrappedJSObject,
|
||||
|
||||
init: function (obj) {
|
||||
for each (let prop in ["HELP_TAGS", "FILE_MAP", "OVERLAY_MAP"]) {
|
||||
this[prop] = this[prop].constructor();
|
||||
|
||||
@@ -1098,12 +1098,18 @@ const Dactyl = Module("dactyl", {
|
||||
*/
|
||||
parseCommandLine: function (cmdline) {
|
||||
const options = [
|
||||
[["+u"], commands.OPTIONS_STRING],
|
||||
[["++noplugin"], commands.OPTIONS_NOARG],
|
||||
[["++cmd"], commands.OPTIONS_STRING, null, null, true],
|
||||
[["+c"], commands.OPTIONS_STRING, null, null, true]
|
||||
];
|
||||
[["+u"], CommandOption.STRING],
|
||||
[["++noplugin"], CommandOption.NOARG],
|
||||
[["++cmd"], CommandOption.STRING, null, null, true],
|
||||
[["+c"], CommandOption.STRING, null, null, true]
|
||||
].map(CommandOption.fromArray, CommandOption);
|
||||
try {
|
||||
return commands.parseArgs(cmdline, options, "*");
|
||||
}
|
||||
catch (e) {
|
||||
dactyl.reportError(e, true);
|
||||
return [];
|
||||
}
|
||||
},
|
||||
|
||||
variableReference: function (string) {
|
||||
|
||||
Reference in New Issue
Block a user