mirror of
https://github.com/rn10950/RetroZilla.git
synced 2024-11-10 01:40:17 +01:00
172 lines
5.5 KiB
JavaScript
172 lines
5.5 KiB
JavaScript
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
*
|
|
* ***** 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
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is The JavaScript Debugger.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Netscape Communications Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* Robert Ginda, <rginda@netscape.com>, original author
|
|
*
|
|
* 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
|
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
function initMsgs ()
|
|
{
|
|
console.bundleList = new Array();
|
|
console.defaultBundle =
|
|
initStringBundle("chrome://venkman/locale/venkman.properties");
|
|
}
|
|
|
|
function initStringBundle (bundlePath)
|
|
{
|
|
const nsIPropertyElement = Components.interfaces.nsIPropertyElement;
|
|
|
|
var pfx;
|
|
if (console.bundleList.length == 0)
|
|
pfx = "";
|
|
else
|
|
pfx = console.bundleList.length + ":";
|
|
|
|
var bundle = srGetStrBundle(bundlePath);
|
|
console.bundleList.push(bundle);
|
|
var enumer = bundle.getSimpleEnumeration();
|
|
|
|
while (enumer.hasMoreElements())
|
|
{
|
|
var prop = enumer.getNext().QueryInterface(nsIPropertyElement);
|
|
var ary = prop.key.match (/^(msg|msn)/);
|
|
if (ary)
|
|
{
|
|
var constValue;
|
|
var constName = prop.key.toUpperCase().replace (/\./g, "_");
|
|
if (ary[1] == "msn")
|
|
constValue = pfx + prop.key;
|
|
else
|
|
constValue = prop.value.replace (/^\"/, "").replace (/\"$/, "");
|
|
|
|
window[constName] = constValue;
|
|
}
|
|
}
|
|
|
|
return bundle;
|
|
}
|
|
|
|
function getMsg (msgName, params, deflt)
|
|
{
|
|
try
|
|
{
|
|
var bundle;
|
|
var ary = msgName.match (/(\d+):(.+)/);
|
|
if (ary)
|
|
{
|
|
return (getMsgFrom(console.bundleList[ary[1]], ary[2], params,
|
|
deflt));
|
|
}
|
|
|
|
return (getMsgFrom(console.bundleList[0], msgName, params, deflt));
|
|
}
|
|
catch (ex)
|
|
{
|
|
ASSERT (0, "Caught exception getting message: " + msgName + "/" +
|
|
params);
|
|
return deflt ? deflt : msgName;
|
|
}
|
|
}
|
|
|
|
function getMsgFrom (bundle, msgName, params, deflt)
|
|
{
|
|
try
|
|
{
|
|
var rv;
|
|
|
|
if (params && params instanceof Array)
|
|
rv = bundle.formatStringFromName (msgName, params, params.length);
|
|
else if (params || params == 0)
|
|
rv = bundle.formatStringFromName (msgName, [params], 1);
|
|
else
|
|
rv = bundle.GetStringFromName (msgName);
|
|
|
|
/* strip leading and trailing quote characters, see comment at the
|
|
* top of venkman.properties.
|
|
*/
|
|
rv = rv.replace (/^\"/, "");
|
|
rv = rv.replace (/\"$/, "");
|
|
|
|
return rv;
|
|
}
|
|
catch (ex)
|
|
{
|
|
if (typeof deflt == "undefined")
|
|
{
|
|
ASSERT (0, "caught exception getting value for ``" + msgName +
|
|
"''\n" + ex + "\n");
|
|
return msgName;
|
|
}
|
|
return deflt;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/* message types, don't localize */
|
|
const MT_ATTENTION = "ATTENTION";
|
|
const MT_CONT = "CONT";
|
|
const MT_ERROR = "ERROR";
|
|
const MT_HELLO = "HELLO";
|
|
const MT_HELP = "HELP";
|
|
const MT_WARN = "WARN";
|
|
const MT_INFO = "INFO";
|
|
const MT_OUTPUT = "#OUTPUT";
|
|
const MT_SOURCE = "#SOURCE";
|
|
const MT_STEP = "#STEP";
|
|
const MT_STOP = "STOP";
|
|
const MT_ETRACE = "#ETRACE";
|
|
const MT_LOG = "#LOG";
|
|
const MT_USAGE = "USAGE";
|
|
const MT_EVAL_IN = "#EVAL-IN";
|
|
const MT_EVAL_OUT = "#EVAL-OUT";
|
|
const MT_FEVAL_IN = "#FEVAL-IN";
|
|
const MT_FEVAL_OUT = "#FEVAL-OUT";
|
|
|
|
/* these messages might be needed to report an exception at startup, before
|
|
* initMsgs() has been called. */
|
|
window.MSN_ERR_STARTUP = "msg.err.startup";
|
|
window.MSN_FMT_JSEXCEPTION = "msn.fmt.jsexception";
|
|
|
|
/* exception number -> localized message name map, keep in sync with ERR_* from
|
|
* venkman-static.js */
|
|
const exceptionMsgNames = ["err.notimplemented",
|
|
"err.required.param",
|
|
"err.invalid.param",
|
|
"err.subscript.load",
|
|
"err.no.debugger",
|
|
"err.failure",
|
|
"err.no.stack"];
|