mirror of
https://git.freebsd.org/ports.git
synced 2025-06-20 12:10:31 -04:00
release can be found at http://library.gnome.org/misc/release-notes/2.30/ . This release brings initial PackageKit support, Upower (replaces power management part of hal), cuse4bsd integration with HAL and cheese, and a faster Evolution. Sadly GNOME 2.30.x will be the last release with FreeBSD 6.X support. This will also be the last of the 2.x releases. The next release will be the highly-anticipated GNOME 3.0 which will bring with it a new UI experience. Currently, there are a few bugs with GNOME 2.30 that may be of note for our users. Be sure to consult the UPGRADING note or the 2.30 upgrade FAQ at http://www.freebsd.org/gnome/docs/faq230.html for specific upgrading instructions, and the up-to-date list of known issues. This release features commits by avl, ahze, bland, marcus, mezz, and myself. The FreeBSD GNOME Team would like to thank Anders F Bjorklund for doing the initual packagekit porting. And the following contributors & testers for there help with this release: Eric L. Chen Vladimir Grebenschikov Sergio de Almeida Lenzi DomiX walder crsd Kevin Oberman Michal Varga Pavel Plesov Bapt kevin and ITetcu for two exp-run PR: ports/143852 ports/145347 ports/144980 ports/145830 ports/145511
203 lines
5.6 KiB
JavaScript
203 lines
5.6 KiB
JavaScript
GLib = imports.gi.GLib;
|
|
|
|
Seed.sprintf = function ()
|
|
{
|
|
if (typeof arguments == "undefined") { return null; }
|
|
if (arguments.length < 1) { return null; }
|
|
if (typeof arguments[0] != "string") { return null; }
|
|
if (typeof RegExp == "undefined") { return null; }
|
|
|
|
var string = arguments[0];
|
|
var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
|
|
var matches = new Array();
|
|
var strings = new Array();
|
|
var convCount = 0;
|
|
var stringPosStart = 0;
|
|
var stringPosEnd = 0;
|
|
var matchPosEnd = 0;
|
|
var newString = '';
|
|
var match = null;
|
|
|
|
while (match = exp.exec(string)) {
|
|
if (match[9]) { convCount += 1; }
|
|
|
|
stringPosStart = matchPosEnd;
|
|
stringPosEnd = exp.lastIndex - match[0].length;
|
|
strings[strings.length] = string.substring(stringPosStart, stringPosEnd);
|
|
|
|
matchPosEnd = exp.lastIndex;
|
|
matches[matches.length] = {
|
|
match: match[0],
|
|
left: match[3] ? true : false,
|
|
sign: match[4] || '',
|
|
pad: match[5] || ' ',
|
|
min: match[6] || 0,
|
|
precision: match[8],
|
|
code: match[9] || '%',
|
|
negative: parseInt(arguments[convCount]) < 0 ? true : false,
|
|
argument: String(arguments[convCount])
|
|
};
|
|
}
|
|
strings[strings.length] = string.substring(matchPosEnd);
|
|
|
|
if (matches.length == 0) { return string; }
|
|
if ((arguments.length - 1) < convCount) { return null; }
|
|
|
|
var code = null;
|
|
var match = null;
|
|
var i = null;
|
|
|
|
for (i=0; i<matches.length; i++) {
|
|
|
|
if (matches[i].code == '%') { substitution = '%' }
|
|
else if (matches[i].code == 'b') {
|
|
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
|
|
substitution = Seed.sprintf.convert(matches[i], true);
|
|
}
|
|
else if (matches[i].code == 'c') {
|
|
matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
|
|
substitution = Seed.sprintf.convert(matches[i], true);
|
|
}
|
|
else if (matches[i].code == 'd') {
|
|
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
|
|
substitution = Seed.sprintf.convert(matches[i]);
|
|
}
|
|
else if (matches[i].code == 'f') {
|
|
matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
|
|
substitution = Seed.sprintf.convert(matches[i]);
|
|
}
|
|
else if (matches[i].code == 'o') {
|
|
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
|
|
substitution = Seed.sprintf.convert(matches[i]);
|
|
}
|
|
else if (matches[i].code == 's') {
|
|
matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
|
|
substitution = Seed.sprintf.convert(matches[i], true);
|
|
}
|
|
else if (matches[i].code == 'x') {
|
|
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
|
|
substitution = Seed.sprintf.convert(matches[i]);
|
|
}
|
|
else if (matches[i].code == 'X') {
|
|
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
|
|
substitution = Seed.sprintf.convert(matches[i]).toUpperCase();
|
|
}
|
|
else {
|
|
substitution = matches[i].match;
|
|
}
|
|
|
|
newString += strings[i];
|
|
newString += substitution;
|
|
|
|
}
|
|
newString += strings[i];
|
|
|
|
return newString;
|
|
|
|
};
|
|
|
|
Seed.sprintf.convert = function(match, nosign)
|
|
{
|
|
if (nosign) {
|
|
match.sign = '';
|
|
} else {
|
|
match.sign = match.negative ? '-' : match.sign;
|
|
}
|
|
var l = match.min - match.argument.length + 1 - match.sign.length;
|
|
var pad = new Array(l < 0 ? 0 : l).join(match.pad);
|
|
if (!match.left) {
|
|
if (match.pad == "0" || nosign) {
|
|
return match.sign + pad + match.argument;
|
|
} else {
|
|
return pad + match.sign + match.argument;
|
|
}
|
|
} else {
|
|
if (match.pad == "0" || nosign) {
|
|
return match.sign + match.argument + pad.replace(/0/g, ' ');
|
|
} else {
|
|
return match.sign + match.argument + pad;
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
Seed.repl = function()
|
|
{
|
|
try
|
|
{
|
|
if(readline)
|
|
{
|
|
// readline is loaded
|
|
}
|
|
}
|
|
catch (e)
|
|
{
|
|
try
|
|
{
|
|
readline = imports.readline;
|
|
}
|
|
catch (e)
|
|
{
|
|
print(e.name + " " + e.message);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
try
|
|
{
|
|
item = readline.readline("> ");
|
|
if (item == "continue")
|
|
return false;
|
|
print(eval(item));
|
|
}
|
|
catch (e)
|
|
{
|
|
print(e.name + " " + e.message);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
Seed.glib_repl = function()
|
|
{
|
|
GLib.idle_add(Seed.repl, null);
|
|
}
|
|
|
|
Seed.thread_repl = function()
|
|
{
|
|
GLib.thread_create_full(function() { while(Seed.repl()){} },
|
|
null, 0, true);
|
|
}
|
|
|
|
Seed.printf = function () { print(Seed.sprintf.apply(this, arguments)) };
|
|
|
|
if(!imports.searchPath || (imports.searchPath.length == 0))
|
|
{
|
|
imports.searchPath = [ ".",
|
|
".." ];
|
|
|
|
if(Seed.argv.length > 1)
|
|
{
|
|
__script_path__ = GLib.path_get_dirname(Seed.argv[1]);
|
|
|
|
try
|
|
{
|
|
if(!GLib.path_is_absolute(__script_path__))
|
|
{
|
|
__script_path__ = GLib.build_filenamev([GLib.get_current_dir(),
|
|
__script_path__]);
|
|
}
|
|
|
|
__script_path__ = imports.os.realpath(__script_path__);
|
|
|
|
if(__script_path__ && __script_path__ != "")
|
|
imports.searchPath.push(__script_path__);
|
|
}
|
|
catch(e)
|
|
{
|
|
print(imports.JSON.stringify(e));
|
|
}
|
|
}
|
|
|
|
imports.searchPath.push(".");
|
|
}
|